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
00030
00031
00032
00033
00034
00035
00036 #ifndef NODEBASEDCELLPOPULATIONWITHBUSKEUPDATE_HPP_
00037 #define NODEBASEDCELLPOPULATIONWITHBUSKEUPDATE_HPP_
00038
00039 #include "NodeBasedCellPopulation.hpp"
00040
00041 #include "ChasteSerialization.hpp"
00042 #include <boost/serialization/base_object.hpp>
00043
00044
00049 template<unsigned DIM>
00050 class NodeBasedCellPopulationWithBuskeUpdate : public NodeBasedCellPopulation<DIM>
00051 {
00052 friend class TestNodeBasedCellPopulationWithBuskeUpdate;
00053
00054 private:
00055
00057 friend class boost::serialization::access;
00067 template<class Archive>
00068 void serialize(Archive & archive, const unsigned int version)
00069 {
00070 archive & boost::serialization::base_object<NodeBasedCellPopulation<DIM> >(*this);
00071 }
00072
00073 public:
00074
00085 NodeBasedCellPopulationWithBuskeUpdate(NodesOnlyMesh<DIM>& rMesh,
00086 std::vector<CellPtr>& rCells,
00087 const std::vector<unsigned> locationIndices=std::vector<unsigned>(),
00088 bool deleteMesh=false);
00089
00095 NodeBasedCellPopulationWithBuskeUpdate(NodesOnlyMesh<DIM>& rMesh);
00096
00102 virtual void UpdateNodeLocations(double dt);
00103
00112 void OutputCellPopulationParameters(out_stream& rParamsFile);
00113 };
00114
00115 #include "SerializationExportWrapper.hpp"
00116 EXPORT_TEMPLATE_CLASS_SAME_DIMS(NodeBasedCellPopulationWithBuskeUpdate)
00117
00118 namespace boost
00119 {
00120 namespace serialization
00121 {
00125 template<class Archive, unsigned DIM>
00126 inline void save_construct_data(
00127 Archive & ar, const NodeBasedCellPopulationWithBuskeUpdate<DIM> * t, const BOOST_PFTO unsigned int file_version)
00128 {
00129
00130 const NodesOnlyMesh<DIM>* p_mesh = &(t->rGetMesh());
00131 ar & p_mesh;
00132 }
00133
00138 template<class Archive, unsigned DIM>
00139 inline void load_construct_data(
00140 Archive & ar, NodeBasedCellPopulationWithBuskeUpdate<DIM> * t, const unsigned int file_version)
00141 {
00142
00143 NodesOnlyMesh<DIM>* p_mesh;
00144 ar >> p_mesh;
00145
00146
00147 ::new(t)NodeBasedCellPopulationWithBuskeUpdate<DIM>(*p_mesh);
00148 }
00149 }
00150 }
00151
00152 #endif