ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM > Class Template Reference

#include <ExtendedBidomainSolver.hpp>

Inherits AbstractExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >.

Collaboration diagram for ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >:
Collaboration graph
[legend]

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

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void ExtendedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve ( Vec  initialSolution  )  [inline, private, virtual]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void ExtendedBidomainSolver< 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

Parameters:
currentSolution Solution at current time
computeMatrix Whether 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 58 of file ExtendedBidomainSolver.cpp.

References BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ApplyDirichletToLinearProblem(), AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::Assemble(), AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::AssembleMatrix(), AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::AssembleVector(), DistributedVector::Begin(), GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), DistributedVectorFactory::CreateDistributedVector(), DistributedVector::End(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), PetscMatTools::Finalise(), LinearSystem::FinaliseLhsMatrix(), LinearSystem::FinaliseRhsVector(), PdeSimulationTime::GetPdeTimeStep(), ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mMassMatrix, AbstractExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mpBoundaryConditions, 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 >::mpLinearSystem, AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpMesh, ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mVecForConstructingRhs, AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ResetBoundaryConditionsContainer(), DistributedVector::Restore(), LinearSystem::rGetLhsMatrix(), LinearSystem::rGetRhsVector(), AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::SetMatrixToAssemble(), AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::SetVectorToAssemble(), and LinearSystem::SwitchWriteModeLhsMatrix().


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 60 of file ExtendedBidomainSolver.hpp.

Referenced by ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::InitialiseForSolve(), ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::SetupLinearSystem(), and ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::~ExtendedBidomainSolver().

template<unsigned ELEM_DIM, unsigned SPACE_DIM>
ExtendedBidomainAssembler<ELEM_DIM,SPACE_DIM>* ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mpExtendedBidomainAssembler [private]
template<unsigned ELEM_DIM, unsigned SPACE_DIM>
ExtendedBidomainNeumannSurfaceTermAssembler<ELEM_DIM,SPACE_DIM>* ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mpExtendedBidomainNeumannSurfaceTermAssembler [private]
template<unsigned ELEM_DIM, unsigned SPACE_DIM>
Vec ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::mVecForConstructingRhs [private]

The documentation for this class was generated from the following files:
Generated on Thu Dec 22 13:05:06 2011 for Chaste by  doxygen 1.6.3