Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Types | Private Attributes | Static Private Attributes | List of all members
Nektar::CourtemancheRamirezNattel98 Class Reference

#include <CourtemancheRamirezNattel98.h>

Inheritance diagram for Nektar::CourtemancheRamirezNattel98:
Inheritance graph
[legend]
Collaboration diagram for Nektar::CourtemancheRamirezNattel98:
Collaboration graph
[legend]

Public Member Functions

 CourtemancheRamirezNattel98 (const LibUtilities::SessionReaderSharedPtr &pSession, const MultiRegions::ExpListSharedPtr &pField)
 Constructor.
virtual ~CourtemancheRamirezNattel98 ()
 Destructor.
- Public Member Functions inherited from Nektar::CellModel
 CellModel (const LibUtilities::SessionReaderSharedPtr &pSession, const MultiRegions::ExpListSharedPtr &pField)
virtual ~CellModel ()
void Initialise ()
 Initialise the cell model storage and set initial conditions.
void TimeIntegrate (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time)
 Time integrate the cell model by one PDE timestep.
void Update (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time)
 Compute the derivatives of cell model variables.
void GenerateSummary (SummaryList &s)
 Print a summary of the cell model.
unsigned int GetNumCellVariables ()
std::string GetCellVarName (unsigned int idx)
Array< OneD, NekDoubleGetCellSolutionCoeffs (unsigned int idx)
Array< OneD, NekDoubleGetCellSolution (unsigned int idx)

Static Public Member Functions

static CellModelSharedPtr create (const LibUtilities::SessionReaderSharedPtr &pSession, const MultiRegions::ExpListSharedPtr &pField)
 Creates an instance of this class.

Static Public Attributes

static std::string className
 Name of class.

Protected Member Functions

virtual void v_Update (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time)
 Computes the reaction terms $f(u,v)$ and $g(u,v)$.
virtual void v_GenerateSummary (SummaryList &s)
 Prints a summary of the model parameters.
virtual void v_SetInitialConditions ()
virtual std::string v_GetCellVarName (unsigned int idx)
- Protected Member Functions inherited from Nektar::CellModel
void LoadCellModel ()

Private Types

enum  Variants { eOriginal, eAF }

Private Attributes

NekDouble C_m
NekDouble g_Na
NekDouble g_K1
NekDouble g_to
NekDouble g_Kr
NekDouble g_Kur_scaling
NekDouble g_Ks
NekDouble g_b_Na
NekDouble g_b_Ca
NekDouble g_Ca_L
NekDouble R
NekDouble T
NekDouble F
NekDouble Na_o
NekDouble K_o
NekDouble sigma
NekDouble K_i
NekDouble K_m_Na_i
NekDouble I_Na_K_max
NekDouble I_NaCa_max
NekDouble gamma
NekDouble Ca_o
NekDouble K_m_Na
NekDouble K_m_Ca
NekDouble K_sat
NekDouble I_p_Ca_max
NekDouble Trpn_max
NekDouble Km_Trpn
NekDouble Cmdn_max
NekDouble Csqn_max
NekDouble Km_Cmdn
NekDouble Km_Csqn
NekDouble NSR_I_up_max
NekDouble NSR_I_Ca_max
NekDouble NSR_K_up
NekDouble JSR_K_rel
NekDouble JSR_V_cell
NekDouble JSR_V_rel
NekDouble JSR_V_up
NekDouble tau_tr
NekDouble K_Q10
NekDouble V_i
enum Variants model_variant

Static Private Attributes

static std::string lookupIds []
static std::string def

Additional Inherited Members

- Protected Attributes inherited from Nektar::CellModel
LibUtilities::SessionReaderSharedPtr m_session
 Session.
MultiRegions::ExpListSharedPtr m_field
 Transmembrane potential field from PDE system.
int m_nq
 Number of physical points.
int m_nvar
 Number of variables in cell model (inc. transmembrane voltage)
NekDouble m_lastTime
 Timestep for pde model.
int m_substeps
 Number of substeps to take.
Array< OneD, Array< OneD,
NekDouble > > 
m_cellSol
 Cell model solution variables.
Array< OneD, Array< OneD,
NekDouble > > 
m_wsp
 Cell model integration workspace.
bool m_useNodal
 Flag indicating whether nodal projection in use.
StdRegions::StdNodalTriExpSharedPtr m_nodalTri
 StdNodalTri for cell model calculations.
StdRegions::StdNodalTetExpSharedPtr m_nodalTet
Array< OneD, Array< OneD,
NekDouble > > 
m_nodalTmp
 Temporary array for nodal projection.
std::vector< int > m_concentrations
 Indices of cell model variables which are concentrations.
std::vector< int > m_gates
 Indices of cell model variables which are gates.
Array< OneD, Array< OneD,
NekDouble > > 
m_gates_tau
 Storage for gate tau values.

Detailed Description

Definition at line 43 of file CourtemancheRamirezNattel98.h.

Member Enumeration Documentation

Enumerator:
eOriginal 
eAF 

Definition at line 125 of file CourtemancheRamirezNattel98.h.

{
};

Constructor & Destructor Documentation

Nektar::CourtemancheRamirezNattel98::CourtemancheRamirezNattel98 ( const LibUtilities::SessionReaderSharedPtr pSession,
const MultiRegions::ExpListSharedPtr pField 
)

Constructor.

Definition at line 68 of file CourtemancheRamirezNattel98.cpp.

