Chaste Commit::9e4a273f0754a391514ab12ed9d4a38fc9933db2
NoNumericalMethod< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <NoNumericalMethod.hpp>

+ Inheritance diagram for NoNumericalMethod< ELEMENT_DIM, SPACE_DIM >:
+ Collaboration diagram for NoNumericalMethod< ELEMENT_DIM, SPACE_DIM >:

Public Member Functions

 NoNumericalMethod ()
 
virtual ~NoNumericalMethod ()
 
virtual bool DelegatesToPopulation ()
 
virtual void SetUseAdaptiveTimestep (bool useAdaptiveTimestep)
 
void UpdateAllNodePositions (double dt)
 
virtual void OutputNumericalMethodParameters (out_stream &rParamsFile)
 
- Public Member Functions inherited from AbstractNumericalMethod< ELEMENT_DIM, SPACE_DIM >
 AbstractNumericalMethod ()
 
virtual ~AbstractNumericalMethod ()
 
void SetCellPopulation (AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM > *pPopulation)
 
void SetForceCollection (std::vector< boost::shared_ptr< AbstractForce< ELEMENT_DIM, SPACE_DIM > > > *pForces)
 
void SetBoundaryConditions (std::vector< boost::shared_ptr< AbstractCellPopulationBoundaryCondition< ELEMENT_DIM, SPACE_DIM > > > *pBoundaryConditions)
 
bool HasAdaptiveTimestep ()
 
void OutputNumericalMethodInfo (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 boost::serialization::access
 

Additional Inherited Members

- Protected Member Functions inherited from AbstractNumericalMethod< ELEMENT_DIM, SPACE_DIM >
std::map< Node< SPACE_DIM > *, c_vector< double, SPACE_DIM > > SaveCurrentNodeLocations ()
 
void ImposeBoundaryConditions (std::map< Node< SPACE_DIM > *, c_vector< double, SPACE_DIM > > &rOldNodeLocations)
 
std::vector< c_vector< double, SPACE_DIM > > ComputeForcesIncludingDamping ()
 
std::vector< c_vector< double, SPACE_DIM > > SaveCurrentLocations ()
 
void SafeNodePositionUpdate (unsigned nodeIndex, c_vector< double, SPACE_DIM > newPosition)
 
void DetectStepSizeExceptions (unsigned nodeIndex, c_vector< double, SPACE_DIM > &displacement, double dt)
 
- Protected Attributes inherited from AbstractNumericalMethod< ELEMENT_DIM, SPACE_DIM >
AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM > * mpCellPopulation
 
std::vector< boost::shared_ptr< AbstractForce< ELEMENT_DIM, SPACE_DIM > > > * mpForceCollection
 
std::vector< boost::shared_ptr< AbstractCellPopulationBoundaryCondition< ELEMENT_DIM, SPACE_DIM > > > * mpBoundaryConditions
 
bool mUseAdaptiveTimestep
 
bool mGhostNodeForcesEnabled
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
class NoNumericalMethod< ELEMENT_DIM, SPACE_DIM >

A numerical method that performs no integration of its own, and always delegates node position updates entirely to the cell population's own UpdateNodeLocations() method.

Some cell populations (currently NodeBasedCellPopulationWithBuskeUpdate and ImmersedBoundaryCellPopulation) compute node position updates themselves, rather than via the force-collection-and-integrate approach used by the rest of the NumericalMethod hierarchy. NoNumericalMethod must be used with these populations, and only with these populations; this pairing is enforced by AbstractNumericalMethod::SetCellPopulation().

Definition at line 55 of file NoNumericalMethod.hpp.

Constructor & Destructor Documentation

◆ NoNumericalMethod()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
NoNumericalMethod< ELEMENT_DIM, SPACE_DIM >::NoNumericalMethod ( )

Constructor.

Definition at line 39 of file NoNumericalMethod.cpp.

◆ ~NoNumericalMethod()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
NoNumericalMethod< ELEMENT_DIM, SPACE_DIM >::~NoNumericalMethod ( )
virtual

Destructor.

Definition at line 45 of file NoNumericalMethod.cpp.

Member Function Documentation

◆ DelegatesToPopulation()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool NoNumericalMethod< ELEMENT_DIM, SPACE_DIM >::DelegatesToPopulation ( )
virtual

Overridden DelegatesToPopulation() method.

Returns
true

Reimplemented from AbstractNumericalMethod< ELEMENT_DIM, SPACE_DIM >.

Definition at line 50 of file NoNumericalMethod.cpp.

◆ OutputNumericalMethodParameters()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void NoNumericalMethod< ELEMENT_DIM, SPACE_DIM >::OutputNumericalMethodParameters ( out_stream &  rParamsFile)
virtual

Overridden OutputNumericalMethodParameters() method.

Parameters
rParamsFileReference to the parameter output filestream

Reimplemented from AbstractNumericalMethod< ELEMENT_DIM, SPACE_DIM >.

Definition at line 72 of file NoNumericalMethod.cpp.

References AbstractNumericalMethod< ELEMENT_DIM, SPACE_DIM >::OutputNumericalMethodParameters().

◆ serialize()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void NoNumericalMethod< ELEMENT_DIM, SPACE_DIM >::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Save or restore the simulation.

Parameters
archivethe archive
versionthe current version of this class

Definition at line 69 of file NoNumericalMethod.hpp.

◆ SetUseAdaptiveTimestep()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void NoNumericalMethod< ELEMENT_DIM, SPACE_DIM >::SetUseAdaptiveTimestep ( bool  useAdaptiveTimestep)
virtual

Overridden SetUseAdaptiveTimestep() method.

NoNumericalMethod never throws a StepSizeException (the cell population's own UpdateNodeLocations() is entirely responsible for any movement restriction), so enabling adaptive timestepping here could never have any effect. Rather than allow that to be silently set and silently do nothing, this throws.

Parameters
useAdaptiveTimestepwhether to use an adaptive time step

Reimplemented from AbstractNumericalMethod< ELEMENT_DIM, SPACE_DIM >.

Definition at line 56 of file NoNumericalMethod.cpp.

References EXCEPTION.

◆ UpdateAllNodePositions()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void NoNumericalMethod< ELEMENT_DIM, SPACE_DIM >::UpdateAllNodePositions ( double  dt)
virtual

Overridden UpdateAllNodePositions() method.

Delegates entirely to the cell population's own UpdateNodeLocations() method.

Parameters
dtTime step size

Implements AbstractNumericalMethod< ELEMENT_DIM, SPACE_DIM >.

Definition at line 66 of file NoNumericalMethod.cpp.

Friends And Related Symbol Documentation

◆ boost::serialization::access

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 60 of file NoNumericalMethod.hpp.


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