13 struct GaussStimulusParameters final : ElementSpecificParameters
35 constexpr double epsilon = 1e-6;
37 return std::abs(
width - other.width) < epsilon &&
38 std::abs(
position - other.position) < epsilon &&
39 std::abs(
amplitude - other.amplitude) < epsilon &&
44 [[nodiscard]] std::string
toString()
const override
46 std::ostringstream result;
47 result << std::fixed << std::setprecision(2);
48 result <<
"Parameters: ["
49 <<
"Width: " <<
width <<
", "
52 <<
"Circular: " << (
circular ?
"true" :
"false") <<
", "
53 <<
"Normalized: " << (
normalized ?
"true" :
"false")
79 void step(
double t,
double deltaT)
override;
80 std::string
toString()
const override;
81 std::shared_ptr<Element>
clone()
const override;
Abstract base class for all simulation elements.
Definition element.h:28
Localized Gaussian input stimulus applied to a neural field.
Definition gauss_stimulus.h:68
void step(double t, double deltaT) override
Advance the element by one time step.
Definition gauss_stimulus.cpp:54
std::string toString() const override
Definition gauss_stimulus.cpp:58
void init() override
Initialize the element (called once before the simulation loop).
Definition gauss_stimulus.cpp:18
GaussStimulusParameters getParameters() const
Definition gauss_stimulus.cpp:78
std::shared_ptr< Element > clone() const override
Definition gauss_stimulus.cpp:66
void setParameters(const GaussStimulusParameters ¶meters)
Definition gauss_stimulus.cpp:72
Definition element_parameters.h:10
Definition element_parameters.h:188
Parameters for a Gaussian-shaped external stimulus.
Definition gauss_stimulus_parameters.h:10
GaussStimulusParameters(const double width=5.0, const double amplitude=15.0, const double position=50.0, const bool circular=true, const bool normalized=false)
Construct a GaussStimulus parameter set.
Definition gauss_stimulus.h:27
std::string toString() const override
Definition gauss_stimulus.h:44
double position
Spatial position (centre) of the Gaussian.
Definition gauss_stimulus_parameters.h:13
double width
Standard deviation (σ) of the Gaussian bump.
Definition gauss_stimulus_parameters.h:11
bool circular
If true, the stimulus wraps at the field boundary.
Definition gauss_stimulus_parameters.h:14
bool operator==(const GaussStimulusParameters &other) const
Definition gauss_stimulus.h:33
double amplitude
Peak amplitude.
Definition gauss_stimulus_parameters.h:12
bool normalized
If true, the Gaussian is area-normalised.
Definition gauss_stimulus_parameters.h:15