Chaste Commit::baa90ac2819b962188b7562f2326be23c47859a7
|
#include <AbstractBoxDomainPdeModifier.hpp>
Public Member Functions | |
AbstractBoxDomainPdeModifier (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, boost::shared_ptr< ChasteCuboid< DIM > > pMeshCuboid=boost::shared_ptr< ChasteCuboid< DIM > >(), double stepSize=1.0, Vec solution=nullptr) | |
virtual | ~AbstractBoxDomainPdeModifier () |
double | GetStepSize () |
void | SetBcsOnBoxBoundary (bool setBcsOnBoxBoundary) |
bool | AreBcsSetOnBoxBoundary () |
virtual void | SetupSolve (AbstractCellPopulation< DIM, DIM > &rCellPopulation, std::string outputDirectory) |
void | GenerateFeMesh (boost::shared_ptr< ChasteCuboid< DIM > > pMeshCuboid, double stepSize) |
void | UpdateCellData (AbstractCellPopulation< DIM, DIM > &rCellPopulation) |
void | InitialiseCellPdeElementMap (AbstractCellPopulation< DIM, DIM > &rCellPopulation) |
void | UpdateCellPdeElementMap (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 | 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 |
Protected Attributes | |
std::map< CellPtr, unsigned > | mCellPdeElementMap |
boost::shared_ptr< ChasteCuboid< DIM > > | mpMeshCuboid |
double | mStepSize |
bool | mSetBcsOnBoxBoundary |
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 |
Private Member Functions | |
template<class Archive > | |
void | serialize (Archive &archive, const unsigned int version) |
Friends | |
class | TestEllipticBoxDomainPdeModifier |
class | TestParabolicBoxDomainPdeModifier |
class | TestOffLatticeSimulationWithPdes |
class | boost::serialization::access |
An abstract modifier class containing functionality common to EllipticBoxDomainPdeModifier and ParabolicBoxDomainPdeModifier, which both solve a linear elliptic or parabolic PDE coupled to a cell-based simulation on a coarse domain.
Definition at line 50 of file AbstractBoxDomainPdeModifier.hpp.
AbstractBoxDomainPdeModifier< DIM >::AbstractBoxDomainPdeModifier | ( | 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 , |
||
boost::shared_ptr< ChasteCuboid< DIM > > | pMeshCuboid = boost::shared_ptr<ChasteCuboid<DIM> >() , |
||
double | stepSize = 1.0 , |
||
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) |
pMeshCuboid | A shared pointer to a ChasteCuboid specifying the outer boundary for the FE mesh (defaults to NULL) |
stepSize | step size to be used in the FE mesh (defaults to 1.0, i.e. the default cell size) |
solution | solution vector (defaults to NULL) |
Definition at line 41 of file AbstractBoxDomainPdeModifier.cpp.
References AbstractBoxDomainPdeModifier< DIM >::GenerateFeMesh(), AbstractPdeModifier< DIM >::mDeleteFeMesh, AbstractBoxDomainPdeModifier< DIM >::mpMeshCuboid, and AbstractBoxDomainPdeModifier< DIM >::mStepSize.
|
virtual |
Destructor.
Definition at line 64 of file AbstractBoxDomainPdeModifier.cpp.
bool AbstractBoxDomainPdeModifier< DIM >::AreBcsSetOnBoxBoundary | ( | ) |
Definition at line 81 of file AbstractBoxDomainPdeModifier.cpp.
void AbstractBoxDomainPdeModifier< DIM >::GenerateFeMesh | ( | boost::shared_ptr< ChasteCuboid< DIM > > | pMeshCuboid, |
double | stepSize | ||
) |
Helper method to generate the mesh.
pMeshCuboid | the outer boundary for the FE mesh. |
stepSize | the step size to be used in the FE mesh. |
Definition at line 95 of file AbstractBoxDomainPdeModifier.cpp.
References NEVER_REACHED, and ChastePoint< DIM >::rGetLocation().
Referenced by AbstractBoxDomainPdeModifier< DIM >::AbstractBoxDomainPdeModifier().
double AbstractBoxDomainPdeModifier< DIM >::GetStepSize | ( | ) |
Definition at line 69 of file AbstractBoxDomainPdeModifier.cpp.
void AbstractBoxDomainPdeModifier< DIM >::InitialiseCellPdeElementMap | ( | AbstractCellPopulation< DIM, DIM > & | rCellPopulation | ) |
Initialise mCellPdeElementMap.
rCellPopulation | reference to the cell population |
Definition at line 205 of file AbstractBoxDomainPdeModifier.cpp.
References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::Begin(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::End(), and AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationOfCellCentre().
|
virtual |
Overridden OutputSimulationModifierParameters() method. Output any simulation modifier parameters to file.
rParamsFile | the file stream to which the parameters are output |
Implements AbstractCellBasedSimulationModifier< DIM, DIM >.
Reimplemented in EllipticBoxDomainPdeModifier< DIM >, and ParabolicBoxDomainPdeModifier< DIM >.
Definition at line 235 of file AbstractBoxDomainPdeModifier.cpp.
References AbstractPdeModifier< DIM >::OutputSimulationModifierParameters().
Referenced by EllipticBoxDomainPdeModifier< DIM >::OutputSimulationModifierParameters(), and ParabolicBoxDomainPdeModifier< 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 68 of file AbstractBoxDomainPdeModifier.hpp.
References AbstractBoxDomainPdeModifier< DIM >::mpMeshCuboid, AbstractBoxDomainPdeModifier< DIM >::mSetBcsOnBoxBoundary, and AbstractBoxDomainPdeModifier< DIM >::mStepSize.
void AbstractBoxDomainPdeModifier< DIM >::SetBcsOnBoxBoundary | ( | bool | setBcsOnBoxBoundary | ) |
Set mSetBcsOnCoarseBoundary.
setBcsOnBoxBoundary | whether to set the boundary condition on the edge of the box domain rather than the cell population |
Definition at line 75 of file AbstractBoxDomainPdeModifier.cpp.
|
virtual |
Overridden SetupSolve() method.
Specifies what to do in the simulation before the start of the time loop.
Here we just initialize the Cell PDE element map
rCellPopulation | reference to the cell population |
outputDirectory | the output directory, relative to where Chaste output is stored |
Reimplemented from AbstractPdeModifier< DIM >.
Reimplemented in EllipticBoxDomainPdeModifier< DIM >, and ParabolicBoxDomainPdeModifier< DIM >.
Definition at line 87 of file AbstractBoxDomainPdeModifier.cpp.
References AbstractPdeModifier< DIM >::SetupSolve().
Referenced by EllipticBoxDomainPdeModifier< DIM >::SetupSolve(), and ParabolicBoxDomainPdeModifier< DIM >::SetupSolve().
void AbstractBoxDomainPdeModifier< DIM >::UpdateCellData | ( | AbstractCellPopulation< DIM, DIM > & | rCellPopulation | ) |
Helper method to copy the PDE solution to CellData
Here we need to interpolate from the FE mesh onto the cells.
rCellPopulation | reference to the cell population |
Definition at line 132 of file AbstractBoxDomainPdeModifier.cpp.
References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::Begin(), Element< ELEMENT_DIM, SPACE_DIM >::CalculateInterpolationWeights(), LinearBasisFunction< ELEMENT_DIM >::ComputeTransformedBasisFunctionDerivatives(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::End(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationOfCellCentre(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), and NEVER_REACHED.
void AbstractBoxDomainPdeModifier< DIM >::UpdateCellPdeElementMap | ( | AbstractCellPopulation< DIM, DIM > & | rCellPopulation | ) |
Update the mCellPdeElementMap
This method should be called before sending the element map to a PDE class to ensure map is up to date.
rCellPopulation | reference to the cell population |
Definition at line 221 of file AbstractBoxDomainPdeModifier.cpp.
References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::Begin(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::End(), and AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationOfCellCentre().
|
friend |
Needed for serialization.
Definition at line 59 of file AbstractBoxDomainPdeModifier.hpp.
|
friend |
Definition at line 52 of file AbstractBoxDomainPdeModifier.hpp.
|
friend |
Definition at line 54 of file AbstractBoxDomainPdeModifier.hpp.
|
friend |
Definition at line 53 of file AbstractBoxDomainPdeModifier.hpp.
|
protected |
Map between cells and the elements of the FE mesh containing them.
Definition at line 79 of file AbstractBoxDomainPdeModifier.hpp.
|
protected |
Pointer to a ChasteCuboid storing the outer boundary for the FE mesh. Stored as a member to facilitate archiving.
Definition at line 85 of file AbstractBoxDomainPdeModifier.hpp.
Referenced by AbstractBoxDomainPdeModifier< DIM >::AbstractBoxDomainPdeModifier(), and AbstractBoxDomainPdeModifier< DIM >::serialize().
|
protected |
Whether to set the boundary condition on the edge of the box domain rather than the cell population. Default to true.
Definition at line 97 of file AbstractBoxDomainPdeModifier.hpp.
Referenced by AbstractBoxDomainPdeModifier< DIM >::serialize().
|
protected |
The step size to be used in the FE mesh. Stored as a member to facilitate archiving.
Definition at line 91 of file AbstractBoxDomainPdeModifier.hpp.
Referenced by AbstractBoxDomainPdeModifier< DIM >::AbstractBoxDomainPdeModifier(), and AbstractBoxDomainPdeModifier< DIM >::serialize().