#include <MatrixBasedMonodomainSolver.hpp>
Public Member Functions | |
void | InitialiseForSolve (Vec initialSolution) |
MatrixBasedMonodomainSolver (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, MonodomainTissue< ELEMENT_DIM, SPACE_DIM > *pTissue, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 1 > *pBoundaryConditions, unsigned numQuadPoints=2) | |
~MatrixBasedMonodomainSolver () | |
Private Member Functions | |
void | SetupLinearSystem (Vec currentSolution, bool computeMatrix) |
Private Attributes | |
Mat | mMassMatrix |
Vec | mVecForConstructingRhs |
Definition at line 46 of file MatrixBasedMonodomainSolver.hpp.
MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::MatrixBasedMonodomainSolver | ( | AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * | pMesh, | |
MonodomainTissue< ELEMENT_DIM, SPACE_DIM > * | pTissue, | |||
BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 1 > * | pBoundaryConditions, | |||
unsigned | numQuadPoints = 2 | |||
) | [inline] |
Constructor
pMesh | pointer to the mesh | |
pTissue | pointer to the tissue | |
pBoundaryConditions | pointer to the boundary conditions | |
numQuadPoints | number of quadrature points (defaults to 2) |
Definition at line 156 of file MatrixBasedMonodomainSolver.cpp.
References MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mVecForConstructingRhs, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetCacheReplication().
MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::~MatrixBasedMonodomainSolver | ( | ) | [inline] |
Destructor
Definition at line 173 of file MatrixBasedMonodomainSolver.cpp.
References MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mMassMatrix, and MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mVecForConstructingRhs.
void MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem | ( | Vec | currentSolution, | |
bool | computeMatrix | |||
) | [inline, private, virtual] |
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 |
Implements AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >.
Definition at line 34 of file MatrixBasedMonodomainSolver.cpp.
References AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, 1, false, true, NORMAL >::Assemble(), LinearSystem::AssembleFinalLhsMatrix(), LinearSystem::AssembleRhsVector(), DistributedVector::Begin(), GenericEventHandler< 13, HeartEventHandler >::BeginEvent(), DistributedVectorFactory::CreateDistributedVector(), DistributedVector::End(), GenericEventHandler< 13, HeartEventHandler >::EndEvent(), HeartConfig::GetCapacitance(), HeartConfig::GetSurfaceAreaToVolumeRatio(), HeartConfig::Instance(), AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, 1 >::mDt, AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, 1 >::mDtInverse, MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mMassMatrix, AbstractMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mNumQuadPoints, AbstractMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mpBoundaryConditions, AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpLinearSystem, AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpMesh, AbstractMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mpMonodomainAssembler, AbstractMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mpMonodomainTissue, MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mVecForConstructingRhs, DistributedVector::Restore(), LinearSystem::rGetLhsMatrix(), LinearSystem::rGetRhsVector(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, 1, false, true, NORMAL >::SetMatrixToAssemble(), and LinearSystem::ZeroRhsVector().
void MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve | ( | Vec | initialSolution | ) | [inline, virtual] |
Overloaded InitialiseForSolve() which calls base version but also initialises mMassMatrix and mVecForConstructingRhs
initialSolution | initial solution |
Reimplemented from AbstractMonodomainSolver< ELEMENT_DIM, SPACE_DIM >.
Definition at line 132 of file MatrixBasedMonodomainSolver.cpp.
References AbstractMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve(), MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mMassMatrix, AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpLinearSystem, AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpMesh, MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mVecForConstructingRhs, LinearSystem::rGetRhsVector(), and PetscTools::SetupMat().
Mat MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mMassMatrix [private] |
The mass matrix, used to computing the RHS vector
Definition at line 51 of file MatrixBasedMonodomainSolver.hpp.
Referenced by MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve(), MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), and MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::~MatrixBasedMonodomainSolver().
Vec MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mVecForConstructingRhs [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 56 of file MatrixBasedMonodomainSolver.hpp.
Referenced by MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve(), MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::MatrixBasedMonodomainSolver(), MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), and MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::~MatrixBasedMonodomainSolver().