Chaste Commit::f2ff7ee04e70ac9d06c57344df8d017dbb12b97b
MonodomainPurkinjeCableMassMatrixAssembler< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <MonodomainPurkinjeCableMassMatrixAssembler.hpp>

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

Public Member Functions

c_matrix< double, 2 *NUM_CABLE_ELEMENT_NODES, 2 *NUM_CABLE_ELEMENT_NODESComputeCableMatrixTerm (c_vector< double, NUM_CABLE_ELEMENT_NODES > &rPhi, c_matrix< double, SPACE_DIM, NUM_CABLE_ELEMENT_NODES > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, 2 > &rU, c_matrix< double, 2, SPACE_DIM > &rGradU, Element< CABLE_ELEMENT_DIM, SPACE_DIM > *pElement)
 
 MonodomainPurkinjeCableMassMatrixAssembler (MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, bool useMassLumping=false)
 
- Public Member Functions inherited from AbstractFeCableIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2, false, true, NORMAL >
 AbstractFeCableIntegralAssembler (MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
 
virtual ~AbstractFeCableIntegralAssembler ()
 
- 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

bool mUseMassLumping
 

Static Private Attributes

static const unsigned CABLE_ELEMENT_DIM = 1
 
static const unsigned NUM_CABLE_ELEMENT_NODES = 2
 

Additional Inherited Members

- Protected Types inherited from AbstractFeCableIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2, false, true, NORMAL >
typedef LinearBasisFunction< 1 > CableBasisFunction
 
- Protected Member Functions inherited from AbstractFeCableIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2, false, true, NORMAL >
void ComputeTransformedBasisFunctionDerivatives (const ChastePoint< CABLE_ELEMENT_DIM > &rPoint, const c_matrix< double, CABLE_ELEMENT_DIM, SPACE_DIM > &rInverseJacobian, c_matrix< double, SPACE_DIM, NUM_CABLE_ELEMENT_NODES > &rReturnValue)
 
void DoAssemble ()
 
virtual c_matrix< double, PROBLEM_DIM *NUM_CABLE_ELEMENT_NODES, PROBLEM_DIM *NUM_CABLE_ELEMENT_NODESComputeCableMatrixTerm (c_vector< double, NUM_CABLE_ELEMENT_NODES > &rPhi, c_matrix< double, SPACE_DIM, NUM_CABLE_ELEMENT_NODES > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, PROBLEM_DIM > &rU, c_matrix< double, PROBLEM_DIM, SPACE_DIM > &rGradU, Element< CABLE_ELEMENT_DIM, SPACE_DIM > *pElement)
 
virtual c_vector< double, PROBLEM_DIM *NUM_CABLE_ELEMENT_NODESComputeCableVectorTerm (c_vector< double, NUM_CABLE_ELEMENT_NODES > &rPhi, c_matrix< double, SPACE_DIM, NUM_CABLE_ELEMENT_NODES > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, PROBLEM_DIM > &rU, c_matrix< double, PROBLEM_DIM, SPACE_DIM > &rGradU, Element< CABLE_ELEMENT_DIM, SPACE_DIM > *pElement)
 
virtual void AssembleOnCableElement (Element< CABLE_ELEMENT_DIM, SPACE_DIM > &rElement, c_matrix< double, PROBLEM_DIM *NUM_CABLE_ELEMENT_NODES, PROBLEM_DIM *NUM_CABLE_ELEMENT_NODES > &rAElem, c_vector< double, PROBLEM_DIM *NUM_CABLE_ELEMENT_NODES > &rBElem)
 
virtual bool ElementAssemblyCriterion (Element< CABLE_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 AbstractFeCableIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2, false, true, NORMAL >
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM > * mpMesh
 
GaussianQuadratureRule< 1 > * mpCableQuadRule
 
- 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
 
- Static Protected Attributes inherited from AbstractFeCableIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2, false, true, NORMAL >
static const unsigned CABLE_ELEMENT_DIM
 
static const unsigned NUM_CABLE_ELEMENT_NODES
 

Detailed Description

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

Simple implementation of AbstractFeCableIntegralAssembler which provides the cable part of the Monodomain mass matrix for a given MixedDimesionMesh, multiplied by a scale factor if required. In other words, the matrix If N is the space dimension, we compute the Matrix M (2N,2N) where

M_{ij} = k integral_{domain} phi_i(x) phi_j(x) dV, if i>=N and j>=N, and {domain} is a cable element.

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

M_{i,j}= 0, if i<N or j<N;

Definition at line 56 of file MonodomainPurkinjeCableMassMatrixAssembler.hpp.

Constructor & Destructor Documentation

◆ MonodomainPurkinjeCableMassMatrixAssembler()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MonodomainPurkinjeCableMassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::MonodomainPurkinjeCableMassMatrixAssembler ( MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh,
bool  useMassLumping = false 
)
inline

Constructor.

Parameters
pMeshthe mesh
useMassLumpingwhether to use mass matrix lumping or not

Definition at line 124 of file MonodomainPurkinjeCableMassMatrixAssembler.hpp.

Member Function Documentation

◆ ComputeCableMatrixTerm()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_matrix< double, 2 *NUM_CABLE_ELEMENT_NODES, 2 *NUM_CABLE_ELEMENT_NODES > MonodomainPurkinjeCableMassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::ComputeCableMatrixTerm ( c_vector< double, NUM_CABLE_ELEMENT_NODES > &  rPhi,
c_matrix< double, SPACE_DIM, NUM_CABLE_ELEMENT_NODES > &  rGradPhi,
ChastePoint< SPACE_DIM > &  rX,
c_vector< double, 2 > &  rU,
c_matrix< double, 2, SPACE_DIM > &  rGradU,
Element< CABLE_ELEMENT_DIM, SPACE_DIM > *  pElement 
)
inline

Implemented ComputeMatrixTerm(), defined in AbstractFeCableIntegralAssembler. 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
the stencil matrix

Definition at line 82 of file MonodomainPurkinjeCableMassMatrixAssembler.hpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetAttribute(), MonodomainPurkinjeCableMassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::mUseMassLumping, and NEVER_REACHED.

Member Data Documentation

◆ CABLE_ELEMENT_DIM

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const unsigned MonodomainPurkinjeCableMassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::CABLE_ELEMENT_DIM = 1
staticprivate

Cable element dimension.

Definition at line 60 of file MonodomainPurkinjeCableMassMatrixAssembler.hpp.

◆ mUseMassLumping

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool MonodomainPurkinjeCableMassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::mUseMassLumping
private

◆ NUM_CABLE_ELEMENT_NODES

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const unsigned MonodomainPurkinjeCableMassMatrixAssembler< ELEMENT_DIM, SPACE_DIM >::NUM_CABLE_ELEMENT_NODES = 2
staticprivate

Number of nodes in a cable element.

Definition at line 63 of file MonodomainPurkinjeCableMassMatrixAssembler.hpp.


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