References C_m, Ca_o, Cmdn_max, Csqn_max, eAF, eOriginal, F, g_b_Ca, g_b_Na, g_Ca_L, g_K1, g_Kr, g_Ks, g_Kur_scaling, g_Na, g_to, gamma, I_Na_K_max, I_NaCa_max, I_p_Ca_max, JSR_K_rel, JSR_V_cell, JSR_V_rel, JSR_V_up, K_i, K_m_Ca, K_m_Na, K_m_Na_i, K_o, K_Q10, K_sat, Km_Cmdn, Km_Csqn, Km_Trpn, Nektar::CellModel::m_concentrations, Nektar::CellModel::m_gates, Nektar::CellModel::m_nvar, model_variant, Na_o, NSR_I_Ca_max, NSR_I_up_max, NSR_K_up, R, sigma, T, tau_tr, Trpn_max, and V_i.

: CellModel(pSession, pField)
{
model_variant = pSession->GetSolverInfoAsEnum<
C_m = 100; // picoF
g_Na = 7.8; // nanoS_per_picoF
g_K1 = 0.09; // nanoS_per_picoF
g_Kr = 0.029411765;
g_Ks = 0.12941176;
g_b_Na = 0.0006744375;
g_b_Ca = 0.001131;
R = 8.3143;
T = 310.0;
F = 96.4867;
Na_o = 140.0; // millimolar
K_o = 5.4; // millimolar
sigma = 1.0/7.0*(exp(Na_o/67.3)-1);
K_i = 1.5;
K_m_Na_i = 10.0;
I_Na_K_max = 0.59933874;
I_NaCa_max = 1600.0;
gamma = 0.35;
Ca_o = 1.8;
K_m_Na = 87.5;
K_m_Ca = 1.38;
K_sat = 0.1;
I_p_Ca_max = 0.275;
Trpn_max = 0.07;
Km_Trpn = 0.0005;
Cmdn_max = 0.05;
Csqn_max = 10.0;
Km_Cmdn = 0.00238;
Km_Csqn = 0.8;
NSR_I_up_max = 0.005;
NSR_I_Ca_max = 15.0;
NSR_K_up = 0.00092;
JSR_K_rel = 30.0;
JSR_V_cell = 20100.0;
JSR_V_rel = 0.0048 * JSR_V_cell;
JSR_V_up = 0.0552 * JSR_V_cell;
tau_tr = 180.0;
K_Q10 = 3.0;
V_i = 0.68*JSR_V_cell;
switch (model_variant) {
case eOriginal:
g_to = 0.1652; // nanoS_per_picoF
g_Ca_L = 0.12375;
break;
case eAF:
g_to = 0.0826; // nanoS_per_picoF
g_Ca_L = 0.037125;
break;
}
m_nvar = 21;
// List gates and concentrations
m_gates.push_back(1);
m_gates.push_back(2);
m_gates.push_back(3);
m_gates.push_back(4);
m_gates.push_back(5);
m_gates.push_back(6);
m_gates.push_back(7);
m_gates.push_back(8);
m_gates.push_back(9);
m_gates.push_back(10);
m_gates.push_back(11);
m_gates.push_back(12);
m_gates.push_back(13);
m_gates.push_back(14);
m_gates.push_back(15);
m_concentrations.push_back(16);
m_concentrations.push_back(17);
m_concentrations.push_back(18);
m_concentrations.push_back(19);
m_concentrations.push_back(20);
}
Nektar::CourtemancheRamirezNattel98::~CourtemancheRamirezNattel98 ( )
virtual

Destructor.

Definition at line 159 of file CourtemancheRamirezNattel98.cpp.

{
}

Member Function Documentation

static CellModelSharedPtr Nektar::CourtemancheRamirezNattel98::create ( const LibUtilities::SessionReaderSharedPtr pSession,
const MultiRegions::ExpListSharedPtr pField 
)
inlinestatic

Creates an instance of this class.

Definition at line 48 of file CourtemancheRamirezNattel98.h.

void Nektar::CourtemancheRamirezNattel98::v_GenerateSummary ( SummaryList s)
protectedvirtual

Prints a summary of the model parameters.

Implements Nektar::CellModel.

Definition at line 573 of file CourtemancheRamirezNattel98.cpp.

References Nektar::SolverUtils::AddSummaryItem(), lookupIds, and model_variant.

{
SolverUtils::AddSummaryItem(s, "Cell model","CourtemancheRamirezNattel98");
}
std::string Nektar::CourtemancheRamirezNattel98::v_GetCellVarName ( unsigned int  idx)
protectedvirtual

Reimplemented from Nektar::CellModel.

Definition at line 605 of file CourtemancheRamirezNattel98.cpp.

{
switch (idx)
{
case 0: return "u";
case 1: return "m";
case 2: return "h";
case 3: return "j";
case 4: return "o_a";
case 5: return "o_i";
case 6: return "u_a";
case 7: return "u_i";
case 8: return "x_r";
case 9: return "x_s";
case 10: return "d";
case 11: return "f";
case 12: return "f_Ca";
case 13: return "U";
case 14: return "V";
case 15: return "W";
case 16: return "Na_i";
case 17: return "Ca_i";
case 18: return "K_i";
case 19: return "Ca_rel";
case 20: return "Ca_up";
default: return "unknown";
}
}
void Nektar::CourtemancheRamirezNattel98::v_SetInitialConditions ( )
protectedvirtual

Implements Nektar::CellModel.

Definition at line 580 of file CourtemancheRamirezNattel98.cpp.

References Vmath::Fill(), Nektar::CellModel::m_cellSol, and Nektar::CellModel::m_nq.

