CEPS  24.01
Cardiac ElectroPhysiology Simulator
MS03Modified Class Reference

Detailed Description

Mitchell-Schaeffer ionic model, with modification to keep ionic current bounded.

Reference: Eq 2.15 and 2.16 of A. Davidovic PhD, 2016 Multiscale mathematical modelling of structural heterogeneities in cardiac electrophysiology

Also, if TMV is outside a parametrized interval [a,b] with a<0 and b>1, the dtv function is replaced by a sigmoid arc with C1 connexion at a and b.

If v>=b: $ \tilde{i_\mathrm{ion}}(v) = i_\mathrm{ion}(b)(1+\tanh(k_b(v_b))) $ with $ k_b$ computed to match the derivative at v=b.

Definition at line 146 of file MS03.hpp.

#include <MS03.hpp>

Inheritance diagram for MS03Modified:
[legend]

Public Member Functions

 MS03Modified (Unknown *u, const CepsSet< CepsAttribute > &attrs={}, InputParameters *params=nullptr)
 Constructor (sets constants) More...
 
virtual ~MS03Modified ()=default
 Destructor. More...
 
void computeRates (CepsReal t, CepsReal *y, CepsReal *v, CepsReal *dtyL, CepsReal *dtyNL, CepsReal *dtv, DegreeOfFreedom *dof) const final
 Get the linear and non linear part of the evolution function f. Also computes the ionic current. More...
 
- Public Member Functions inherited from MS03
 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...
 
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 MS03
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_etaGate
 Slope in smooth transition hinfty. More...
 
- Protected Attributes inherited from MS03
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 _etaGate = 5
 indexing alias More...
 
static constexpr const CepsInt _vA = 6
 indexing alias More...
 
static constexpr const CepsInt _vB = 7
 indexing alias More...
 
- Static Protected Attributes inherited from MS03
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

◆ MS03Modified()

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

Constructor (sets constants)

Definition at line 174 of file MS03.cpp.

◆ ~MS03Modified()

virtual MS03Modified::~MS03Modified ( )
virtualdefault

Destructor.

Member Function Documentation

◆ computeRates()

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

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

Reimplemented from MS03.

Definition at line 207 of file MS03.cpp.

◆ setupWithParameters()

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

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

Definition at line 263 of file MS03.cpp.

Field Documentation

◆ _etaGate

constexpr const CepsInt MS03Modified::_etaGate = 5
staticconstexprprotected

indexing alias

Definition at line 183 of file MS03.hpp.

◆ _vA

constexpr const CepsInt MS03Modified::_vA = 6
staticconstexprprotected

indexing alias

Definition at line 184 of file MS03.hpp.

◆ _vB

constexpr const CepsInt MS03Modified::_vB = 7
staticconstexprprotected

indexing alias

Definition at line 185 of file MS03.hpp.

◆ m_etaGate

CepsReal MS03Modified::m_etaGate
protected

Slope in smooth transition hinfty.

Definition at line 182 of file MS03.hpp.


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