CEPS  24.01
Cardiac ElectroPhysiology Simulator
MS03 Class Reference

Detailed Description

Mitchell-Schaeffer ionic model.

Reference:

A two-current model for the dynamics of cardiac membrane, Colleen C. Mitchell, David G. Schaeffer, 2003, Bulletin of Mathematical Biology , 65, (5), 767-793. PubMed ID: 12909250

https://models.physiomeproject.org/exposure/9efc295a6f3360044b4712c28b8314e7/mitchell_schaeffer_2003.cellml/view

Definition at line 47 of file MS03.hpp.

#include <MS03.hpp>

Inheritance diagram for MS03:
[legend]

Public Member Functions

 MS03 (Unknown *u, const CepsSet< CepsAttribute > &attrs={}, InputParameters *params=nullptr)
 Constructor (sets constants) More...
 
virtual ~MS03 ()=default
 Destructor. More...
 
void getInitialCondition (CepsReal *v, CepsReal *y) const final
 Sets initial values of state variables and transmembrane voltage for a single point. Arrays y,dty must be preallocated with size m_nStateVars. More...
 
void computeRates (CepsReal t, CepsReal *y, CepsReal *v, CepsReal *dtyL, CepsReal *dtyNL, CepsReal *dtv, DegreeOfFreedom *dof) const override
 Get the linear and non linear part of the evolution function f. Also computes the ionic current. More...
 
CepsReal convertVoltageToCepsUnit (const CepsReal &u) const override
 Convert from no unit to mV. More...
 
CepsReal convertVoltageFromCepsUnit (const CepsReal &u) const override
 Convert from mV to no unit. More...
 
CepsReal convertDtvToCepsUnit (const CepsReal &i) const override
 Convert from s-1 to uA per cm2. More...
 
CepsReal convertCurrentFromCepsUnit (const CepsReal &i) const override
 Convert from uA per cm2 to s-1. More...
 
CepsReal convertCmFromCepsUnit (const CepsReal &cm) const override
 Convert capacitance from ceps units (uF/cm2) to ionic model units. More...
 
CepsReal convertCmToCepsUnit (const CepsReal &cm) const override
 Convert capacitance from ionic model units to ceps units (uF/cm2). More...
 
- Public Member Functions inherited from AbstractIonicModel
virtual ~AbstractIonicModel ()
 Destructor. More...
 
CepsString getName () const
 Name of the solver for info display. More...
 
UnknowngetUnknown () const
 The unknown object of the transmembrane voltage. More...
 
ScalarField< DegreeOfFreedom > * getCm () const
 Link to Cm coefficient of PDE. More...
 
void setCm (ScalarField< DegreeOfFreedom > *)
 Link to Cm coefficient of PDE. More...
 
CepsReal getPaperCm (CepsBool cepsUnit) const
 Get the original value of Cm used in paper. More...
 
CepsReal getPaperStim () const
 Get the original amplitude of stimulation, converted into ceps units. More...
 
void addStimulation (ScalarSourceTerm *stim)
 Links the model to a stimulation function, needed for computation of _ki. More...
 
CepsReal getStimulation (DegreeOfFreedom *x, CepsReal t) const
 Get the sum of all stimulations at time t and dof x. More...
 
virtual CepsUInt getNbStateVariables () const
 The number of state variables, except transmembrane voltage. More...
 
CepsString getStateVariableName (CepsUInt i) const
 Gives the name of the i-th state variable. More...
 
void setLinkedSolver (IonicSolver *solver)
 Links instance to solver. More...
 
IonicSolvergetLinkedSolver () const
 Get link to solver. More...
 
- Public Member Functions inherited from ceps::HoldsAttributes
 HoldsAttributes (const CepsSet< CepsAttribute > &attributes)
 Constructor with any number of attributes. More...
 
 HoldsAttributes (const CepsVector< CepsAttribute > &attributes)
 Constructor with any number of attributes. More...
 
 HoldsAttributes (CepsAttribute *attributes, const CepsUInt &n)
 Constructor with any number of attributes. More...
 
 HoldsAttributes ()=default
 Default constructor. More...
 
 HoldsAttributes (const HoldsAttributes &)=default
 Assignement operator. More...
 
 HoldsAttributes (HoldsAttributes &&) noexcept=default
 Copy constructor. More...
 
