LifeV
IonicLuoRudyI Class Reference

IonicModel - This class implements an ionic model. More...

#include <IonicLuoRudyI.hpp>

+ Inheritance diagram for IonicLuoRudyI:
+ Collaboration diagram for IonicLuoRudyI:

Private Attributes

Real M_ENa
 Solves the ionic model. More...
 
Real M_gNa
 
Real M_gsi
 
Real M_K0
 
Real M_gK
 
Real M_EK
 
Real M_gK1
 
Real M_EK1
 
Real M_EKp
 
Real M_gKp
 
Real M_gb
 

Type definitions

typedef ElectroIonicModel super
 
typedef std::shared_ptr< VectorEpetravectorPtr_Type
 
typedef std::shared_ptr< VectorElementalelvecPtr_Type
 
typedef RegionMesh< LinearTetramesh_Type
 

Constructors & Destructor

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

Overloads

IonicLuoRudyIoperator= (const IonicLuoRudyI &model)
 Operator. More...
 

Setters and getters

const Real ENa () const
 
const Real gNa () const
 
const Real gsi () const
 
const Real K0 () const
 
const Real gK () const
 
const Real EK () const
 
const Real gK1 () const
 
const Real EK1 () const
 
const Real EKp () const
 
const Real gKp () const
 
const Real gb () const
 
void setENa (const Real p)
 
void setGNa (const Real p)
 
void setGsi (const Real p)
 
void setK0 (const Real p)
 
void setGK (const Real p)
 
void setEK (const Real p)
 
void setGK1 (const Real p)
 
void setEK1 (const Real p)
 
void setEKp (const Real p)
 
void setGKp (const Real p)
 
void setGb (const Real p)
 

Methods

Real am (Real V)
 
Real bm (Real V)
 
Real tm (Real V)
 
Real minf (Real V)
 
Real dm (Real V, Real m)
 
Real ah (Real V)
 
Real bh (Real V)
 
Real th (Real V)
 
Real hinf (Real V)
 
Real dh (Real V, Real h)
 
Real aj (Real V)
 
Real bj (Real V)
 
Real tj (Real V)
 
Real jinf (Real V)
 
Real dj (Real V, Real j)
 
Real INa (Real V, Real m, Real h, Real j)
 
Real Esi (Real Ca)
 
Real ad (Real V)
 
Real bd (Real V)
 
Real td (Real V)
 
Real dinf (Real V)
 
Real dd (Real V, Real d)
 
Real af (Real V)
 
Real bf (Real V)
 
Real tf (Real V)
 
Real finf (Real V)
 
Real df (Real V, Real f)
 
Real Isi (Real V, Real d, Real f, Real Ca)
 
Real dCa (Real V, Real d, Real f, Real Ca)
 
Real computeGK (Real K0)
 
Real aX (Real V)
 
Real bX (Real V)
 
Real tX (Real V)
 
Real Xinf (Real V)
 
Real dX (Real V, Real X)
 
Real Xi (Real V)
 
Real IK (Real V, Real X)
 
Real computeGK1 (Real K0)
 
Real aK1 (Real V)
 
Real bK1 (Real V)
 
Real tK1 (Real V)
 
Real K1inf (Real V)
 
Real IK1 (Real V)
 
Real Kp (Real V)
 
Real IKp (Real V)
 
Real Ib (Real V)
 
Real Itot (Real V, Real m, Real h, Real j, Real d, Real f, Real X, Real Ca)
 
void computeGatingRhs (const std::vector< Real > &v, std::vector< Real > &rhs)
 Methods. More...
 
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...
 
void computeRhs (const std::vector< Real > &v, std::vector< Real > &rhs)
 This methods contains the actual evaluation of the rhs of all state variablesin the model (0D version) More...
 
void computeGatingVariablesWithRushLarsen (std::vector< Real > &v, const Real dt)
 This methods contains the actual evaluation of the rhs of the voltage equation only (0D version) More...
 
Real computeLocalPotentialRhs (const std::vector< Real > &v)
 This methods contains the actual evaluation of the rhs of the voltage equation only (0D version) 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...
 
 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 an ionic model.

Definition at line 59 of file IonicLuoRudyI.hpp.

Member Typedef Documentation

◆ super

Definition at line 65 of file IonicLuoRudyI.hpp.

◆ vectorPtr_Type

typedef std::shared_ptr<VectorEpetra> vectorPtr_Type

Definition at line 66 of file IonicLuoRudyI.hpp.

◆ elvecPtr_Type