{
Vmath::Fill(m_nq, -81.0, m_cellSol[0], 1);
Vmath::Fill(m_nq, 2.908e-03, m_cellSol[1], 1);
Vmath::Fill(m_nq, 9.649e-01, m_cellSol[2], 1);
Vmath::Fill(m_nq, 9.775e-01, m_cellSol[3], 1);
Vmath::Fill(m_nq, 3.043e-02, m_cellSol[4], 1);
Vmath::Fill(m_nq, 9.992e-01, m_cellSol[5], 1);
Vmath::Fill(m_nq, 4.966e-03, m_cellSol[6], 1);
Vmath::Fill(m_nq, 9.986e-01, m_cellSol[7], 1);
Vmath::Fill(m_nq, 3.296e-05, m_cellSol[8], 1);
Vmath::Fill(m_nq, 1.869e-02, m_cellSol[9], 1);
Vmath::Fill(m_nq, 1.367e-04, m_cellSol[10], 1);
Vmath::Fill(m_nq, 9.996e-01, m_cellSol[11], 1);
Vmath::Fill(m_nq, 7.755e-01, m_cellSol[12], 1);
Vmath::Fill(m_nq, 2.35e-112, m_cellSol[13], 1);
Vmath::Fill(m_nq, 1.0, m_cellSol[14], 1);
Vmath::Fill(m_nq, 0.9992, m_cellSol[15], 1);
Vmath::Fill(m_nq, 1.117e+01, m_cellSol[16], 1);
Vmath::Fill(m_nq, 1.013e-04, m_cellSol[17], 1);
Vmath::Fill(m_nq, 1.39e+02, m_cellSol[18], 1);
Vmath::Fill(m_nq, 1.488, m_cellSol[19], 1);
Vmath::Fill(m_nq, 1.488, m_cellSol[20], 1);
}
void Nektar::CourtemancheRamirezNattel98::v_Update ( const Array< OneD, const Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray,
const NekDouble  time 
)
protectedvirtual

Computes the reaction terms $f(u,v)$ and $g(u,v)$.

Implements Nektar::CellModel.

Definition at line 166 of file CourtemancheRamirezNattel98.cpp.

References ASSERTL0, C_m, Ca_o, Cmdn_max, Csqn_max, F, g_b_Ca, g_b_Na, g_Ca_L, g_K1, g_Kr, g_Ks, g_Kur_scaling, g_Na, g_to, gamma, I_Na_K_max, I_NaCa_max, I_p_Ca_max, JSR_K_rel, JSR_V_rel, JSR_V_up, K_i, K_m_Ca, K_m_Na, K_m_Na_i, K_o, K_Q10, K_sat, Km_Cmdn, Km_Csqn, Km_Trpn, Nektar::CellModel::m_gates_tau, Nektar::CellModel::m_nq, Na_o, NSR_I_Ca_max, NSR_I_up_max, NSR_K_up, R, Vmath::Sadd(), Vmath::Sdiv(), sigma, Vmath::Smul(), Vmath::Svtsvtp(), Vmath::Svtvm(), Vmath::Svtvp(), T, tau_tr, Trpn_max, V_i, Vmath::Vadd(), Vmath::Vdiv(), Vmath::Vexp(), Vmath::Vlog(), Vmath::Vmul(), Vmath::Vpow(), Vmath::Vsub(), and Vmath::Zero().

