LifeV
IonicAlievPanfilov Class Reference

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

#include <IonicAlievPanfilov.hpp>

+ Inheritance diagram for IonicAlievPanfilov:
+ Collaboration diagram for IonicAlievPanfilov:

Private Attributes

Real M_mu1
 Solves the ionic model. More...
 
Real M_mu2
 
Real M_epsilon
 
Real M_k
 
Real M_a
 

Type definitions

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

Constructors & Destructor

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

Overloads

IonicAlievPanfilovoperator= (const IonicAlievPanfilov &model)
 Operator. More...
 

Setters and getters

const RealMu1 () const
 
const RealMu2 () const
 
const RealK () const
 
const RealA () const
 
const RealEpsilon () const
 
void setMu1 (const Real &mu1)
 
void setMu2 (const Real &mu2)
 
void setK (const Real &k)
 
void setA (const Real &a)
 
void setEpsilon (const Real &epsilon)
 
void setup (Teuchos::ParameterList &parameterList)
 setup the parameters of the ionic model from an xml file 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 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 computeGatingVariablesWithRushLarsen (std::vector< Real > &, const Real)
 This methods contains the actual evaluation of the rhs of the voltage equation only (0D version) 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...
 
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 IonicAlievPanfilov.hpp.

Member Typedef Documentation

◆ super

Definition at line 64 of file IonicAlievPanfilov.hpp.

◆ vectorPtr_Type

typedef std::shared_ptr<VectorEpetra> vectorPtr_Type

Definition at line 65 of file IonicAlievPanfilov.hpp.

◆ mesh_Type

Definition at line 66 of file IonicAlievPanfilov.hpp.

Constructor & Destructor Documentation

◆ IonicAlievPanfilov() [1/3]

Constructor.

IonicModel - This class implements an ionic model.

Constructors

Definition at line 51 of file IonicAlievPanfilov.cpp.

◆ IonicAlievPanfilov() [2/3]

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

Definition at line 63 of file IonicAlievPanfilov.cpp.

◆ IonicAlievPanfilov() [3/3]

Parameters
IonicAlievPanfilovobject

Definition at line 72 of file IonicAlievPanfilov.cpp.

◆ ~IonicAlievPanfilov()

virtual ~IonicAlievPanfilov ( )
inlinevirtual

Destructor.

Definition at line 88 of file IonicAlievPanfilov.hpp.

Member Function Documentation

◆ operator=()

IonicAlievPanfilov & operator= ( const IonicAlievPanfilov model)

Operator.

Definition at line 88 of file IonicAlievPanfilov.cpp.

◆ Mu1()

const Real& Mu1 ( ) const
inline

Definition at line 103 of file IonicAlievPanfilov.hpp.

◆ Mu2()

const Real& Mu2 ( ) const
inline

Definition at line 107 of file IonicAlievPanfilov.hpp.

◆ K()

const Real& K ( ) const
inline

Definition at line 111 of file IonicAlievPanfilov.hpp.

◆ A()

const Real& A ( ) const
inline

Definition at line 115 of file IonicAlievPanfilov.hpp.

◆ Epsilon()

const Real& Epsilon ( ) const
inline

Definition at line 119 of file IonicAlievPanfilov.hpp.

◆ setMu1()

void setMu1 ( const Real mu1)
inline

Definition at line 124 of file IonicAlievPanfilov.hpp.

◆ setMu2()

void setMu2 ( const Real mu2)
inline

Definition at line 128 of file IonicAlievPanfilov.hpp.

◆ setK()

void setK ( const Real k)
inline

Definition at line 132 of file IonicAlievPanfilov.hpp.

◆ setA()

void setA ( const Real a)
inline

Definition at line 136 of file IonicAlievPanfilov.hpp.

◆ setEpsilon()

void setEpsilon ( const Real epsilon)
inline

Definition at line 140 of file IonicAlievPanfilov.hpp.

◆ setup()

void setup ( Teuchos::ParameterList &  parameterList)
virtual

setup the parameters of the ionic model from an xml file

Parameters
parameterListTeuchos parameter list

Reimplemented from ElectroIonicModel.

Definition at line 102 of file IonicAlievPanfilov.cpp.

◆ computeGatingRhs()

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

Methods.

Implements ElectroIonicModel.

Definition at line 114 of file IonicAlievPanfilov.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 125 of file IonicAlievPanfilov.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 138 of file IonicAlievPanfilov.cpp.

◆ showMe()

void showMe ( )
virtual

Display information about the model.

Implements ElectroIonicModel.

Definition at line 144 of file IonicAlievPanfilov.cpp.

Field Documentation

◆ M_mu1

Real M_mu1
private

Solves the ionic model.

Model Parameters Chemical kinetics parameters

Definition at line 183 of file IonicAlievPanfilov.hpp.

◆ M_mu2

Real M_mu2
private

Definition at line 184 of file IonicAlievPanfilov.hpp.

◆ M_epsilon

Real M_epsilon
private

Definition at line 185 of file IonicAlievPanfilov.hpp.

◆ M_k

Real M_k
private

Definition at line 186 of file IonicAlievPanfilov.hpp.

◆ M_a

Real M_a
private

Definition at line 187 of file IonicAlievPanfilov.hpp.


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