Chaste
Release::2018.1
|
#include <EllipticGrowingDomainPdeModifier.hpp>
Public Member Functions | |
EllipticGrowingDomainPdeModifier (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 | ~EllipticGrowingDomainPdeModifier () |
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 | 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 | TestEllipticGrowingDomainPdeModifier |
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 |
A modifier class in which a linear elliptic 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 CellwiseSourceEllipticPde and UniformSourceEllipticPde.
Definition at line 61 of file EllipticGrowingDomainPdeModifier.hpp.
EllipticGrowingDomainPdeModifier< DIM >::EllipticGrowingDomainPdeModifier | ( | 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.
pPde | A shared pointer to a linear PDE object (defaults to NULL) |
pBoundaryCondition | A shared pointer to an abstract boundary condition (defaults to NULL, corresponding to a constant boundary condition with value zero) |
isNeumannBoundaryCondition | Whether the boundary condition is Neumann (defaults to true) |
solution | solution vector (defaults to NULL) |
Definition at line 41 of file EllipticGrowingDomainPdeModifier.cpp.
|
virtual |
Destructor.
Definition at line 53 of file EllipticGrowingDomainPdeModifier.cpp.
|
virtual |
Helper method to construct the boundary conditions container for the PDE.
Definition at line 129 of file EllipticGrowingDomainPdeModifier.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorBegin().
|
virtual |
Overridden OutputSimulationModifierParameters() method. Output any simulation modifier parameters to file.
rParamsFile | the file stream to which the parameters are output |
Reimplemented from AbstractGrowingDomainPdeModifier< DIM >.
Definition at line 146 of file EllipticGrowingDomainPdeModifier.cpp.
References AbstractGrowingDomainPdeModifier< DIM >::OutputSimulationModifierParameters().
|
inlineprivate |
Boost Serialization method for archiving/checkpointing. Archives the object and its member variables.
archive | The boost archive. |
version | The current version of this class. |
Definition at line 77 of file EllipticGrowingDomainPdeModifier.hpp.
|
virtual |
Overridden SetupSolve() method.
Specifies what to do in the simulation before the start of the time loop.
rCellPopulation | reference to the cell population |
outputDirectory | the output directory, relative to where Chaste output is stored |
Reimplemented from AbstractPdeModifier< DIM >.
Definition at line 114 of file EllipticGrowingDomainPdeModifier.cpp.
References EXCEPTION, and AbstractPdeModifier< DIM >::SetupSolve().
|
virtual |
Overridden UpdateAtEndOfTimeStep() method.
Specifies what to do in the simulation at the end of each time step.
rCellPopulation | reference to the cell population |
Implements AbstractPdeModifier< DIM >.
Definition at line 58 of file EllipticGrowingDomainPdeModifier.cpp.
References PetscTools::Destroy(), and AbstractStaticLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve().
|
friend |
Needed for serialization.
Definition at line 68 of file EllipticGrowingDomainPdeModifier.hpp.