Alarcon2004OxygenBasedCellCycleOdeSystem.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 _ALARCON2004OXYGENBASEDCELLCYCLEODESYSTEM_HPP_
00030 #define _ALARCON2004OXYGENBASEDCELLCYCLEODESYSTEM_HPP_
00031
00032 #include "ChasteSerialization.hpp"
00033 #include <boost/serialization/base_object.hpp>
00034
00035 #include <cmath>
00036
00037 #include "AbstractOdeSystem.hpp"
00038
00052 class Alarcon2004OxygenBasedCellCycleOdeSystem : public AbstractOdeSystem
00053 {
00054 private:
00055
00061 double ma1;
00063 double ma2;
00065 double ma3;
00067 double ma4;
00069 double mb3;
00071 double mb4;
00073 double mc1;
00075 double mc2;
00077 double md1;
00079 double md2;
00081 double mJ3;
00083 double mJ4;
00085 double mEta;
00087 double mMstar;
00089 double mB;
00091 double mxThreshold;
00093 double myThreshold;
00094
00096 double mOxygenConcentration;
00097
00099 bool mIsLabelled;
00100
00101 friend class boost::serialization::access;
00108 template<class Archive>
00109 void serialize(Archive & archive, const unsigned int version)
00110 {
00111 archive & boost::serialization::base_object<AbstractOdeSystem>(*this);
00112 }
00113
00114 public:
00115
00123 Alarcon2004OxygenBasedCellCycleOdeSystem(double oxygenConcentration,
00124 bool isLabelled,
00125 std::vector<double> stateVariables=std::vector<double>());
00126
00130 ~Alarcon2004OxygenBasedCellCycleOdeSystem();
00131
00135 void Init();
00136
00147 void EvaluateYDerivatives(double time, const std::vector<double>& rY, std::vector<double>& rDY);
00148
00157 bool CalculateStoppingEvent(double time, const std::vector<double>& rY);
00158
00164 void SetIsLabelled(bool isLabelled);
00165
00169 bool IsLabelled() const;
00170
00174 double GetOxygenConcentration() const;
00175 };
00176
00177
00178 #include "SerializationExportWrapper.hpp"
00179 CHASTE_CLASS_EXPORT(Alarcon2004OxygenBasedCellCycleOdeSystem)
00180
00181 namespace boost
00182 {
00183 namespace serialization
00184 {
00188 template<class Archive>
00189 inline void save_construct_data(
00190 Archive & ar, const Alarcon2004OxygenBasedCellCycleOdeSystem * t, const BOOST_PFTO unsigned int file_version)
00191 {
00192
00193 const double oxygen_concentration = t->GetOxygenConcentration();
00194 ar & oxygen_concentration;
00195
00196 const bool is_labelled = t->IsLabelled();
00197 ar & is_labelled;
00198
00199 const std::vector<double> state_variables = t->rGetConstStateVariables();
00200 ar & state_variables;
00201 }
00202
00206 template<class Archive>
00207 inline void load_construct_data(
00208 Archive & ar, Alarcon2004OxygenBasedCellCycleOdeSystem * t, const unsigned int file_version)
00209 {
00210
00211 double oxygen_concentration;
00212 ar & oxygen_concentration;
00213
00214 bool is_labelled;
00215 ar & is_labelled;
00216
00217 std::vector<double> state_variables;
00218 ar & state_variables;
00219
00220
00221 ::new(t)Alarcon2004OxygenBasedCellCycleOdeSystem(oxygen_concentration, is_labelled, state_variables);
00222 }
00223 }
00224 }
00225
00226 #endif