43 constexpr double epsilon = 1e-6;
53 [[nodiscard]] std::string
toString()
const override
55 std::ostringstream result;
56 result << std::fixed << std::setprecision(2);
57 result <<
"Parameters: ["
63 <<
"Circular: " << (
circular ?
"true" :
"false") <<
", "
64 <<
"Normalized: " << (
normalized ?
"true" :
"false") <<
"]";
73 std::array<int, 2> kernelRangeExc_x{}, kernelRangeExc_y{};
74 std::array<int, 2> kernelRangeInh_x{}, kernelRangeInh_y{};
75 std::vector<int> extIndexExc_x, extIndexExc_y;
76 std::vector<int> extIndexInh_x, extIndexInh_y;
77 std::vector<double> kernelExc_x, kernelExc_y;
78 std::vector<double> kernelInh_x, kernelInh_y;
79 std::vector<double> scratchTmp_;
80 std::vector<double> scratchExcConv_;
81 std::vector<double> scratchInhConv_;
87 void step(
double t,
double deltaT)
override;
88 std::string
toString()
const override;
89 std::shared_ptr<Element>
clone()
const override;
Abstract base class for all convolution-based interaction kernels.
Definition kernel.h:17
Definition mexican_hat_kernel_2d.h:70
std::string toString() const override
Definition mexican_hat_kernel_2d.cpp:119
void step(double t, double deltaT) override
Advance the element by one time step.
Definition mexican_hat_kernel_2d.cpp:95
std::shared_ptr< Element > clone() const override
Definition mexican_hat_kernel_2d.cpp:127
void setParameters(const MexicanHatKernel2DParameters ¶meters)
Definition mexican_hat_kernel_2d.cpp:132
MexicanHatKernel2DParameters getParameters() const
Definition mexican_hat_kernel_2d.cpp:138
void init() override
Initialize the element (called once before the simulation loop).
Definition mexican_hat_kernel_2d.cpp:18
Definition element_parameters.h:10
Definition element_parameters.h:188
Definition element_parameters.h:206
Definition mexican_hat_kernel_2d.h:22
double amplitudeInh
Definition mexican_hat_kernel_2d.h:26
bool operator==(const MexicanHatKernel2DParameters &other) const
Definition mexican_hat_kernel_2d.h:41
double widthExc
Definition mexican_hat_kernel_2d.h:23
bool normalized
Definition mexican_hat_kernel_2d.h:29
double widthInh
Definition mexican_hat_kernel_2d.h:25
MexicanHatKernel2DParameters(double widthExc=2.5, double amplitudeExc=11.0, double widthInh=5.0, double amplitudeInh=15.0, double amplitudeGlobal=-0.1, bool circular=true, bool normalized=true)
Definition mexican_hat_kernel_2d.h:31
double amplitudeGlobal
Definition mexican_hat_kernel_2d.h:27
bool circular
Definition mexican_hat_kernel_2d.h:28
double amplitudeExc
Definition mexican_hat_kernel_2d.h:24
std::string toString() const override
Definition mexican_hat_kernel_2d.h:53