36 #ifndef ABSTRACTNUMERICALMETHOD_HPP_ 37 #define ABSTRACTNUMERICALMETHOD_HPP_ 39 #include <boost/shared_ptr.hpp> 42 #include "Identifiable.hpp" 44 #include "AbstractOffLatticeCellPopulation.hpp" 45 #include "AbstractForce.hpp" 54 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM=ELEMENT_DIM>
57 friend class TestNumericalMethods;
70 template<
class Archive>
71 void serialize(Archive & archive,
const unsigned int version)
#define TEMPLATED_CLASS_IS_ABSTRACT_2_UNSIGNED(T)
void SafeNodePositionUpdate(unsigned nodeIndex, c_vector< double, SPACE_DIM > newPosition)
friend class boost::serialization::access
bool mUseUpdateNodeLocation
void SetForceCollection(std::vector< boost::shared_ptr< AbstractForce< ELEMENT_DIM, SPACE_DIM > > > *pForces)
std::vector< boost::shared_ptr< AbstractForce< ELEMENT_DIM, SPACE_DIM > > > * mpForceCollection
AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM > * mpCellPopulation
virtual void OutputNumericalMethodParameters(out_stream &rParamsFile)
void OutputNumericalMethodInfo(out_stream &rParamsFile)
bool mUseAdaptiveTimestep
bool HasAdaptiveTimestep()
virtual void UpdateAllNodePositions(double dt)=0
void SetUseUpdateNodeLocation(bool useUpdateNodeLocation)
void SetUseAdaptiveTimestep(bool useAdaptiveTimestep)
void serialize(Archive &archive, const unsigned int version)
void SetCellPopulation(AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM > *pPopulation)
std::vector< c_vector< double, SPACE_DIM > > SaveCurrentLocations()
void DetectStepSizeExceptions(unsigned nodeIndex, c_vector< double, SPACE_DIM > &displacement, double dt)
std::vector< c_vector< double, SPACE_DIM > > ComputeForcesIncludingDamping()
bool mGhostNodeForcesEnabled
bool GetUseUpdateNodeLocation()