Chaste  Release::2017.1
MonodomainCorrectionTermAssembler< ELEM_DIM, SPACE_DIM > Class Template Reference

#include <MonodomainCorrectionTermAssembler.hpp>

+ Inheritance diagram for MonodomainCorrectionTermAssembler< ELEM_DIM, SPACE_DIM >:
+ Collaboration diagram for MonodomainCorrectionTermAssembler< ELEM_DIM, SPACE_DIM >:

Public Member Functions

 MonodomainCorrectionTermAssembler (AbstractTetrahedralMesh< ELEM_DIM, SPACE_DIM > *pMesh, MonodomainTissue< ELEM_DIM, SPACE_DIM > *pTissue)
 
- Public Member Functions inherited from AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 1 >
 AbstractCorrectionTermAssembler (AbstractTetrahedralMesh< ELEM_DIM, SPACE_DIM > *pMesh, AbstractCardiacTissue< ELEM_DIM, SPACE_DIM > *pTissue)
 
- Public Member Functions inherited from AbstractCardiacFeVolumeIntegralAssembler< ELEM_DIM, SPACE_DIM, PROBLEM_DIM, true, false, CARDIAC >
 AbstractCardiacFeVolumeIntegralAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > *pTissue)
 
- Public Member Functions inherited from AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >
 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 ()
 

Protected Member Functions

c_vector< double, 1 *(ELEM_DIM+1)> ComputeVectorTerm (c_vector< double, ELEM_DIM+1 > &rPhi, c_matrix< double, SPACE_DIM, ELEM_DIM+1 > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, 1 > &rU, c_matrix< double, 1, SPACE_DIM > &rGradU, Element< ELEM_DIM, SPACE_DIM > *pElement)
 
- Protected Member Functions inherited from AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 1 >
void ResetInterpolatedQuantities (void)
 
void IncrementInterpolatedQuantities (double phiI, const Node< SPACE_DIM > *pNode)
 
bool ElementAssemblyCriterion (Element< ELEM_DIM, SPACE_DIM > &rElement)
 
- Protected Member Functions inherited from AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >
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 IncrementInterpolatedGradientQuantities (const c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, unsigned phiIndex, const Node< SPACE_DIM > *pNode)
 

Additional Inherited Members

- Protected Types inherited from AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >
typedef LinearBasisFunction< ELEMENT_DIM > BasisFunction
 
- Protected Attributes inherited from AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 1 >
double mIionicInterp
 
std::vector< doublemStateVariablesAtQuadPoint
 
std::vector< boolmElementsCanDoSvi
 
- Protected Attributes inherited from AbstractCardiacFeVolumeIntegralAssembler< ELEM_DIM, SPACE_DIM, PROBLEM_DIM, true, false, CARDIAC >
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > * mpCardiacTissue
 
HeartConfigmpConfig
 
- Protected Attributes inherited from AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >
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 ELEM_DIM, unsigned SPACE_DIM>
class MonodomainCorrectionTermAssembler< ELEM_DIM, SPACE_DIM >

An assembler which computes the correction term to add to the RHS vector if using state variable interpolation (SVI), as well as determining which elements should be corrected on. The formula to determine which elements SVI is used is delta Iionic > TOL, where delta Iionic is the max difference between nodal ionic values, and TOL is chosen conservatively to be 1uA/cm^2^. See wiki page ChasteGuides/StateVariableInterpolation for more details.

Definition at line 54 of file MonodomainCorrectionTermAssembler.hpp.

Constructor & Destructor Documentation

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
MonodomainCorrectionTermAssembler< ELEM_DIM, SPACE_DIM >::MonodomainCorrectionTermAssembler ( AbstractTetrahedralMesh< ELEM_DIM, SPACE_DIM > *  pMesh,
MonodomainTissue< ELEM_DIM, SPACE_DIM > *  pTissue 
)

Constructor.

Parameters
pMeshpointer to the mesh
pTissuepointer to the cardiac tissue

Definition at line 40 of file MonodomainCorrectionTermAssembler.cpp.

References HeartConfig::GetUseStateVariableInterpolation(), and AbstractCardiacFeVolumeIntegralAssembler< ELEM_DIM, SPACE_DIM, PROBLEM_DIM, true, false, CARDIAC >::mpConfig.

Member Function Documentation

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
c_vector< double, 1 *(ELEM_DIM+1)> MonodomainCorrectionTermAssembler< ELEM_DIM, SPACE_DIM >::ComputeVectorTerm ( c_vector< double, ELEM_DIM+1 > &  rPhi,
c_matrix< double, SPACE_DIM, ELEM_DIM+1 > &  rGradPhi,
ChastePoint< SPACE_DIM > &  rX,
c_vector< double, 1 > &  rU,
c_matrix< double, 1, SPACE_DIM > &  rGradU,
Element< ELEM_DIM, SPACE_DIM > *  pElement 
)
protected

This method is called by AssembleOnElement and tells the assembler the contribution to add to the element stiffness vector.

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, rU(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
stencil matrix

Definition at line 49 of file MonodomainCorrectionTermAssembler.cpp.

References AbstractCardiacCellInterface::GetIIonic(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), HeartConfig::GetSurfaceAreaToVolumeRatio(), AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 1 >::mIionicInterp, AbstractCardiacFeVolumeIntegralAssembler< ELEM_DIM, SPACE_DIM, PROBLEM_DIM, true, false, CARDIAC >::mpCardiacTissue, AbstractCardiacFeVolumeIntegralAssembler< ELEM_DIM, SPACE_DIM, PROBLEM_DIM, true, false, CARDIAC >::mpConfig, and AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 1 >::mStateVariablesAtQuadPoint.


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