38 #include <lifev/electrophysiology/solver/IonicModels/IonicAlievPanfilov.hpp> 51 IonicAlievPanfilov::IonicAlievPanfilov() :
59 M_restingConditions.at (0) = 0.0;
60 M_restingConditions.at (1) = 0.16;
63 IonicAlievPanfilov::IonicAlievPanfilov ( Teuchos::ParameterList& parameterList ) :
66 setup ( parameterList );
68 M_restingConditions.at (0) = 0.0;
69 M_restingConditions.at (1) = 0.16;
72 IonicAlievPanfilov::IonicAlievPanfilov (
const IonicAlievPanfilov& model )
79 M_epsilon = model.M_epsilon;
81 M_numberOfEquations = model.M_numberOfEquations;
82 M_restingConditions = model.M_restingConditions;
88 IonicAlievPanfilov& IonicAlievPanfilov::operator= (
const IonicAlievPanfilov& model )
94 M_epsilon = model.M_epsilon;
96 M_numberOfEquations = model.M_numberOfEquations;
97 M_restingConditions = model.M_restingConditions;
102 void IonicAlievPanfilov::setup ( Teuchos::ParameterList& parameterList )
104 M_mu1 = parameterList.get (
"mu1", 0.12);
105 M_mu2 = parameterList.get (
"mu2", 0.3);
106 M_k = parameterList.get (
"k", 8.0);
107 M_a = parameterList.get (
"a", 0.1);
108 M_epsilon = parameterList.get (
"epsilon", 0.01);
114 void IonicAlievPanfilov::computeGatingRhs (
const std::vector<Real>& v,
115 std::vector<Real>& rhs )
118 Real dr = - ( M_epsilon + M_mu1 * v[1] / ( M_mu2 + v[0] ) ) * ( v[1] + M_k * v[0] * ( v[0] - M_a - 1.0 ) );
125 void IonicAlievPanfilov::computeRhs (
const std::vector<Real>& v,
126 std::vector<Real>& rhs )
129 Real dr = - ( M_epsilon + M_mu1 * v[1] / ( M_mu2 + v[0] ) ) * ( v[1] + M_k * v[0] * ( v[0] - M_a - 1.0 ) );
130 Real dV = - M_k * v[0] * ( v[0] - M_a ) * ( v[0] - 1.0) - v[0] * v[1];
138 Real IonicAlievPanfilov::computeLocalPotentialRhs (
const std::vector<Real>& v )
140 return ( - M_k * v[0] * ( v[0] - M_a ) * ( v[0] - 1.0) - v[0] * v[1] );
144 void IonicAlievPanfilov::showMe()
146 std::cout <<
"\n\n\t\tIonicAlievPanfilov Informations\n\n";
147 std::cout <<
"number of unkowns: " <<
this->Size() << std::endl;
149 std::cout <<
"\n\t\tList of model parameters:\n\n";
150 std::cout <<
"mu1: " <<
this->Mu1() << std::endl;
151 std::cout <<
"mu2: " <<
this->Mu2() << std::endl;
152 std::cout <<
"k: " <<
this->K() << std::endl;
153 std::cout <<
"a: " <<
this->A() << std::endl;
154 std::cout <<
"epsilon: " <<
this->Epsilon() << std::endl;
156 std::cout <<
"\n\t\t End of IonicAlievPanfilov Informations\n\n\n";
void updateInverseJacobian(const UInt &iQuadPt)
double Real
Generic real data.