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_2d.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{
12 {
13 double amplitude;
15
16 explicit BoostStimulus2DParameters(double amplitude = 5.0, bool isActive = true)
18 {}
19
20 bool operator==(const BoostStimulus2DParameters& other) const
21 {
22 constexpr double epsilon = 1e-6;
23 return std::abs(amplitude - other.amplitude) < epsilon &&
24 isActive == other.isActive;
25 }
26
27 [[nodiscard]] std::string toString() const override
28 {
29 std::ostringstream result;
30 result << std::fixed << std::setprecision(2);
31 result << "Parameters: ["
32 << "Amplitude: " << amplitude << ", "
33 << "IsActive: " << (isActive ? "true" : "false") << "]";
34 return result.str();
35 }
36 };
37
47 class BoostStimulus2D final : public Element
48 {
49 private:
51 public:
52 BoostStimulus2D(const ElementCommonParameters& elementCommonParameters,
53 const BoostStimulus2DParameters& parameters);
54
55 void init() override;
56 void step(double t, double deltaT) override;
57 [[nodiscard]] std::string toString() const override;
58 [[nodiscard]] std::shared_ptr<Element> clone() const override;
59
60 void setParameters(const BoostStimulus2DParameters& parameters);
61 [[nodiscard]] BoostStimulus2DParameters getParameters() const;
62 };
63}
Spatially uniform constant stimulus for 2D neural fields.
Definition boost_stimulus_2d.h:48
std::string toString() const override
Definition boost_stimulus_2d.cpp:28
BoostStimulus2DParameters getParameters() const
Definition boost_stimulus_2d.cpp:47
void step(double t, double deltaT) override
Advance the element by one time step.
Definition boost_stimulus_2d.cpp:22
void init() override
Initialize the element (called once before the simulation loop).
Definition boost_stimulus_2d.cpp:16
std::shared_ptr< Element > clone() const override
Definition boost_stimulus_2d.cpp:36
void setParameters(const BoostStimulus2DParameters &parameters)
Definition boost_stimulus_2d.cpp:41
Abstract base class for all simulation elements.
Definition element.h:28
Definition element_parameters.h:10
Definition boost_stimulus_2d.h:12
bool isActive
Definition boost_stimulus_2d.h:14
bool operator==(const BoostStimulus2DParameters &other) const
Definition boost_stimulus_2d.h:20
BoostStimulus2DParameters(double amplitude=5.0, bool isActive=true)
Definition boost_stimulus_2d.h:16
std::string toString() const override
Definition boost_stimulus_2d.h:27
double amplitude
Definition boost_stimulus_2d.h:13
Definition element_parameters.h:188
Definition element_parameters.h:206