typedef std::shared_ptr<VectorElemental> elvecPtr_Type

Definition at line 67 of file IonicLuoRudyI.hpp.

◆ mesh_Type

Definition at line 68 of file IonicLuoRudyI.hpp.

Constructor & Destructor Documentation

◆ IonicLuoRudyI() [1/3]

Constructor.

Constructors.

Definition at line 48 of file IonicLuoRudyI.cpp.

◆ IonicLuoRudyI() [2/3]

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

Definition at line 81 of file IonicLuoRudyI.cpp.

◆ IonicLuoRudyI() [3/3]

IonicLuoRudyI ( const IonicLuoRudyI model)
Parameters
IonicLuoRudyIobject

Definition at line 115 of file IonicLuoRudyI.cpp.

◆ ~IonicLuoRudyI()

virtual ~IonicLuoRudyI ( )
inlinevirtual

Destructor.

Definition at line 90 of file IonicLuoRudyI.hpp.

Member Function Documentation

◆ operator=()

IonicLuoRudyI & operator= ( const IonicLuoRudyI model)

Operator.

Definition at line 138 of file IonicLuoRudyI.cpp.

◆ ENa()

const Real ENa ( ) const
inline

Definition at line 105 of file IonicLuoRudyI.hpp.

◆ gNa()

const Real gNa ( ) const
inline

Definition at line 109 of file IonicLuoRudyI.hpp.

◆ gsi()

const Real gsi ( ) const
inline

Definition at line 115 of file IonicLuoRudyI.hpp.

◆ K0()

const Real K0 ( ) const
inline

Definition at line 121 of file IonicLuoRudyI.hpp.

◆ gK()

const Real gK ( ) const
inline

Definition at line 125 of file IonicLuoRudyI.hpp.

◆ EK()

const Real EK ( ) const
inline

Definition at line 129 of file IonicLuoRudyI.hpp.

◆ gK1()

const Real gK1 ( ) const
inline

Definition at line 135 of file IonicLuoRudyI.hpp.

◆ EK1()

const Real EK1 ( ) const
inline

Definition at line 139 of file IonicLuoRudyI.hpp.

◆ EKp()

const Real EKp ( ) const
inline

Definition at line 145 of file IonicLuoRudyI.hpp.

◆ gKp()

const Real gKp ( ) const
inline

Definition at line 149 of file IonicLuoRudyI.hpp.

◆ gb()

const Real gb ( ) const
inline

Definition at line 155 of file IonicLuoRudyI.hpp.

◆ setENa()

void setENa ( const Real  p)
inline

Definition at line 162 of file IonicLuoRudyI.hpp.

◆ setGNa()

void setGNa ( const Real  p)
inline

Definition at line 166 of file IonicLuoRudyI.hpp.

◆ setGsi()

void setGsi ( const Real  p)
inline

Definition at line 172 of file IonicLuoRudyI.hpp.

◆ setK0()

void setK0 ( const Real  p)
inline

Definition at line 178 of file IonicLuoRudyI.hpp.

◆ setGK()

void setGK ( const Real  p)
inline

Definition at line 184 of file IonicLuoRudyI.hpp.

◆ setEK()

void setEK ( const Real  p)
inline

Definition at line 188 of file IonicLuoRudyI.hpp.

◆ setGK1()

void setGK1 ( const Real  p)
inline

Definition at line 194 of file IonicLuoRudyI.hpp.

◆ setEK1()

void setEK1 ( const Real  p)
inline

Definition at line 198 of file IonicLuoRudyI.hpp.

◆ setEKp()

void setEKp ( const Real  p)
inline

Definition at line 204 of file IonicLuoRudyI.hpp.

◆ setGKp()

void setGKp ( const Real  p)
inline

Definition at line 208 of file IonicLuoRudyI.hpp.

◆ setGb()

void setGb ( const Real  p)
inline

Definition at line 214 of file IonicLuoRudyI.hpp.

◆ am()

Real am ( Real  V)
inline

Definition at line 228 of file IonicLuoRudyI.hpp.

◆ bm()

Real bm ( Real  V)
inline

Definition at line 232 of file IonicLuoRudyI.hpp.

◆ tm()

Real tm ( Real  V)
inline

Definition at line 236 of file IonicLuoRudyI.hpp.

◆ minf()

Real minf ( Real  V)
inline

Definition at line 240 of file IonicLuoRudyI.hpp.

◆ dm()

Real dm ( Real  V,
Real  m 
)
inline

