Precomputed smooth absorber for FFT domains that should behave as open.
float minimumMask() const noexcept
Performs minimum mask.
static void validate(float dt, const AbsorbingBoundary2DParams ¶ms)
Performs validate.
AbsorbingBoundary2D()=default
Performs absorbing boundary2 d.
void configure(const ComplexField2D &field, float dt, const AbsorbingBoundary2DParams ¶ms)
Returns configure.
std::vector< float > mask_
float maximumMask() const noexcept
Performs maximum mask.
const AbsorbingBoundary2DParams & parameters() const noexcept
Returns parameters.
void apply(ComplexField2D &field) const
Performs apply.
bool isPreparedFor(const ComplexField2D &field) const noexcept
Returns whether prepared for.
bool enabled() const noexcept
Performs enabled.
AbsorbingBoundary2DParams params_
Owning Cartesian grid of complex scalar samples.
Declares the complex scalar field container representing two-dimensional wave functions.
Parameters controlling QPE's smooth complex absorbing boundary.
float strength
Dimensionless damping strength in the exponential mask.
bool enabled
Enables/disables damping while retaining the same API path.
float widthFraction
Fraction of each domain edge occupied by the absorbing layer.
float exponent
Smoothness exponent controlling how damping rises toward the edge.