LifeV
IonicMinimalModel Class Reference

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

#include <IonicMinimalModel.hpp>

+ Inheritance diagram for IonicMinimalModel:
+ Collaboration diagram for IonicMinimalModel:

Private Attributes

Real M_uo
 Solves the ionic model. More...
 
Real M_uu
 
Real M_tetav
 
Real M_tetaw
 
Real M_tetavm
 
Real M_tetao
 
Real M_tauv1
 
Real M_tauv2
 
Real M_tauvp
 
Real M_tauw1
 
Real M_tauw2
 
Real M_kw
 
Real M_uw
 
Real M_tauwp
 
Real M_taufi
 
Real M_tauo1
 
Real M_tauo2
 
Real M_tauso1
 
Real M_tauso2
 
Real M_kso
 
Real M_uso
 
Real M_taus1
 
Real M_taus2
 
Real M_ks
 
Real M_us
 
Real M_tausi
 
Real M_tauwinf
 
Real M_winfstar
 

Type definitions

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

Constructors & Destructor

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

Overloads

IonicMinimalModeloperator= (const IonicMinimalModel &model)
 Operator. More...
 

Setters and getters

const RealUo () const
 
const RealUu () const
 
const RealTetav () const
 
const RealTetaw () const
 
const RealTetavm () const
 
const RealTetao () const
 
const RealTauv1 () const
 
const RealTauv2 () const
 
const RealTauvp () const
 
const RealTauw1 () const
 
const RealTauw2 () const
 
const RealKw () const
 
const RealUw () const
 
const RealTauwp () const
 
const RealTaufi () const
 
const RealTauo1 () const
 
const RealTauo2 () const
 
const RealTauso1 () const
 
const RealTauso2 () const
 
const RealKso () const
 
const RealUso () const
 
const RealTaus1 () const
 
const RealTaus2 () const
 
const RealKs () const
 
const RealUs () const
 
const RealTausi () const
 
const RealTauinf () const
 
const RealWinfstart () const
 
void setUo (const Real &p)
 
void setUu (const Real &p)
 
void setTetav (const Real &p)
 
void setTetaw (const Real &p)
 
void setTetavm (const Real &p)
 
void setTetao (const Real &p)
 
void setTauv1 (const Real &p)
 
void setTauv2 (const Real &p)
 
void setTauvp (const Real &p)
 
void setTauw1 (const Real &p)
 
void setTauw2 (const Real &p)
 
void setKw (const Real &p)
 
void setUw (const Real &p)
 
void setTauwp (const Real &p)
 
void setTaufi (const Real &p)
 
void setTauo1 (const Real &p)
 
void setTauo2 (const Real &p)
 
void setTauso1 (const Real &p)
 
void setTauso2 (const Real &p)
 
void setKso (const Real &p)
 
void setUso (const Real &p)
 
void setTaus1 (const Real &p)
 
void setTaus2 (const Real &p)
 
void setKs (const Real &p)
 
void setUs (const Real &p)
 
void setTausi (const Real &p)
 
void setTauinf (const Real &p)
 
void setWinfstart (const Real &p)
 
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...
 

Methods

void computeGatingRhs (const std::vector< Real > &v, std::vector< Real > &rhs)
 Methods. 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...
 
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 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...
 
void showMe ()
 Display information about the model. More...
 
static Real Heaviside (const Real &x)
 

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, 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 an ionic model.

Definition at line 58 of file IonicMinimalModel.hpp.

Member Typedef Documentation

◆ super

Definition at line 64 of file IonicMinimalModel.hpp.

◆ vectorPtr_Type

typedef std::shared_ptr<VectorEpetra> vectorPtr_Type

Definition at line 65 of file IonicMinimalModel.hpp.

◆ elvecPtr_Type

typedef std::shared_ptr<VectorElemental> elvecPtr_Type

Definition at line 66 of file IonicMinimalModel.hpp.

◆ mesh_Type

Definition at line 67 of file IonicMinimalModel.hpp.

Constructor & Destructor Documentation

◆ IonicMinimalModel() [1/3]

Constructor.

Constructors.

