svMultiPhysics
Loading...
Searching...
No Matches
CepModBo.h
1// SPDX-FileCopyrightText: Copyright (c) Stanford University, The Regents of the University of California, and others.
2// SPDX-License-Identifier: BSD-3-Clause
3
4#ifndef CEP_MOD_BO_H
5#define CEP_MOD_BO_H
6
7#include "Array.h"
8#include "Vector.h"
9#include <array>
10
12
13/// @brief This module defines data structures for Bueno-Orovio cellular
14/// activation model for cardiac electrophysiology.
15///
16/// The classes defined here duplicate the data structures in the Fortran BOMOD module defined
17/// in CEPMOD_BO.f and PARAMS_BO.f files.
19{
20 public:
21 CepModBo();
22 ~CepModBo();
23
24 // Scaling factors
25 /// Voltage scaling
26 double Vscale = 85.70;
27 /// Time scaling
28 double Tscale = 1.0;
29 /// Voltage offset parameter
30 double Voffset = -84.0;
31
32 /// Model parameters (epi, endo, myo)
33 ///
34 /// \todo [TODO:DaveP] these guys should be maps map<int,double>.
35 ///
36 BoModelParam u_o = {0.0, 0.0, 0.0};
37 BoModelParam u_u = {1.550, 1.56, 1.61};
38 BoModelParam theta_v = {0.30, 0.3, 0.3};
39 BoModelParam theta_w = {0.130, 0.13, 0.13};
40 BoModelParam thetam_v = {6.E-3, 0.2, 0.1};
41 BoModelParam theta_o = {6.E-3, 6.E-3, 5.E-3};
42 BoModelParam taum_v1 = {60.0, 75., 80.};
43 BoModelParam taum_v2 = {1.15E3, 10., 1.4506};
44 BoModelParam taup_v = {1.45060, 1.4506, 1.4506};
45 BoModelParam taum_w1 = {60.0, 6., 70.};
46 BoModelParam taum_w2 = {15.0, 140., 8.};
47 BoModelParam km_w = {65.0, 200., 200.};
48 BoModelParam um_w = {3.E-2, 1.6E-2, 1.6E-2};
49 BoModelParam taup_w = {200.0, 280., 280.};
50 BoModelParam tau_fi = {0.110, 0.1, 0.078};
51 BoModelParam tau_o1 = {400.0, 470., 410.};
52 BoModelParam tau_o2 = {6.0, 6., 7.};
53 BoModelParam tau_so1 = {30.01810, 40., 91.};
54 BoModelParam tau_so2 = {0.99570, 1.2, 0.8};
55 BoModelParam k_so = {2.04580, 2., 2.1};
56 BoModelParam u_so = {0.650, 0.65, 0.6};
57 BoModelParam tau_s1 = {2.73420, 2.7342, 2.7342};
58 BoModelParam tau_s2 = {16.0, 2., 2.};
59 BoModelParam k_s = {2.09940, 2.0994, 2.0994};
60 BoModelParam u_s = {0.90870, 0.9087, 0.9087};
61 BoModelParam tau_si = {1.88750, 2.9013, 3.3849};
62 BoModelParam tau_winf = {7.E-2, 2.73E-2, 1.E-2};
63 BoModelParam ws_inf = {0.940, 0.78, 0.5};
64
65 // Electromechanics coupling parameters: active stress model
66 /// Resting voltage (mV)
67 double Vrest = -84.0;
68 /// Critical voltage (mV)
69 double Vcrit = -30.0;
70 /// Saturation potential
71 double eta_T = 5.E-3;
72 /// Minimum activation (ms^{-1})
73 double eps_0 = 0.10;
74 /// Maximum activation (ms^{-1})
75 double eps_i = 1.0;
76 /// Transition rate (mV^{-1})
77 double xi_T = 1.0;
78
79 // Electromechanics coupling parameters: active strain model
80 /// Active force of sacromere (-mM^{-2})
81 double alFa = -4.E+6;
82 /// Resting Ca concentration (mM) := slow inward current variable (s)
83 double c0 = 2.155E-4;
84 /// Viscous-type constant (ms-mM^{-2})
85 double mu_C = 5.E+6;
86
87 // Force-length relationship parameters
88 /// Initial length of sacromeres (um)
89 double SL0 = 1.950;
90 /// Min. length of sacromeres (um)
91 double SLmin = 1.70;
92 /// Max. length of sacromeres (um)
93 double SLmax = 2.60;
94 /// Fourier coefficients
95 double f0 = -4333.6183355821190;
96 double fc1 = 2570.3953553521950;
97 double fs1 = -2051.8272789919760;
98 double fc2 = 1329.536116891330;
99 double fs2 = 302.2167845582220;
100 double fc3 = 104.9437703051160;
101 double fs3 = 218.3751742294220;
102
103 /// Cm: Cell capacitance per unit surface area
104 double Cm = 1.0;
105 /// sV: Surface to volume ratio
106 double sV = 1.0;
107 /// rho: Cellular resistivity
108 double rho = 1.0;
109
110 void actv_strn(const double c, const double I4f, const double dt, double& gf);
111 void actv_strs(const double X, const double dt, double& Tact, double& epsX);
112
113 double delta(const double r);
114
115 void getf(const int i, const int n, const Vector<double>& X, Vector<double>& f, const double fext,
116 Vector<double>& RPAR);
117 void getj(const int i, const int n, const Vector<double>& X, Array<double>& JAC);
118
119 void init(const int nX, Vector<double> &X);
120
121 void integ_cn2(const int imyo, const int nX, Vector<double>& X, const double Ts, const double Ti,
122 const double Istim, const double Ksac, Vector<int>& IPAR, Vector<double>& RPAR);
123
124 void integ_fe(const int imyo, const int nX, Vector<double>& X, const double Ts, const double Ti,
125 const double Istim, const double Ksac, Vector<double>& RPAR);
126
127 void integ_rk(const int imyo, const int nX, Vector<double>& X, const double Ts, const double Ti,
128 const double Istim, const double Ksac, Vector<double>& RPAR);
129
130 double step(const double r);
131
132};
133
134#endif
135
This module defines data structures for Bueno-Orovio cellular activation model for cardiac electrophy...
Definition CepModBo.h:19
double Cm
Cm: Cell capacitance per unit surface area.
Definition CepModBo.h:104
double c0
Resting Ca concentration (mM) := slow inward current variable (s)
Definition CepModBo.h:83
void actv_strs(const double X, const double dt, double &Tact, double &epsX)
Compute activation force for electromechanics based on active stress model.
Definition CepModBo.cpp:40
double Tscale
Time scaling.
Definition CepModBo.h:28
double f0
Fourier coefficients.
Definition CepModBo.h:95
double eps_i
Maximum activation (ms^{-1})
Definition CepModBo.h:75
double Voffset
Voltage offset parameter.
Definition CepModBo.h:30
BoModelParam u_o
Definition CepModBo.h:36
double SLmax
Max. length of sacromeres (um)
Definition CepModBo.h:93
void getf(const int i, const int n, const Vector< double > &X, Vector< double > &f, const double fext, Vector< double > &RPAR)
The 'zone_id' parameter is the myocardium zone id: 1, 2 or 3.
Definition CepModBo.cpp:60
double Vcrit
Critical voltage (mV)
Definition CepModBo.h:69
double xi_T
Transition rate (mV^{-1})
Definition CepModBo.h:77
double Vscale
Voltage scaling.
Definition CepModBo.h:26
double Vrest
Resting voltage (mV)
Definition CepModBo.h:67
double rho
rho: Cellular resistivity
Definition CepModBo.h:108
double alFa
Active force of sacromere (-mM^{-2})
Definition CepModBo.h:81
double SL0
Initial length of sacromeres (um)
Definition CepModBo.h:89
double sV
sV: Surface to volume ratio
Definition CepModBo.h:106
double mu_C
Viscous-type constant (ms-mM^{-2})
Definition CepModBo.h:85
double eta_T
Saturation potential.
Definition CepModBo.h:71
void actv_strn(const double c, const double I4f, const double dt, double &gf)
Compute macroscopic fiber strain based on sacromere force-length relationship and slow inward current...
Definition CepModBo.cpp:20
double eps_0
Minimum activation (ms^{-1})
Definition CepModBo.h:73
double SLmin
Min. length of sacromeres (um)
Definition CepModBo.h:91