LifeV
IonicHodgkinHuxley Class Reference

IonicModel - This class implements the Hodgkin-Huxley model. More...

#include <IonicHodgkinHuxley.hpp>

+ Inheritance diagram for IonicHodgkinHuxley:
+ Collaboration diagram for IonicHodgkinHuxley:

Private Attributes

Real M_gNa
 Model Parameters. More...
 
Real M_gK
 
Real M_gL
 
Real M_vNa
 
Real M_vK
 
Real M_vL
 

Type definitions

typedef ElectroIonicModel super
 

Constructors & Destructor

 IonicHodgkinHuxley ()
 Constructor. More...
 
 IonicHodgkinHuxley (Teuchos::ParameterList &parameterList)
 
 IonicHodgkinHuxley (const IonicHodgkinHuxley &model)
 
virtual ~IonicHodgkinHuxley ()
 Destructor. More...
 

Overloads

IonicHodgkinHuxleyoperator= (const IonicHodgkinHuxley &model)
 Operator. More...
 

Setters and getters

const RealgNa () const
 
const RealgK () const
 
const RealgL () const
 
const RealvL () const
 
const RealvK () const
 
const RealvNa () const
 
void setGNa (const Real &p)
 
void setGK (const Real &p)
 
void setGL (const Real &p)
 
void setVL (const Real &p)
 
void setVNa (const Real &p)
 
void setVK (const Real &p)
 

Methods

void computeGatingRhs (const std::vector< Real > &v, std::vector< Real > &rhs)
 Compute the rhs of the gating variables a single node or for the 0D case. More...
 
Real computeLocalPotentialRhs (const std::vector< Real > &v)
 compute the rhs of the potential equation on a single node or for the 0D case More...
 
void computeRhs (const std::vector< Real > &v, std::vector< Real > &rhs)
 Compute the rhs on a single node or for the 0D case. More...
 
void computeGatingVariablesWithRushLarsen (std::vector< Real > &v, const Real dt)
 compute the rhs of the gating variables with the RushLarsen scheme More...
 
void showMe ()
 Display information about the model. More...
 

Additional Inherited Members

- Public Types inherited from ElectroIonicModel
typedef VectorEpetra vector_Type
 
typedef std::shared_ptr< VectorEpetravectorPtr_Type
 
typedef std::shared_ptr< VectorElementalelvecPtr_Type
 
typedef RegionMesh< LinearTetramesh_Type
 
typedef MatrixEpetra< Realmatrix_Type
 
typedef std::shared_ptr< matrix_TypematrixPtr_Type
 
typedef FESpace< mesh_Type, MapEpetrafeSpace_Type
 
typedef std::shared_ptr< feSpace_TypefeSpacePtr_Type
 
typedef std::function< Real(const Real &t, const Real &x, const Real &y, const Real &z, const ID &i) > function_Type
 
typedef FactorySingleton< Factory< ElectroIonicModel, std::string > > IonicModelFactory
 
- Public Member Functions inherited from ElectroIonicModel
virtual matrix_Type getJac (const vector_Type &v, Real h=1.0e-8)
 This methods computes the Jacobian numerically. More...
 
virtual std::vector< std::vector< Real > > getJac (const std::vector< Real > &v, Real h=1.0e-8)
 This methods computes the Jacobian numerically. More...
 
virtual void computeGatingRhs (const std::vector< vectorPtr_Type > &v, std::vector< vectorPtr_Type > &rhs)
 This methods computes the right hand side of the gating variables in the 3D case. More...
 
virtual void computeNonGatingRhs (const std::vector< vectorPtr_Type > &v, std::vector< vectorPtr_Type > &rhs)
 This methods computes the right hand side of the state variables that are not gating variables in the 3D case. More...
 
virtual void computeGatingVariablesWithRushLarsen (std::vector< vectorPtr_Type > &v, const Real dt)
 Compute the new value of the gating variables in 3D with the Rush Larsen method specified in the 0D version of the ionic model. More...
 
virtual void computeRhs (const std::vector< vectorPtr_Type > &v, std::vector< vectorPtr_Type > &rhs)
 Compute the right hand side of the ionic model in 3D. More...
 
virtual void computePotentialRhsICI (const std::vector< vectorPtr_Type > &v, std::vector< vectorPtr_Type > &rhs, matrix_Type &massMatrix)
 Compute the right hand side of the voltage equation linearly interpolating the ionic currents. More...
 
virtual void computePotentialRhsSVI (const std::vector< vectorPtr_Type > &v, std::vector< vectorPtr_Type > &rhs, FESpace< mesh_Type, MapEpetra > &uFESpace)
 Compute the right hand side of the voltage equation using SVI. More...
 