Definition at line 50 of file IonicMinimalModel.cpp.

◆ IonicMinimalModel() [2/3]

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

Definition at line 88 of file IonicMinimalModel.cpp.

◆ IonicMinimalModel() [3/3]

Parameters
IonicMinimalModelobject

Definition at line 126 of file IonicMinimalModel.cpp.

◆ ~IonicMinimalModel()

virtual ~IonicMinimalModel ( )
inlinevirtual

Destructor.

Definition at line 89 of file IonicMinimalModel.hpp.

Member Function Documentation

◆ operator=()

IonicMinimalModel & operator= ( const IonicMinimalModel model)

Operator.

Definition at line 166 of file IonicMinimalModel.cpp.

◆ Uo()

const Real& Uo ( ) const
inline

Definition at line 104 of file IonicMinimalModel.hpp.

◆ Uu()

const Real& Uu ( ) const
inline

Definition at line 108 of file IonicMinimalModel.hpp.

◆ Tetav()

const Real& Tetav ( ) const
inline

Definition at line 112 of file IonicMinimalModel.hpp.

◆ Tetaw()

const Real& Tetaw ( ) const
inline

Definition at line 116 of file IonicMinimalModel.hpp.

◆ Tetavm()

const Real& Tetavm ( ) const
inline

Definition at line 120 of file IonicMinimalModel.hpp.

◆ Tetao()

const Real& Tetao ( ) const
inline

Definition at line 124 of file IonicMinimalModel.hpp.

◆ Tauv1()

const Real& Tauv1 ( ) const
inline

Definition at line 128 of file IonicMinimalModel.hpp.

◆ Tauv2()

const Real& Tauv2 ( ) const
inline

Definition at line 132 of file IonicMinimalModel.hpp.

◆ Tauvp()

const Real& Tauvp ( ) const
inline

Definition at line 136 of file IonicMinimalModel.hpp.

◆ Tauw1()

const Real& Tauw1 ( ) const
inline

Definition at line 140 of file IonicMinimalModel.hpp.

◆ Tauw2()

const Real& Tauw2 ( ) const
inline

Definition at line 144 of file IonicMinimalModel.hpp.

◆ Kw()

const Real& Kw ( ) const
inline

Definition at line 148 of file IonicMinimalModel.hpp.

◆ Uw()

const Real& Uw ( ) const
inline

Definition at line 152 of file IonicMinimalModel.hpp.

◆ Tauwp()

const Real& Tauwp ( ) const
inline

Definition at line 156 of file IonicMinimalModel.hpp.

◆ Taufi()

const Real& Taufi ( ) const
inline

Definition at line 160 of file IonicMinimalModel.hpp.

◆ Tauo1()

const Real& Tauo1 ( ) const
inline

Definition at line 164 of file IonicMinimalModel.hpp.

◆ Tauo2()

const Real& Tauo2 ( ) const
inline

Definition at line 168 of file IonicMinimalModel.hpp.

◆ Tauso1()

const Real& Tauso1 ( ) const
inline

Definition at line 172 of file IonicMinimalModel.hpp.

◆ Tauso2()

const Real& Tauso2 ( ) const
inline

Definition at line 176 of file IonicMinimalModel.hpp.

◆ Kso()

const Real& Kso ( ) const
inline

Definition at line 180 of file IonicMinimalModel.hpp.

◆ Uso()

const Real& Uso ( ) const
inline

Definition at line 184 of file IonicMinimalModel.hpp.

◆ Taus1()

const Real& Taus1 ( ) const
inline

Definition at line 188 of file IonicMinimalModel.hpp.

◆ Taus2()

const Real& Taus2 ( ) const
inline

Definition at line 192 of file IonicMinimalModel.hpp.

◆ Ks()

const Real& Ks ( ) const
inline

Definition at line 196 of file IonicMinimalModel.hpp.

◆ Us()

const Real& Us ( ) const
inline

Definition at line 200 of file IonicMinimalModel.hpp.

◆ Tausi()

const Real& Tausi ( ) const
inline

Definition at line 204 of file IonicMinimalModel.hpp.

◆ Tauinf()

const Real& Tauinf ( ) const
inline

