DeltaNotchOdeSystem.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 DELTANOTCHODESYSTEM_HPP_
00030 #define DELTANOTCHODESYSTEM_HPP_
00031
00032 #include "ChasteSerialization.hpp"
00033 #include <boost/serialization/base_object.hpp>
00034 #include <boost/serialization/shared_ptr.hpp>
00035
00036 #include <cmath>
00037 #include <iostream>
00038
00039 #include "AbstractOdeSystem.hpp"
00040
00047 class DeltaNotchOdeSystem : public AbstractOdeSystem
00048 {
00049 private:
00050
00051 friend class boost::serialization::access;
00058 template<class Archive>
00059 void serialize(Archive & archive, const unsigned int version)
00060 {
00061 archive & boost::serialization::base_object<AbstractOdeSystem>(*this);
00062 }
00063
00065
00066 public:
00067
00074 DeltaNotchOdeSystem(double meanDelta=0.0, std::vector<double> stateVariables=std::vector<double>());
00075
00079 ~DeltaNotchOdeSystem();
00080
00091 void EvaluateYDerivatives(double time, const std::vector<double>& rY, std::vector<double>& rDY);
00092 };
00093
00094
00095 #include "SerializationExportWrapper.hpp"
00096 CHASTE_CLASS_EXPORT(DeltaNotchOdeSystem)
00097
00098 namespace boost
00099 {
00100 namespace serialization
00101 {
00105 template<class Archive>
00106 inline void save_construct_data(
00107 Archive & ar, const DeltaNotchOdeSystem * t, const BOOST_PFTO unsigned int file_version)
00108 {
00109 const std::vector<double> state_variables = t->rGetConstStateVariables();
00110 ar & state_variables;
00111 }
00112
00116 template<class Archive>
00117 inline void load_construct_data(
00118 Archive & ar, DeltaNotchOdeSystem * t, const unsigned int file_version)
00119 {
00120 std::vector<double> state_variables;
00121 ar & state_variables;
00122
00123
00124 ::new(t)DeltaNotchOdeSystem(0.0, state_variables);
00125 }
00126 }
00127 }
00128
00129 #endif