svMultiPhysics
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
TTP Class Reference

Ten Tusscher-Panfilov ionic model. More...

#include <ionic_ttp.h>

Inheritance diagram for TTP:
[legend]

Classes

class  Parameters
 Model parameters class. More...
 

Public Member Functions

 TTP ()
 Constructor.
 
virtual std::unique_ptr< IonicModelParametersget_parameters () const override
 Construct an instance of model parameters.
 
virtual void read_parameters (const IonicModelParameters &params) override
 Read model parameters from a parameter object.
 
virtual void distribute_parameters (const CmMod &cm_mod, const cmType &cm) override
 Distribute model parameters to all parallel processes.
 
virtual unsigned int get_calcium_index () const override
 Get the index of Ca_i in the state vector.
 
- Public Member Functions inherited from IonicModel
 IonicModel (const InitialStates &initial_X_, const InitialStates &initial_Xg_, const double Vrest_)
 Constructor.
 
 IonicModel (const InitialStates &initial_X_, const InitialStates &initial_Xg_, const double Vrest_, const double Vscale_, const double Tscale_, const double Voffset_)
 Constructor with scaling factors.
 
virtual ~IonicModel ()=default
 Virtual destructor.
 
void init (Vector< double > &X, Vector< double > &Xg) const
 Setup model initial conditions.
 
void integ (const odeType &ode_solver_params, const int zone_id, const double t, const double dt, const double Istim, const double Ksac, Vector< double > &X, Vector< double > &Xg) const
 Integrate over one time step.
 
unsigned int nX () const
 Get the number of state variables.
 
unsigned int nG () const
 Get the number of gating variables.
 
virtual std::vector< std::pair< std::string, int > > get_output_variables () const
 Get a list of state variables to export to VTU.
 
std::vector< outputTypeget_registered_outputs () const
 Get output variable information for output registration.
 

Static Public Attributes

static const std::string label = "TTP"
 Model label.
 
static const InitialStates initial_X
 State variables.
 
static const InitialStates initial_Xg
 Gating variables.
 
static constexpr unsigned int calcium_index = 3
 

Protected Member Functions

virtual void update_g (const unsigned int zone_id, const double dt, const Vector< double > &X, Vector< double > &Xg) const override
 Update gating variables.
 
virtual Vector< double > getf (const unsigned int zone_id, const Vector< double > &X, const Vector< double > &Xg, const double I_stim, const double I_sac) const override
 Model right-hand side.
 
- Protected Member Functions inherited from IonicModel
virtual Array< double > getj (const unsigned int zone_id, const Vector< double > &X, const Vector< double > &Xg, const double Ksac) const
 Model jacobian.
 
void integ_fe (const unsigned int zone_id, Vector< double > &X, Vector< double > &Xg, const double Ts, const double Ti, const double Istim, const double Ksac) const
 Integrate the model with the forward Euler method.
 
void integ_rk (const unsigned int zone_id, Vector< double > &X, Vector< double > &Xg, const double Ts, const double Ti, const double Istim, const double Ksac) const
 Integrate the model with the fourth-order explicit Runge-Kutta method.
 
void integ_cn2 (const unsigned int zone_id, Vector< double > &X, Vector< double > &Xg, const double Ts, const double Ti, const double Istim, const double Ksac, const unsigned int max_iter, const double rtol, const double atol) const
 Integrate the model with the Crank-Nicolson method.
 

Protected Attributes

Model parameters
double Rc = 8314.472
 Gas constant [J/mol/K].
 
double Tc = 310.0
 Temperature [K].
 
double Fc = 96485.3415
 Faraday constant [C/mmol].
 
double Cm = 0.185
 Cell capacitance per unit surface area [uF/cm^{2}].
 
double sV = 0.2
 Surface to volume ratio [um^{-1}].
 
double rho = 162.0
 Cellular resistivity [ \(\Omega\)-cm].
 
double V_c = 16.404E-3
 Cytoplasmic volume [um^{3}].
 
double V_sr = 1.094E-3
 Sacroplasmic reticulum volume [um^{3}].
 
double V_ss = 5.468E-5
 Subspace volume [um^{3}].
 
double K_o = 5.4
 Extracellular K concentration [mM].
 
double Na_o = 140.0
 Extracellular Na concentration [mM].
 
double Ca_o = 2.0
 Extracellular Ca concentration [mM].
 
double G_Na = 14.838
 Maximal I_Na conductance [nS/pF].
 
double G_K1 = 5.405
 Maximal I_K1 conductance [nS/pF].
 
double G_to = 0.294
 Maximal I_to conductance [nS/pF].
 
