LifeV
IonicMitchellSchaeffer Class Reference

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

#include <IonicMitchellSchaeffer.hpp>

+ Inheritance diagram for IonicMitchellSchaeffer:
+ Collaboration diagram for IonicMitchellSchaeffer:

Private Attributes

Real M_vGate
 Model Parameters. More...
 
Real M_tauClose
 
Real M_tauOpen
 
Real M_tauIn
 
Real M_tauOut
 

Type definitions

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

Constructors & Destructor

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

Overloads

IonicMitchellSchaefferoperator= (const IonicMitchellSchaeffer &model)
 Operator. More...
 

Setters and getters

const RealvGate () const
 
void setVGate (const Real &vGate)
 
const RealtauClose () const
 
void setTauClose (const Real &tauClose)
 
const RealtauOpen () const
 
void setTauOpen (const Real &tauOpen)
 
const RealtauIn () const
 
void setTauIn (const Real &tauIn)
 
const RealtauOut () const
 
void setTauOut (const Real &tauOut)
 

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...
 
Real computeLocalGatingRhs (const std::vector< Real > &v)
 
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...
 
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 60 of file IonicMitchellSchaeffer.hpp.

Member Typedef Documentation

◆ super

Definition at line 66 of file IonicMitchellSchaeffer.hpp.

◆ vectorPtr_Type

typedef std::shared_ptr<VectorEpetra> vectorPtr_Type

Definition at line 67 of file IonicMitchellSchaeffer.hpp.

◆ mesh_Type

Definition at line 68 of file IonicMitchellSchaeffer.hpp.

Constructor & Destructor Documentation

◆ IonicMitchellSchaeffer() [1/3]

Constructor.

Constructors.

Definition at line 45 of file IonicMitchellSchaeffer.cpp.

◆ IonicMitchellSchaeffer() [2/3]

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

Definition at line 57 of file IonicMitchellSchaeffer.cpp.

◆ IonicMitchellSchaeffer() [3/3]

Parameters
IonicMitchellSchaefferobject

Definition at line 70 of file IonicMitchellSchaeffer.cpp.

◆ ~IonicMitchellSchaeffer()

virtual ~IonicMitchellSchaeffer ( )
inlinevirtual

Destructor.

Definition at line 90 of file IonicMitchellSchaeffer.hpp.

Member Function Documentation

◆ operator=()

IonicMitchellSchaeffer & operator= ( const IonicMitchellSchaeffer model)

Operator.

Definition at line 85 of file IonicMitchellSchaeffer.cpp.

◆ vGate()

const Real& vGate ( ) const
inline

Definition at line 104 of file IonicMitchellSchaeffer.hpp.

◆ setVGate()

void setVGate ( const Real vGate)
inline

Definition at line 109 of file IonicMitchellSchaeffer.hpp.

◆ tauClose()

const Real& tauClose ( ) const
inline

Definition at line 114 of file IonicMitchellSchaeffer.hpp.

◆ setTauClose()

void setTauClose ( const Real tauClose)
inline

Definition at line 119 of file IonicMitchellSchaeffer.hpp.

◆ tauOpen()

const Real& tauOpen ( ) const
inline

Definition at line 124 of file IonicMitchellSchaeffer.hpp.

◆ setTauOpen()

void setTauOpen ( const Real tauOpen)
inline

Definition at line 129 of file IonicMitchellSchaeffer.hpp.

◆ tauIn()

const Real& tauIn ( ) const
inline

Definition at line 134 of file IonicMitchellSchaeffer.hpp.

◆ setTauIn()

void setTauIn ( const Real tauIn)
inline

Definition at line 139 of file IonicMitchellSchaeffer.hpp.

◆ tauOut()

const Real& tauOut ( ) const
inline

Definition at line 144 of file IonicMitchellSchaeffer.hpp.

◆ setTauOut()

void setTauOut ( const Real tauOut)
inline

Definition at line 149 of file IonicMitchellSchaeffer.hpp.

◆ computeGatingRhs()

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

Methods.

Implements ElectroIonicModel.

Definition at line 104 of file IonicMitchellSchaeffer.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 113 of file IonicMitchellSchaeffer.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 122 of file IonicMitchellSchaeffer.cpp.

◆ computeLocalGatingRhs()

Real computeLocalGatingRhs ( const std::vector< Real > &  v)

Definition at line 127 of file IonicMitchellSchaeffer.cpp.

◆ showMe()

void showMe ( )
virtual

Display information about the model.

Implements ElectroIonicModel.

Definition at line 139 of file IonicMitchellSchaeffer.cpp.

+ Here is the caller graph for this function:

Field Documentation

◆ M_vGate

Real M_vGate
private

Model Parameters.

Chemical kinetics parameters

Definition at line 180 of file IonicMitchellSchaeffer.hpp.

◆ M_tauClose

Real M_tauClose
private

Definition at line 181 of file IonicMitchellSchaeffer.hpp.

◆ M_tauOpen

Real M_tauOpen
private

Definition at line 182 of file IonicMitchellSchaeffer.hpp.

◆ M_tauIn

Real M_tauIn
private

Definition at line 183 of file IonicMitchellSchaeffer.hpp.

◆ M_tauOut

Real M_tauOut
private

Definition at line 184 of file IonicMitchellSchaeffer.hpp.


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