NobleVargheseKohlNoble1998WithSac.hpp

Go to the documentation of this file.
00001 #ifndef _CML_noble_varghese_kohl_noble_1998_basic_with_sac_
00002 #define _CML_noble_varghese_kohl_noble_1998_basic_with_sac_
00003 
00004 
00006 
00017 #include "ChasteSerialization.hpp"
00018 #include <boost/serialization/base_object.hpp>
00019 
00020 #include <cmath>
00021 #include <cassert>
00022 #include "AbstractCardiacCell.hpp"
00023 #include "Exception.hpp"
00024 #include "AbstractStimulusFunction.hpp"
00025 #include "OdeSystemInformation.hpp"
00026 
00027 
00033 class CML_noble_varghese_kohl_noble_1998_basic_with_sac : public AbstractCardiacCell
00034 {
00035     friend class boost::serialization::access;
00036     template<class Archive>
00037     void serialize(Archive & archive, const unsigned int version)
00038     {
00039         archive & mStretch;
00040         archive & boost::serialization::base_object<AbstractCardiacCell>(*this);
00041     }
00042 private:
00043 
00045     double mStretch;
00046     
00047 public:
00048     CML_noble_varghese_kohl_noble_1998_basic_with_sac(boost::shared_ptr<AbstractIvpOdeSolver> pSolver,
00049                                              boost::shared_ptr<AbstractStimulusFunction> pIntracellularStimulus);
00050 
00051     ~CML_noble_varghese_kohl_noble_1998_basic_with_sac(void);
00052 
00053     double GetIIonic();
00054 
00055     void EvaluateYDerivatives (
00056             double var_environment__time,
00057             const std::vector<double> &rY,
00058             std::vector<double> &rDY);
00059 
00064     void SetStretch(double stretch)
00065     {
00066         assert(stretch > 0.0);
00067         mStretch = stretch;
00068     }
00069     
00073     double GetStretch()
00074     {
00075         return mStretch;
00076     }
00077     
00083     double GetIntracellularCalciumConcentration()
00084     {
00085         return mStateVariables[16];
00086     }
00087 };
00088 
00089 
00090 #include "SerializationExportWrapper.hpp"
00091 CHASTE_CLASS_EXPORT(CML_noble_varghese_kohl_noble_1998_basic_with_sac)
00092 namespace boost
00093 {
00094     namespace serialization
00095     {
00096         template<class Archive>
00097         inline void save_construct_data(
00098             Archive & ar, const CML_noble_varghese_kohl_noble_1998_basic_with_sac * t, const unsigned int fileVersion)
00099         {
00100             const boost::shared_ptr<AbstractIvpOdeSolver> p_solver = t->GetSolver();
00101             const boost::shared_ptr<AbstractStimulusFunction> p_stimulus = t->GetStimulusFunction();
00102             ar << p_solver;
00103             ar << p_stimulus;
00104         }
00105 
00106         template<class Archive>
00107         inline void load_construct_data(
00108             Archive & ar, CML_noble_varghese_kohl_noble_1998_basic_with_sac * t, const unsigned int fileVersion)
00109         {
00110             boost::shared_ptr<AbstractIvpOdeSolver> p_solver;
00111             boost::shared_ptr<AbstractStimulusFunction> p_stimulus;
00112             ar >> p_solver;
00113             ar >> p_stimulus;
00114             ::new(t)CML_noble_varghese_kohl_noble_1998_basic_with_sac(p_solver, p_stimulus);
00115         }
00116 
00117     }
00118 
00119 }
00120 
00121 #endif

Generated on Mon Nov 1 12:35:16 2010 for Chaste by  doxygen 1.5.5