#include <BidomainMatrixBasedAssembler.hpp>
Inherits BidomainDg0Assembler< ELEMENT_DIM, SPACE_DIM >.
Inherited by BidomainWithBathMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >.
Public Member Functions | |
BidomainMatrixBasedAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BidomainPde< SPACE_DIM > *pPde, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 2 > *pBcc, unsigned numQuadPoints=2) | |
~BidomainMatrixBasedAssembler () | |
virtual void | ConstructVectorForMatrixBasedRhsAssembly (Vec existingSolution) |
Protected Attributes | |
BidomainRhsMatrixAssembler < SPACE_DIM > * | mpBidomainRhsMatrixAssembler |
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 bidomain problem, B is the mass matrix for 2 unknowns (see BidomainRhsMatrixAssembler) ***IF*** the unknowns were ordered [V1 V2 .. V_N phi_e1 ... phi_eN ], then z would be
z = [z1] [z2] where z1 = CA V^{m}/dt - A I_ionic - Istim_intra and z2 = -Istim_extra,
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 194 of file BidomainMatrixBasedAssembler.hpp.
BidomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::BidomainMatrixBasedAssembler | ( | AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * | pMesh, | |
BidomainPde< SPACE_DIM > * | pPde, | |||
BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 2 > * | 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 140 of file BidomainMatrixBasedAssembler.cpp.
References BidomainRhsMatrixAssembler< DIM >::GetMatrix(), BidomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::mpBidomainRhsMatrixAssembler, AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 2 >::mpMatrixForMatrixBasedRhsAssembly, AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, BidomainDg0Assembler< ELEMENT_DIM, SPACE_DIM > >::mpMesh, AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 2 >::mUseMatrixBasedRhsAssembly, AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 2 >::mVectorForMatrixBasedRhsAssembly, and AbstractCardiacPde< SPACE_DIM >::SetCacheReplication().
BidomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::~BidomainMatrixBasedAssembler | ( | ) | [inline] |
Destructor.
Definition at line 161 of file BidomainMatrixBasedAssembler.cpp.
References BidomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::mpBidomainRhsMatrixAssembler, and AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 2 >::mVectorForMatrixBasedRhsAssembly.
void BidomainMatrixBasedAssembler< 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 main class documentation.
existingSolution | the vector of ionic currents to use in the assembly. |
Reimplemented from AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 2 >.
Reimplemented in BidomainWithBathMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >.
Definition at line 169 of file BidomainMatrixBasedAssembler.cpp.
References DistributedVector::Begin(), DistributedVectorFactory::CreateDistributedVector(), DistributedVector::End(), HeartConfig::GetCapacitance(), HeartConfig::GetSurfaceAreaToVolumeRatio(), HeartConfig::Instance(), AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 2 >::mDtInverse, BidomainDg0Assembler< ELEMENT_DIM, SPACE_DIM >::mpBidomainPde, AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, BidomainDg0Assembler< ELEMENT_DIM, SPACE_DIM > >::mpMesh, AbstractDynamicAssemblerMixin< ELEMENT_DIM, SPACE_DIM, 2 >::mVectorForMatrixBasedRhsAssembly, and DistributedVector::Restore().
BidomainRhsMatrixAssembler<SPACE_DIM>* BidomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::mpBidomainRhsMatrixAssembler [protected] |
Helper assembler for doing the RHS (matrix B)
Definition at line 199 of file BidomainMatrixBasedAssembler.hpp.
Referenced by BidomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::BidomainMatrixBasedAssembler(), and BidomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::~BidomainMatrixBasedAssembler().