CellBasedPdeSolver< DIM > Class Template Reference

#include <CellBasedPdeSolver.hpp>

Inherits SimpleLinearEllipticSolver< DIM, DIM >.

Collaboration diagram for CellBasedPdeSolver< DIM >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 CellBasedPdeSolver (TetrahedralMesh< DIM, DIM > *pMesh, AbstractLinearEllipticPde< DIM, DIM > *pPde, BoundaryConditionsContainer< DIM, DIM, 1 > *pBoundaryConditions, unsigned numQuadPoints=2)
 ~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 42 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 
) [inline]

Constructor.

Parameters:
pMesh pointer to the mesh
pPde pointer to the PDE
pBoundaryConditions pointer to the boundary conditions
numQuadPoints number of quadrature points (defaults to 2)

Definition at line 35 of file CellBasedPdeSolver.cpp.

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

Destructor.

Definition at line 44 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 
) [inline, protected, virtual]

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

Parameters:
rPhi The basis functions, rPhi(i) = phi_i, i=1..numBases
rGradPhi Basis gradients, rGradPhi(i,j) = d(phi_j)/d(X_i)
rX The point in space
rU The unknown as a vector, u(i) = u_i
rGradU The gradient of the unknown as a matrix, rGradU(i,j) = d(u_i)/d(X_j)
pElement Pointer to the element
Returns:
The matrix term for the stiffness matrix

Definition at line 61 of file CellBasedPdeSolver.cpp.

References CellBasedPdeSolver< DIM >::mLinearInUCoeffInSourceTerm, and SimpleLinearEllipticSolver< DIM, DIM >::mpEllipticPde.

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 
) [inline, 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 49 of file CellBasedPdeSolver.cpp.

References CellBasedPdeSolver< DIM >::mConstantInUSourceTerm.

template<unsigned DIM>
void CellBasedPdeSolver< DIM >::IncrementInterpolatedQuantities ( double  phiI,
const Node< DIM > *  pNode 
) [inline, protected]
template<unsigned DIM>
void CellBasedPdeSolver< DIM >::InitialiseForSolve ( Vec  initialSolution  )  [inline, 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:
initialSolution an initial guess

Reimplemented from SimpleLinearEllipticSolver< DIM, DIM >.

Definition at line 98 of file CellBasedPdeSolver.cpp.

References AbstractLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpLinearSystem, and LinearSystem::SetMatrixIsSymmetric().

template<unsigned DIM>
void CellBasedPdeSolver< DIM >::ResetInterpolatedQuantities ( void   )  [inline, 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 48 of file CellBasedPdeSolver.hpp.

Referenced by CellBasedPdeSolver< DIM >::ComputeVectorTerm(), CellBasedPdeSolver< DIM >::IncrementInterpolatedQuantities(), and CellBasedPdeSolver< DIM >::ResetInterpolatedQuantities().

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 51 of file CellBasedPdeSolver.hpp.

Referenced by CellBasedPdeSolver< DIM >::ComputeMatrixTerm(), CellBasedPdeSolver< DIM >::IncrementInterpolatedQuantities(), and CellBasedPdeSolver< DIM >::ResetInterpolatedQuantities().


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