AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > Class Template Reference

#include <AbstractLinearPdeSolver.hpp>

Inheritance diagram for AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

 AbstractLinearPdeSolver (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
virtual ~AbstractLinearPdeSolver ()
virtual void InitialiseForSolve (Vec initialSolution=NULL)
virtual void PrepareForSetupLinearSystem (Vec currentSolution)
virtual void FinaliseLinearSystem (Vec currentSolution)
virtual void SetupLinearSystem (Vec currentSolution, bool computeMatrix)=0
LinearSystemGetLinearSystem ()

Protected Attributes

LinearSystemmpLinearSystem
AbstractTetrahedralMesh
< ELEMENT_DIM, SPACE_DIM > * 
mpMesh


Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
class AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >

Simple abstract class containing some common functionality between AbstractStaticLinearPdeSolver and AbstractDynamicLinearPdeSolver

Definition at line 42 of file AbstractLinearPdeSolver.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::AbstractLinearPdeSolver ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh  )  [inline]

Constructor

Parameters:
pMesh the mesh

Definition at line 61 of file AbstractLinearPdeSolver.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::~AbstractLinearPdeSolver (  )  [inline, virtual]


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::InitialiseForSolve ( Vec  initialSolution = NULL  )  [inline, virtual]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual void AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::PrepareForSetupLinearSystem ( Vec  currentSolution  )  [inline, virtual]

The static and dynamic Solve() implementations both call this before after SetupLinearSystem(). It can be overloaded if needed

Parameters:
currentSolution The current solution

Reimplemented in AbstractBidomainSolver< ELEMENT_DIM, SPACE_DIM >, AbstractMonodomainSolver< ELEMENT_DIM, SPACE_DIM >, and AbstractBidomainSolver< DIM, DIM >.

Definition at line 96 of file AbstractLinearPdeSolver.hpp.

Referenced by AbstractStaticLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve(), and AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual void AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::FinaliseLinearSystem ( Vec  currentSolution  )  [inline, virtual]

The static and dynamic Solve() implementations both call this immediately after SetupLinearSystem(). It can be overloaded if further work needs to be done.

Parameters:
currentSolution The current solution

Reimplemented in AbstractBidomainSolver< ELEMENT_DIM, SPACE_DIM >, and AbstractBidomainSolver< DIM, DIM >.

Definition at line 105 of file AbstractLinearPdeSolver.hpp.

Referenced by AbstractStaticLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve(), and AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual void AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetupLinearSystem ( Vec  currentSolution,
bool  computeMatrix 
) [pure virtual]

The main Solve() methods in the child classes use this method. The concrete solver classes must implement it, depending on the the choice of numerical approach. The method should completely set up the linear system that has to be solved (that timestep, if dynamic PDEs).

Parameters:
currentSolution The current solution which can be used in setting up the linear system if needed (NULL if there isn't a current solution)
computeMatrix Whether to compute the LHS matrix of the linear system (mainly for dynamic solves).

Implemented in BasicBidomainSolver< ELEMENT_DIM, SPACE_DIM >, BasicMonodomainSolver< ELEMENT_DIM, SPACE_DIM >, MatrixBasedBidomainSolver< ELEMENT_DIM, SPACE_DIM >, MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >, SimpleLinearEllipticSolver< ELEMENT_DIM, SPACE_DIM >, SimpleLinearParabolicSolver< ELEMENT_DIM, SPACE_DIM >, and SimpleLinearEllipticSolver< DIM, DIM >.

Referenced by AbstractStaticLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve(), and AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
LinearSystem* AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetLinearSystem (  )  [inline]


Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
LinearSystem* AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpLinearSystem [protected]

The linear system that will be set up and solved as part of the PDE solve

Definition at line 49 of file AbstractLinearPdeSolver.hpp.

Referenced by AbstractBidomainSolver< ELEMENT_DIM, SPACE_DIM >::FinaliseForBath(), AbstractBidomainSolver< ELEMENT_DIM, SPACE_DIM >::FinaliseLinearSystem(), AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetLinearSystem(), SimpleLinearEllipticSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve(), AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::InitialiseForSolve(), MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve(), MatrixBasedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve(), AbstractMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve(), AbstractBidomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve(), CellBasedSimulationWithPdesAssembler< DIM >::InitialiseForSolve(), SimpleLinearParabolicSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), SimpleLinearEllipticSolver< DIM, DIM >::SetupLinearSystem(), MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), MatrixBasedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), BasicMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), BasicBidomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), AbstractStaticLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve(), AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve(), and AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::~AbstractLinearPdeSolver().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractTetrahedralMesh<ELEMENT_DIM,SPACE_DIM>* AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpMesh [protected]


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

Generated on Mon Nov 1 12:35:45 2010 for Chaste by  doxygen 1.5.5