Dynamic Neural Field Composer 0.0.0
A C++20 library and interactive application for building and simulating Dynamic Neural Field (DNF) architectures.
Loading...
Searching...
No Matches
boost_stimulus.h
Go to the documentation of this file.
1#pragma once
2
3#include <cmath>
4#include <sstream>
5#include <iomanip>
6
7#include "element.h"
8
10{
14 {
15 double amplitude;
16 bool isActive;
17
21 explicit BoostStimulusParameters(const double amplitude = 5.0, const bool isActive = true)
23 {}
24
25 bool operator==(const BoostStimulusParameters& other) const
26 {
27 constexpr double epsilon = 1e-6;
28 return std::abs(amplitude - other.amplitude) < epsilon &&
29 isActive == other.isActive;
30 }
31
32 [[nodiscard]] std::string toString() const override
33 {
34 std::ostringstream result;
35 result << std::fixed << std::setprecision(2);
36 result << "Parameters: ["
37 << "Amplitude: " << amplitude << ", "
38 << "IsActive: " << (isActive ? "true" : "false")
39 << "]";
40 return result.str();
41 }
42 };
43
52 class BoostStimulus final : public Element
53 {
54 private:
55 BoostStimulusParameters parameters;
56 public:
60 BoostStimulus(const ElementCommonParameters& elementCommonParameters,
61 const BoostStimulusParameters& parameters);
62
63 void init() override;
64 void step(double t, double deltaT) override;
65 std::string toString() const override;
66 std::shared_ptr<Element> clone() const override;
67
68 void setParameters(const BoostStimulusParameters& parameters);
70 };
71}
Spatially uniform (homogeneous) input stimulus.
Definition boost_stimulus.h:53
void step(double t, double deltaT) override
Advance the element by one time step.
Definition boost_stimulus.cpp:20
std::shared_ptr< Element > clone() const override
Definition boost_stimulus.cpp:34
BoostStimulusParameters getParameters() const
Definition boost_stimulus.cpp:46
std::string toString() const override
Definition boost_stimulus.cpp:26
void setParameters(const BoostStimulusParameters &parameters)
Definition boost_stimulus.cpp:40
void init() override
Initialize the element (called once before the simulation loop).
Definition boost_stimulus.cpp:14
Abstract base class for all simulation elements.
Definition element.h:28
Definition element_parameters.h:10
Parameters for a spatially homogeneous boost stimulus.
Definition boost_stimulus.h:14
double amplitude
Uniform input value applied across the entire field.
Definition boost_stimulus.h:15
std::string toString() const override
Definition boost_stimulus.h:32
bool isActive
If false, the stimulus outputs zero regardless of amplitude.
Definition boost_stimulus.h:16
BoostStimulusParameters(const double amplitude=5.0, const bool isActive=true)
Construct a BoostStimulus parameter set.
Definition boost_stimulus.h:21
bool operator==(const BoostStimulusParameters &other) const
Definition boost_stimulus.h:25
Definition element_parameters.h:188
Definition element_parameters.h:206