37 #ifndef STIMULUSSINGLESOURCE_HPP_ 38 #define STIMULUSSINGLESOURCE_HPP_ 40 #include <lifev/electrophysiology/stimulus/ElectroStimulus.hpp> 45 class StimulusSingleSource :
public ElectroStimulus
57 StimulusSingleSource();
60 virtual ~StimulusSingleSource() {}
67 inline void setRadius ( Real r )
69 ASSERT (r > 0,
"Invalid radius value.");
73 inline void setTotalCurrent ( Real I )
75 ASSERT (I >= 0,
"Invalid current value.");
79 inline void setPacingSite ( Real x , Real y , Real z )
86 inline void setStimDuration ( Real duration )
88 ASSERT (duration > 0,
"Invalid stimulus duration value.");
89 M_StimDuration = duration;
92 inline void setStartingTimeStimulus ( Real startingTimeStimulus )
94 ASSERT (startingTimeStimulus >= 0,
"Invalid starting time stimulus.");
95 M_startingTimeStimulus = startingTimeStimulus;
99 void setParameters (list_Type& list)
101 this->setRadius ( list.get (
"applied_current_radius", 0.2 ) );
102 this->setTotalCurrent ( list.get (
"applied_total_current", 1.0 ) );
103 this->setPacingSite (list.get (
"pacing_site_X", 1.0 ), list.get (
"pacing_site_Y", 1.0 ), list.get (
"pacing_site_Z", 1.0 ) );
104 this->setStimDuration ( list.get (
"duration_stimulus", 1.0 ) );
105 this->setStartingTimeStimulus ( list.get (
"starting_time_stimulus", 0.0 ) );
118 Real appliedCurrent (
const Real& t,
const Real& x,
const Real& y,
const Real& z,
const ID& i );
130 Real M_startingTimeStimulus;