VolumeTrackedOffLatticeSimulation.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 VOLUMETRACKEDOFFLATTICESIMULATION_HPP_
00030 #define VOLUMETRACKEDOFFLATTICESIMULATION_HPP_
00031
00032 #include <map>
00033 #include "ChasteSerialization.hpp"
00034 #include "OffLatticeSimulation.hpp"
00035 #include "PetscTools.hpp"
00036
00042
00043
00044 template<unsigned DIM>
00045 class VolumeTrackedOffLatticeSimulation : public OffLatticeSimulation<DIM>
00046 {
00047 private :
00048
00050 friend class boost::serialization::access;
00057 template<class Archive>
00058 void serialize(Archive & archive, const unsigned int version)
00059 {
00060 archive & boost::serialization::base_object<OffLatticeSimulation<DIM> >(*this);
00061 }
00062
00066 void PostSolve();
00067
00068 public:
00069
00078 VolumeTrackedOffLatticeSimulation(AbstractCellPopulation<DIM>& rCellPopulation,
00079 bool deleteCellPopulationInDestructor=false,
00080 bool initialiseCells=true);
00081
00085 ~VolumeTrackedOffLatticeSimulation();
00086 };
00087
00088 #include "SerializationExportWrapper.hpp"
00089 EXPORT_TEMPLATE_CLASS_SAME_DIMS(VolumeTrackedOffLatticeSimulation)
00090
00091 namespace boost
00092 {
00093 namespace serialization
00094 {
00095 template<class Archive, unsigned DIM>
00096 inline void save_construct_data(
00097 Archive & ar, const VolumeTrackedOffLatticeSimulation<DIM> * t, const BOOST_PFTO unsigned int file_version)
00098 {
00099 const AbstractCellPopulation<DIM> * p_cell_population = &(t->rGetCellPopulation());
00100 ar & p_cell_population;
00101 }
00102
00103 template<class Archive, unsigned DIM>
00104 inline void load_construct_data(
00105 Archive & ar, VolumeTrackedOffLatticeSimulation<DIM> * t, const unsigned int file_version)
00106 {
00107 AbstractCellPopulation<DIM>* p_cell_population;
00108 ar >> p_cell_population;
00109
00110 ::new(t)VolumeTrackedOffLatticeSimulation<DIM>(*p_cell_population, true, false);
00111 }
00112 }
00113 }
00114
00115 #endif