svMultiPhysics
Loading...
Searching...
No Matches
CepModAp.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_AP_H
5#define CEP_MOD_AP_H
6
7#include "Array.h"
8#include "Vector.h"
9
10/// @brief This module defines data structures for Aliev-Panfilov cellular
11/// activation model for cardiac electrophysiology.
12///
13/// The classes defined here duplicate the data structures in the Fortran APMOD module defined in CEPMOD_AP.f
14/// and PARAMS_AP.f files.
16{
17 public:
18 CepModAp();
19 ~CepModAp();
20
21 // Scaling factors
22 /// Voltage scaling
23 double Vscale = 100.0;
24
25 /// Time scaling
26 double Tscale = 12.90;
27
28 /// Voltage offset parameter
29 double Voffset = -80.0;
30
31 /// Model parameters
32 double alpha = 1.E-2;
33 double a = 2.E-3;
34 double b = 0.150;
35 double c = 8.0;
36 double mu1 = 0.20;
37 double mu2 = 0.30;
38
39 // Electromechanics coupling parameters: active stress model
40 /// Resting voltage (mV)
41 double Vrest = -80.0;
42
43 /// Critical voltage (mV)
44 double Vcrit = -30.0;
45
46 /// Saturation potential
47 double eta_T = 5.E-3;
48
49 /// Minimum activation (ms^{-1})
50 double eps_0 = 0.10;
51
52 /// Maximum activation (ms^{-1})
53 double eps_i = 1.0;
54
55 /// Transition rate (mV^{-1})
56 double xi_T = 1.0;
57
58 /// Cm: Cell capacitance per unit surface area
59 double Cm = 1.0;
60
61 /// sV: Surface to volume ratio
62 double sV = 1.0;
63
64 /// rho: Cellular resistivity
65 double rho = 1.0;
66
67 void actv_strs(const double X, const double dt, double& Tact, double& epsX);
68
69 void getf(const int n, const Vector<double>& X, Vector<double>& f, const double fext);
70 void getj(const int n, const Vector<double>& X, Array<double>& Jac, const double Ksac);
71
72 void init(const int nX, Vector<double> &X);
73 void init(const int nX, Vector<double> &X, double X0);
74 void init(const int nX, Vector<double> &X, Vector<double>& X0);
75
76 void integ_cn2(const int nX, Vector<double>& Xn, const double Ts, const double Ti,
77 const double Istim, const double Ksac, Vector<int>& IPAR, Vector<double>& RPAR);
78 void integ_fe(const int nX, Vector<double>& X, const double Ts, const double Ti,
79 const double Istim, const double Ksac);
80 void integ_rk(const int nX, Vector<double>& X, const double Ts, const double Ti,
81 const double Istim, const double Ksac);
82};
83
84#endif
85
This module defines data structures for Aliev-Panfilov cellular activation model for cardiac electrop...
Definition CepModAp.h:16
double xi_T
Transition rate (mV^{-1})
Definition CepModAp.h:56
double sV
sV: Surface to volume ratio
Definition CepModAp.h:62
double alpha
Model parameters.
Definition CepModAp.h:32
double Cm
Cm: Cell capacitance per unit surface area.
Definition CepModAp.h:59
void integ_rk(const int nX, Vector< double > &X, const double Ts, const double Ti, const double Istim, const double Ksac)
Time integration performed using 4th order Runge-Kutta method.
Definition CepModAp.cpp:173
void integ_fe(const int nX, Vector< double > &X, const double Ts, const double Ti, const double Istim, const double Ksac)
Time integration performed using Forward Euler method.
Definition CepModAp.cpp:155
double rho
rho: Cellular resistivity
Definition CepModAp.h:65
double eps_i
Maximum activation (ms^{-1})
Definition CepModAp.h:53
double Voffset
Voltage offset parameter.
Definition CepModAp.h:29
void init(const int nX, Vector< double > &X)
SUBROUTINE AP_INIT0(nX, X)
Definition CepModAp.cpp:57
double Tscale
Time scaling.
Definition CepModAp.h:26
void actv_strs(const double X, const double dt, double &Tact, double &epsX)
Compute activation force for electromechanics based on active stress model.
Definition CepModAp.cpp:20
double Vscale
Voltage scaling.
Definition CepModAp.h:23
double Vcrit
Critical voltage (mV)
Definition CepModAp.h:44
void integ_cn2(const int nX, Vector< double > &Xn, const double Ts, const double Ti, const double Istim, const double Ksac, Vector< int > &IPAR, Vector< double > &RPAR)
Time integration performed using Crank-Nicholson method.
Definition CepModAp.cpp:78
double eta_T
Saturation potential.
Definition CepModAp.h:47
double eps_0
Minimum activation (ms^{-1})
Definition CepModAp.h:50
double Vrest
Resting voltage (mV)
Definition CepModAp.h:41
The Vector template class is used for storing int and double data.
Definition Vector.h:23