virtual void computePotentialRhsSVI (const std::vector< vectorPtr_Type > &v, std::vector< vectorPtr_Type > &rhs, FESpace< mesh_Type, MapEpetra > &uFESpace, const QuadratureRule &qr)
 Compute the right hand side of the voltage equation using SVI specifying the quadrature rule. More...
 
virtual void initialize (std::vector< Real > &v)
 Initialize the ionic model with a given vector of state variable (0D version) More...
 
virtual void initialize (std::vector< vectorPtr_Type > &v)
 Initialize the ionic model in 3D with a given vector of state variable vector pointers. More...
 
virtual void computeNonGatingRhs (const std::vector< Real > &v, std::vector< Real > &rhs)
 In the case this method is improperly used, it should use this default implementation. More...
 
 ElectroIonicModel ()
 Empty Constructor. More...
 
 ElectroIonicModel (int n)
 Constructor. More...
 
 ElectroIonicModel (int n, int g)
 Constructor. More...
 
 ElectroIonicModel (const ElectroIonicModel &Ionic)
 Copy Constructor. More...
 
virtual ~ElectroIonicModel ()
 Destructor. More...
 
virtual void setup (Teuchos::ParameterList &parameterList)
 setup the parameters of the ionic model from an xml file More...
 
const short int Size () const
 returns the number of equations of the ionic model More...
 
const short int numberOfGatingVariables () const
 returns the number of gating variables in the ionic model More...
 
const Real membraneCapacitance () const
 returns the value of the membrane capacitance in the model More...
 
const Real appliedCurrent () const
 returns the value of the applied current in the model/point More...
 
vectorPtr_Type appliedCurrentPtr ()
 returns the pointer to the applied current FE vector in the 3D case More...
 
const std::vector< RealrestingConditions () const
 returns the vector with the resting values of the variables in the ionic model More...
 
const function_Type pacaingProtocol () const
 returns the function describing the pacing protocol for the ionic model More...
 
void setMembraneCapacitance (const Real p)
 set the membrane capacitance in the ionic model More...
 
void setAppliedCurrent (const Real p)
 set the applied current in the ionic model/point More...
 
void setAppliedCurrentPtr (const vectorPtr_Type p)
 set the pointer to the applied current in the 3D ionic model More...
 
void setAppliedCurrent (const vector_Type &p)
 set the pointer to the applied current in the 3D ionic model More...
 
void setAppliedCurrentFromFunction (function_Type &f, feSpacePtr_Type feSpacePtr, Real time=0.0)
 Interpolate the function f on the FE space feSpacePtr at time time. More...
 
void setAppliedCurrentFromElectroStimulus (ElectroStimulus &stimulus, feSpacePtr_Type feSpacePtr, Real time=0.0)
 Interpolate the function of the electro stimulus. More...
 
void setPacingProtocol (function_Type pacingProtocol)
 Set the pacing protocol as boost function. More...
 
void setRestingCondtions (Real value, int j)
 Set component of the resting conditions. More...
 
void setRestingCondtions (std::vector< Real > &restingConditions)
 Set resting conditions. More...
 
void addAppliedCurrent (Real &rhs)
 Simple wrapper to add the applied current. More...
 
void addAppliedCurrent (std::vector< Real > &rhs)
 Simple wrapper to add the applied current. More...
 
ElectroIonicModeloperator= (const ElectroIonicModel &Ionic)
 Assignment operator. More...
 
- Protected Attributes inherited from ElectroIonicModel
short int M_numberOfEquations
 
short int M_numberOfGatingVariables
 
std::vector< RealM_restingConditions
 
Real M_membraneCapacitance
 
Real M_appliedCurrent
 
vectorPtr_Type M_appliedCurrentPtr
 
function_Type M_pacingProtocol
 

Detailed Description

IonicModel - This class implements the Hodgkin-Huxley model.

Definition at line 57 of file IonicHodgkinHuxley.hpp.

Member Typedef Documentation

◆ super

Definition at line 63 of file IonicHodgkinHuxley.hpp.

Constructor & Destructor Documentation

◆ IonicHodgkinHuxley() [1/3]

Constructor.

Definition at line 45 of file IonicHodgkinHuxley.cpp.

◆ IonicHodgkinHuxley() [2/3]

IonicHodgkinHuxley ( Teuchos::ParameterList &  parameterList)
Parameters
listof parameters in an xml file

Definition at line 61 of file IonicHodgkinHuxley.cpp.

◆ IonicHodgkinHuxley() [3/3]

