Chaste  Release::2018.1
AbstractGrowingDomainPdeModifier< DIM > Class Template Reference

#include <AbstractGrowingDomainPdeModifier.hpp>

+ Inheritance diagram for AbstractGrowingDomainPdeModifier< DIM >:
+ Collaboration diagram for AbstractGrowingDomainPdeModifier< DIM >:

Public Member Functions

 AbstractGrowingDomainPdeModifier (boost::shared_ptr< AbstractLinearPde< DIM, DIM > > pPde=boost::shared_ptr< AbstractLinearPde< DIM, DIM > >(), boost::shared_ptr< AbstractBoundaryCondition< DIM > > pBoundaryCondition=boost::shared_ptr< AbstractBoundaryCondition< DIM > >(), bool isNeumannBoundaryCondition=true, Vec solution=nullptr)
 
virtual ~AbstractGrowingDomainPdeModifier ()
 
void GenerateFeMesh (AbstractCellPopulation< DIM, DIM > &rCellPopulation)
 
void UpdateCellData (AbstractCellPopulation< DIM, DIM > &rCellPopulation)
 
void OutputSimulationModifierParameters (out_stream &rParamsFile)
 
- Public Member Functions inherited from AbstractPdeModifier< DIM >
 AbstractPdeModifier (boost::shared_ptr< AbstractLinearPde< DIM, DIM > > pPde=NULL, boost::shared_ptr< AbstractBoundaryCondition< DIM > > pBoundaryCondition=boost::shared_ptr< AbstractBoundaryCondition< DIM > >(), bool isNeumannBoundaryCondition=true, Vec solution=nullptr)
 
virtual ~AbstractPdeModifier ()
 
boost::shared_ptr
< AbstractLinearPde< DIM, DIM > > 
GetPde ()
 
boost::shared_ptr
< AbstractBoundaryCondition
< DIM > > 
GetBoundaryCondition ()
 
bool IsNeumannBoundaryCondition ()
 
void SetDependentVariableName (const std::string &rName)
 
std::string & rGetDependentVariableName ()
 
bool HasAveragedSourcePde ()
 
void SetUpSourceTermsForAveragedSourcePde (TetrahedralMesh< DIM, DIM > *pMesh, std::map< CellPtr, unsigned > *pCellPdeElementMap=nullptr)
 
Vec GetSolution ()
 
Vec GetSolution () const
 
TetrahedralMesh< DIM, DIM > * GetFeMesh () const
 
virtual void SetupSolve (AbstractCellPopulation< DIM, DIM > &rCellPopulation, std::string outputDirectory)
 
virtual void UpdateAtEndOfTimeStep (AbstractCellPopulation< DIM, DIM > &rCellPopulation)=0
 
virtual void UpdateAtEndOfOutputTimeStep (AbstractCellPopulation< DIM, DIM > &rCellPopulation)
 
virtual void UpdateAtEndOfSolve (AbstractCellPopulation< DIM, DIM > &rCellPopulation)
 
bool GetOutputGradient ()
 
void SetOutputGradient (bool outputGradient)
 
void SetOutputSolutionAtPdeNodes (bool outputSolutionAtPdeNodes)
 
void OutputSimulationModifierParameters (out_stream &rParamsFile)
 
- Public Member Functions inherited from AbstractCellBasedSimulationModifier< DIM, DIM >
 AbstractCellBasedSimulationModifier ()
 
virtual ~AbstractCellBasedSimulationModifier ()
 
virtual void UpdateAtEndOfTimeStep (AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > &rCellPopulation)=0
 
virtual void UpdateAtEndOfOutputTimeStep (AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > &rCellPopulation)
 
virtual void SetupSolve (AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > &rCellPopulation, std::string outputDirectory)=0
 
virtual void UpdateAtEndOfSolve (AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > &rCellPopulation)
 
void OutputSimulationModifierInfo (out_stream &rParamsFile)
 
- Public Member Functions inherited from Identifiable
virtual ~Identifiable ()
 
std::string GetIdentifier () const
 

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 

Friends

class TestEllipticGrowingDomainPdeModifier
 
class TestParabolicGrowingDomainPdeModifier
 
class boost::serialization::access
 

Additional Inherited Members

- Protected Attributes inherited from AbstractPdeModifier< DIM >
boost::shared_ptr
< AbstractLinearPde< DIM, DIM > > 
mpPde
 
boost::shared_ptr
< AbstractBoundaryCondition
< DIM > > 
mpBoundaryCondition
 
bool mIsNeumannBoundaryCondition
 
std::string mDependentVariableName
 
Vec mSolution
 
TetrahedralMesh< DIM, DIM > * mpFeMesh
 
std::string mOutputDirectory
 
bool mOutputGradient
 
bool mOutputSolutionAtPdeNodes
 
out_stream mpVizPdeSolutionResultsFile
 
bool mDeleteFeMesh
 

Detailed Description

template<unsigned DIM>
class AbstractGrowingDomainPdeModifier< DIM >

An abstract modifier class containing functionality common to EllipticGrowingDomainPdeModifier and ParabolicGrowingDomainPdeModifier, which both solve a linear elliptic or parabolic PDE coupled to a cell-based simulation on an evolving domain defined by the cell population.

Definition at line 50 of file AbstractGrowingDomainPdeModifier.hpp.

Constructor & Destructor Documentation

template<unsigned DIM>
AbstractGrowingDomainPdeModifier< DIM >::AbstractGrowingDomainPdeModifier ( boost::shared_ptr< AbstractLinearPde< DIM, DIM > >  pPde = boost::shared_ptr<AbstractLinearPde<DIM,DIM> >(),
boost::shared_ptr< AbstractBoundaryCondition< DIM > >  pBoundaryCondition = boost::shared_ptr<AbstractBoundaryCondition<DIM> >(),
bool  isNeumannBoundaryCondition = true,
Vec  solution = nullptr 
)

Constructor.

Parameters
pPdeA shared pointer to a linear PDE object (defaults to NULL)
pBoundaryConditionA shared pointer to an abstract boundary condition (defaults to NULL, corresponding to a constant boundary condition with value zero)
isNeumannBoundaryConditionWhether the boundary condition is Neumann (defaults to true)
solutionsolution vector (defaults to NULL)

Definition at line 45 of file AbstractGrowingDomainPdeModifier.cpp.

template<unsigned DIM>
AbstractGrowingDomainPdeModifier< DIM >::~AbstractGrowingDomainPdeModifier ( )
virtual

Destructor.

Definition at line 57 of file AbstractGrowingDomainPdeModifier.cpp.

Member Function Documentation

template<unsigned DIM>
void AbstractGrowingDomainPdeModifier< DIM >::GenerateFeMesh ( AbstractCellPopulation< DIM, DIM > &  rCellPopulation)

Helper method to generate the mesh from the Cell population.

Parameters
rCellPopulationreference to the cell population
Todo:
We should only set mDeleteFeMesh once, not every time step (#2687, #2863)

Definition at line 62 of file AbstractGrowingDomainPdeModifier.cpp.

References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetTetrahedralMeshForPdeModifier().

template<unsigned DIM>
void AbstractGrowingDomainPdeModifier< DIM >::OutputSimulationModifierParameters ( out_stream &  rParamsFile)
virtual
template<unsigned DIM>
template<class Archive >
void AbstractGrowingDomainPdeModifier< DIM >::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Boost Serialization method for archiving/checkpointing. Archives the object and its member variables.

Parameters
archiveThe boost archive.
versionThe current version of this class.

Definition at line 67 of file AbstractGrowingDomainPdeModifier.hpp.

template<unsigned DIM>
void AbstractGrowingDomainPdeModifier< DIM >::UpdateCellData ( AbstractCellPopulation< DIM, DIM > &  rCellPopulation)

Helper method to copy the PDE solution to CellData

Here there is a 1-1 correspondence between cells and nodes in the FE mesh

Parameters
rCellPopulationreference to the cell population
Todo:
Consider how to remove dynamic_casts here

Definition at line 84 of file AbstractGrowingDomainPdeModifier.cpp.

References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::Begin(), LinearBasisFunction< ELEMENT_DIM >::ComputeTransformedBasisFunctionDerivatives(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::End(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationIndexUsingCell(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and NEVER_REACHED.

Friends And Related Function Documentation

template<unsigned DIM>
friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 58 of file AbstractGrowingDomainPdeModifier.hpp.


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