32 [[nodiscard]] std::string
toString()
const override
34 std::ostringstream result;
35 result <<
"Parameters: ["
66 void step(
double t,
double deltaT)
override;
67 void addInput(
const std::shared_ptr<Element>& inputElement,
68 const std::string& inputComponent =
"output")
override;
69 std::string
toString()
const override;
70 std::shared_ptr<Element>
clone()
const override;
Abstract base class for all simulation elements.
Definition element.h:28
Expands a 1D input field to a 2D output by broadcasting along one axis.
Definition expand.h:55
void changeInputDimensions(const ElementDimensions &newInputDimensions)
Resize the 1D input field dimensions and rebuild the input buffer.
Definition expand.cpp:116
ExpandParameters getParameters() const
Definition expand.cpp:135
std::shared_ptr< Element > clone() const override
Definition expand.cpp:111
void addInput(const std::shared_ptr< Element > &inputElement, const std::string &inputComponent="output") override
Register inputElement as an upstream source for this element.
Definition expand.cpp:51
void init() override
Initialize the element (called once before the simulation loop).
Definition expand.cpp:16
std::string toString() const override
Definition expand.cpp:103
void setParameters(const ExpandParameters ¶meters)
Definition expand.cpp:129
void step(double t, double deltaT) override
Advance the element by one time step.
Definition expand.cpp:37
ProjectionAxis
Spatial axis a projection acts on.
Definition collapse.h:41
Definition element_parameters.h:10
const std::map< ProjectionAxis, std::string > ProjectionAxisToString
Maps ProjectionAxis values to human-readable strings.
Definition collapse.h:47
Definition element_parameters.h:188
Definition element_parameters.h:159
std::string toString() const
Definition element_parameters.cpp:55
Definition element_parameters.h:206
Parameters for an Expand (1D -> 2D) element.
Definition expand.h:14
std::string toString() const override
Definition expand.h:32
ExpandParameters(const ProjectionAxis broadcastProfileAxis=ProjectionAxis::X, const ElementDimensions &inputDimensions=ElementDimensions{ 100, 1.0 })
Construct Expand parameters.
Definition expand.h:21
ProjectionAxis broadcastProfileAxis
Axis the 1D profile maps to (it is repeated along the other).
Definition expand.h:15
bool operator==(const ExpandParameters &other) const
Definition expand.h:26
ElementDimensions inputDimensions
Spatial dimensions of the 1D source field.
Definition expand.h:16