Chaste Commit::baa90ac2819b962188b7562f2326be23c47859a7
|
#include <ExtendedBidomainSolver.hpp>
Private Member Functions | |
void | InitialiseForSolve (Vec initialSolution) |
void | SetupLinearSystem (Vec currentSolution, bool computeMatrix) |
Private Attributes | |
Mat | mMassMatrix |
Vec | mVecForConstructingRhs |
ExtendedBidomainAssembler< ELEM_DIM, SPACE_DIM > * | mpExtendedBidomainAssembler |
ExtendedBidomainNeumannSurfaceTermAssembler< ELEM_DIM, SPACE_DIM > * | mpExtendedBidomainNeumannSurfaceTermAssembler |
An extended bidomain solver, which computes the right-hand-side (RHS) vector of the linear system to be solved using matrix-vector products.
Definition at line 59 of file ExtendedBidomainSolver.hpp.
ExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::ExtendedBidomainSolver | ( | bool | bathSimulation, |
AbstractTetrahedralMesh< ELEM_DIM, SPACE_DIM > * | pMesh, | ||
ExtendedBidomainTissue< SPACE_DIM > * | pTissue, | ||
BoundaryConditionsContainer< ELEM_DIM, SPACE_DIM, 3 > * | pBoundaryConditions | ||
) |
Constructor
bathSimulation | Whether the simulation involves a perfusing bath |
pMesh | pointer to the mesh |
pTissue | pointer to the PDE |
pBoundaryConditions | pointer to the boundary conditions |
Definition at line 184 of file ExtendedBidomainSolver.cpp.
References EXCEPTION, AbstractExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mBathSimulation, ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mpExtendedBidomainAssembler, ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mpExtendedBidomainNeumannSurfaceTermAssembler, AbstractExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mpExtendedBidomainTissue, AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpMesh, ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mVecForConstructingRhs, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetCacheReplication().
ExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::~ExtendedBidomainSolver | ( | ) |
Destructor
Definition at line 211 of file ExtendedBidomainSolver.cpp.
References PetscTools::Destroy().
|
privatevirtual |
Overloaded InitialiseForSolve() which calls base version but also initialises mMassMatrix and mVecForConstructingRhs
initialSolution | initial solution |
Reimplemented from AbstractExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >.
Definition at line 42 of file ExtendedBidomainSolver.cpp.
References AbstractExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve(), and PetscTools::SetupMat().
|
privatevirtual |
Implementation of SetupLinearSystem() which uses the assembler to compute the LHS matrix, but sets up the RHS vector using the mass-matrix (constructed using a separate assembler) multiplied by a vector
currentSolution | Solution at current time |
computeMatrix | Whether to compute the matrix of the linear system |
The following line should also have
Implements AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >.
Definition at line 64 of file ExtendedBidomainSolver.cpp.
References AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::Assemble(), DistributedVector::Begin(), GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), DistributedVectorFactory::CreateDistributedVector(), DistributedVector::End(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), PetscMatTools::Finalise(), PdeSimulationTime::GetPdeTimeStep(), DistributedVector::Restore(), and AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::SetMatrixToAssemble().
|
private |
Mass matrix, used to computing the RHS vector (actually: mass-matrix in voltage-voltage block, zero elsewhere)
Definition at line 66 of file ExtendedBidomainSolver.hpp.
|
private |
The bidomain assembler, used to set up the LHS matrix
Definition at line 75 of file ExtendedBidomainSolver.hpp.
Referenced by ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::ExtendedBidomainSolver().
|
private |
Assembler for surface integrals coming from any non-zero Neumann boundary conditions
Definition at line 78 of file ExtendedBidomainSolver.hpp.
Referenced by ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::ExtendedBidomainSolver().
|
private |
The vector multiplied by the mass matrix. Ie, if the linear system to be solved is Ax=b, this vector is z where b=Mz.
Definition at line 72 of file ExtendedBidomainSolver.hpp.
Referenced by ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::ExtendedBidomainSolver().