Definition at line 244 of file IonicLuoRudyI.hpp.

◆ ah()

Real ah ( Real  V)
inline

Definition at line 250 of file IonicLuoRudyI.hpp.

◆ bh()

Real bh ( Real  V)
inline

Definition at line 261 of file IonicLuoRudyI.hpp.

◆ th()

Real th ( Real  V)
inline

Definition at line 272 of file IonicLuoRudyI.hpp.

◆ hinf()

Real hinf ( Real  V)
inline

Definition at line 276 of file IonicLuoRudyI.hpp.

◆ dh()

Real dh ( Real  V,
Real  h 
)
inline

Definition at line 280 of file IonicLuoRudyI.hpp.

◆ aj()

Real aj ( Real  V)
inline

Definition at line 286 of file IonicLuoRudyI.hpp.

◆ bj()

Real bj ( Real  V)
inline

Definition at line 296 of file IonicLuoRudyI.hpp.

◆ tj()

Real tj ( Real  V)
inline

Definition at line 307 of file IonicLuoRudyI.hpp.

◆ jinf()

Real jinf ( Real  V)
inline

Definition at line 311 of file IonicLuoRudyI.hpp.

◆ dj()

Real dj ( Real  V,
Real  j 
)
inline

Definition at line 315 of file IonicLuoRudyI.hpp.

◆ INa()

Real INa ( Real  V,
Real  m,
Real  h,
Real  j 
)
inline

Definition at line 321 of file IonicLuoRudyI.hpp.

◆ Esi()

Real Esi ( Real  Ca)
inline

Definition at line 328 of file IonicLuoRudyI.hpp.

◆ ad()

Real ad ( Real  V)
inline

Definition at line 333 of file IonicLuoRudyI.hpp.

◆ bd()

Real bd ( Real  V)
inline

Definition at line 337 of file IonicLuoRudyI.hpp.

◆ td()

Real td ( Real  V)
inline

Definition at line 341 of file IonicLuoRudyI.hpp.

◆ dinf()

Real dinf ( Real  V)
inline

Definition at line 345 of file IonicLuoRudyI.hpp.

◆ dd()

Real dd ( Real  V,
Real  d 
)
inline

Definition at line 349 of file IonicLuoRudyI.hpp.

◆ af()

Real af ( Real  V)
inline

Definition at line 355 of file IonicLuoRudyI.hpp.

◆ bf()

Real bf ( Real  V)
inline

Definition at line 359 of file IonicLuoRudyI.hpp.

◆ tf()

Real tf ( Real  V)
inline

Definition at line 363 of file IonicLuoRudyI.hpp.

◆ finf()

Real finf ( Real  V)
inline

Definition at line 367 of file IonicLuoRudyI.hpp.

◆ df()

Real df ( Real  V,
Real  f 
)
inline

Definition at line 371 of file IonicLuoRudyI.hpp.

◆ Isi()

Real Isi ( Real  V,
Real  d,
Real  f,
Real  Ca 
)
inline

Definition at line 377 of file IonicLuoRudyI.hpp.

◆ dCa()

Real dCa ( Real  V,
Real  d,
Real  f,
Real  Ca 
)
inline

Definition at line 383 of file IonicLuoRudyI.hpp.

◆ computeGK()

Real computeGK ( Real  K0)
inline

Definition at line 390 of file IonicLuoRudyI.hpp.

◆ aX()

Real aX ( Real  V)
inline

Definition at line 396 of file IonicLuoRudyI.hpp.

◆ bX()

Real bX ( Real  V)
inline

Definition at line 400 of file IonicLuoRudyI.hpp.

◆ tX()

Real tX ( Real  V)
inline

Definition at line 404 of file IonicLuoRudyI.hpp.

◆ Xinf()

Real Xinf ( Real  V)
inline

Definition at line 408 of file IonicLuoRudyI.hpp.

◆ dX()

Real dX ( Real  V,
Real  X 
)
inline

Definition at line 412 of file IonicLuoRudyI.hpp.

◆ Xi()

Real Xi ( Real  V)
inline

Definition at line 418 of file IonicLuoRudyI.hpp.

◆ IK()

Real IK ( Real  V,
Real  X 
)
inline

Definition at line 430 of file IonicLuoRudyI.hpp.

◆ computeGK1()

Real computeGK1 ( Real  K0)
inline

Definition at line 437 of file IonicLuoRudyI.hpp.

◆ aK1()

Real aK1 ( Real  V)
inline

Definition at line 443 of file IonicLuoRudyI.hpp.

