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

#include <RK4NumericalMethod.hpp>

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

Public Member Functions

 RK4NumericalMethod ()
 
virtual ~RK4NumericalMethod ()
 
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)
 
virtual void SetUseAdaptiveTimestep (bool useAdaptiveTimestep)
 
bool HasAdaptiveTimestep ()
 
virtual bool DelegatesToPopulation ()
 
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 RK4NumericalMethod< ELEMENT_DIM, SPACE_DIM >

Implements the 4th-order Runge-Kutta (RK4) time stepping scheme for off-lattice cell-based simulations.

Solves the equations of motion dr/dt = F/nu using the classic 4th-order Runge-Kutta scheme:

k1 = F(r^t) / nu k2 = F(r^t + dt*k1/2) / nu k3 = F(r^t + dt*k2/2) / nu k4 = F(r^t + dt*k3) / nu r^(t+1) = r^t + (dt/6) * (k1 + 2*k2 + 2*k3 + k4)

Definition at line 58 of file RK4NumericalMethod.hpp.

Constructor & Destructor Documentation

◆ RK4NumericalMethod()

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

Constructor.

Definition at line 39 of file RK4NumericalMethod.cpp.

◆ ~RK4NumericalMethod()

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

Destructor.

Definition at line 45 of file RK4NumericalMethod.cpp.

Member Function Documentation

◆ OutputNumericalMethodParameters()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void RK4NumericalMethod< 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 124 of file RK4NumericalMethod.cpp.

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

◆ serialize()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void RK4NumericalMethod< 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 72 of file RK4NumericalMethod.hpp.

◆ UpdateAllNodePositions()

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

Overridden UpdateAllNodePositions() method.

Parameters
dtTime step size

Implements AbstractNumericalMethod< ELEMENT_DIM, SPACE_DIM >.

Definition at line 50 of file RK4NumericalMethod.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 63 of file RK4NumericalMethod.hpp.


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