36 #ifndef STIMULUSPMJ_HPP_ 37 #define STIMULUSPMJ_HPP_ 39 #include <lifev/electrophysiology/stimulus/ElectroStimulus.hpp> 44 class StimulusPMJ :
public ElectroStimulus
54 struct StimulusPMJ_Activation
63 typedef std::vector<StimulusPMJ_Activation > activationData_type;
76 virtual ~StimulusPMJ() {}
82 inline activationData_type activationData( )
84 return M_activationData;
91 void setPMJFromFile ( std::string fileName );
92 void setPMJAddJunction ( Real x, Real y, Real z, Real time, Real duration );
93 inline void setProblemFolder ( std::string problemFolder )
95 M_problemFolder = problemFolder;
98 inline void setRadius ( Real r )
100 ASSERT (r > 0,
"Invalid radius value.");
104 inline void setTotalCurrent ( Real I )
106 ASSERT (I >= 0,
"Invalid current value.");
110 void setParameters (list_Type& list)
112 this->setRadius ( list.get (
"applied_current_radius", 0.2) );
113 this->setTotalCurrent ( list.get (
"applied_total_current", 1.0) );
114 this->setProblemFolder ( list.get (
"PMJ_activation_folder",
"./") );
115 this->setPMJFromFile ( M_problemFolder + list.get (
"PMJ_activation_file",
"PMJ_activation.txt") );
127 Real appliedCurrent (
const Real& t,
const Real& x,
const Real& y,
const Real& z,
const ID& i );
133 activationData_type M_activationData;
136 std::string M_problemFolder;