Chaste  Build::
AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM > Class Template Referenceabstract

#include <AbstractDiscreteContinuumLinearEllipticPde.hpp>

+ Inheritance diagram for AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >:
+ Collaboration diagram for AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >:

Public Member Functions

 AbstractDiscreteContinuumLinearEllipticPde ()
 
virtual ~AbstractDiscreteContinuumLinearEllipticPde ()
 
void AddDiscreteSource (boost::shared_ptr< DiscreteSource< SPACE_DIM > > pDiscreteSource)
 
double ComputeConstantInUSourceTerm (const ChastePoint< SPACE_DIM > &rX, Element< ELEMENT_DIM, SPACE_DIM > *pElement)
 
units::quantity< unit::concentration_flow_rate > ComputeConstantInUSourceTerm (unsigned gridIndex=0)
 
c_matrix< double, SPACE_DIM, SPACE_DIM > ComputeDiffusionTerm (const ChastePoint< SPACE_DIM > &)
 
units::quantity< unit::diffusivity > ComputeIsotropicDiffusionTerm ()
 
virtual units::quantity< unit::rate > ComputeLinearInUCoeffInSourceTerm (unsigned gridIndex=0)=0
 
std::vector< boost::shared_ptr< DiscreteSource< SPACE_DIM > > > GetDiscreteSources ()
 
void SetContinuumConstantInUTerm (units::quantity< unit::concentration_flow_rate > constantInUTerm)
 
void SetIsotropicDiffusionConstant (units::quantity< unit::diffusivity > diffusivity)
 
void SetRegularGrid (boost::shared_ptr< RegularGrid< SPACE_DIM > > pRegularGrid)
 
void SetMesh (boost::shared_ptr< DiscreteContinuumMesh< ELEMENT_DIM, SPACE_DIM > > pMesh)
 
void SetReferenceConcentration (units::quantity< unit::concentration > referenceConcentration)
 
void SetUseRegularGrid (bool useRegularGrid)
 
virtual void UpdateDiscreteSourceStrengths ()
 

Protected Attributes

c_matrix< double, SPACE_DIM, SPACE_DIM > mDiffusionTensor
 
units::quantity< unit::diffusivity > mDiffusivity
 
units::quantity< unit::concentration_flow_rate > mConstantInUTerm
 
std::vector< boost::shared_ptr< DiscreteSource< SPACE_DIM > > > mDiscreteSources
 
boost::shared_ptr< RegularGrid< SPACE_DIM > > mpRegularGrid
 
boost::shared_ptr< DiscreteContinuumMesh< ELEMENT_DIM, SPACE_DIM > > mpMesh
 
bool mUseRegularGrid
 
std::vector< units::quantity< unit::concentration_flow_rate > > mDiscreteConstantSourceStrengths
 
units::quantity< unit::concentration > mReferenceConcentration
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
class AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >

Base PDE class for managing discrete entities on the computational grid. Child classes need to implement methods for calculating the 'LinearInU' source terms, which will have units related to the field quantity being solved for.

Definition at line 57 of file AbstractDiscreteContinuumLinearEllipticPde.hpp.

Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::~AbstractDiscreteContinuumLinearEllipticPde ( )
virtual

Destructor

Definition at line 57 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::AddDiscreteSource ( boost::shared_ptr< DiscreteSource< SPACE_DIM > >  pDiscreteSource)

Add a discrete source to the pde

Parameters
pDiscreteSourcea pointer the discrete source

Definition at line 62 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

References AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mDiscreteSources.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::ComputeConstantInUSourceTerm ( const ChastePoint< SPACE_DIM > &  rX,
Element< ELEMENT_DIM, SPACE_DIM > *  pElement 
)
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
units::quantity< unit::concentration_flow_rate > AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::ComputeConstantInUSourceTerm ( unsigned  gridIndex = 0)

Overwritten method to return the constant in U contribution to the regular grid solvers

Parameters
gridIndexgrid index
Returns
source strength

Definition at line 88 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

References AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mConstantInUTerm, and AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mDiscreteConstantSourceStrengths.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_matrix< double, SPACE_DIM, SPACE_DIM > AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::ComputeDiffusionTerm ( const ChastePoint< SPACE_DIM > &  )

Overwritten method to return the diffusion term to the Chaste FE solver

Returns
the diffusion matrix

Definition at line 105 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

References AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mDiffusionTensor.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
units::quantity< unit::diffusivity > AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::ComputeIsotropicDiffusionTerm ( )

Return the diffusion constant for isotropic diffusion

Returns
the diffusion constant

Definition at line 111 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

References AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mDiffusivity.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual units::quantity<unit::rate> AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::ComputeLinearInUCoeffInSourceTerm ( unsigned  gridIndex = 0)
pure virtual

Abstract method to return the linear in U contribution to the regular grid solvers

Parameters
gridIndexgrid index
Returns
source strength

Implemented in LinearSteadyStateDiffusionReactionPde< ELEMENT_DIM, SPACE_DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< boost::shared_ptr< DiscreteSource< SPACE_DIM > > > AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::GetDiscreteSources ( )

Return the collection of discrete sources

Returns
vector of pointers to the discrete sources

Definition at line 117 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

References AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mDiscreteSources.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::SetContinuumConstantInUTerm ( units::quantity< unit::concentration_flow_rate >  constantInUTerm)

Set the continuum constant in U term

Parameters
constantInUTermthe continuum constant in U term

Definition at line 123 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

References AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mConstantInUTerm.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::SetIsotropicDiffusionConstant ( units::quantity< unit::diffusivity >  diffusivity)
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::SetMesh ( boost::shared_ptr< DiscreteContinuumMesh< ELEMENT_DIM, SPACE_DIM > >  pMesh)

Set the finite element mesh

Parameters
pMeshthe finite element mesh

Definition at line 143 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

References AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mpMesh.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::SetReferenceConcentration ( units::quantity< unit::concentration >  referenceConcentration)

Set the reference concentration

Parameters
referenceConcentrationthe reference concentration

Definition at line 155 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

References AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mReferenceConcentration.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::SetRegularGrid ( boost::shared_ptr< RegularGrid< SPACE_DIM > >  pRegularGrid)

Set the regular grid

Parameters
pRegularGridthe regular grid

Definition at line 137 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

References AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mpRegularGrid.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::SetUseRegularGrid ( bool  useRegularGrid)

Set whether to use a regular grid

Parameters
useRegularGridwhether to use a regular grid

Definition at line 149 of file AbstractDiscreteContinuumLinearEllipticPde.cpp.

References AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mUseRegularGrid.

Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
units::quantity<unit::concentration_flow_rate> AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mConstantInUTerm
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<units::quantity<unit::concentration_flow_rate> > AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mDiscreteConstantSourceStrengths
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
boost::shared_ptr<DiscreteContinuumMesh<ELEMENT_DIM, SPACE_DIM> > AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mpMesh
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
units::quantity<unit::concentration> AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::mReferenceConcentration
protected

This is used internally to scale concentrations before and after linear system solves, reads and writes. Since those functions don't use Boost Units. It should not affect the solution, but can be judiciously chosen to avoid precision problems.

Definition at line 108 of file AbstractDiscreteContinuumLinearEllipticPde.hpp.

Referenced by AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::ComputeConstantInUSourceTerm(), and AbstractDiscreteContinuumLinearEllipticPde< ELEMENT_DIM, SPACE_DIM >::SetReferenceConcentration().


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