{
ASSERTL0(inarray.get() != outarray.get(),
"Must have different arrays for input and output.");
// Variables
// 0 V membrane potential
// 2 m fast sodium current m gate
// 3 h fast sodium current h gate
// 4 j fast sodium current j gate
// 5 o_a transient outward potassium o_a gate
// 6 o_i transient outward potassium o_i gate
// 7 u_a ultra-rapid delayed rectifier K current gate
// 8 u_i ultra-rapid delayed rectifier K current gate
// 9 x_r rapid delayed rectifier K current gate
// 10 x_s slow delayed rectifier K current gate
// 11 d L_type calcium gate
// 12 f L-type calcium gate
// 13 f_Ca L-type calcium gate
// 14 u Ca release u gate
// 15 v Ca release v gate
// 16 w Ca release w gate
// 17 Na_i Sodium
// 18 Ca_i Calcium
// 19 K_i Potassium
// 20 Ca_rel Calcium Rel
// 21 Ca_up Calcium up
int n = m_nq;
int i = 0;
NekDouble alpha, beta;
Vmath::Zero(n, outarray[0], 1);
Array<OneD, NekDouble> &tmp = outarray[11];
Array<OneD, NekDouble> &tmp2 = outarray[12];
// E_Na
Array<OneD, NekDouble> &tmp_E_na = outarray[14];
Vmath::Sdiv(n, Na_o, inarray[16], 1, tmp_E_na, 1);
Vmath::Vlog(n, tmp_E_na, 1, tmp_E_na, 1);
Vmath::Smul(n, R*T/F, tmp_E_na, 1, tmp_E_na, 1);
// Sodium I_Na
Array<OneD, NekDouble> &tmp_I_Na = outarray[15];
Vmath::Vsub(n, inarray[0], 1, tmp_E_na, 1, tmp_I_Na, 1);
Vmath::Vmul(n, inarray[1], 1, tmp_I_Na, 1, tmp_I_Na, 1);
Vmath::Vmul(n, inarray[1], 1, tmp_I_Na, 1, tmp_I_Na, 1);
Vmath::Vmul(n, inarray[1], 1, tmp_I_Na, 1, tmp_I_Na, 1);
Vmath::Vmul(n, inarray[2], 1, tmp_I_Na, 1, tmp_I_Na, 1);
Vmath::Vmul(n, inarray[3], 1, tmp_I_Na, 1, tmp_I_Na, 1);
Vmath::Smul(n, C_m*g_Na, tmp_I_Na, 1, tmp_I_Na, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_Na, 1, outarray[0], 1);
Vmath::Smul(n, -1.0, tmp_I_Na, 1, outarray[16], 1);
// Background current, sodium
Array<OneD, NekDouble> &tmp_I_b_Na = outarray[15];
Vmath::Vsub(n, inarray[0], 1, tmp_E_na, 1, tmp_I_b_Na, 1);
Vmath::Smul(n, C_m*g_b_Na, tmp_I_b_Na, 1, tmp_I_b_Na, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_b_Na, 1, outarray[0], 1);
Vmath::Vsub(n, outarray[16], 1, tmp_I_b_Na, 1, outarray[16], 1);
// V - E_K
Array<OneD, NekDouble> &tmp_V_E_k = outarray[14];
Vmath::Sdiv(n, K_o, inarray[18], 1, tmp_V_E_k, 1);
Vmath::Vlog(n, tmp_V_E_k, 1, tmp_V_E_k, 1);
Vmath::Smul(n, R*T/F, tmp_V_E_k, 1, tmp_V_E_k, 1);
Vmath::Vsub(n, inarray[0], 1, tmp_V_E_k, 1, tmp_V_E_k, 1);
// Potassium I_K1
Array<OneD, NekDouble> &tmp_I_K1 = outarray[15];
Vmath::Sadd(n, 80.0, inarray[0], 1, tmp_I_K1, 1);
Vmath::Smul(n, 0.07, tmp_I_K1, 1, tmp_I_K1, 1);
Vmath::Vexp(n, tmp_I_K1, 1, tmp_I_K1, 1);
Vmath::Sadd(n, 1.0, tmp_I_K1, 1, tmp_I_K1, 1);
Vmath::Vdiv(n, tmp_V_E_k, 1, tmp_I_K1, 1, tmp_I_K1, 1);
Vmath::Smul(n, C_m*g_K1, tmp_I_K1, 1, tmp_I_K1, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_K1, 1, outarray[0], 1);
Vmath::Smul(n, -1.0, tmp_I_K1, 1, outarray[18], 1);
// Transient Outward K+ current
Array<OneD, NekDouble> &tmp_I_to = outarray[15];
Vmath::Vmul(n, inarray[5], 1, tmp_V_E_k, 1, tmp_I_to, 1);
Vmath::Vmul(n, inarray[4], 1, tmp_I_to, 1, tmp_I_to, 1);
Vmath::Vmul(n, inarray[4], 1, tmp_I_to, 1, tmp_I_to, 1);
Vmath::Vmul(n, inarray[4], 1, tmp_I_to, 1, tmp_I_to, 1);
Vmath::Smul(n, C_m*g_to, tmp_I_to, 1, tmp_I_to, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_to, 1, outarray[0], 1);
Vmath::Vsub(n, outarray[18], 1, tmp_I_to, 1, outarray[18], 1);
// Ultrarapid Delayed rectifier K+ current
Array<OneD, NekDouble> &tmp_I_kur = outarray[15];
Vmath::Sadd(n, -15.0, inarray[0], 1, tmp_I_kur, 1);
Vmath::Smul(n, -1.0/13.0, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Vexp(n, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Sadd(n, 1.0, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Sdiv(n, 0.05, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Sadd(n, 0.005, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Vmul(n, tmp_V_E_k, 1, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Vmul(n, inarray[6], 1, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Vmul(n, inarray[6], 1, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Vmul(n, inarray[6], 1, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Vmul(n, inarray[7], 1, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Smul(n, C_m*g_Kur_scaling, tmp_I_kur, 1, tmp_I_kur, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_kur, 1, outarray[0], 1);
Vmath::Vsub(n, outarray[18], 1, tmp_I_kur, 1, outarray[18], 1);
// Rapid delayed outward rectifier K+ current
Array<OneD, NekDouble> &tmp_I_Kr = outarray[15];
Vmath::Sadd(n, 15.0, inarray[0], 1, tmp_I_Kr, 1);
Vmath::Smul(n, 1.0/22.4, tmp_I_Kr, 1, tmp_I_Kr, 1);
Vmath::Vexp(n, tmp_I_Kr, 1, tmp_I_Kr, 1);
Vmath::Sadd(n, 1.0, tmp_I_Kr, 1, tmp_I_Kr, 1);
Vmath::Vdiv(n, tmp_V_E_k, 1, tmp_I_Kr, 1, tmp_I_Kr, 1);
Vmath::Vmul(n, inarray[8], 1, tmp_I_Kr, 1, tmp_I_Kr, 1);
Vmath::Smul(n, C_m*g_Kr, tmp_I_Kr, 1, tmp_I_Kr, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_Kr, 1, outarray[0], 1);
Vmath::Vsub(n, outarray[18], 1, tmp_I_Kr, 1, outarray[18], 1);
// Slow delayed outward rectifier K+ Current
Array<OneD, NekDouble> &tmp_I_Ks = outarray[15];
Vmath::Vmul(n, inarray[9], 1, tmp_V_E_k, 1, tmp_I_Ks, 1);
Vmath::Vmul(n, inarray[9], 1, tmp_I_Ks, 1, tmp_I_Ks, 1);
Vmath::Smul(n, C_m*g_Ks, tmp_I_Ks, 1, tmp_I_Ks, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_Ks, 1, outarray[0], 1);
Vmath::Vsub(n, outarray[18], 1, tmp_I_Ks, 1, outarray[18], 1);
// Background current, calcium
Array<OneD, NekDouble> &tmp_I_b_Ca = outarray[1];
Vmath::Sdiv(n, Ca_o, inarray[17], 1, tmp_I_b_Ca, 1);
Vmath::Vlog(n, tmp_I_b_Ca, 1, tmp_I_b_Ca, 1);
Vmath::Smul(n, 0.5*R*T/F, tmp_I_b_Ca, 1, tmp_I_b_Ca, 1);
Vmath::Vsub(n, inarray[0], 1, tmp_I_b_Ca, 1, tmp_I_b_Ca, 1);
Vmath::Smul(n, C_m*g_b_Ca, tmp_I_b_Ca, 1, tmp_I_b_Ca, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_b_Ca, 1, outarray[0], 1);
// L-Type Ca2+ current
Array<OneD, NekDouble> &tmp_I_Ca_L = outarray[2];
Vmath::Sadd(n, -65.0, inarray[0], 1, tmp_I_Ca_L, 1);
Vmath::Vmul(n, inarray[10], 1, tmp_I_Ca_L, 1, tmp_I_Ca_L, 1);
Vmath::Vmul(n, inarray[11], 1, tmp_I_Ca_L, 1, tmp_I_Ca_L, 1);
Vmath::Vmul(n, inarray[12], 1, tmp_I_Ca_L, 1, tmp_I_Ca_L, 1);
Vmath::Smul(n, C_m*g_Ca_L, tmp_I_Ca_L, 1, tmp_I_Ca_L, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_Ca_L, 1, outarray[0], 1);
// Na-K Pump Current
Array<OneD, NekDouble> &tmp_f_Na_k = outarray[14];
Vmath::Smul(n, -F/R/T, inarray[0], 1, tmp_f_Na_k, 1);
Vmath::Vexp(n, tmp_f_Na_k, 1, tmp, 1);
Vmath::Smul(n, 0.0365*sigma, tmp, 1, tmp, 1);
Vmath::Smul(n, -0.1*F/R/T, inarray[0], 1, tmp_f_Na_k, 1);
Vmath::Vexp(n, tmp_f_Na_k, 1, tmp_f_Na_k, 1);
Vmath::Smul(n, 0.1245, tmp_f_Na_k, 1, tmp_f_Na_k, 1);
Vmath::Vadd(n, tmp_f_Na_k, 1, tmp, 1, tmp_f_Na_k, 1);
Vmath::Sadd(n, 1.0, tmp_f_Na_k, 1, tmp_f_Na_k, 1);
Array<OneD, NekDouble> &tmp_I_Na_K = outarray[15];
Vmath::Sdiv(n, K_m_Na_i, inarray[16], 1, tmp_I_Na_K, 1);
Vmath::Vpow(n, tmp_I_Na_K, 1, 1.5, tmp_I_Na_K, 1);
Vmath::Sadd(n, 1.0, tmp_I_Na_K, 1, tmp_I_Na_K, 1);
Vmath::Vmul(n, tmp_f_Na_k, 1, tmp_I_Na_K, 1, tmp_I_Na_K, 1);
Vmath::Sdiv(n, C_m*I_Na_K_max*K_o/(K_o+K_i), tmp_I_Na_K, 1, tmp_I_Na_K, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_Na_K, 1, outarray[0], 1);
Vmath::Svtvp(n, -3.0, tmp_I_Na_K, 1, outarray[16], 1, outarray[16], 1);
Vmath::Svtvp(n, 2.0, tmp_I_Na_K, 1, outarray[18], 1, outarray[18], 1);
// Na-Ca exchanger current
Array<OneD, NekDouble> &tmp_I_Na_Ca = outarray[3];
Vmath::Smul(n, (gamma-1)*F/R/T, inarray[0], 1, tmp, 1);
Vmath::Vexp(n, tmp, 1, tmp, 1);
Vmath::Smul(n, K_sat, tmp, 1, tmp_I_Na_Ca, 1);
Vmath::Sadd(n, 1.0, tmp_I_Na_Ca, 1, tmp_I_Na_Ca, 1);
Vmath::Smul(n, (K_m_Na*K_m_Na*K_m_Na + Na_o*Na_o*Na_o)*(K_m_Ca + Ca_o), tmp_I_Na_Ca, 1, tmp_I_Na_Ca, 1);
Vmath::Smul(n, Na_o*Na_o*Na_o, tmp, 1, tmp2, 1);
Vmath::Vmul(n, tmp2, 1, inarray[17], 1, tmp2, 1);
Vmath::Smul(n, gamma*F/R/T, inarray[0], 1, tmp, 1);
Vmath::Vexp(n, tmp, 1, tmp, 1);
Vmath::Vmul(n, inarray[16], 1, tmp, 1, tmp, 1);
Vmath::Vmul(n, inarray[16], 1, tmp, 1, tmp, 1);
Vmath::Vmul(n, inarray[16], 1, tmp, 1, tmp, 1);
Vmath::Svtvm(n, Ca_o, tmp, 1, tmp2, 1, tmp, 1);
Vmath::Smul(n, C_m*I_NaCa_max, tmp, 1, tmp, 1);
Vmath::Vdiv(n, tmp, 1, tmp_I_Na_Ca, 1, tmp_I_Na_Ca, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_Na_Ca, 1, outarray[0], 1);
Vmath::Svtvp(n, -3.0, tmp_I_Na_Ca, 1, outarray[16], 1, outarray[16], 1);
// Calcium Pump current
Array<OneD, NekDouble> &tmp_I_p_Ca = outarray[4];
Vmath::Sadd(n, 0.0005, inarray[17], 1, tmp_I_p_Ca, 1);
Vmath::Vdiv(n, inarray[17], 1, tmp_I_p_Ca, 1, tmp_I_p_Ca, 1);
Vmath::Smul(n, C_m*I_p_Ca_max, tmp_I_p_Ca, 1, tmp_I_p_Ca, 1);
Vmath::Vsub(n, outarray[0], 1, tmp_I_p_Ca, 1, outarray[0], 1);
// Scale currents by capacitance
Vmath::Smul(n, 1.0/C_m, outarray[0], 1, outarray[0], 1);
// Scale sodium and potassium by FV_i
Vmath::Smul(n, 1.0/F/V_i, outarray[16], 1, outarray[16], 1);
Vmath::Smul(n, 1.0/F/V_i, outarray[18], 1, outarray[18], 1);
// I_tr
Array<OneD, NekDouble> &tmp_I_tr = outarray[5];
Vmath::Vsub(n, inarray[20], 1, inarray[19], 1, tmp_I_tr, 1);
Vmath::Smul(n, 1.0/tau_tr, tmp_I_tr, 1, tmp_I_tr, 1);
// I_up_leak
Array<OneD, NekDouble> &tmp_I_up_leak = outarray[6];
Vmath::Smul(n, NSR_I_up_max/NSR_I_Ca_max, inarray[20], 1, tmp_I_up_leak, 1);
// I_up
Array<OneD, NekDouble> &tmp_I_up = outarray[7];
Vmath::Sdiv(n, NSR_K_up, inarray[17], 1, tmp_I_up, 1);
Vmath::Sadd(n, 1.0, tmp_I_up, 1, tmp_I_up, 1);
Vmath::Sdiv(n, NSR_I_up_max, tmp_I_up, 1, tmp_I_up, 1);
// I_rel
Array<OneD, NekDouble> &tmp_I_rel = outarray[8];
Vmath::Vsub(n, inarray[19], 1, inarray[17], 1, tmp_I_rel, 1);
Vmath::Vmul(n, tmp_I_rel, 1, inarray[13], 1, tmp_I_rel, 1);
Vmath::Vmul(n, tmp_I_rel, 1, inarray[13], 1, tmp_I_rel, 1);
Vmath::Vmul(n, tmp_I_rel, 1, inarray[14], 1, tmp_I_rel, 1);
Vmath::Vmul(n, tmp_I_rel, 1, inarray[15], 1, tmp_I_rel, 1);
Vmath::Smul(n, JSR_K_rel, tmp_I_rel, 1, tmp_I_rel, 1);
// B1
Array<OneD, NekDouble> &tmp_B1 = outarray[9];
Vmath::Svtvm(n, 2.0, tmp_I_Na_Ca, 1, tmp_I_p_Ca, 1, tmp_B1, 1);
Vmath::Vsub(n, tmp_B1, 1, tmp_I_Ca_L, 1, tmp_B1, 1);
Vmath::Vsub(n, tmp_B1, 1, tmp_I_b_Ca, 1, tmp_B1, 1);
Vmath::Smul(n, 0.5/F, tmp_B1, 1, tmp_B1, 1);
Vmath::Svtvp(n, JSR_V_up, tmp_I_up_leak, 1, tmp_B1, 1, tmp_B1, 1);
Vmath::Svtvp(n, -JSR_V_up, tmp_I_up, 1, tmp_B1, 1, tmp_B1, 1);
Vmath::Svtvp(n, JSR_V_rel, tmp_I_rel, 1, tmp_B1, 1, tmp_B1, 1);
Vmath::Smul(n, 1.0/V_i, tmp_B1, 1, tmp_B1, 1);
// B2
Array<OneD, NekDouble> &tmp_B2 = outarray[10];
Vmath::Sadd(n, Km_Cmdn, inarray[17], 1, tmp_B2, 1);
Vmath::Vmul(n, tmp_B2, 1, tmp_B2, 1, tmp_B2, 1);
Vmath::Sdiv(n, Cmdn_max*Km_Cmdn, tmp_B2, 1, tmp_B2, 1);
Vmath::Sadd(n, Km_Trpn, inarray[17], 1, tmp, 1);
Vmath::Vmul(n, tmp, 1, tmp, 1, tmp, 1);
Vmath::Sdiv(n, Trpn_max*Km_Trpn, tmp, 1, tmp, 1);
Vmath::Vadd(n, tmp, 1, tmp_B2, 1, tmp_B2, 1);
Vmath::Sadd(n, 1.0, tmp_B2, 1, tmp_B2, 1);
// Calcium concentration (18)
Vmath::Vdiv(n, tmp_B1, 1, tmp_B2, 1, outarray[17], 1);
// Calcium up (21)
Vmath::Vsub(n, tmp_I_up, 1, tmp_I_up_leak, 1, outarray[20], 1);
Vmath::Svtvp(n, -JSR_V_rel/JSR_V_up, tmp_I_tr, 1, outarray[20], 1, outarray[20], 1);
// Calcium rel (20)
Vmath::Vsub(n, tmp_I_tr, 1, tmp_I_rel, 1, tmp, 1);
Vmath::Sadd(n, Km_Csqn, inarray[19], 1, outarray[19], 1);
Vmath::Vmul(n, outarray[19], 1, outarray[19], 1, outarray[19], 1);
Vmath::Sdiv(n, Csqn_max*Km_Csqn, outarray[19], 1, outarray[19], 1);
Vmath::Sadd(n, 1.0, outarray[19], 1, outarray[19], 1);
Vmath::Vdiv(n, tmp, 1, outarray[19], 1, outarray[19], 1);
// Process gating variables
const NekDouble * v;
const NekDouble * x;
NekDouble * x_tau;
NekDouble * x_new;
// m
for (i = 0, v = &inarray[0][0], x = &inarray[1][0], x_new = &outarray[1][0], x_tau = &m_gates_tau[0][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
alpha = (*v == (-47.13)) ? 3.2 : (0.32*(*v+47.13))/(1.0-exp((-0.1)*(*v + 47.13)));
beta = 0.08*exp(-(*v)/11.0);
*x_tau = 1.0/(alpha + beta);
*x_new = alpha*(*x_tau);
}
// h
for (i = 0, v = &inarray[0][0], x = &inarray[2][0], x_new = &outarray[2][0], x_tau = &m_gates_tau[1][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
alpha = (*v >= -40.0) ? 0.0 : 0.135*exp(-((*v)+80.0)/6.8);
beta = (*v >= -40.0) ? 1.0/(0.13*(1.0+exp(-(*v + 10.66)/11.1)))
: 3.56*exp(0.079*(*v))+310000.0*exp(0.35*(*v));
*x_tau = 1.0/(alpha + beta);
*x_new = alpha*(*x_tau);
}
// j
for (i = 0, v = &inarray[0][0], x = &inarray[3][0], x_new = &outarray[3][0], x_tau = &m_gates_tau[2][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
alpha = (*v >= -40.0) ? 0.0
: (-127140.0*exp(0.2444*(*v))-3.474e-05*exp(-0.04391*(*v)))*(((*v)+37.78)/(1.0+exp(0.311*((*v)+79.23))));
beta = (*v >= -40.0) ? (0.3*exp(-2.535e-07*(*v))/(1.0+exp(-0.1*(*v+32.0))))
: 0.1212*exp(-0.01052*(*v))/(1.0+exp(-0.1378*(*v+40.14)));
*x_tau = 1.0/(alpha + beta);
*x_new = alpha*(*x_tau);
}
// oa
for (i = 0, v = &inarray[0][0], x = &inarray[4][0], x_new = &outarray[4][0], x_tau = &m_gates_tau[3][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
alpha = 0.65/(exp(-(*v+10.0)/8.5) + exp(-(*v-30.0)/59.0));
beta = 0.65/(2.5 + exp((*v+82.0)/17.0));
*x_tau = 1.0/K_Q10/(alpha + beta);
*x_new = (1.0/(1.0+exp(-(*v+20.47)/17.54)));
}
// oi
for (i = 0, v = &inarray[0][0], x = &inarray[5][0], x_new = &outarray[5][0], x_tau = &m_gates_tau[4][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
alpha = 1.0/(18.53 + exp((*v+113.7)/10.95));
beta = 1.0/(35.56 + exp(-(*v+1.26)/7.44));
*x_tau = 1.0/K_Q10/(alpha + beta);
*x_new = (1.0/(1.0+exp((*v+43.1)/5.3)));
}
// ua
for (i = 0, v = &inarray[0][0], x = &inarray[6][0], x_new = &outarray[6][0], x_tau = &m_gates_tau[5][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
alpha = 0.65/(exp(-(*v+10.0)/8.5)+exp(-(*v-30.0)/59.0));
beta = 0.65/(2.5+exp((*v+82.0)/17.0));
*x_tau = 1.0/K_Q10/(alpha + beta);
*x_new = 1.0/(1.0+exp(-(*v+30.3)/9.6));
}
// ui
for (i = 0, v = &inarray[0][0], x = &inarray[7][0], x_new = &outarray[7][0], x_tau = &m_gates_tau[6][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
alpha = 1.0/(21.0 + exp(-(*v-185.0)/28.0));
beta = exp((*v-158.0)/16.0);
*x_tau = 1.0/K_Q10/(alpha + beta);
*x_new = 1.0/(1.0+exp((*v-99.45)/27.48));
}
// xr
for (i = 0, v = &inarray[0][0], x = &inarray[8][0], x_new = &outarray[8][0], x_tau = &m_gates_tau[7][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
alpha = 0.0003*(*v+14.1)/(1-exp(-(*v+14.1)/5.0));
beta = 7.3898e-5*(*v-3.3328)/(exp((*v-3.3328)/5.1237)-1.0);
*x_tau = 1.0/(alpha + beta);
*x_new = 1.0/(1+exp(-(*v+14.1)/6.5));
}
// xs
for (i = 0, v = &inarray[0][0], x = &inarray[9][0], x_new = &outarray[9][0], x_tau = &m_gates_tau[8][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
alpha = 4e-5*(*v-19.9)/(1.0-exp(-(*v-19.9)/17.0));
beta = 3.5e-5*(*v-19.9)/(exp((*v-19.9)/9.0)-1.0);
*x_tau = 0.5/(alpha + beta);
*x_new = 1.0/sqrt(1.0+exp(-(*v-19.9)/12.7));
}
// d
for (i = 0, v = &inarray[0][0], x = &inarray[10][0], x_new = &outarray[10][0], x_tau = &m_gates_tau[9][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
*x_tau = (1-exp(-(*v+10.0)/6.24))/(0.035*(*v+10.0)*(1+exp(-(*v+10.0)/6.24)));
*x_new = 1.0/(1.0 + exp(-(*v+10)/8.0));
}
// f
for (i = 0, v = &inarray[0][0], x = &inarray[11][0], x_new = &outarray[11][0], x_tau = &m_gates_tau[10][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
//alpha = 1.0/(1.0 + exp((*v+28.0)/6.9));
*x_tau = 9.0/(0.0197*exp(-0.0337*0.0337*(*v+10.0)*(*v+10.0))+0.02);
*x_new = exp((-(*v + 28.0)) / 6.9) / (1.0 + exp((-(*v + 28.0)) / 6.9));
}
// f_Ca
for (i = 0, v = &inarray[0][0], x = &inarray[12][0], x_new = &outarray[12][0], x_tau = &m_gates_tau[11][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
*x_tau = 2.0;
*x_new = 1.0/(1.0+inarray[17][i]/0.00035);
}
Array<OneD, NekDouble> &tmp_Fn = outarray[15];
Vmath::Svtsvtp(n, 0.5*5e-13/F, tmp_I_Ca_L, 1, -0.2*5e-13/F, tmp_I_Na_Ca, 1, tmp_Fn, 1);
Vmath::Svtvm(n, 1e-12*JSR_V_rel, tmp_I_rel, 1, tmp_Fn, 1, tmp_Fn, 1);
// u
for (i = 0, v = &tmp_Fn[0], x = &inarray[13][0], x_new = &outarray[13][0], x_tau = &m_gates_tau[12][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
*x_tau = 8.0;
*x_new = 1.0/(1.0 + exp(-(*v - 3.4175e-13)/1.367e-15));
}
// v
for (i = 0, v = &tmp_Fn[0], x = &inarray[14][0], x_new = &outarray[14][0], x_tau = &m_gates_tau[13][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
*x_tau = 1.91 + 2.09/(1.0+exp(-(*v - 3.4175e-13)/13.67e-16));
*x_new = 1.0 - 1.0/(1.0 + exp(-(*v - 6.835e-14)/13.67e-16));
}
// w
for (i = 0, v = &inarray[0][0], x = &inarray[15][0], x_new = &outarray[15][0], x_tau = &m_gates_tau[14][0];
i < n; ++i, ++v, ++x, ++x_new, ++x_tau)
{
*x_tau = 6.0*(1.0-exp(-(*v-7.9)/5.0))/(1.0+0.3*exp(-(*v-7.9)/5.0))/(*v-7.9);
*x_new = 1.0 - 1.0/(1.0 + exp(-(*v - 40.0)/17.0));
}
}

Member Data Documentation

NekDouble Nektar::CourtemancheRamirezNattel98::C_m
private

Definition at line 82 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::Ca_o
private

Definition at line 103 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

std::string Nektar::CourtemancheRamirezNattel98::className
static
Initial value:
"CourtemancheRamirezNattel98",
"Ionic model of human atrial cell electrophysiology.")

Name of class.

Definition at line 57 of file CourtemancheRamirezNattel98.h.

NekDouble Nektar::CourtemancheRamirezNattel98::Cmdn_max
private

Definition at line 110 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::Csqn_max
private

Definition at line 111 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

std::string Nektar::CourtemancheRamirezNattel98::def
staticprivate
Initial value:

Definition at line 132 of file CourtemancheRamirezNattel98.h.

NekDouble Nektar::CourtemancheRamirezNattel98::F
private

Definition at line 94 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::g_b_Ca
private

Definition at line 90 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::g_b_Na
private

Definition at line 89 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::g_Ca_L
private

Definition at line 91 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::g_K1
private

Definition at line 84 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::g_Kr
private

Definition at line 86 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::g_Ks
private

Definition at line 88 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::g_Kur_scaling
private

Definition at line 87 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::g_Na
private

Definition at line 83 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::g_to
private

Definition at line 85 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::gamma
private

Definition at line 102 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::I_Na_K_max
private

Definition at line 100 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::I_NaCa_max
private

Definition at line 101 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::I_p_Ca_max
private

Definition at line 107 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::JSR_K_rel
private

Definition at line 117 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::JSR_V_cell
private

Definition at line 118 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98().

NekDouble Nektar::CourtemancheRamirezNattel98::JSR_V_rel
private

Definition at line 119 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::JSR_V_up
private

Definition at line 120 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::K_i
private

Definition at line 98 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::K_m_Ca
private

Definition at line 105 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::K_m_Na
private

Definition at line 104 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::K_m_Na_i
private

Definition at line 99 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::K_o
private

Definition at line 96 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::K_Q10
private

Definition at line 122 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::K_sat
private

Definition at line 106 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::Km_Cmdn
private

Definition at line 112 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::Km_Csqn
private

Definition at line 113 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::Km_Trpn
private

Definition at line 109 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

std::string Nektar::CourtemancheRamirezNattel98::lookupIds
staticprivate
enum Variants Nektar::CourtemancheRamirezNattel98::model_variant
private
NekDouble Nektar::CourtemancheRamirezNattel98::Na_o
private

Definition at line 95 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::NSR_I_Ca_max
private

Definition at line 115 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::NSR_I_up_max
private

Definition at line 114 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::NSR_K_up
private

Definition at line 116 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::R
private

Definition at line 92 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::sigma
private

Definition at line 97 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::T
private

Definition at line 93 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::tau_tr
private

Definition at line 121 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::Trpn_max
private

Definition at line 108 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().

NekDouble Nektar::CourtemancheRamirezNattel98::V_i
private

Definition at line 123 of file CourtemancheRamirezNattel98.h.

Referenced by CourtemancheRamirezNattel98(), and v_Update().