36 #ifndef ABSTRACTCARDIACCELLINTERFACE_HPP_
37 #define ABSTRACTCARDIACCELLINTERFACE_HPP_
39 #include <boost/shared_ptr.hpp>
45 #include "AbstractIvpOdeSolver.hpp"
46 #include "RegularStimulus.hpp"
47 #include "OdeSolution.hpp"
48 #include "AbstractLookupTableCollection.hpp"
74 unsigned voltageIndex,
75 boost::shared_ptr<AbstractStimulusFunction> pIntracellularStimulus);
163 virtual double GetAnyVariable(
const std::string& rName,
double time)=0;
173 virtual double GetParameter(
const std::string& rParameterName)=0;
193 virtual void SetParameter(
const std::string& rParameterName,
double value)=0;
256 virtual double GetIIonic(
const std::vector<double>* pStateVariables=NULL)=0;
370 const boost::shared_ptr<AbstractIvpOdeSolver>
GetSolver()
const;
379 void SetSolver(boost::shared_ptr<AbstractIvpOdeSolver> pSolver);
457 template<
class Archive>
458 void serialize(Archive & archive,
const unsigned int version)
AbstractCardiacCellInterface(boost::shared_ptr< AbstractIvpOdeSolver > pOdeSolver, unsigned voltageIndex, boost::shared_ptr< AbstractStimulusFunction > pIntracellularStimulus)
void SetFixedVoltage(double voltage)
bool mHasDefaultStimulusFromCellML
bool HasCellMLDefaultStimulus()
virtual void SetStretch(double stretch)
virtual double GetAnyVariable(const std::string &rName, double time)=0
boost::shared_ptr< AbstractStimulusFunction > mpIntracellularStimulus
virtual unsigned GetNumberOfParameters() const =0
virtual void SetParameter(const std::string &rParameterName, double value)=0
const boost::shared_ptr< AbstractIvpOdeSolver > GetSolver() const
#define CLASS_IS_ABSTRACT(T)
virtual double GetVoltage()=0
bool mSetVoltageDerivativeToZero
void SetStimulusFunction(boost::shared_ptr< AbstractStimulusFunction > pStimulus)
void SetIntracellularStimulusFunction(boost::shared_ptr< AbstractStimulusFunction > pStimulus)
void SetUsedInTissueSimulation(bool tissue=true)
virtual const std::vector< std::string > & rGetStateVariableNames() const =0
virtual std::vector< double > GetStdVecStateVariables()=0
double GetIntracellularAreaStimulus(double time)
virtual void SetStateVariables(const std::vector< double > &rVariables)=0
virtual unsigned GetNumberOfStateVariables() const =0
double GetIntracellularStimulus(double time)
virtual double GetParameter(const std::string &rParameterName)=0
virtual void SetTimestep(double dt)=0
virtual AbstractLookupTableCollection * GetLookupTableCollection()
virtual OdeSolution Compute(double tStart, double tEnd, double tSamp=0.0)=0
double GetStimulus(double time)
virtual double GetIIonic(const std::vector< double > *pStateVariables=NULL)=0
virtual ~AbstractCardiacCellInterface()
virtual double GetIntracellularCalciumConcentration()
virtual boost::shared_ptr< RegularStimulus > UseCellMLDefaultStimulus()
virtual void ComputeExceptVoltage(double tStart, double tEnd)=0
virtual void SolveAndUpdateState(double tStart, double tEnd)=0
void serialize(Archive &archive, const unsigned int version)
virtual void SetVoltage(double voltage)=0
virtual void SetVoltageDerivativeToZero(bool clamp=true)
unsigned GetVoltageIndex()
boost::shared_ptr< AbstractStimulusFunction > GetStimulusFunction()
friend class boost::serialization::access
boost::shared_ptr< AbstractIvpOdeSolver > mpOdeSolver
virtual void SetStateVariable(unsigned index, double newValue)=0
void SetSolver(boost::shared_ptr< AbstractIvpOdeSolver > pSolver)