Parameters
IonicHodgkinHuxleyobject

Definition at line 77 of file IonicHodgkinHuxley.cpp.

◆ ~IonicHodgkinHuxley()

virtual ~IonicHodgkinHuxley ( )
inlinevirtual

Destructor.

Definition at line 85 of file IonicHodgkinHuxley.hpp.

Member Function Documentation

◆ operator=()

IonicHodgkinHuxley & operator= ( const IonicHodgkinHuxley model)

Operator.

Definition at line 97 of file IonicHodgkinHuxley.cpp.

◆ gNa()

const Real& gNa ( ) const
inline

Definition at line 100 of file IonicHodgkinHuxley.hpp.

◆ gK()

const Real& gK ( ) const
inline

Definition at line 105 of file IonicHodgkinHuxley.hpp.

◆ gL()

const Real& gL ( ) const
inline

Definition at line 110 of file IonicHodgkinHuxley.hpp.

◆ vL()

const Real& vL ( ) const
inline

Definition at line 116 of file IonicHodgkinHuxley.hpp.

◆ vK()

const Real& vK ( ) const
inline

Definition at line 121 of file IonicHodgkinHuxley.hpp.

◆ vNa()

const Real& vNa ( ) const
inline

Definition at line 126 of file IonicHodgkinHuxley.hpp.

◆ setGNa()

void setGNa ( const Real p)
inline

Definition at line 134 of file IonicHodgkinHuxley.hpp.

◆ setGK()

void setGK ( const Real p)
inline

Definition at line 139 of file IonicHodgkinHuxley.hpp.

◆ setGL()

void setGL ( const Real p)
inline

Definition at line 144 of file IonicHodgkinHuxley.hpp.

◆ setVL()

void setVL ( const Real p)
inline

Definition at line 149 of file IonicHodgkinHuxley.hpp.

◆ setVNa()

void setVNa ( const Real p)
inline

Definition at line 154 of file IonicHodgkinHuxley.hpp.

◆ setVK()

void setVK ( const Real p)
inline

Definition at line 159 of file IonicHodgkinHuxley.hpp.

◆ computeGatingRhs()

void computeGatingRhs ( const std::vector< Real > &  v,
std::vector< Real > &  rhs 
)
virtual

Compute the rhs of the gating variables a single node or for the 0D case.

Methods.

Parameters
vvector with the variables (V, M, N, H)
rhsvector where we will insert the rhs of the equations of the gating variables

Implements ElectroIonicModel.

Definition at line 118 of file IonicHodgkinHuxley.cpp.

◆ computeLocalPotentialRhs()

Real computeLocalPotentialRhs ( const std::vector< Real > &  v)
virtual

compute the rhs of the potential equation on a single node or for the 0D case

Parameters
vvector with the variables (V, M, N, H)

Implements ElectroIonicModel.

Definition at line 151 of file IonicHodgkinHuxley.cpp.

◆ computeRhs()

void computeRhs ( const std::vector< Real > &  v,
std::vector< Real > &  rhs 
)
virtual

Compute the rhs on a single node or for the 0D case.

Parameters
vvector with the variables (V, M, N, H)
rhsvector where we will insert the rhs of the equations

Implements ElectroIonicModel.

Definition at line 139 of file IonicHodgkinHuxley.cpp.

◆ computeGatingVariablesWithRushLarsen()

void computeGatingVariablesWithRushLarsen ( std::vector< Real > &  v,
const Real  dt 
)
virtual

compute the rhs of the gating variables with the RushLarsen scheme

Parameters
vvector with the variables (V, M, N, H)
dttimestep

Reimplemented from ElectroIonicModel.

Definition at line 166 of file IonicHodgkinHuxley.cpp.

◆ showMe()

void showMe ( )
virtual

Display information about the model.

Implements ElectroIonicModel.

Definition at line 194 of file IonicHodgkinHuxley.cpp.

Field Documentation

◆ M_gNa

Real M_gNa
private

Model Parameters.

Chemical kinetics parameters

Definition at line 205 of file IonicHodgkinHuxley.hpp.

◆ M_gK

Real M_gK
private

Definition at line 206 of file IonicHodgkinHuxley.hpp.

◆ M_gL

Real M_gL
private

Definition at line 207 of file IonicHodgkinHuxley.hpp.

◆ M_vNa

Real M_vNa
private

Definition at line 208 of file IonicHodgkinHuxley.hpp.

◆ M_vK

Real M_vK
private

Definition at line 209 of file IonicHodgkinHuxley.hpp.

◆ M_vL

Real M_vL
private

Definition at line 210 of file IonicHodgkinHuxley.hpp.


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