virtual ~HoldsAttributes ()=default
 Destructor. More...
 
HoldsAttributesoperator= (const HoldsAttributes &)=default
 Assignment operator. More...
 
HoldsAttributesoperator= (HoldsAttributes &&) noexcept=default
 Assignment operator. More...
 
CepsUInt getNumberOfAttributes () const
 Returns number of attributes of the entity. More...
 
CepsSet< CepsAttribute > & getAttributes ()
 Returns the attributes of the entity. More...
 
const CepsSet< CepsAttribute > & getAttributes () const
 Returns the attributes of the entity, const version. More...
 
void setAttributes (const CepsVector< CepsAttribute > &attributes)
 Sets the attributes of the entity. More...
 
void setAttributes (const CepsSet< CepsAttribute > &attributes)
 Sets the attributes of the entity. More...
 
void setAttributes (const CepsAttribute *attributes, const CepsUInt &n)
 Sets the attributes of the entity. More...
 
template<class _It >
void setAttributes (_It first, _It last)
 Sets the attributes of the entity. More...
 
void addAttribute (const CepsAttribute &name)
 Adds an attribute to the entity. More...
 
void addAttributes (const CepsVector< CepsAttribute > &attributes)
 Adds several attributes to the entity. More...
 
void addAttributes (const CepsSet< CepsAttribute > &attributes)
 Adds several attributes to the entity. More...
 
void addAttributes (const CepsAttribute *attributes, const CepsUInt &n)
 Adds several attributes to the entity. More...
 
template<class _It >
void addAttributes (_It first, _It last)
 Adds several attributes to the entity. More...
 
void removeAttribute (const CepsAttribute &name)
 Removes an attribute from the entity. More...
 
void removeAttributes (const CepsSet< CepsAttribute > &attributes)
 Removes several attributes from the entity. More...
 
void removeAttributes (const CepsVector< CepsAttribute > &attributes)
 Removes several attributes from the entity. More...
 
void removeAttributes (const CepsAttribute *attributes, const CepsUInt &n)
 Removes several attributes from the entity. More...
 
template<class _It >
void removeAttributes (_It first, _It last)
 Removes several attributes from the entity. More...
 
void clearAttributes ()
 Removes all attributes from the entity. More...
 
CepsBool hasAttribute (const CepsAttribute &name) const
 Tells if the entity has the attribute in argument. More...
 
CepsBool hasAllAttributes (const CepsVector< CepsAttribute > &attributes) const
 Tells if the entity has all the attributes in argument. More...
 
CepsBool hasAllAttributes (const CepsAttribute *attributes, const CepsUInt &n) const
 Tells if the entity has all the attributes in argument. More...
 
template<class _It >
CepsBool hasAllAttributes (_It first, _It last) const
 Tells if the entity has all the attributes in argument. More...
 
CepsBool hasOneOfAttributes (const CepsSet< CepsAttribute > &attributes) const
 Tells if the entity has one of the attributes in argument. More...
 
CepsBool hasOneOfAttributes (const CepsVector< CepsAttribute > &attributes) const
 Tells if the entity has one of the attributes in argument. More...
 
CepsBool hasOneOfAttributes (const CepsAttribute *attributes, const CepsUInt &n) const
 Tells if the entity has one of the attributes in argument. More...
 
template<class _It >
CepsBool hasOneOfAttributes (_It first, _It last) const
 Tells if the entity has one of the attributes in argument. More...
 
CepsBool hasUniversalAttribute () const
 Detect if the current entity has the attribute universal. More...
 
void reset ()
 Equivalent to HoldsAttributes::clear() More...
 

Protected Member Functions

void setupWithParameters (InputParameters *p, FunctionDictionary *dico)
 Sets the constants and the space dependant parameters from text inputs. More...
 
- Protected Member Functions inherited from AbstractIonicModel
 AbstractIonicModel (Unknown *u, const CepsSet< CepsAttribute > &attrs={})
 Called only by derived classes. More...
 
CepsReal getCmInternal (CepsReal t, DegreeOfFreedom *dof) const
 Get either the value of cm on dof, or the default value from the paper. More...
 
CepsReal sigmoid (CepsReal x, CepsReal c, CepsReal k) const
 Function often used in rates evaluations. More...
 
CepsReal gaussian (CepsReal x, CepsReal c, CepsReal s) const
 Function often used in rates evaluations. More...
 
CepsReal uOverExpm1u (CepsReal u) const
 Functions u/(1-exp(u)) that returns 2 (from expansion around 0) More...
 

Protected Attributes

CepsReal m_vMin
 lower bound of voltage normalization interval More...
 
CepsReal m_vMax
 upper bound of voltage normalization interval More...
 
CepsReal m_cellSurface
 surface of a cell used for unit scaling. Default is surface of a cylinder (r=10um,l=100um) More...
 
CepsReal m_vInit
 Initial condition for v. More...
 
CepsReal m_hInit
 Initial condition for h. More...
 
- Protected Attributes inherited from AbstractIonicModel
Unknownm_unknown
 Pointer on unknown on which the model applies. More...
 
CepsRealm_constants
 Constant parameters of the model, from inputs. More...
 
CepsRealm_dconstants
 Constant parameters of the model, computed from others. More...
 
ScalarField< DegreeOfFreedom > * m_cm
 Link to coef Cm of the PDE, for unit conversion. More...
 
CepsReal m_paperCm
 Original value of Cm. More...
 
CepsReal m_paperStim
 Original stim amplitude. More...
 
CepsVector< ScalarSourceTerm * > m_stims
 Link to excitations. More...
 
CepsUInt m_nStateVars
 Dimensionality of the ODE system, -1 for vm. More...
 
CepsVector< CepsStringm_stateVarNames
 Names of state variables. More...
 
CepsString m_name
 A label for display. More...
 
IonicSolverm_solver
 Link to solver, set when solver is created. More...
 
- Protected Attributes inherited from ceps::HoldsAttributes
CepsSet< CepsAttributem_attributes
 The attributes held by the entity. More...
 

Static Protected Attributes

static constexpr const CepsInt _h = 0
 indexing alias More...
 
static constexpr const CepsInt _tauIn = 0
 indexing alias More...
 
static constexpr const CepsInt _tauOut = 1
 indexing alias More...
 
static constexpr const CepsInt _tauOpen = 2
 indexing alias More...
 
static constexpr const CepsInt _tauClose = 3
 indexing alias More...
 
static constexpr const CepsInt _vGate = 4
 indexing alias More...
 

Constructor & Destructor Documentation

◆ MS03()

MS03::MS03 ( Unknown u,
const CepsSet< CepsAttribute > &  attrs = {},
InputParameters params = nullptr 
)

Constructor (sets constants)

Definition at line 32 of file MS03.cpp.

◆ ~MS03()

virtual MS03::~MS03 ( )
virtualdefault

Destructor.

Member Function Documentation

◆ computeRates()

void MS03::computeRates ( CepsReal  t,
CepsReal y,
CepsReal v,
CepsReal dtyL,
CepsReal dtyNL,
CepsReal dtv,
DegreeOfFreedom dof 
) const
overridevirtual

Get the linear and non linear part of the evolution function f. Also computes the ionic current.

Parameters
[in]ttime $t$
[in]yvalue of state variables at time $t$
[in]vvalue of transmembrane voltage at time $t$
[out]dtyLwill be filled with the linear part of the derivative
[out]dtyNLthe non linear part of the derivative
[out]dtvvalue of ionic current at time $t^n$
[in]dofdegree of freedom, in case some coefficients depend on space

Implements AbstractIonicModel.

Reimplemented in MS03Modified.

Definition at line 81 of file MS03.cpp.

◆ convertCmFromCepsUnit()

CepsReal MS03::convertCmFromCepsUnit ( const CepsReal cm) const
overridevirtual

Convert capacitance from ceps units (uF/cm2) to ionic model units.

Reimplemented from AbstractIonicModel.

Definition at line 139 of file MS03.cpp.

◆ convertCmToCepsUnit()

CepsReal MS03::convertCmToCepsUnit ( const CepsReal cm) const
overridevirtual

Convert capacitance from ionic model units to ceps units (uF/cm2).

Reimplemented from AbstractIonicModel.

Definition at line 145 of file MS03.cpp.

◆ convertCurrentFromCepsUnit()

CepsReal MS03::convertCurrentFromCepsUnit ( const CepsReal i) const
overridevirtual

Convert from uA per cm2 to s-1.

Reimplemented from AbstractIonicModel.

Definition at line 127 of file MS03.cpp.

◆ convertDtvToCepsUnit()

CepsReal MS03::convertDtvToCepsUnit ( const CepsReal i) const
overridevirtual

Convert from s-1 to uA per cm2.

Reimplemented from AbstractIonicModel.

Definition at line 133 of file MS03.cpp.

◆ convertVoltageFromCepsUnit()

CepsReal MS03::convertVoltageFromCepsUnit ( const CepsReal u) const
overridevirtual

Convert from mV to no unit.

Reimplemented from AbstractIonicModel.

Definition at line 121 of file MS03.cpp.

◆ convertVoltageToCepsUnit()

CepsReal MS03::convertVoltageToCepsUnit ( const CepsReal u) const
overridevirtual

Convert from no unit to mV.

Reimplemented from AbstractIonicModel.

Definition at line 115 of file MS03.cpp.

◆ getInitialCondition()

void MS03::getInitialCondition ( CepsReal v,
CepsReal y 
) const
finalvirtual

Sets initial values of state variables and transmembrane voltage for a single point. Arrays y,dty must be preallocated with size m_nStateVars.

Implements AbstractIonicModel.

Definition at line 72 of file MS03.cpp.

◆ setupWithParameters()

void MS03::setupWithParameters ( InputParameters p,
FunctionDictionary dico 
)
protected

Sets the constants and the space dependant parameters from text inputs.

Definition at line 151 of file MS03.cpp.

Field Documentation

◆ _h

constexpr const CepsInt MS03::_h = 0
staticconstexprprotected

indexing alias

Definition at line 120 of file MS03.hpp.

◆ _tauClose

constexpr const CepsInt MS03::_tauClose = 3
staticconstexprprotected

indexing alias

Definition at line 126 of file MS03.hpp.

◆ _tauIn

constexpr const CepsInt MS03::_tauIn = 0
staticconstexprprotected

indexing alias

Definition at line 123 of file MS03.hpp.

◆ _tauOpen

constexpr const CepsInt MS03::_tauOpen = 2
staticconstexprprotected

indexing alias

Definition at line 125 of file MS03.hpp.

◆ _tauOut

constexpr const CepsInt MS03::_tauOut = 1
staticconstexprprotected

indexing alias

Definition at line 124 of file MS03.hpp.

◆ _vGate

constexpr const CepsInt MS03::_vGate = 4
staticconstexprprotected

indexing alias

Definition at line 127 of file MS03.hpp.

◆ m_cellSurface

CepsReal MS03::m_cellSurface
protected

surface of a cell used for unit scaling. Default is surface of a cylinder (r=10um,l=100um)

Definition at line 114 of file MS03.hpp.

◆ m_hInit

CepsReal MS03::m_hInit
protected

Initial condition for h.

Definition at line 117 of file MS03.hpp.

◆ m_vInit

CepsReal MS03::m_vInit
protected

Initial condition for v.

Definition at line 116 of file MS03.hpp.

◆ m_vMax

CepsReal MS03::m_vMax
protected

upper bound of voltage normalization interval

Definition at line 113 of file MS03.hpp.

◆ m_vMin

CepsReal MS03::m_vMin
protected

lower bound of voltage normalization interval

Definition at line 112 of file MS03.hpp.


The documentation for this class was generated from the following files: