Chaste Release::3.1
ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM > Class Template Reference

#include <ExtendedBidomainSolver.hpp>

Inheritance diagram for ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >:
Collaboration diagram for ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >:

List of all members.

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

Detailed Description

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
class ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >

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.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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 
)
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::~ExtendedBidomainSolver ( )

Destructor

Definition at line 216 of file ExtendedBidomainSolver.cpp.

References PetscTools::Destroy().


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void ExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve ( Vec  initialSolution) [private, virtual]

Overloaded InitialiseForSolve() which calls base version but also initialises mMassMatrix and mVecForConstructingRhs

Parameters:
initialSolutioninitial 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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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

Parameters:
currentSolutionSolution at current time
computeMatrixWhether to compute the matrix of the linear system

Todo:
turn these into exceptions somewhere else

The following line should also have

  • intracellular_stimulus_first_cell - intracellular_stimulus_second_cell in the summation, but they are zero...

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().


Member Data Documentation

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
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.

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
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().

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
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().

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
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().


The documentation for this class was generated from the following files: