RegularStimulus.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 #ifndef _REGULARSTIMULUS_HPP_
00031 #define _REGULARSTIMULUS_HPP_
00032
00033 #include "ChasteSerialization.hpp"
00034 #include <boost/serialization/base_object.hpp>
00035
00036 #include "AbstractStimulusFunction.hpp"
00037
00041 class RegularStimulus : public AbstractStimulusFunction
00042 {
00043 private:
00045 friend class boost::serialization::access;
00052 template<class Archive>
00053 void serialize(Archive & archive, const unsigned int version)
00054 {
00055
00056 archive & boost::serialization::base_object<AbstractStimulusFunction>(*this);
00057 archive & mMagnitudeOfStimulus;
00058 archive & mDuration;
00059 archive & mPeriod;
00060 archive & mStartTime;
00061 archive & mStopTime;
00062 }
00063
00065 double mMagnitudeOfStimulus;
00067 double mDuration;
00069 double mPeriod;
00071 double mStartTime;
00073 double mStopTime;
00074
00075 public:
00076 RegularStimulus(double magnitudeOfStimulus, double duration, double period, double startTime, double stopTime=DBL_MAX);
00077 ~RegularStimulus();
00078 double GetStimulus(double time);
00079
00080 };
00081
00082 #include "SerializationExportWrapper.hpp"
00083
00084 CHASTE_CLASS_EXPORT(RegularStimulus);
00085
00086 namespace boost
00087 {
00088 namespace serialization
00089 {
00094 template<class Archive>
00095 inline void load_construct_data(
00096 Archive & ar, RegularStimulus * t, const unsigned int file_version)
00097 {
00104 ::new(t)RegularStimulus(0.0, 0.0, 0.1, 0.0, 1.0);
00105 }
00106 }
00107 }
00108
00109 #endif //_REGULARSTIMULUS_HPP_