#include <MonodomainMatrixBasedAssembler.hpp>
Inherits MonodomainDg0Assembler< ELEMENT_DIM, SPACE_DIM >.
Public Member Functions | |
MonodomainMatrixBasedAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, MonodomainPde< ELEMENT_DIM, SPACE_DIM > *pPde, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 1 > *pBcc, unsigned numQuadPoints=2) | |
~MonodomainMatrixBasedAssembler () | |
void | ConstructVectorForMatrixBasedRhsAssembly (Vec existingSolution) |
Protected Attributes | |
MonodomainRhsMatrixAssembler < ELEMENT_DIM, SPACE_DIM > * | mpMonodomainRhsMatrixAssembler |
MonodomainMatrixBasedAssembler
This class makes use of the functionality in its parent, AbstractDynamicAssemblerMixin, for specifying a constant matrix B and time-dependent vector z such that the finite element RHS vector b (in Ax=b) satisfies Bz=b, and therefore b can be constructed very quickly each timestep (compared to looping over elements and assembling it.
For the monodomain problem, B is the mass matrix (see MonodomainRhsMatrixAssembler) and z = CA V^{m}/dt - A I_ionic - Istim where V is the vector of voltages are the last timestep, and I_ionic and I_stim are nodewise vectors of ionic currents and stimulus currents (and C is the capacitance and A surface-area-to-volume ratio).
Definition at line 167 of file MonodomainMatrixBasedAssembler.hpp.
MonodomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::MonodomainMatrixBasedAssembler | ( | AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * | pMesh, | |
MonodomainPde< ELEMENT_DIM, SPACE_DIM > * | pPde, | |||
BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 1 > * | pBcc, | |||
unsigned | numQuadPoints = 2 | |||
) | [inline] |
Constructor calls base constructor and creates and stores rhs-matrix.
pMesh | pointer to the mesh | |
pPde | pointer to the PDE | |
pBcc | pointer to the boundary conditions | |
numQuadPoints | number of quadrature points (defaults to 2) |
Definition at line 129 of file MonodomainMatrixBasedAssembler.cpp.
References DistributedVectorFactory::CreateVec(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory(), AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 1 >::mpMatrixForMatrixBasedRhsAssembly, MonodomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::mpMonodomainRhsMatrixAssembler, AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 1 >::mUseMatrixBasedRhsAssembly, AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 1 >::mVectorForMatrixBasedRhsAssembly, and AbstractCardiacPde< ELEMENT_DIM, SPACE_DIM >::SetCacheReplication().
MonodomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::~MonodomainMatrixBasedAssembler | ( | ) | [inline] |
Destructor.
Definition at line 150 of file MonodomainMatrixBasedAssembler.cpp.
References MonodomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::mpMonodomainRhsMatrixAssembler, and AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 1 >::mVectorForMatrixBasedRhsAssembly.
void MonodomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::ConstructVectorForMatrixBasedRhsAssembly | ( | Vec | existingSolution | ) | [inline, virtual] |
This constructs the vector z such that b (in Ax=b) is given by Bz = b. See class documentation.
existingSolution | the current solution |
Reimplemented from AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 1 >.
Definition at line 209 of file MonodomainMatrixBasedAssembler.cpp.
References DistributedVector::Begin(), DistributedVectorFactory::CreateDistributedVector(), DistributedVector::End(), HeartConfig::GetCapacitance(), HeartConfig::GetSurfaceAreaToVolumeRatio(), HeartConfig::Instance(), AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 1 >::mDtInverse, AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, MonodomainDg0Assembler< ELEMENT_DIM, SPACE_DIM > >::mpMesh, MonodomainDg0Assembler< ELEMENT_DIM, SPACE_DIM >::mpMonodomainPde, AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 1 >::mVectorForMatrixBasedRhsAssembly, and DistributedVector::Restore().
MonodomainRhsMatrixAssembler<ELEMENT_DIM, SPACE_DIM>* MonodomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::mpMonodomainRhsMatrixAssembler [protected] |
The RHS matrix assembler.
Definition at line 173 of file MonodomainMatrixBasedAssembler.hpp.
Referenced by MonodomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::MonodomainMatrixBasedAssembler(), and MonodomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::~MonodomainMatrixBasedAssembler().