Chaste Release::3.1
CellBasedPdeSolver< DIM > Class Template Reference

#include <CellBasedPdeSolver.hpp>

Inheritance diagram for CellBasedPdeSolver< DIM >:
Collaboration diagram for CellBasedPdeSolver< DIM >:

List of all members.

Public Member Functions

 CellBasedPdeSolver (TetrahedralMesh< DIM, DIM > *pMesh, AbstractLinearEllipticPde< DIM, DIM > *pPde, BoundaryConditionsContainer< DIM, DIM, 1 > *pBoundaryConditions, unsigned numQuadPoints=2)
virtual ~CellBasedPdeSolver ()

Protected Member Functions

virtual c_vector< double,
1 *(DIM+1)> 
ComputeVectorTerm (c_vector< double, DIM+1 > &rPhi, c_matrix< double, DIM, DIM+1 > &rGradPhi, ChastePoint< DIM > &rX, c_vector< double, 1 > &rU, c_matrix< double, 1, DIM > &rGradU, Element< DIM, DIM > *pElement)
virtual c_matrix< double,
1 *(DIM+1), 1 *(DIM+1)> 
ComputeMatrixTerm (c_vector< double, DIM+1 > &rPhi, c_matrix< double, DIM, DIM+1 > &rGradPhi, ChastePoint< DIM > &rX, c_vector< double, 1 > &rU, c_matrix< double, 1, DIM > &rGradU, Element< DIM, DIM > *pElement)
void ResetInterpolatedQuantities ()
void IncrementInterpolatedQuantities (double phiI, const Node< DIM > *pNode)
void InitialiseForSolve (Vec initialSolution)

Private Attributes

double mConstantInUSourceTerm
double mLinearInUCoeffInSourceTerm

Detailed Description

template<unsigned DIM>
class CellBasedPdeSolver< DIM >

A purpose-made elliptic solver that interpolates the source terms from node onto Gauss points, as for a cell-based simulation with PDEs the source will only be known at the cells (nodes), not the Gauss points.

Definition at line 49 of file CellBasedPdeSolver.hpp.


Constructor & Destructor Documentation

template<unsigned DIM>
CellBasedPdeSolver< DIM >::CellBasedPdeSolver ( TetrahedralMesh< DIM, DIM > *  pMesh,
AbstractLinearEllipticPde< DIM, DIM > *  pPde,
BoundaryConditionsContainer< DIM, DIM, 1 > *  pBoundaryConditions,
unsigned  numQuadPoints = 2 
)

Constructor.

Parameters:
pMeshpointer to the mesh
pPdepointer to the PDE
pBoundaryConditionspointer to the boundary conditions
numQuadPointsnumber of quadrature points (defaults to 2)

Definition at line 42 of file CellBasedPdeSolver.cpp.

template<unsigned DIM>
CellBasedPdeSolver< DIM >::~CellBasedPdeSolver ( ) [virtual]

Destructor.

Definition at line 51 of file CellBasedPdeSolver.cpp.


Member Function Documentation

template<unsigned DIM>
c_matrix< double, 1 *(DIM+1), 1 *(DIM+1)> CellBasedPdeSolver< DIM >::ComputeMatrixTerm ( c_vector< double, DIM+1 > &  rPhi,
c_matrix< double, DIM, DIM+1 > &  rGradPhi,
ChastePoint< DIM > &  rX,
c_vector< double, 1 > &  rU,
c_matrix< double, 1, DIM > &  rGradU,
Element< DIM, DIM > *  pElement 
) [protected, virtual]

The SimpleLinearEllipticSolver version of this method is overloaded using the interpolated source term.

Parameters:
rPhiThe basis functions, rPhi(i) = phi_i, i=1..numBases
rGradPhiBasis gradients, rGradPhi(i,j) = d(phi_j)/d(X_i)
rXThe point in space
rUThe unknown as a vector, u(i) = u_i
rGradUThe gradient of the unknown as a matrix, rGradU(i,j) = d(u_i)/d(X_j)
pElementPointer to the element
Returns:
The matrix term for the stiffness matrix

Definition at line 68 of file CellBasedPdeSolver.cpp.

template<unsigned DIM>
c_vector< double, 1 *(DIM+1)> CellBasedPdeSolver< DIM >::ComputeVectorTerm ( c_vector< double, DIM+1 > &  rPhi,
c_matrix< double, DIM, DIM+1 > &  rGradPhi,
ChastePoint< DIM > &  rX,
c_vector< double, 1 > &  rU,
c_matrix< double, 1, DIM > &  rGradU,
Element< DIM, DIM > *  pElement 
) [protected, virtual]

The SimpleLinearEllipticSolver version of this method is overloaded using the interpolated source term.

Parameters:
rPhi
rGradPhi
rX
rU
rGradU
pElement
Returns:
vector term.

Definition at line 56 of file CellBasedPdeSolver.cpp.

template<unsigned DIM>
void CellBasedPdeSolver< DIM >::IncrementInterpolatedQuantities ( double  phiI,
const Node< DIM > *  pNode 
) [protected]

Overridden IncrementInterpolatedQuantities() method.

Parameters:
phiI
pNode

Definition at line 98 of file CellBasedPdeSolver.cpp.

template<unsigned DIM>
void CellBasedPdeSolver< DIM >::InitialiseForSolve ( Vec  initialSolution) [protected, virtual]

Create the linear system object if it hasn't been already. Can use an initial solution as PETSc template, or base it on the mesh size.

Parameters:
initialSolutionan initial guess

Reimplemented from SimpleLinearEllipticSolver< DIM, DIM >.

Definition at line 105 of file CellBasedPdeSolver.cpp.

References SimpleLinearEllipticSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve().

template<unsigned DIM>
void CellBasedPdeSolver< DIM >::ResetInterpolatedQuantities ( void  ) [protected, virtual]

Member Data Documentation

template<unsigned DIM>
double CellBasedPdeSolver< DIM >::mConstantInUSourceTerm [private]

The constant in u part of the source term, interpolated onto the current point.

Definition at line 55 of file CellBasedPdeSolver.hpp.

template<unsigned DIM>
double CellBasedPdeSolver< DIM >::mLinearInUCoeffInSourceTerm [private]

The linear in u part of the source term, interpolated onto the current point.

Definition at line 58 of file CellBasedPdeSolver.hpp.


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