45 #ifndef _IONICNOBLEPURKINJE_H_    46 #define _IONICNOBLEPURKINJE_H_    48 #include <lifev/electrophysiology/solver/IonicModels/ElectroIonicModel.hpp>    50 #include <Teuchos_RCP.hpp>    51 #include <Teuchos_ParameterList.hpp>    52 #include "Teuchos_XMLParameterListHelpers.hpp"    58 class IonicNoblePurkinje : 
public virtual ElectroIonicModel
    64     typedef ElectroIonicModel                         super;
    65     typedef std::shared_ptr<VectorEpetra>         vectorPtr_Type;
    66     typedef std::shared_ptr<VectorElemental>  elvecPtr_Type;
    67     typedef RegionMesh<LinearTetra>                 mesh_Type;
    82     IonicNoblePurkinje ( Teuchos::ParameterList& parameterList );
    87     IonicNoblePurkinje ( 
const IonicNoblePurkinje& model );
    89     virtual ~IonicNoblePurkinje() {}
    96     IonicNoblePurkinje& operator= ( 
const IonicNoblePurkinje& model );
   125     inline const Real& Itotal()             
const   131     inline void setgi           ( 
const Real& p )
   137     inline void setCm           ( 
const Real& p )
   142     inline void setvNa          ( 
const Real& p )
   147     inline void setvK           ( 
const Real& p )
   155         if (! (C1 != 0 && C2 == 0) )
   157             return (C1 * std::exp ( (V - V_0) / C2) + C3 * (V - V_0) ) / (1 + C4 * std::exp ( (V - V_0) / C5) ) ;
   161             return (C1 + C3 * (V - V_0) ) / (1 + C4 * std::exp ( (V - V_0) / C5) ) ;
   168         Real alpham = GeneralFunctionAlphaAndBeta (V, 0, 1, 0.1, -1, -15, -48);
   169         Real betam  = GeneralFunctionAlphaAndBeta (V, 0, 1, -0.12, -1, 5, -8);
   170         Real taum = alpham + betam;
   171         return alpham / (taum);
   176         Real alphah = GeneralFunctionAlphaAndBeta (V, 0.17, -20, 0, 0, 1, -90);
   177         Real betah  = GeneralFunctionAlphaAndBeta (V, 1, 0, 0, 1, -10, -42);
   178         Real tauh = alphah + betah;
   179         return alphah / (tauh);
   184         Real alphan = GeneralFunctionAlphaAndBeta (V, 0, 1, 0.0001, -1, -10, -50);
   185         Real betan  = GeneralFunctionAlphaAndBeta (V, 0.002, -80, 0, 0, 1, -90);
   186         Real taun = alphan + betan;
   187         return alphan / (taun);
   194     void computeGatingRhs ( 
const std::vector<Real>& v, std::vector<Real>& rhs);
   196     void computeRhs ( 
const std::vector<Real>& v, std::vector<Real>& rhs);
   199     Real computeLocalPotentialRhs ( 
const std::vector<Real>& v );
   201     void computeGatingVariablesWithRushLarsen ( std::vector<Real>& v, 
const Real dt );
 void updateInverseJacobian(const UInt &iQuadPt)
double Real
Generic real data.