luo_rudy_1991Opt.hpp
Go to the documentation of this file.00001 #ifndef CELLLUO_RUDY_1991FROMCELLMLOPT_HPP_
00002 #define CELLLUO_RUDY_1991FROMCELLMLOPT_HPP_
00003
00015
00016 #include "ChasteSerialization.hpp"
00017 #include <boost/serialization/base_object.hpp>
00018 #include "AbstractCardiacCell.hpp"
00019 #include "AbstractStimulusFunction.hpp"
00020
00021 class Cellluo_rudy_1991FromCellMLOpt : public AbstractCardiacCell
00022 {
00023 friend class boost::serialization::access;
00024 template<class Archive>
00025 void serialize(Archive & archive, const unsigned int version)
00026 {
00027 archive & boost::serialization::base_object<AbstractCardiacCell >(*this);
00028 }
00029
00030
00031
00032
00033 double var_membrane__I_stim;
00034 double var_membrane__i_Na;
00035 double var_membrane__i_si;
00036 double var_membrane__i_K;
00037 double var_membrane__i_K1;
00038 double var_membrane__i_Kp;
00039 double var_membrane__i_b;
00040
00041 public:
00042 double Get_membrane__I_stim();
00043 double Get_membrane__i_Na();
00044 double Get_membrane__i_si();
00045 double Get_membrane__i_K();
00046 double Get_membrane__i_K1();
00047 double Get_membrane__i_Kp();
00048 double Get_membrane__i_b();
00049 Cellluo_rudy_1991FromCellMLOpt(boost::shared_ptr<AbstractIvpOdeSolver> pSolver, boost::shared_ptr<AbstractStimulusFunction> pIntracellularStimulus);
00050 ~Cellluo_rudy_1991FromCellMLOpt();
00051 void VerifyStateVariables();
00052 double GetIIonic();
00053 void EvaluateYDerivatives(double var_environment__time, const std::vector<double>& rY, std::vector<double>& rDY);
00054 };
00055
00056
00057
00058 #include "SerializationExportWrapper.hpp"
00059 CHASTE_CLASS_EXPORT(Cellluo_rudy_1991FromCellMLOpt)
00060
00061 namespace boost
00062 {
00063 namespace serialization
00064 {
00065 template<class Archive>
00066 inline void save_construct_data(
00067 Archive & ar, const Cellluo_rudy_1991FromCellMLOpt * t, const unsigned int fileVersion)
00068 {
00069 const boost::shared_ptr<AbstractIvpOdeSolver> p_solver = t->GetSolver();
00070 const boost::shared_ptr<AbstractStimulusFunction> p_stimulus = t->GetStimulusFunction();
00071 ar << p_solver;
00072 ar << p_stimulus;
00073 }
00074
00075 template<class Archive>
00076 inline void load_construct_data(
00077 Archive & ar, Cellluo_rudy_1991FromCellMLOpt * t, const unsigned int fileVersion)
00078 {
00079 boost::shared_ptr<AbstractIvpOdeSolver> p_solver;
00080 boost::shared_ptr<AbstractStimulusFunction> p_stimulus;
00081 ar >> p_solver;
00082 ar >> p_stimulus;
00083 ::new(t)Cellluo_rudy_1991FromCellMLOpt(p_solver, p_stimulus);
00084 }
00085
00086 }
00087
00088 }
00089
00090 #endif // CELLLUO_RUDY_1991FROMCELLMLOPT_HPP_