FitzHugh-Nagumo ionic model.
More...
#include <ionic_fitzhugh_nagumo.h>
|
| | FitzHughNagumo () |
| | Constructor.
|
| |
| virtual std::unique_ptr< IonicModelParameters > | get_parameters () const override |
| | Construct an instance of model parameters.
|
| |
| virtual void | read_parameters (const IonicModelParameters ¶ms) override |
| | Read model parameters from a parameter object.
|
| |
| virtual void | distribute_parameters (const CmMod &cm_mod, const cmType &cm) override |
| | Distribute model parameters to all parallel processes.
|
| |
| virtual unsigned int | get_calcium_index () const override |
| | Get the calcium proxy index.
|
| |
| | IonicModel (const InitialStates &initial_X_, const InitialStates &initial_Xg_, const double Vrest_) |
| | Constructor.
|
| |
| | IonicModel (const InitialStates &initial_X_, const InitialStates &initial_Xg_, const double Vrest_, const double Vscale_, const double Tscale_, const double Voffset_) |
| | Constructor with scaling factors.
|
| |
| virtual | ~IonicModel ()=default |
| | Virtual destructor.
|
| |
| void | init (Vector< double > &X, Vector< double > &Xg) const |
| | Setup model initial conditions.
|
| |
| void | integ (const odeType &ode_solver_params, const int zone_id, const double t, const double dt, const double Istim, const double Ksac, Vector< double > &X, Vector< double > &Xg) const |
| | Integrate over one time step.
|
| |
| unsigned int | nX () const |
| | Get the number of state variables.
|
| |
| unsigned int | nG () const |
| | Get the number of gating variables.
|
| |
| virtual std::vector< std::pair< std::string, int > > | get_output_variables () const |
| | Get a list of state variables to export to VTU.
|
| |
| std::vector< outputType > | get_registered_outputs () const |
| | Get output variable information for output registration.
|
| |
|
| virtual void | update_g (const unsigned int zone_id, const double dt, const Vector< double > &X, Vector< double > &Xg) const override |
| |
| 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.
|
| |
| virtual Array< double > | getj (const unsigned int zone_id, const Vector< double > &X, const Vector< double > &Xg, const double Ksac) const override |
| | Model jacobian.
|
| |
| void | integ_fe (const unsigned int zone_id, Vector< double > &X, Vector< double > &Xg, const double Ts, const double Ti, const double Istim, const double Ksac) const |
| | Integrate the model with the forward Euler method.
|
| |
| void | integ_rk (const unsigned int zone_id, Vector< double > &X, Vector< double > &Xg, const double Ts, const double Ti, const double Istim, const double Ksac) const |
| | Integrate the model with the fourth-order explicit Runge-Kutta method.
|
| |
| void | integ_cn2 (const unsigned int zone_id, Vector< double > &X, Vector< double > &Xg, const double Ts, const double Ti, const double Istim, const double Ksac, const unsigned int max_iter, const double rtol, const double atol) const |
| | Integrate the model with the Crank-Nicolson method.
|
| |
|
| using | InitialStates = std::vector< std::pair< std::string, double > > |
| |
FitzHugh-Nagumo ionic model.
References:
- FitzHugh, Impulses and physiological states in theoretical models of nerve membrane. Biophysical Journal (1961)
- Nagumo, Arimoto, Yoshizawa. An active pulse transmission line simulating nerve axon. Proceedings of the IRE (1962).
◆ FitzHughNagumo()
| FitzHughNagumo::FitzHughNagumo |
( |
| ) |
|
|
inline |
◆ distribute_parameters()
| void FitzHughNagumo::distribute_parameters |
( |
const CmMod & |
cm_mod, |
|
|
const cmType & |
cm |
|
) |
| |
|
overridevirtual |
Distribute model parameters to all parallel processes.
Reimplemented from IonicModel.
◆ get_calcium_index()
| virtual unsigned int FitzHughNagumo::get_calcium_index |
( |
| ) |
const |
|
inlineoverridevirtual |
Get the calcium proxy index.
Implements IonicModel.
◆ get_parameters()
Construct an instance of model parameters.
Reimplemented from IonicModel.
◆ getf()
| Vector< double > FitzHughNagumo::getf |
( |
const unsigned int |
zone_id, |
|
|
const Vector< double > & |
X, |
|
|
const Vector< double > & |
Xg, |
|
|
const double |
I_stim, |
|
|
const double |
I_sac |
|
) |
| const |
|
overrideprotectedvirtual |
◆ getj()
| Array< double > FitzHughNagumo::getj |
( |
const unsigned int |
zone_id, |
|
|
const Vector< double > & |
X, |
|
|
const Vector< double > & |
Xg, |
|
|
const double |
Ksac |
|
) |
| const |
|
overrideprotectedvirtual |
◆ read_parameters()
Read model parameters from a parameter object.
Reimplemented from IonicModel.
◆ update_g()
| virtual void FitzHughNagumo::update_g |
( |
const unsigned int |
zone_id, |
|
|
const double |
dt, |
|
|
const Vector< double > & |
X, |
|
|
Vector< double > & |
Xg |
|
) |
| const |
|
inlineoverrideprotectedvirtual |
Update variable with analytical solution. This model has none, so this method does nothing.
Implements IonicModel.
| double FitzHughNagumo::a = 0.0 |
|
protected |
◆ alpha
| double FitzHughNagumo::alpha = -0.50 |
|
protected |
| double FitzHughNagumo::b = -0.60 |
|
protected |
| double FitzHughNagumo::c = 50.0 |
|
protected |
◆ calcium_index
| constexpr unsigned int FitzHughNagumo::calcium_index = 1 |
|
staticconstexpr |
Index of the recovery variable (w), used as calcium proxy for electromechanical coupling.
◆ initial_X
| const InitialStates FitzHughNagumo::initial_X = {{"V", 1.0e-3}, {"w", 1.0e-3}} |
|
inlinestatic |
◆ initial_Xg
◆ label
| const std::string FitzHughNagumo::label = "FN" |
|
inlinestatic |
The documentation for this class was generated from the following files: