15#include "IonicModel.h"
23enum class ElectrophysiologyModelType {
31extern const std::map<ElectrophysiologyModelType, std::string> cep_model_type_to_name;
32extern const std::map<std::string,ElectrophysiologyModelType> cep_model_name_to_type;
35static std::ostream &operator << ( std::ostream& strm, ElectrophysiologyModelType type)
37 const std::map<ElectrophysiologyModelType, std::string> names = {
38 {ElectrophysiologyModelType::NA,
"NA"},
39 {ElectrophysiologyModelType::AP,
"AP"},
40 {ElectrophysiologyModelType::BO,
"BO"},
41 {ElectrophysiologyModelType::FN,
"FN"},
42 {ElectrophysiologyModelType::TTP,
"TTP"},
44 return strm << names.at(type);
76 bool has_sphere =
false;
85 double sphere_radius = 0.0;
104 double start_time = 0.0;
106 double duration = 0.0;
108 double cycle_length = 0.0;
110 double amplitude = 0.0;
116 bool is_active(
const double time)
const;
150 ElectrophysiologyModelType
cepType = ElectrophysiologyModelType::NA;
int nXion
Max. dof in cellular activation model.
Definition CepMod.h:228
bool cepEq
Whether cardiac electrophysiology is solved.
Definition CepMod.h:225
cemModelType cem
Cardiac electromechanics type.
Definition CepMod.h:237
Array< double > Xion
Unknowns stored at all nodes.
Definition CepMod.h:231
ecgLeadsType ecgleads
ECG leads.
Definition CepMod.h:240
Vector< double > calcium
Calcium vector at all nodes.
Definition CepMod.h:234
The CmMod class duplicates the data structures in the Fortran CMMOD module defined in COMU....
Definition CmMod.h:36
The ComMod class duplicates the data structures in the Fortran COMMOD module defined in MOD....
Definition ComMod.h:1597
The StimulusParameters class stores parameters for 'Stimulus' XML element used to parameters for pace...
Definition Parameters.h:1231
Ten Tusscher-Panfilov ionic model.
Definition IonicModelTTP.h:32
The Vector template class is used for storing int and double data.
Definition Vector.h:26
Cardiac electromechanics model type.
Definition CepMod.h:191
Vector< double > Ya_f
Activation along fibers.
Definition CepMod.h:205
Vector< double > Ya_s
Activation along sheets.
Definition CepMod.h:211
Vector< double > Ya_n
Activation along sheet normals.
Definition CepMod.h:217
bool cpld
Whether electrophysiology and mechanics are coupled.
Definition CepMod.h:194
bool aStrain
Whether active strain formulation is employed.
Definition CepMod.h:198
Cardiac electrophysiology model type.
Definition CepMod.h:144
double Diso
Isotropic conductivity.
Definition CepMod.h:171
std::vector< stimType > Istim
External stimuli applied within this domain.
Definition CepMod.h:177
int nFn
Number of fiber directions.
Definition CepMod.h:159
double Ksac
Constant for stretch-activated-currents.
Definition CepMod.h:168
odeType odes
Time integration options.
Definition CepMod.h:183
ElectrophysiologyModelType cepType
Type of cardiac electrophysiology model.
Definition CepMod.h:150
int nX
Number of state variables.
Definition CepMod.h:153
Vector< double > Dani
Anisotropic conductivity.
Definition CepMod.h:174
int nG
Number of gating variables.
Definition CepMod.h:156
std::shared_ptr< IonicModel > ionic_model
Ionic model instance.
Definition CepMod.h:186
double dt
Time step for integration.
Definition CepMod.h:165
double stimulus_value(const double time, const Vector< double > &x) const
Summed applied stimulus at a point and time (0.0 if none active).
Definition CepMod.cpp:249
int imyo
Myocardium zone id, default to epicardium.
Definition CepMod.h:162
The cmType class stores data and defines methods used for mpi communication.
Definition CmMod.h:56
ECG leads type.
Definition CepMod.h:121
Vector< double > pseudo_ECG
Pseudo ECG over each lead.
Definition CepMod.h:136
Vector< double > x_coords
x coordinates
Definition CepMod.h:127
int num_leads
Number of leads.
Definition CepMod.h:124
Vector< double > y_coords
y coordinates
Definition CepMod.h:130
Vector< double > z_coords
z coordinates
Definition CepMod.h:133
std::vector< std::string > out_files
Output files.
Definition CepMod.h:139
Time integration scheme and related parameters.
Definition IonicModel.h:50
Spatial bounds for a CEP stimulus region.
Definition CepMod.h:58
bool contains(const Vector< double > &x) const
Return true if the point lies inside all active spatial bounds.
Definition CepMod.cpp:97
void distribute(const CmMod &cm_mod, const cmType &cm)
Broadcast spatial bounds to all MPI ranks.
Definition CepMod.cpp:104
void set_sphere(const Vector< double > ¢er, const double radius)
Set sphere bounds.
Definition CepMod.cpp:53
void set_box(const Vector< double > &min, const Vector< double > &max)
Set box bounds.
Definition CepMod.cpp:42
External stimulus type.
Definition CepMod.h:54
double operator()(const double time, const Vector< double > &x) const
Return the applied stimulus value at a point and time.
Definition CepMod.cpp:135
void distribute(const CmMod &cm_mod, const cmType &cm)
Broadcast stimulus parameters to all ranks.
Definition CepMod.cpp:146
void read_parameters(const StimulusParameters ¶ms, const int nsd, const double default_cycle_length)
Set stimulus parameters from parsed XML parameters.
Definition CepMod.cpp:155