◆ bK1()

Real bK1 ( Real  V)
inline

Definition at line 447 of file IonicLuoRudyI.hpp.

◆ tK1()

Real tK1 ( Real  V)
inline

Definition at line 452 of file IonicLuoRudyI.hpp.

◆ K1inf()

Real K1inf ( Real  V)
inline

Definition at line 456 of file IonicLuoRudyI.hpp.

◆ IK1()

Real IK1 ( Real  V)
inline

Definition at line 462 of file IonicLuoRudyI.hpp.

◆ Kp()

Real Kp ( Real  V)
inline

Definition at line 469 of file IonicLuoRudyI.hpp.

◆ IKp()

Real IKp ( Real  V)
inline

Definition at line 473 of file IonicLuoRudyI.hpp.

◆ Ib()

Real Ib ( Real  V)
inline

Definition at line 480 of file IonicLuoRudyI.hpp.

◆ Itot()

Real Itot ( Real  V,
Real  m,
Real  h,
Real  j,
Real  d,
Real  f,
Real  X,
Real  Ca 
)
inline

Definition at line 487 of file IonicLuoRudyI.hpp.

◆ computeGatingRhs()

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

Methods.

Implements ElectroIonicModel.

Definition at line 163 of file IonicLuoRudyI.cpp.

◆ computeNonGatingRhs()

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

In the case this method is improperly used, it should use this default implementation.

This method should be used together with the Rush-Larsen time advancing scheme

Parameters
vvector of state variables including the voltage (with n elements)
rhsvector of right hand side state variables excluding the voltage and the gating variables (with n-g-1 elements)

Reimplemented from ElectroIonicModel.

Definition at line 191 of file IonicLuoRudyI.cpp.

◆ computeRhs()

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

This methods contains the actual evaluation of the rhs of all state variablesin the model (0D version)

Although this method can just wrap the computeGatingRhs ( const std::vector<Real>& v, std::vector<Real>& rhs ) and the computeLocalPotentialRhs ( const std::vector<Real>& v ) methods, for efficiency it may be better to duplicate the code.

Parameters
vvector of state variables including the voltage (with n elements)
rhsvector of right hand side state variables including the voltage (with n elements)

Implements ElectroIonicModel.

Definition at line 203 of file IonicLuoRudyI.cpp.

◆ computeGatingVariablesWithRushLarsen()

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

This methods contains the actual evaluation of the rhs of the voltage equation only (0D version)

Overload this method in order to solve the ionic model with the Rush-Larsen method in the monodomain solver

Parameters
vvector of state variables
dttime step of the simulation

Reimplemented from ElectroIonicModel.

Definition at line 233 of file IonicLuoRudyI.cpp.

◆ computeLocalPotentialRhs()

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

This methods contains the actual evaluation of the rhs of the voltage equation only (0D version)

Parameters
vvector of state variables including the voltage (with n elements)

Implements ElectroIonicModel.

Definition at line 252 of file IonicLuoRudyI.cpp.

◆ showMe()

void showMe ( )
virtual

Display information about the model.

Implements ElectroIonicModel.

Definition at line 271 of file IonicLuoRudyI.cpp.

Field Documentation

◆ M_ENa

Real M_ENa
private

Solves the ionic model.

Model Parameters Chemical kinetics parameters

Definition at line 517 of file IonicLuoRudyI.hpp.

◆ M_gNa

Real M_gNa
private

Definition at line 518 of file IonicLuoRudyI.hpp.

◆ M_gsi

Real M_gsi
private

Definition at line 521 of file IonicLuoRudyI.hpp.

◆ M_K0

Real M_K0
private

Definition at line 524 of file IonicLuoRudyI.hpp.

◆ M_gK

Real M_gK
private

Definition at line 525 of file IonicLuoRudyI.hpp.

◆ M_EK

Real M_EK
private

Definition at line 526 of file IonicLuoRudyI.hpp.

◆ M_gK1

Real M_gK1
private

Definition at line 529 of file IonicLuoRudyI.hpp.

◆ M_EK1

Real M_EK1
private

Definition at line 530 of file IonicLuoRudyI.hpp.

◆ M_EKp

Real M_EKp
private

Definition at line 533 of file IonicLuoRudyI.hpp.

◆ M_gKp

Real M_gKp
private

Definition at line 534 of file IonicLuoRudyI.hpp.

◆ M_gb

Real M_gb
private

Definition at line 536 of file IonicLuoRudyI.hpp.


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