36 #include "HeartConfig.hpp"
37 #include "AbstractCardiacCellInterface.hpp"
40 #include "Citations.hpp"
41 static PetscBool CardiacCellChasteCite = PETSC_FALSE;
42 const char CardiacCellChasteCitation[] =
"@article{cooper2015cce,\n"
43 " title = {{Cellular cardiac electrophysiology modelling with Chaste and CellML}},\n"
44 " author = {Cooper, Jonathan and Spiteri, Raymond and Mirams, Gary R},\n"
46 " journal = {Frontiers in Physiology},\n"
48 " url = {http://journal.frontiersin.org/Journal/10.3389/fphys.2014.00511},\n"
50 " doi = {10.3389/fphys.2014.00511},\n"
54 boost::shared_ptr<AbstractIvpOdeSolver> pOdeSolver,
55 unsigned voltageIndex,
56 boost::shared_ptr<AbstractStimulusFunction> pIntracellularStimulus)
57 : mVoltageIndex(voltageIndex),
58 mpOdeSolver(pOdeSolver),
59 mpIntracellularStimulus(pIntracellularStimulus),
60 mSetVoltageDerivativeToZero(false),
61 mIsUsedInTissue(false),
62 mHasDefaultStimulusFromCellML(false),
129 EXCEPTION(
"This class has no default stimulus from CellML metadata.");
130 return boost::shared_ptr<RegularStimulus>();
175 EXCEPTION(
"AbstractCardiacCellInterface::GetIntracellularCalciumConcentration() called. "
176 "Either model has no [Ca_i] or method has not been implemented yet");
AbstractCardiacCellInterface(boost::shared_ptr< AbstractIvpOdeSolver > pOdeSolver, unsigned voltageIndex, boost::shared_ptr< AbstractStimulusFunction > pIntracellularStimulus)
void SetFixedVoltage(double voltage)
bool mHasDefaultStimulusFromCellML
bool HasCellMLDefaultStimulus()
boost::shared_ptr< AbstractStimulusFunction > mpIntracellularStimulus
const boost::shared_ptr< AbstractIvpOdeSolver > GetSolver() const
virtual double GetVoltage()=0
bool mSetVoltageDerivativeToZero
#define EXCEPTION(message)
void SetStimulusFunction(boost::shared_ptr< AbstractStimulusFunction > pStimulus)
void SetIntracellularStimulusFunction(boost::shared_ptr< AbstractStimulusFunction > pStimulus)
void SetUsedInTissueSimulation(bool tissue=true)
double GetIntracellularAreaStimulus(double time)
const double DOUBLE_UNSET
double GetIntracellularStimulus(double time)
double GetStimulus(double time)
virtual ~AbstractCardiacCellInterface()
virtual double GetIntracellularCalciumConcentration()
virtual boost::shared_ptr< RegularStimulus > UseCellMLDefaultStimulus()
static void Register(const char *pCitation, PetscBool *pSet)
virtual void SetVoltageDerivativeToZero(bool clamp=true)
unsigned GetVoltageIndex()
boost::shared_ptr< AbstractStimulusFunction > GetStimulusFunction()
boost::shared_ptr< AbstractIvpOdeSolver > mpOdeSolver
double GetSurfaceAreaToVolumeRatio() const
void SetSolver(boost::shared_ptr< AbstractIvpOdeSolver > pSolver)
static HeartConfig * Instance()