Struct phase_space_extent_t

Struct Documentation

struct phase_space_extent_t

Phase-space extent of a beam.

Public Functions

inline auto sbp() const noexcept

The space-bandwidth product (SBP) of a beam with this phase-space extent.

inline bool is_mub() const noexcept

Return TRUE if this phase-space extent is physical, i.e. conforms to the uncertainty relation (SBP >= ¼).

inline auto enlarge(f_t scale) const noexcept

Enlarges the phase-space extent by a scale factor.

inline auto make_mub() const noexcept

Enlarges the phase-space extent to make it physical, if needed. Does nothing if the extent already satisfies minimum uncertainty, or is degenerate.

Public Members

area_t spatial_extent
f_t tan_alpha
wavenumber_t k

Public Static Functions

static inline constexpr f_t minimum_uncertainty_tan_alpha(const Length auto spatial_length, const Wavenumber auto k) noexcept

Computes a minimum-uncertainty beam’s (MUB) tan(ɑ) given a spatial extent. For degenerate cases (vanishing spatial extent), returns a ray (tan(ɑ)=0).

Parameters:

spatial_length – spatial extent length per dimension

static inline constexpr f_t minimum_uncertainty_tan_alpha(const Area auto spatial_extent, const Wavenumber auto k) noexcept

Computes a minimum-uncertainty beam’s (MUB) tan(ɑ) given a spatial extent. For degenerate cases (vanishing spatial extent), returns a ray (tan(ɑ)=0).

Parameters:

spatial_extent – spatial extent (area)

static inline constexpr f_t minimum_uncertainty_tan_alpha(const pqvec2_t spatial_lengths, const Wavenumber auto k) noexcept

Computes a minimum-uncertainty beam’s (MUB) tan(ɑ) given a spatial extent. For degenerate cases (vanishing spatial extent), returns a ray (tan(ɑ)=0).

Parameters:

spatial_lengths – spatial extent lengths for each dimension

static inline constexpr area_t minimum_uncertainty_spatial_extent(const f_t tan_alpha, const Wavenumber auto k) noexcept

Computes a minimum-uncertainty beam’s (MUB) spatial extent given a tan(ɑ). For degenerate cases (vanishing tan(ɑ)), returns a point (spatial extent = 0).

Public Static Attributes

static constexpr auto mub_sbp = f_t(1) / 4