|
Chaste Release::3.1
|
#include <ExtendedBidomainSolver.hpp>
Inheritance diagram for ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >:
Collaboration diagram for ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >:Public Member Functions | |
| ExtendedBidomainSolver (bool bathSimulation, AbstractTetrahedralMesh< ELEM_DIM, SPACE_DIM > *pMesh, ExtendedBidomainTissue< SPACE_DIM > *pTissue, BoundaryConditionsContainer< ELEM_DIM, SPACE_DIM, 3 > *pBoundaryConditions, unsigned numQuadPoints=2) | |
| ~ExtendedBidomainSolver () | |
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 60 of file ExtendedBidomainSolver.hpp.
| ExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::ExtendedBidomainSolver | ( | bool | bathSimulation, |
| AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * | pMesh, | ||
| ExtendedBidomainTissue< SPACE_DIM > * | pTissue, | ||
| BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 3 > * | pBoundaryConditions, | ||
| unsigned | numQuadPoints = 2 |
||
| ) |
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 |
| numQuadPoints | number of quadrature points (defaults to 2) |
Definition at line 188 of file ExtendedBidomainSolver.cpp.
References EXCEPTION, AbstractExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mBathSimulation, AbstractExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mNumQuadPoints, 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< SPACE_DIM >::SetCacheReplication().
| ExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::~ExtendedBidomainSolver | ( | ) |
Destructor
Definition at line 216 of file ExtendedBidomainSolver.cpp.
References PetscTools::Destroy().
| void ExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve | ( | Vec | initialSolution | ) | [private, virtual] |
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().
| void ExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem | ( | Vec | currentSolution, |
| bool | computeMatrix | ||
| ) | [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 |
The following line should also have
Implements AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >.
Definition at line 65 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().
Mat ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mMassMatrix [private] |
Mass matrix, used to computing the RHS vector (actually: mass-matrix in voltage-voltage block, zero elsewhere)
Definition at line 67 of file ExtendedBidomainSolver.hpp.
ExtendedBidomainAssembler<ELEM_DIM,SPACE_DIM>* ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mpExtendedBidomainAssembler [private] |
The bidomain assembler, used to set up the LHS matrix
Reimplemented from AbstractExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >.
Definition at line 76 of file ExtendedBidomainSolver.hpp.
Referenced by ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::ExtendedBidomainSolver().
ExtendedBidomainNeumannSurfaceTermAssembler<ELEM_DIM,SPACE_DIM>* ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mpExtendedBidomainNeumannSurfaceTermAssembler [private] |
Assembler for surface integrals coming from any non-zero Neumann boundary conditions
Definition at line 79 of file ExtendedBidomainSolver.hpp.
Referenced by ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::ExtendedBidomainSolver().
Vec ExtendedBidomainSolver< ELEM_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 73 of file ExtendedBidomainSolver.hpp.
Referenced by ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::ExtendedBidomainSolver().