NodeBasedCellPopulationWithBuskeUpdate.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef NODEBASEDCELLPOPULATIONWITHBUSKEUPDATE_HPP_
00030 #define NODEBASEDCELLPOPULATIONWITHBUSKEUPDATE_HPP_
00031
00032 #include "NodeBasedCellPopulation.hpp"
00033
00034 #include "ChasteSerialization.hpp"
00035 #include <boost/serialization/base_object.hpp>
00036
00037
00042 template<unsigned DIM>
00043 class NodeBasedCellPopulationWithBuskeUpdate : public NodeBasedCellPopulation<DIM>
00044 {
00045 friend class TestNodeBasedCellPopulationWithBuskeUpdate;
00046
00047 private:
00048
00050 friend class boost::serialization::access;
00060 template<class Archive>
00061 void serialize(Archive & archive, const unsigned int version)
00062 {
00063 archive & boost::serialization::base_object<NodeBasedCellPopulation<DIM> >(*this);
00064 }
00065
00066 public:
00067
00078 NodeBasedCellPopulationWithBuskeUpdate(NodesOnlyMesh<DIM>& rMesh,
00079 std::vector<CellPtr>& rCells,
00080 const std::vector<unsigned> locationIndices=std::vector<unsigned>(),
00081 bool deleteMesh=false);
00082
00088 NodeBasedCellPopulationWithBuskeUpdate(NodesOnlyMesh<DIM>& rMesh);
00089
00096 virtual void UpdateNodeLocations(const std::vector< c_vector<double, DIM> >& rNodeForces, double dt);
00097
00106 void OutputCellPopulationParameters(out_stream& rParamsFile);
00107 };
00108
00109 #include "SerializationExportWrapper.hpp"
00110 EXPORT_TEMPLATE_CLASS_SAME_DIMS(NodeBasedCellPopulationWithBuskeUpdate)
00111
00112 namespace boost
00113 {
00114 namespace serialization
00115 {
00119 template<class Archive, unsigned DIM>
00120 inline void save_construct_data(
00121 Archive & ar, const NodeBasedCellPopulationWithBuskeUpdate<DIM> * t, const BOOST_PFTO unsigned int file_version)
00122 {
00123
00124 const NodesOnlyMesh<DIM>* p_mesh = &(t->rGetMesh());
00125 ar & p_mesh;
00126 }
00127
00132 template<class Archive, unsigned DIM>
00133 inline void load_construct_data(
00134 Archive & ar, NodeBasedCellPopulationWithBuskeUpdate<DIM> * t, const unsigned int file_version)
00135 {
00136
00137 NodesOnlyMesh<DIM>* p_mesh;
00138 ar >> p_mesh;
00139
00140
00141 ::new(t)NodeBasedCellPopulationWithBuskeUpdate<DIM>(*p_mesh);
00142 }
00143 }
00144 }
00145
00146 #endif