svMultiPhysics
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
FitzHughNagumo Class Reference

FitzHugh-Nagumo ionic model. More...

#include <ionic_fitzhugh_nagumo.h>

Inheritance diagram for FitzHughNagumo:
[legend]

Classes

class  Parameters
 Model parameters class. More...
 

Public Member Functions

 FitzHughNagumo ()
 Constructor.
 
virtual std::unique_ptr< IonicModelParametersget_parameters () const override
 Construct an instance of model parameters.
 
virtual void read_parameters (const IonicModelParameters &params) 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.
 
- Public Member Functions inherited from IonicModel
 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< outputTypeget_registered_outputs () const
 Get output variable information for output registration.
 

Static Public Attributes

static const std::string label = "FN"
 Model label.
 
static const InitialStates initial_X = {{"V", 1.0e-3}, {"w", 1.0e-3}}
 State variables.
 
static const InitialStates initial_Xg = {}
 Gating variables.
 
static constexpr unsigned int calcium_index = 1
 

Protected Member Functions

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.
 
- Protected Member Functions inherited from IonicModel
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.
 

Protected Attributes

Model parameters
double alpha = -0.50
 [1].
 
double a = 0.0
 [1].
 
double b = -0.60
 [1].
 
double c = 50.0
 [1].
 
- Protected Attributes inherited from IonicModel
InitialStates initial_X
 Initial states.
 
InitialStates initial_Xg
 Initial gating variables.
 
const double Vrest
 
const double Vscale
 Voltage scaling [mV].
 
const double Tscale
 Time scaling [ms].
 
const double Voffset
 Voltage offset parameter [mV].
 

Additional Inherited Members

- Public Types inherited from IonicModel
using InitialStates = std::vector< std::pair< std::string, double > >
 

Detailed Description

FitzHugh-Nagumo ionic model.

References:

Constructor & Destructor Documentation

◆ FitzHughNagumo()

FitzHughNagumo::FitzHughNagumo ( )
inline

Constructor.

Member Function Documentation

◆ 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()

virtual std::unique_ptr< IonicModelParameters > FitzHughNagumo::get_parameters ( ) const
inlineoverridevirtual

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

Model right-hand side.

Implements IonicModel.

◆ getj()

Array< double > FitzHughNagumo::getj ( const unsigned int  zone_id,
const Vector< double > &  X,
const Vector< double > &  Xg,
const double  Ksac 
) const
overrideprotectedvirtual

Model jacobian.

Reimplemented from IonicModel.

◆ read_parameters()

void FitzHughNagumo::read_parameters ( const IonicModelParameters params)
overridevirtual

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.

Member Data Documentation

◆ a

double FitzHughNagumo::a = 0.0
protected

[1].

◆ alpha

double FitzHughNagumo::alpha = -0.50
protected

[1].

◆ b

double FitzHughNagumo::b = -0.60
protected

[1].

◆ c

double FitzHughNagumo::c = 50.0
protected

[1].

◆ 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

State variables.

◆ initial_Xg

const InitialStates FitzHughNagumo::initial_Xg = {}
inlinestatic

Gating variables.

◆ label

const std::string FitzHughNagumo::label = "FN"
inlinestatic

Model label.


The documentation for this class was generated from the following files: