31 constexpr double epsilon = 1e-6;
32 return std::abs(
width - other.
width) < epsilon &&
40 [[nodiscard]] std::string
toString()
const override
42 std::ostringstream result;
43 result << std::fixed << std::setprecision(2);
44 result <<
"Parameters: ["
45 <<
"Width: " <<
width <<
", "
49 <<
"Circular: " << (
circular ?
"true" :
"false") <<
", "
50 <<
"Normalized: " << (
normalized ?
"true" :
"false") <<
"]";
64 void step(
double t,
double deltaT)
override;
65 std::string
toString()
const override;
66 std::shared_ptr<Element>
clone()
const override;
Abstract base class for all simulation elements.
Definition element.h:28
Definition gauss_stimulus_2d.h:56
void setParameters(const GaussStimulus2DParameters ¶meters)
Definition gauss_stimulus_2d.cpp:98
void step(double t, double deltaT) override
Advance the element by one time step.
Definition gauss_stimulus_2d.cpp:81
void init() override
Initialize the element (called once before the simulation loop).
Definition gauss_stimulus_2d.cpp:25
std::shared_ptr< Element > clone() const override
Definition gauss_stimulus_2d.cpp:93
std::string toString() const override
Definition gauss_stimulus_2d.cpp:85
GaussStimulus2DParameters getParameters() const
Definition gauss_stimulus_2d.cpp:104
Definition element_parameters.h:10
Definition element_parameters.h:188
Definition element_parameters.h:206
Definition gauss_stimulus_2d.h:13
bool operator==(const GaussStimulus2DParameters &other) const
Definition gauss_stimulus_2d.h:29
double position_y
Definition gauss_stimulus_2d.h:17
bool circular
Definition gauss_stimulus_2d.h:18
bool normalized
Definition gauss_stimulus_2d.h:19
double position_x
Definition gauss_stimulus_2d.h:16
double amplitude
Definition gauss_stimulus_2d.h:15
double width
Definition gauss_stimulus_2d.h:14
std::string toString() const override
Definition gauss_stimulus_2d.h:40
GaussStimulus2DParameters(double width=5.0, double amplitude=15.0, double position_x=50.0, double position_y=50.0, bool circular=true, bool normalized=false)
Definition gauss_stimulus_2d.h:21