|
| | TTP () |
| | Constructor.
|
| |
| virtual std::unique_ptr< IonicModelParameters > | get_parameters () const override |
| | Construct an instance of model parameters.
|
| |
| virtual void | read_parameters (const IonicModelParameters ¶ms) 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.
|
| |
| | 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< outputType > | get_registered_outputs () const |
| | Get output variable information for output registration.
|
| |
|
| 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.
|
| |
| 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.
|
| |
|
|
| 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].
|
| |
| 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].
|
| |
Ten Tusscher-Panfilov ionic model.
This class implements the 2006 version of the model, described in the second reference below.
References:
- Ten Tusscher, Noble, Noble, Panfilov. A model for human ventricular tissue. American Journal of Physiology - Heart and Circulatory Physiology (2004).
- 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)
| 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_id | Identifier for the transmural zone (epicardium, endocardium, myocardium). |
| [in] | dt | Time step. |
| [in] | X | Vector of state variables. |
| [out] | Xg | Vector of gating variables. |
Implements IonicModel.