00001 #ifndef _CML_noble_varghese_kohl_noble_1998_basic_ 00002 #define _CML_noble_varghese_kohl_noble_1998_basic_ 00003 00015 #include "ChasteSerialization.hpp" 00016 #include <boost/serialization/base_object.hpp> 00017 00018 #include <cmath> 00019 #include <cassert> 00020 #include "AbstractCardiacCell.hpp" 00021 #include "Exception.hpp" 00022 #include "AbstractStimulusFunction.hpp" 00023 #include "OdeSystemInformation.hpp" 00024 00025 class CML_noble_varghese_kohl_noble_1998_basic : public AbstractCardiacCell 00026 { 00027 friend class boost::serialization::access; 00028 template<class Archive> 00029 void serialize(Archive & archive, const unsigned int version) 00030 { 00031 archive & boost::serialization::base_object<AbstractCardiacCell>(*this); 00032 } 00033 public: 00034 CML_noble_varghese_kohl_noble_1998_basic(boost::shared_ptr<AbstractIvpOdeSolver> pSolver, 00035 boost::shared_ptr<AbstractStimulusFunction> pIntracellularStimulus); 00036 00037 ~CML_noble_varghese_kohl_noble_1998_basic(void); 00038 00039 double GetIIonic(); 00040 00041 void EvaluateYDerivatives ( 00042 double var_environment__time, 00043 const std::vector<double> &rY, 00044 std::vector<double> &rDY); 00045 }; 00046 00047 00048 #include "SerializationExportWrapper.hpp" 00049 CHASTE_CLASS_EXPORT(CML_noble_varghese_kohl_noble_1998_basic) 00050 namespace boost 00051 { 00052 namespace serialization 00053 { 00054 template<class Archive> 00055 inline void save_construct_data( 00056 Archive & ar, const CML_noble_varghese_kohl_noble_1998_basic * t, const unsigned int fileVersion) 00057 { 00058 const boost::shared_ptr<AbstractIvpOdeSolver> p_solver = t->GetSolver(); 00059 const boost::shared_ptr<AbstractStimulusFunction> p_stimulus = t->GetStimulusFunction(); 00060 ar << p_solver; 00061 ar << p_stimulus; 00062 } 00063 00064 template<class Archive> 00065 inline void load_construct_data( 00066 Archive & ar, CML_noble_varghese_kohl_noble_1998_basic * t, const unsigned int fileVersion) 00067 { 00068 boost::shared_ptr<AbstractIvpOdeSolver> p_solver; 00069 boost::shared_ptr<AbstractStimulusFunction> p_stimulus; 00070 ar >> p_solver; 00071 ar >> p_stimulus; 00072 ::new(t)CML_noble_varghese_kohl_noble_1998_basic(p_solver, p_stimulus); 00073 } 00074 00075 } 00076 00077 } 00078 00079 #endif