#include <BidomainMatrixBasedAssembler.hpp>
Public Member Functions | |
BidomainMatrixBasedAssembler (AbstractMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BidomainPde< SPACE_DIM > *pPde, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 2 > *pBcc, unsigned numQuadPoints=2) | |
virtual void | ConstructVectorForMatrixBasedRhsAssembly (Vec currentSolution) |
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 160 of file BidomainMatrixBasedAssembler.hpp.
BidomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::BidomainMatrixBasedAssembler | ( | AbstractMesh< 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.
Definition at line 140 of file BidomainMatrixBasedAssembler.cpp.
References DistributedVector::CreateVec(), BidomainRhsMatrixAssembler< DIM >::GetMatrix(), and AbstractCardiacPde< SPACE_DIM >::SetCacheReplication().
void BidomainMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >::ConstructVectorForMatrixBasedRhsAssembly | ( | Vec | currentSolution | ) | [inline, virtual] |
This constructs the vector z such that b (in Ax=b) is given by Bz = b. See main class documentation.
Definition at line 169 of file BidomainMatrixBasedAssembler.cpp.
References DistributedVector::Begin(), DistributedVector::End(), and DistributedVector::Restore().