double G_Kr = 0.153
 Maximal I_Kr conductance [nS/pF].
 
double G_Ks = 0.392
 Maximal I_Ks conductance [nS/pF].
 
double p_KNa = 3.E-2
 Relative I_Ks permeability to Na [-].
 
double G_CaL = 3.98E-5
 Maximal I_CaL conductance [cm^{3}/uF/ms].
 
double K_NaCa = 1000.
 Maximal I_NaCa [pA/pF].
 
double gamma = 0.35
 Voltage dependent parameter of I_NaCa [-].
 
double K_mCa = 1.38
 Ca_i half-saturation constant for I_NaCa [mM].
 
double K_mNai = 87.5
 Na_i half-saturation constant for I_NaCa [mM].
 
double K_sat = 0.1
 Saturation factor for I_NaCa [-].
 
double alpha = 2.5
 Factor enhancing outward nature of I_NaCa [-].
 
double p_NaK = 2.724
 Maximal I_NaK [pA/pF].
 
double K_mK = 1.
 K_o half-saturation constant of I_NaK [mM].
 
double K_mNa = 40.
 Na_i half-saturation constant of I_NaK [mM].
 
double G_pK = 1.46E-2
 Maximal I_pK conductance [nS/pF].
 
double G_pCa = 0.1238
 Maximal I_pCa conductance [pA/pF].
 
double K_pCa = 5.E-4
 Half-saturation constant of I_pCa [mM].
 
double G_bNa = 2.9E-4
 Maximal I_bNa conductance [nS/pF].
 
double G_bCa = 5.92E-4
 Maximal I_bCa conductance [nS/pF].
 
double Vmax_up = 6.375E-3
 Maximal I_up conductance [mM/ms].
 
double K_up = 2.5E-4
 Half-saturation constant of I_up [mM].
 
double V_rel = 0.102
 Maximal I_rel conductance [mM/ms].
 
double k1p = 0.15
 R to O and RI to I, I_rel transition rate [mM^{-2}/ms].
 
double k2p = 4.5E-2
 O to I and R to RI, I_rel transition rate [mM^{-1}/ms].
 
double k3 = 6.E-2
 O to R and I to RI, I_rel transition rate [ms^{-1}].
 
double k4 = 5.E-3
 I to O and Ri to I, I_rel transition rate [ms^{-1}].
 
double EC = 1.5
 Ca_sr half-saturation constant of k_casr [mM].
 
double max_sr = 2.5
 Maximum value of k_casr [-].
 
double min_sr = 1.
 Minimum value of k_casr [-].
 
double V_leak = 3.6E-4
 Maximal I_leak conductance [mM/ms].
 
double V_xfer = 3.8E-3
 Maximal I_xfer conductance [mM/ms].
 
double Buf_c = 0.2
 Total cytoplasmic buffer concentration [mM].
 
double K_bufc = 1.E-3
 Ca_i half-saturation constant for cytplasmic buffer [mM].
 
double Buf_sr = 10.
 Total sacroplasmic buffer concentration [mM].
 
double K_bufsr = 0.3
 Ca_sr half-saturation constant for subspace buffer [mM].
 
double Buf_ss = 0.4
 Total subspace buffer concentration [mM].
 
double K_bufss = 2.5E-4
 Ca_ss half-saturation constant for subspace buffer [mM].
 
- Protected Attributes inherited from IonicModel
InitialStates initial_X
 Initial states.
 
InitialStates initial_Xg
 Initial gating variables.
 
const double Vrest
 
const double Vscale
 Voltage scaling [mV].
 
const double Tscale
 Time scaling [ms].
 
const double Voffset
 Voltage offset parameter [mV].
 

Additional Inherited Members

- Public Types inherited from IonicModel
using InitialStates = std::vector< std::pair< std::string, double > >
 

Detailed Description

Ten Tusscher-Panfilov ionic model.

This class implements the 2006 version of the model, described in the second reference below.

References:

  1. Ten Tusscher, Noble, Noble, Panfilov. A model for human ventricular tissue. American Journal of Physiology - Heart and Circulatory Physiology (2004).
  2. Ten Tusscher, Panfilov. Alternans and spiral breakup in a human ventricular tissue model. American Journal of Physiology - Heart and Circulatory Physiology (2006).

