Chaste  Release::2017.1
ParabolicGrowingDomainPdeModifier< DIM > Class Template Reference

#include <ParabolicGrowingDomainPdeModifier.hpp>

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

Public Member Functions

 ParabolicGrowingDomainPdeModifier (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 ~ParabolicGrowingDomainPdeModifier ()
 
virtual void UpdateAtEndOfTimeStep (AbstractCellPopulation< DIM, DIM > &rCellPopulation)
 
virtual void SetupSolve (AbstractCellPopulation< DIM, DIM > &rCellPopulation, std::string outputDirectory)
 
virtual std::shared_ptr< BoundaryConditionsContainer< DIM, DIM, 1 > > ConstructBoundaryConditionsContainer ()
 
void UpdateSolutionVector (AbstractCellPopulation< DIM, DIM > &rCellPopulation)
 
void OutputSimulationModifierParameters (out_stream &rParamsFile)
 
- Public Member Functions inherited from 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)
 
virtual ~AbstractGrowingDomainPdeModifier ()
 
void GenerateFeMesh (AbstractCellPopulation< DIM, DIM > &rCellPopulation)
 
void UpdateCellData (AbstractCellPopulation< DIM, DIM > &rCellPopulation)
 
- 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 UpdateAtEndOfOutputTimeStep (AbstractCellPopulation< DIM, DIM > &rCellPopulation)
 
virtual void UpdateAtEndOfSolve (AbstractCellPopulation< DIM, DIM > &rCellPopulation)
 
bool GetOutputGradient ()
 
void SetOutputGradient (bool outputGradient)
 
void SetOutputSolutionAtPdeNodes (bool outputSolutionAtPdeNodes)
 
- 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 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 ParabolicGrowingDomainPdeModifier< DIM >

A modifier class in which a linear parabolic PDE coupled to a cell-based simulation is solved on a growing domain. The value of the dependent variable at each cell is stored and updated in a CellData item.

At each time step, the finite element mesh used to solve the PDE numerically is defined by the spatial domain associated with the cell population. The precise definition of this domain is implemented in the method GetTetrahedralMeshForPdeModifier(), which is overridden for each cell population class and is used in the AbstractGrowingDomainPdeModifier method GenerateFeMesh() that is inherited by this class.

Examples of PDEs in the source folder that can be solved using this class are CellwiseSourceParabolicPde and UniformSourceParabolicPde.

Definition at line 61 of file ParabolicGrowingDomainPdeModifier.hpp.

Constructor & Destructor Documentation

template<unsigned DIM>
ParabolicGrowingDomainPdeModifier< DIM >::ParabolicGrowingDomainPdeModifier ( 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 41 of file ParabolicGrowingDomainPdeModifier.cpp.

Referenced by ParabolicGrowingDomainPdeModifier< DIM >::serialize().

Member Function Documentation

template<unsigned DIM>
void ParabolicGrowingDomainPdeModifier< DIM >::OutputSimulationModifierParameters ( out_stream &  rParamsFile)
virtual

Overridden OutputSimulationModifierParameters() method. Output any simulation modifier parameters to file.

Parameters
rParamsFilethe file stream to which the parameters are output

Reimplemented from AbstractGrowingDomainPdeModifier< DIM >.

Definition at line 173 of file ParabolicGrowingDomainPdeModifier.cpp.

References EXPORT_TEMPLATE_CLASS_SAME_DIMS, and AbstractGrowingDomainPdeModifier< DIM >::OutputSimulationModifierParameters().

Referenced by ParabolicGrowingDomainPdeModifier< DIM >::serialize().

template<unsigned DIM>
void ParabolicGrowingDomainPdeModifier< DIM >::SetupSolve ( AbstractCellPopulation< DIM, DIM > &  rCellPopulation,
std::string  outputDirectory 
)
virtual

Overridden SetupSolve() method.

Specifies what to do in the simulation before the start of the time loop.

Parameters
rCellPopulationreference to the cell population
outputDirectorythe output directory, relative to where Chaste output is stored

Reimplemented from AbstractPdeModifier< DIM >.

Definition at line 92 of file ParabolicGrowingDomainPdeModifier.cpp.

References EXCEPTION, AbstractGrowingDomainPdeModifier< DIM >::GenerateFeMesh(), AbstractPdeModifier< DIM >::mpPde, AbstractPdeModifier< DIM >::SetupSolve(), AbstractPdeModifier< DIM >::UpdateAtEndOfOutputTimeStep(), and ParabolicGrowingDomainPdeModifier< DIM >::UpdateSolutionVector().

Referenced by ParabolicGrowingDomainPdeModifier< DIM >::serialize().

Friends And Related Function Documentation

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

Needed for serialization.

Definition at line 68 of file ParabolicGrowingDomainPdeModifier.hpp.


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