Chaste Commit::ca8ccdedf819b6e02855bc0e8e6f50bdecbc5208
|
#include <ParabolicGrowingDomainPdeModifier.hpp>
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 |
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.
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.
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 ParabolicGrowingDomainPdeModifier.cpp.
|
virtual |
Destructor.
Definition at line 53 of file ParabolicGrowingDomainPdeModifier.cpp.
|
virtual |
Helper method to construct the boundary conditions container for the PDE.
Definition at line 112 of file ParabolicGrowingDomainPdeModifier.cpp.
|
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 173 of file ParabolicGrowingDomainPdeModifier.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 ParabolicGrowingDomainPdeModifier.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 92 of file ParabolicGrowingDomainPdeModifier.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 ParabolicGrowingDomainPdeModifier.cpp.
References PetscTools::Destroy(), SimulationTime::GetTime(), SimulationTime::GetTimeStep(), SimulationTime::Instance(), AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetInitialCondition(), AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetTimes(), AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetTimeStep(), and AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve().
void ParabolicGrowingDomainPdeModifier< DIM >::UpdateSolutionVector | ( | AbstractCellPopulation< DIM, DIM > & | rCellPopulation | ) |
Helper method to copy the CellData to the PDE solution.
rCellPopulation | reference to the cell population |
Definition at line 141 of file ParabolicGrowingDomainPdeModifier.cpp.
References PetscTools::CreateAndSetVec(), PetscTools::Destroy(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellDataItemAtPdeNode(), and PetscVecTools::SetElement().
|
friend |
Needed for serialization.
Definition at line 68 of file ParabolicGrowingDomainPdeModifier.hpp.
|
friend |
Definition at line 63 of file ParabolicGrowingDomainPdeModifier.hpp.