Chaste  Release::3.4
MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <MassMatrixAssembler.hpp>

+ Inheritance diagram for MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >:
+ Collaboration diagram for MassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >:

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)
 
- Public Member Functions inherited from AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 1, false, true, NORMAL >
 AbstractFeVolumeIntegralAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
 
virtual ~AbstractFeVolumeIntegralAssembler ()
 
- Public Member Functions inherited from AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >
 AbstractFeAssemblerCommon ()
 
void SetCurrentSolution (Vec currentSolution)
 
virtual ~AbstractFeAssemblerCommon ()
 
- Public Member Functions inherited from AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >
 AbstractFeAssemblerInterface ()
 
void SetMatrixToAssemble (Mat &rMatToAssemble, bool zeroMatrixBeforeAssembly=true)
 
void SetVectorToAssemble (Vec &rVecToAssemble, bool zeroVectorBeforeAssembly)
 
void Assemble ()
 
void AssembleMatrix ()
 
void AssembleVector ()
 
virtual ~AbstractFeAssemblerInterface ()
 

Private Attributes

double mScaleFactor
 
bool mUseMassLumping
 

Additional Inherited Members

- Protected Types inherited from AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 1, false, true, NORMAL >
typedef LinearBasisFunction
< ELEMENT_DIM > 
BasisFunction
 
- Protected Member Functions inherited from AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 1, false, true, NORMAL >
void ComputeTransformedBasisFunctionDerivatives (const ChastePoint< ELEMENT_DIM > &rPoint, const c_matrix< double, ELEMENT_DIM, SPACE_DIM > &rInverseJacobian, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rReturnValue)
 
void DoAssemble ()
 
virtual c_matrix< double,
PROBLEM_DIM *(ELEMENT_DIM+1),
PROBLEM_DIM *(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, PROBLEM_DIM > &rU, c_matrix< double, PROBLEM_DIM, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement)
 
virtual c_vector< double,
PROBLEM_DIM *(ELEMENT_DIM+1)> 
ComputeVectorTerm (c_vector< double, ELEMENT_DIM+1 > &rPhi, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, PROBLEM_DIM > &rU, c_matrix< double, PROBLEM_DIM, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement)
 
virtual void AssembleOnElement (Element< ELEMENT_DIM, SPACE_DIM > &rElement, c_matrix< double, PROBLEM_DIM *(ELEMENT_DIM+1), PROBLEM_DIM *(ELEMENT_DIM+1) > &rAElem, c_vector< double, PROBLEM_DIM *(ELEMENT_DIM+1)> &rBElem)
 
virtual bool ElementAssemblyCriterion (Element< ELEMENT_DIM, SPACE_DIM > &rElement)
 
- Protected Member Functions inherited from AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >
virtual double GetCurrentSolutionOrGuessValue (unsigned nodeIndex, unsigned indexOfUnknown)
 
virtual void ResetInterpolatedQuantities ()
 
virtual void IncrementInterpolatedQuantities (double phiI, const Node< SPACE_DIM > *pNode)
 
virtual void IncrementInterpolatedGradientQuantities (const c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, unsigned phiIndex, const Node< SPACE_DIM > *pNode)
 
- Protected Attributes inherited from AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 1, false, true, NORMAL >
AbstractTetrahedralMesh
< ELEMENT_DIM, SPACE_DIM > * 
mpMesh
 
GaussianQuadratureRule
< ELEMENT_DIM > * 
mpQuadRule
 
- Protected Attributes inherited from AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >
ReplicatableVector mCurrentSolutionOrGuessReplicated
 
- Protected Attributes inherited from AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >
Vec mVectorToAssemble
 
Mat mMatrixToAssemble
 
bool mAssembleMatrix
 
bool mAssembleVector
 
bool mZeroMatrixBeforeAssembly
 
bool mZeroVectorBeforeAssembly
 
PetscInt mOwnershipRangeLo
 
PetscInt mOwnershipRangeHi
 

Detailed Description

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

Simple implementation of AbstractFeVolumeIntegralAssembler 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 51 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
pMeshthe mesh
scaleFactorthe factor with which the multiply the mass matrix. Defaults to 1.0
useMassLumpingwhether to use mass matrix lumping or not

Definition at line 112 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 AbstractFeVolumeIntegralAssembler. See documentation in that class.

Parameters
rPhiThe basis functions, rPhi(i) = phi_i, i=1..numBases.
rGradPhiBasis gradients, rGradPhi(i,j) = d(phi_j)/d(X_i).
rXThe point in space.
rUThe unknown as a vector, u(i) = u_i.
rGradUThe gradient of the unknown as a matrix, rGradU(i,j) = d(u_i)/d(X_j).
pElementPointer to the element.
Returns
computed stencil matrix

Definition at line 77 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 57 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 60 of file MassMatrixAssembler.hpp.

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


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