MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <MatrixBasedMonodomainSolver.hpp>

Inheritance diagram for MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >:

Inheritance graph
[legend]
Collaboration diagram for MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >:

Collaboration graph
[legend]

List of all members.

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
MonodomainCorrectionTermAssembler
< ELEMENT_DIM, SPACE_DIM > * 
mpMonodomainCorrectionTermAssembler


Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >

A better Monodomain solver (better than BasicMonodomainSolver), which computes the right-hand-side (RHS) vector of the linear system to be solved using matrix-vector products, rather than assembly. Massively more efficient than BasicMonodomainSolver.

Also allows state variable interpolation (SVI) to be used on elements for which it will be needed, if the appropriate HeartConfig boolean is set. See wiki page ChasteGuides/StateVariableInterpolation for more details.

Definition at line 48 of file MatrixBasedMonodomainSolver.hpp.


Constructor & Destructor Documentation

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::~MatrixBasedMonodomainSolver (  )  [inline]


Member Function Documentation

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

Parameters:
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 35 of file MatrixBasedMonodomainSolver.cpp.

References AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, 1, false, true, NORMAL >::Assemble(), PetscMatTools::AssembleFinal(), LinearSystem::AssembleFinalLhsMatrix(), LinearSystem::AssembleFinalPrecondMatrix(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleMatrix(), LinearSystem::AssembleRhsVector(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleVector(), DistributedVector::Begin(), GenericEventHandler< 13, HeartEventHandler >::BeginEvent(), DistributedVectorFactory::CreateDistributedVector(), DistributedVector::End(), GenericEventHandler< 13, HeartEventHandler >::EndEvent(), HeartConfig::GetCapacitance(), PdeSimulationTime::GetPdeTimeStepInverse(), HeartConfig::GetSurfaceAreaToVolumeRatio(), HeartConfig::Instance(), 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, MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mpMonodomainCorrectionTermAssembler, AbstractMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mpMonodomainTissue, MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mVecForConstructingRhs, DistributedVector::Restore(), LinearSystem::rGetLhsMatrix(), LinearSystem::rGetPrecondMatrix(), LinearSystem::rGetRhsVector(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetMatrixToAssemble(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, 1, false, true, NORMAL >::SetMatrixToAssemble(), LinearSystem::SetPrecondMatrixIsDifferentFromLhs(), HeartConfig::SetUseMassLumping(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetVectorToAssemble().

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


Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
Mat MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mMassMatrix [private]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
Vec MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mVecForConstructingRhs [private]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MonodomainCorrectionTermAssembler<ELEMENT_DIM,SPACE_DIM>* MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::mpMonodomainCorrectionTermAssembler [private]


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

Generated on Mon Apr 18 11:37:23 2011 for Chaste by  doxygen 1.5.5