Model parameters are from reference 2 above. Default parameters are for epicardium state (source: https://models.cellml.org/e/80d)

Constructor & Destructor Documentation

◆ TTP()

TTP::TTP ( )
inline

Constructor.

Member Function Documentation

◆ distribute_parameters()

void TTP::distribute_parameters ( const CmMod cm_mod,
const cmType cm 
)
overridevirtual

Distribute model parameters to all parallel processes.

Reimplemented from IonicModel.

◆ get_calcium_index()

virtual unsigned int TTP::get_calcium_index ( ) const
inlineoverridevirtual

Get the index of Ca_i in the state vector.

Implements IonicModel.

◆ get_parameters()

virtual std::unique_ptr< IonicModelParameters > TTP::get_parameters ( ) const
inlineoverridevirtual

Construct an instance of model parameters.

Reimplemented from IonicModel.

◆ getf()

Vector< double > TTP::getf ( const unsigned int  zone_id,
const Vector< double > &  X,
const Vector< double > &  Xg,
const double  I_stim,
const double  I_sac 
) const
overrideprotectedvirtual

Model right-hand side.

Implements IonicModel.

◆ read_parameters()

void TTP::read_parameters ( const IonicModelParameters params)
overridevirtual

Read model parameters from a parameter object.

Reimplemented from IonicModel.

◆ update_g()

void TTP::update_g ( const unsigned int  zone_id,
const double  dt,
const Vector< double > &  X,
Vector< double > &  Xg 
) const
overrideprotectedvirtual

Update gating variables.

The evolution rate of all the gating variables for this model has an expression in the form:

\[ \frac{\text{d}y}{\text{d}t} = \frac{y_\infty(v) - y}{\tau(v)}\;, \]

with \(v\) denotes the transmembrane potential. Assuming \(v\) to be constant over the integration step, the above equation admits the following exact solution:

\[ y^{n+1} = y_\infty(v) - (y_\infty(v) - y^n) e^{-\Delta t / \tau(v)}\;. \]

Accordingly, this function goes through all gating variables, computes the values of \(y_\infty(v)\) and \(\tau(v)\), and updates the gating variables using the above formula.

Parameters
[in]zone_idIdentifier for the transmural zone (epicardium, endocardium, myocardium).
[in]dtTime step.
[in]XVector of state variables.
[out]XgVector of gating variables.

Implements IonicModel.

Member Data Documentation

◆ alpha

double TTP::alpha = 2.5
protected

Factor enhancing outward nature of I_NaCa [-].

◆ Buf_c

double TTP::Buf_c = 0.2
protected

Total cytoplasmic buffer concentration [mM].

◆ Buf_sr

double TTP::Buf_sr = 10.
protected

Total sacroplasmic buffer concentration [mM].

◆ Buf_ss

double TTP::Buf_ss = 0.4
protected

Total subspace buffer concentration [mM].

◆ Ca_o

double TTP::Ca_o = 2.0
protected

Extracellular Ca concentration [mM].

◆ calcium_index

constexpr unsigned int TTP::calcium_index = 3
staticconstexpr

Index of the intracellular calcium concentration (Ca_i) in the state vector.

◆ Cm

double TTP::Cm = 0.185
protected

Cell capacitance per unit surface area [uF/cm^{2}].

◆ EC

double TTP::EC = 1.5
protected

Ca_sr half-saturation constant of k_casr [mM].

◆ Fc

double TTP::Fc = 96485.3415
protected

Faraday constant [C/mmol].

◆ G_bCa

double TTP::G_bCa = 5.92E-4
protected

Maximal I_bCa conductance [nS/pF].

◆ G_bNa

double TTP::G_bNa = 2.9E-4
protected

Maximal I_bNa conductance [nS/pF].

◆ G_CaL

double TTP::G_CaL = 3.98E-5
protected

Maximal I_CaL conductance [cm^{3}/uF/ms].

◆ G_K1

double TTP::G_K1 = 5.405
protected

Maximal I_K1 conductance [nS/pF].

◆ G_Kr

double TTP::G_Kr = 0.153
protected

Maximal I_Kr conductance [nS/pF].

◆ G_Ks

double TTP::G_Ks = 0.392
protected

Maximal I_Ks conductance [nS/pF].

◆ G_Na

double TTP::G_Na = 14.838
protected

Maximal I_Na conductance [nS/pF].

◆ G_pCa

double TTP::G_pCa = 0.1238
protected

Maximal I_pCa conductance [pA/pF].

◆ G_pK

double TTP::G_pK = 1.46E-2
protected

Maximal I_pK conductance [nS/pF].

◆ G_to

double TTP::G_to = 0.294
protected

Maximal I_to conductance [nS/pF].

◆ gamma

double TTP::gamma = 0.35
protected

Voltage dependent parameter of I_NaCa [-].

◆ initial_X

const InitialStates TTP::initial_X
inlinestatic
Initial value:
= {
{"V", -85.23}, {"K_i", 136.89}, {"Na_i", 8.6040}, {"Ca_i", 1.26e-4},
{"Ca_ss", 3.6e-4}, {"Ca_sr", 3.64}, {"R_bar", 0.9073}}

State variables.

◆ initial_Xg

const InitialStates TTP::initial_Xg
inlinestatic
Initial value:
= {
{"x_r1_rectifier", 6.21e-3}, {"x_r2_rectifier", 0.4712},
{"x_s_rectifier", 9.5e-3}, {"m_fast_Na", 1.72e-3}, {"h_fast_Na", 0.7444},
{"j_fast_Na", 0.7045}, {"d_slow_in", 3.373e-5}, {"f_slow_in", 0.7888},
{"f2_slow_in", 0.9755}, {"fcass_slow_in", 0.9953}, {"s_out", 0.999998},
{"r_out", 2.42e-8}}

Gating variables.

◆ k1p

double TTP::k1p = 0.15
protected

R to O and RI to I, I_rel transition rate [mM^{-2}/ms].

◆ k2p

double TTP::k2p = 4.5E-2
protected

O to I and R to RI, I_rel transition rate [mM^{-1}/ms].

◆ k3

double TTP::k3 = 6.E-2
protected

O to R and I to RI, I_rel transition rate [ms^{-1}].

◆ k4

double TTP::k4 = 5.E-3
protected

I to O and Ri to I, I_rel transition rate [ms^{-1}].

◆ K_bufc

double TTP::K_bufc = 1.E-3
protected

Ca_i half-saturation constant for cytplasmic buffer [mM].

◆ K_bufsr

double TTP::K_bufsr = 0.3
protected

Ca_sr half-saturation constant for subspace buffer [mM].

◆ K_bufss

double TTP::K_bufss = 2.5E-4
protected

Ca_ss half-saturation constant for subspace buffer [mM].

◆ K_mCa

double TTP::K_mCa = 1.38
protected

Ca_i half-saturation constant for I_NaCa [mM].

◆ K_mK

double TTP::K_mK = 1.
protected

K_o half-saturation constant of I_NaK [mM].

◆ K_mNa

double TTP::K_mNa = 40.
protected

Na_i half-saturation constant of I_NaK [mM].

◆ K_mNai

double TTP::K_mNai = 87.5
protected

Na_i half-saturation constant for I_NaCa [mM].

◆ K_NaCa

double TTP::K_NaCa = 1000.
protected

Maximal I_NaCa [pA/pF].

◆ K_o

double TTP::K_o = 5.4
protected

Extracellular K concentration [mM].

◆ K_pCa

double TTP::K_pCa = 5.E-4
protected

Half-saturation constant of I_pCa [mM].

◆ K_sat

double TTP::K_sat = 0.1
protected

Saturation factor for I_NaCa [-].

◆ K_up

double TTP::K_up = 2.5E-4
protected

Half-saturation constant of I_up [mM].

◆ label

const std::string TTP::label = "TTP"
inlinestatic

Model label.

◆ max_sr

double TTP::max_sr = 2.5
protected

Maximum value of k_casr [-].

◆ min_sr

double TTP::min_sr = 1.
protected

Minimum value of k_casr [-].

◆ Na_o

double TTP::Na_o = 140.0
protected

Extracellular Na concentration [mM].

◆ p_KNa

double TTP::p_KNa = 3.E-2
protected

Relative I_Ks permeability to Na [-].

◆ p_NaK

double TTP::p_NaK = 2.724
protected

Maximal I_NaK [pA/pF].

◆ Rc

double TTP::Rc = 8314.472
protected

Gas constant [J/mol/K].

◆ rho

double TTP::rho = 162.0
protected

Cellular resistivity [ \(\Omega\)-cm].

◆ sV

double TTP::sV = 0.2
protected

Surface to volume ratio [um^{-1}].

◆ Tc

double TTP::Tc = 310.0
protected

Temperature [K].

◆ V_c

double TTP::V_c = 16.404E-3
protected

Cytoplasmic volume [um^{3}].

◆ V_leak

double TTP::V_leak = 3.6E-4
protected

Maximal I_leak conductance [mM/ms].

◆ V_rel

double TTP::V_rel = 0.102
protected

Maximal I_rel conductance [mM/ms].

◆ V_sr

double TTP::V_sr = 1.094E-3
protected

Sacroplasmic reticulum volume [um^{3}].

◆ V_ss

double TTP::V_ss = 5.468E-5
protected

Subspace volume [um^{3}].

◆ V_xfer

double TTP::V_xfer = 3.8E-3
protected

Maximal I_xfer conductance [mM/ms].

◆ Vmax_up

double TTP::Vmax_up = 6.375E-3
protected

Maximal I_up conductance [mM/ms].


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