4#ifndef IONIC_ALIEV_PANFILOV_H
5#define IONIC_ALIEV_PANFILOV_H
7#include "ionic_model.h"
20 static inline const std::string
label =
"AP";
36 constexpr bool required =
true;
54 virtual std::unique_ptr<IonicModelParameters>
56 return std::make_unique<Parameters>();
64 const cmType &cm)
override;
94 virtual void update_g(
const unsigned int zone_id,
const double dt,
102 const double I_sac)
const override;
105 virtual Array<double>
getj(
const unsigned int zone_id,
107 const double Ksac)
const override;
Model parameters class.
Definition ionic_aliev_panfilov.h:33
Aliev-Panfilov ionic model.
Definition ionic_aliev_panfilov.h:17
double b
Corresponding to parameter a in Aliev-Panfilov paper [1].
Definition ionic_aliev_panfilov.h:82
double alpha
Corresponding to parameter a in Aliev-Panfilov paper [1].
Definition ionic_aliev_panfilov.h:76
static const std::string label
Model label.
Definition ionic_aliev_panfilov.h:20
virtual Vector< double > getf(const unsigned int zone_id, const Vector< double > &X, const Vector< double > &Xg, const double I_stim, const double I_sac) const override
Model right-hand side.
Definition ionic_aliev_panfilov.cpp:29
double a
Corresponding to parameter epsilon0 in Aliev-Panfilov paper [1].
Definition ionic_aliev_panfilov.h:79
virtual Array< double > getj(const unsigned int zone_id, const Vector< double > &X, const Vector< double > &Xg, const double Ksac) const override
Model jacobian.
Definition ionic_aliev_panfilov.cpp:43
static const InitialStates initial_X
State variables.
Definition ionic_aliev_panfilov.h:23
static constexpr unsigned int calcium_index
Definition ionic_aliev_panfilov.h:30
static const InitialStates initial_Xg
Gating variables.
Definition ionic_aliev_panfilov.h:26
double mu1
[1].
Definition ionic_aliev_panfilov.h:87
double mu2
[1].
Definition ionic_aliev_panfilov.h:88
virtual std::unique_ptr< IonicModelParameters > get_parameters() const override
Construct an instance of model parameters.
Definition ionic_aliev_panfilov.h:55
virtual void update_g(const unsigned int zone_id, const double dt, const Vector< double > &X, Vector< double > &Xg) const override
Definition ionic_aliev_panfilov.h:94
virtual void distribute_parameters(const CmMod &cm_mod, const cmType &cm) override
Distribute model parameters to all parallel processes.
Definition ionic_aliev_panfilov.cpp:17
double c
Corresponding to parameter k in Aliev-Panfilov paper [1].
Definition ionic_aliev_panfilov.h:85
virtual void read_parameters(const IonicModelParameters ¶ms) override
Read model parameters from a parameter object.
Definition ionic_aliev_panfilov.cpp:6
virtual unsigned int get_calcium_index() const override
Get the calcium proxy index.
Definition ionic_aliev_panfilov.h:67
AlievPanfilov()
Constructor.
Definition ionic_aliev_panfilov.h:48
The CmMod class duplicates the data structures in the Fortran CMMOD module defined in COMU....
Definition CmMod.h:35
Abstract ionic model class.
Definition ionic_model.h:127
std::vector< std::pair< std::string, double > > InitialStates
Definition ionic_model.h:133
Initial conditions parameters for a generic ionic model.
Definition Parameters.h:1242
void add_parameter(const std::string &label, double default_value, bool required)
Add a new parameter to this object.
Definition Parameters.h:1290
The Vector template class is used for storing int and double data.
Definition Vector.h:24
The cmType class stores data and defines methods used for mpi communication.
Definition CmMod.h:55