Definition at line 208 of file IonicMinimalModel.hpp.

◆ Winfstart()

const Real& Winfstart ( ) const
inline

Definition at line 212 of file IonicMinimalModel.hpp.

◆ setUo()

void setUo ( const Real p)
inline

Definition at line 218 of file IonicMinimalModel.hpp.

◆ setUu()

void setUu ( const Real p)
inline

Definition at line 222 of file IonicMinimalModel.hpp.

◆ setTetav()

void setTetav ( const Real p)
inline

Definition at line 226 of file IonicMinimalModel.hpp.

◆ setTetaw()

void setTetaw ( const Real p)
inline

Definition at line 230 of file IonicMinimalModel.hpp.

◆ setTetavm()

void setTetavm ( const Real p)
inline

Definition at line 234 of file IonicMinimalModel.hpp.

◆ setTetao()

void setTetao ( const Real p)
inline

Definition at line 238 of file IonicMinimalModel.hpp.

◆ setTauv1()

void setTauv1 ( const Real p)
inline

Definition at line 242 of file IonicMinimalModel.hpp.

◆ setTauv2()

void setTauv2 ( const Real p)
inline

Definition at line 246 of file IonicMinimalModel.hpp.

◆ setTauvp()

void setTauvp ( const Real p)
inline

Definition at line 250 of file IonicMinimalModel.hpp.

◆ setTauw1()

void setTauw1 ( const Real p)
inline

Definition at line 254 of file IonicMinimalModel.hpp.

◆ setTauw2()

void setTauw2 ( const Real p)
inline

Definition at line 258 of file IonicMinimalModel.hpp.

◆ setKw()

void setKw ( const Real p)
inline

Definition at line 262 of file IonicMinimalModel.hpp.

◆ setUw()

void setUw ( const Real p)
inline

Definition at line 266 of file IonicMinimalModel.hpp.

◆ setTauwp()

void setTauwp ( const Real p)
inline

Definition at line 270 of file IonicMinimalModel.hpp.

◆ setTaufi()

void setTaufi ( const Real p)
inline

Definition at line 274 of file IonicMinimalModel.hpp.

◆ setTauo1()

void setTauo1 ( const Real p)
inline

Definition at line 278 of file IonicMinimalModel.hpp.

◆ setTauo2()

void setTauo2 ( const Real p)
inline

Definition at line 282 of file IonicMinimalModel.hpp.

◆ setTauso1()

void setTauso1 ( const Real p)
inline

Definition at line 286 of file IonicMinimalModel.hpp.

◆ setTauso2()

void setTauso2 ( const Real p)
inline

Definition at line 290 of file IonicMinimalModel.hpp.

◆ setKso()

void setKso ( const Real p)
inline

Definition at line 294 of file IonicMinimalModel.hpp.

◆ setUso()

void setUso ( const Real p)
inline

Definition at line 298 of file IonicMinimalModel.hpp.

◆ setTaus1()

void setTaus1 ( const Real p)
inline

Definition at line 302 of file IonicMinimalModel.hpp.

◆ setTaus2()

void setTaus2 ( const Real p)
inline

Definition at line 306 of file IonicMinimalModel.hpp.

◆ setKs()

void setKs ( const Real p)
inline

Definition at line 310 of file IonicMinimalModel.hpp.

◆ setUs()

void setUs ( const Real p)
inline

Definition at line 314 of file IonicMinimalModel.hpp.

◆ setTausi()

void setTausi ( const Real p)
inline

Definition at line 318 of file IonicMinimalModel.hpp.

◆ setTauinf()

void setTauinf ( const Real p)
inline

Definition at line 322 of file IonicMinimalModel.hpp.

◆ setWinfstart()

void setWinfstart ( const Real p)
inline

Definition at line 326 of file IonicMinimalModel.hpp.

◆ computePotentialRhsSVI()

void computePotentialRhsSVI ( const std::vector< vectorPtr_Type > &  v,
std::vector< vectorPtr_Type > &  rhs,
FESpace< mesh_Type, MapEpetra > &  uFESpace 
)
virtual

Compute the right hand side of the voltage equation using SVI.

