LifeV
|
IonicModel - This class implements an ionic model. More...
#include <IonicNoblePurkinje.hpp>
Public Member Functions | |
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... | |
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 ¶meterList) |
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< Real > | restingConditions () 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... | |
ElectroIonicModel & | operator= (const ElectroIonicModel &Ionic) |
Assignment operator. More... | |
Private Attributes | |
Real | M_gi |
Solves the ionic model. More... | |
Real | M_vNa |
Real | M_vK |
Real | M_Cm |
Real | M_Itot |
Type definitions | |
typedef ElectroIonicModel | super |
typedef std::shared_ptr< VectorEpetra > | vectorPtr_Type |
typedef std::shared_ptr< VectorElemental > | elvecPtr_Type |
typedef RegionMesh< LinearTetra > | mesh_Type |
Constructors & Destructor | |
IonicNoblePurkinje () | |
Constructor. More... | |
IonicNoblePurkinje (Teuchos::ParameterList ¶meterList) | |
IonicNoblePurkinje (const IonicNoblePurkinje &model) | |
virtual | ~IonicNoblePurkinje () |
Destructor. More... | |
Overloads | |
IonicNoblePurkinje & | operator= (const IonicNoblePurkinje &model) |
Operator. More... | |
Setters and getters | |
const Real & | gi () const |
const Real & | Cm () const |
const Real & | vK () const |
const Real & | vNa () const |
const Real & | Itotal () const |
void | setgi (const Real &p) |
void | setCm (const Real &p) |
void | setvNa (const Real &p) |
void | setvK (const Real &p) |
static Real | GeneralFunctionAlphaAndBeta (const Real &V, const Real &C1, const Real &C2, const Real &C3, const Real &C4, const Real &C5, const Real &V_0) |
static Real | mInf (const Real &V) |
static Real | hInf (const Real &V) |
static Real | nInf (const Real &V) |
Additional Inherited Members | |
Public Types inherited from ElectroIonicModel | |
typedef VectorEpetra | vector_Type |
typedef std::shared_ptr< VectorEpetra > | vectorPtr_Type |
typedef std::shared_ptr< VectorElemental > | elvecPtr_Type |
typedef RegionMesh< LinearTetra > | mesh_Type |
typedef MatrixEpetra< Real > | matrix_Type |
typedef std::shared_ptr< matrix_Type > | matrixPtr_Type |
typedef FESpace< mesh_Type, MapEpetra > | feSpace_Type |
typedef std::shared_ptr< feSpace_Type > | feSpacePtr_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 |
Protected Attributes inherited from ElectroIonicModel | |
short int | M_numberOfEquations |
short int | M_numberOfGatingVariables |
std::vector< Real > | M_restingConditions |
Real | M_membraneCapacitance |
Real | M_appliedCurrent |
vectorPtr_Type | M_appliedCurrentPtr |
function_Type | M_pacingProtocol |
IonicModel - This class implements an ionic model.
Definition at line 58 of file IonicNoblePurkinje.hpp.
typedef ElectroIonicModel super |
Definition at line 64 of file IonicNoblePurkinje.hpp.
typedef std::shared_ptr<VectorEpetra> vectorPtr_Type |
Definition at line 65 of file IonicNoblePurkinje.hpp.
typedef std::shared_ptr<VectorElemental> elvecPtr_Type |
Definition at line 66 of file IonicNoblePurkinje.hpp.
typedef RegionMesh<LinearTetra> mesh_Type |
Definition at line 67 of file IonicNoblePurkinje.hpp.
IonicNoblePurkinje | ( | Teuchos::ParameterList & | parameterList | ) |
Epetra | communicator |
list | of parameters in an xml file |
Definition at line 65 of file IonicNoblePurkinje.cpp.
IonicNoblePurkinje | ( | const IonicNoblePurkinje & | model | ) |
IonicNoblePurkinje | object |
Definition at line 76 of file IonicNoblePurkinje.cpp.
|
inlinevirtual |
Destructor.
Definition at line 89 of file IonicNoblePurkinje.hpp.
IonicNoblePurkinje & operator= | ( | const IonicNoblePurkinje & | model | ) |
Operator.
Definition at line 93 of file IonicNoblePurkinje.cpp.
|
inline |
Definition at line 104 of file IonicNoblePurkinje.hpp.
|
inline |
Definition at line 110 of file IonicNoblePurkinje.hpp.
|
inline |
Definition at line 115 of file IonicNoblePurkinje.hpp.
|
inline |
Definition at line 120 of file IonicNoblePurkinje.hpp.
|
inline |
Definition at line 125 of file IonicNoblePurkinje.hpp.
|
inline |
Definition at line 131 of file IonicNoblePurkinje.hpp.
|
inline |
Definition at line 137 of file IonicNoblePurkinje.hpp.
|
inline |
Definition at line 142 of file IonicNoblePurkinje.hpp.
|
inline |
Definition at line 147 of file IonicNoblePurkinje.hpp.
|
inlinestatic |
Definition at line 153 of file IonicNoblePurkinje.hpp.
Definition at line 166 of file IonicNoblePurkinje.hpp.
Definition at line 174 of file IonicNoblePurkinje.hpp.
Definition at line 182 of file IonicNoblePurkinje.hpp.
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.
v | vector of state variables including the voltage (with n elements) |
rhs | vector of right hand side state variables including the voltage (with n elements) |
Implements ElectroIonicModel.
Definition at line 132 of file IonicNoblePurkinje.cpp.
This methods contains the actual evaluation of the rhs of the voltage equation only (0D version)
v | vector of state variables including the voltage (with n elements) |
Implements ElectroIonicModel.
Definition at line 160 of file IonicNoblePurkinje.cpp.
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
v | vector of state variables |
dt | time step of the simulation |
Reimplemented from ElectroIonicModel.
Definition at line 188 of file IonicNoblePurkinje.cpp.
|
virtual |
Display information about the model.
Implements ElectroIonicModel.
Definition at line 214 of file IonicNoblePurkinje.cpp.
|
private |
Solves the ionic model.
Model Parameters Chemical kinetics parameters
Definition at line 216 of file IonicNoblePurkinje.hpp.
|
private |
Definition at line 217 of file IonicNoblePurkinje.hpp.
|
private |
Definition at line 218 of file IonicNoblePurkinje.hpp.
|
private |
Definition at line 219 of file IonicNoblePurkinje.hpp.
|
private |
Definition at line 220 of file IonicNoblePurkinje.hpp.