39 #include <lifev/electrophysiology/solver/IonicModels/IonicLuoRudyI.hpp> 48 IonicLuoRudyI::IonicLuoRudyI() :
60 M_gK = computeGK (M_K0);
61 M_gK1 = computeGK1 (M_K0);
64 M_restingConditions.at (0) = -84.0;
66 M_restingConditions.at (1) = minf ( M_restingConditions.at (0) );
68 M_restingConditions.at (2) = hinf ( M_restingConditions.at (0) );
70 M_restingConditions.at (3) = jinf ( M_restingConditions.at (0) );
72 M_restingConditions.at (4) = dinf ( M_restingConditions.at (0) );
74 M_restingConditions.at (5) = finf ( M_restingConditions.at (0) );
76 M_restingConditions.at (6) = Xinf ( M_restingConditions.at (0) );
78 M_restingConditions.at (7) = 2e-4;
81 IonicLuoRudyI::IonicLuoRudyI ( Teuchos::ParameterList& parameterList ) :
84 M_ENa = parameterList.get (
"ENa", 54.4 );
85 M_gNa = parameterList.get (
"gNa", 23.3 );
86 M_gsi = parameterList.get (
"gsi", 0.09 );
87 M_K0 = parameterList.get (
"K0", 5.4 );
88 M_EK = parameterList.get (
"EK", -77.0 );
89 M_EK1 = parameterList.get (
"EK1", -87.26 );
90 M_EKp = parameterList.get (
"EKp", -87.26 );
91 M_gKp = parameterList.get (
"gKp", 0.0183 );
92 M_gb = parameterList.get (
"gb", 0.03921 );
94 M_gK = computeGK (M_K0);
95 M_gK1 = computeGK1 (M_K0);
98 M_restingConditions.at (0) = parameterList.get (
"V0", -84.0 );
100 M_restingConditions.at (1) = minf ( M_restingConditions.at (0) );
102 M_restingConditions.at (2) = hinf ( M_restingConditions.at (0) );
104 M_restingConditions.at (3) = jinf ( M_restingConditions.at (0) );
106 M_restingConditions.at (4) = dinf ( M_restingConditions.at (0) );
108 M_restingConditions.at (5) = finf ( M_restingConditions.at (0) );
110 M_restingConditions.at (6) = Xinf ( M_restingConditions.at (0) );
112 M_restingConditions.at (7) = parameterList.get (
"Ca0", 2e-4 );
115 IonicLuoRudyI::IonicLuoRudyI (
const IonicLuoRudyI& model )
127 M_gK = computeGK (M_K0);
128 M_gK1 = computeGK1 (M_K0);
129 M_numberOfEquations = model.M_numberOfEquations;
130 M_numberOfGatingVariables = model.M_numberOfGatingVariables;
131 M_restingConditions = model.M_restingConditions;
138 IonicLuoRudyI& IonicLuoRudyI::operator= (
const IonicLuoRudyI& model )
150 M_gK = computeGK (M_K0);
151 M_gK1 = computeGK1 (M_K0);
152 M_numberOfEquations = model.M_numberOfEquations;
153 M_numberOfGatingVariables = model.M_numberOfGatingVariables;
154 M_restingConditions = model.M_restingConditions;
163 void IonicLuoRudyI::computeGatingRhs (
const std::vector<Real>& v,
164 std::vector<Real>& rhs )
188 rhs[6] = dCa (V, d, f, Ca);
191 void IonicLuoRudyI::computeNonGatingRhs (
const std::vector<Real>& v,
192 std::vector<Real>& rhs )
200 rhs[0] = dCa (V, d, f, Ca);
203 void IonicLuoRudyI::computeRhs (
const std::vector<Real>& v,
204 std::vector<Real>& rhs )
216 rhs[0] = - Itot (V, m , h , j , d, f, X, Ca);
230 rhs[7] = dCa (V, d, f, Ca);
233 void IonicLuoRudyI::computeGatingVariablesWithRushLarsen ( std::vector<Real>& v,
const Real dt )
243 v[1] = minf (V) - ( minf (V) - m ) * std::exp (- dt / tm (V) );
244 v[2] = hinf (V) - ( hinf (V) - h ) * std::exp (- dt / th (V) );
245 v[3] = jinf (V) - ( jinf (V) - j ) * std::exp (- dt / tj (V) );
246 v[4] = dinf (V) - ( dinf (V) - d ) * std::exp (- dt / td (V) );
247 v[5] = finf (V) - ( finf (V) - f ) * std::exp (- dt / tf (V) );
248 v[6] = Xinf (V) - ( Xinf (V) - X ) * std::exp (- dt / tX (V) );
252 Real IonicLuoRudyI::computeLocalPotentialRhs (
const std::vector<Real>& v )
254 Real dPotential (0.0);
265 dPotential = - Itot (V, m , h , j , d, f, X, Ca);
271 void IonicLuoRudyI::showMe()
273 std::cout <<
"\n\n************************************";
274 std::cout <<
"\n\tHi, I'm the Luo Rudy Phase I model";
276 std::cout <<
"\nENa: " << M_ENa;
277 std::cout <<
"\ngNa: " << M_gNa;
278 std::cout <<
"\ngsi: " << M_gsi;
279 std::cout <<
"\nK0: " << M_K0;
280 std::cout <<
"\nEK: " << M_EK;
281 std::cout <<
"\nEK1: " << M_EK1;
282 std::cout <<
"\nEKp: " << M_EKp;
283 std::cout <<
"\ngKp: " << M_gKp;
284 std::cout <<
"\ngb: " << M_gb;
285 std::cout <<
"\n************************************\n\n";
void updateInverseJacobian(const UInt &iQuadPt)
double Real
Generic real data.