Parameters
vvector of pointers to the state variables vectors
rhsvector of right hand side state variables
uFESpacefinite element space of the voltage

Filling local elvec_u with potential values in the nodes

Reimplemented from ElectroIonicModel.

Definition at line 330 of file IonicMinimalModel.cpp.

◆ Heaviside()

static Real Heaviside ( const Real x)
inlinestatic

Definition at line 342 of file IonicMinimalModel.hpp.

◆ computeGatingRhs()

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

Methods.

Implements ElectroIonicModel.

Definition at line 208 of file IonicMinimalModel.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 230 of file IonicMinimalModel.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 272 of file IonicMinimalModel.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 260 of file IonicMinimalModel.cpp.

◆ showMe()

void showMe ( )
virtual

Display information about the model.

Implements ElectroIonicModel.

Definition at line 295 of file IonicMinimalModel.cpp.

Field Documentation

◆ M_uo

Real M_uo
private

Solves the ionic model.

Model Parameters Chemical kinetics parameters

Definition at line 376 of file IonicMinimalModel.hpp.

◆ M_uu

Real M_uu
private

Definition at line 377 of file IonicMinimalModel.hpp.

◆ M_tetav

Real M_tetav
private

Definition at line 378 of file IonicMinimalModel.hpp.

◆ M_tetaw

Real M_tetaw
private

Definition at line 379 of file IonicMinimalModel.hpp.

◆ M_tetavm

Real M_tetavm
private

Definition at line 380 of file IonicMinimalModel.hpp.

◆ M_tetao

Real M_tetao
private

Definition at line 381 of file IonicMinimalModel.hpp.

◆ M_tauv1

Real M_tauv1
private

Definition at line 382 of file IonicMinimalModel.hpp.

◆ M_tauv2

Real M_tauv2
private

Definition at line 383 of file IonicMinimalModel.hpp.

◆ M_tauvp

Real M_tauvp
private

Definition at line 384 of file IonicMinimalModel.hpp.

◆ M_tauw1

Real M_tauw1
private

Definition at line 385 of file IonicMinimalModel.hpp.

◆ M_tauw2

Real M_tauw2
private

Definition at line 386 of file IonicMinimalModel.hpp.

◆ M_kw

Real M_kw
private

Definition at line 387 of file IonicMinimalModel.hpp.

◆ M_uw

Real M_uw
private

Definition at line 388 of file IonicMinimalModel.hpp.

◆ M_tauwp

Real M_tauwp
private

Definition at line 389 of file IonicMinimalModel.hpp.

◆ M_taufi

Real M_taufi
private

Definition at line 390 of file IonicMinimalModel.hpp.

◆ M_tauo1

Real M_tauo1
private

Definition at line 391 of file IonicMinimalModel.hpp.

◆ M_tauo2

Real M_tauo2
private

Definition at line 392 of file IonicMinimalModel.hpp.

◆ M_tauso1

Real M_tauso1
private

Definition at line 393 of file IonicMinimalModel.hpp.

◆ M_tauso2

Real M_tauso2
private

Definition at line 394 of file IonicMinimalModel.hpp.

◆ M_kso

Real M_kso
private

Definition at line 395 of file IonicMinimalModel.hpp.

◆ M_uso

Real M_uso
private

Definition at line 396 of file IonicMinimalModel.hpp.

◆ M_taus1

Real M_taus1
private

Definition at line 397 of file IonicMinimalModel.hpp.

◆ M_taus2

Real M_taus2
private

Definition at line 398 of file IonicMinimalModel.hpp.

◆ M_ks

Real M_ks
private

Definition at line 399 of file IonicMinimalModel.hpp.

◆ M_us

Real M_us
private

Definition at line 400 of file IonicMinimalModel.hpp.

◆ M_tausi

Real M_tausi
private

Definition at line 401 of file IonicMinimalModel.hpp.

◆ M_tauwinf

Real M_tauwinf
private

Definition at line 402 of file IonicMinimalModel.hpp.

◆ M_winfstar

Real M_winfstar
private

Definition at line 403 of file IonicMinimalModel.hpp.


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