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


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

Definition at line 46 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]

Constructor

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

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

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]


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

Generated on Mon Nov 1 12:36:56 2010 for Chaste by  doxygen 1.5.5