MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <MassMatrixAssembler.hpp>

Inheritance diagram for MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >:

Inheritance graph
[legend]
Collaboration diagram for MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

c_matrix< double,
1 *(ELEMENT_DIM+1),
1 *(ELEMENT_DIM+1)> 
ComputeMatrixTerm (c_vector< double, ELEMENT_DIM+1 > &rPhi, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, 1 > &rU, c_matrix< double, 1, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement)
 MassMatrixAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, bool useMassLumping=false, double scaleFactor=1.0)

Private Attributes

double mScaleFactor
bool mUseMassLumping


Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >

Simple implementation of AbstractFeObjectAssembler which provides mass matrices for a given mesh, multiplied by a scale factor if required. In other words, the matrix

M_{ij} = k integral_{domain} phi_i(x) phi_j(x) dV

where phi_i is the i-th (linear) basis function and k the scale factor (constant throughout the mesh).

Definition at line 47 of file MassMatrixAssembler.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::MassMatrixAssembler ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh,
bool  useMassLumping = false,
double  scaleFactor = 1.0 
) [inline]

Constructor

Parameters:
pMesh the mesh
scaleFactor the factor with which the multiply the mass matrix. Defaults to 1.0
useMassLumping whether to use mass matrix lumping or not

Definition at line 104 of file MassMatrixAssembler.hpp.


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_matrix<double,1*(ELEMENT_DIM+1),1*(ELEMENT_DIM+1)> MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::ComputeMatrixTerm ( c_vector< double, ELEMENT_DIM+1 > &  rPhi,
c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &  rGradPhi,
ChastePoint< SPACE_DIM > &  rX,
c_vector< double, 1 > &  rU,
c_matrix< double, 1, SPACE_DIM > &  rGradU,
Element< ELEMENT_DIM, SPACE_DIM > *  pElement 
) [inline]

Implemented ComputeMatrixTerm(), defined in AbstractFeObjectAssembler. See documentation in that class.

Parameters:
rPhi The basis functions, rPhi(i) = phi_i, i=1..numBases.
rGradPhi Basis gradients, rGradPhi(i,j) = d(phi_j)/d(X_i).
rX The point in space.
rU The unknown as a vector, u(i) = u_i.
rGradU The gradient of the unknown as a matrix, rGradU(i,j) = d(u_i)/d(X_j).
pElement Pointer to the element.

Todo:
: #1637 If we decide to go ahead with mass lumping, reimplement this without nested loops.

Definition at line 69 of file MassMatrixAssembler.hpp.

References MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::mScaleFactor, and MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::mUseMassLumping.


Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::mScaleFactor [private]

The scale factor

Definition at line 52 of file MassMatrixAssembler.hpp.

Referenced by MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::ComputeMatrixTerm().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::mUseMassLumping [private]

Whether to use mass lumping or not

Definition at line 55 of file MassMatrixAssembler.hpp.

Referenced by MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::ComputeMatrixTerm().


The documentation for this class was generated from the following file:

Generated on Mon Apr 18 11:37:19 2011 for Chaste by  doxygen 1.5.5