Class beam_generic_t

Inheritance Relationships

Derived Types

Class Documentation

class beam_generic_t

Handles the geometric aspects of beams.

Subclassed by wt::beam_t< beam::transport_e::forward, spectral_radiance_t >, wt::beam_t< beam::transport_e::forward, spectral_radiant_flux_t >, wt::beam_t< beam::transport_e::backward, QE_t >, wt::beam_t< beam::transport_e::backward, QE_flux_t >, wt::beam_t< Transport, Q >

Public Functions

beam_generic_t(const beam_generic_t&) noexcept = default
beam_generic_t &operator=(const beam_generic_t&) noexcept = default
virtual ~beam_generic_t() noexcept = default
virtual wavenumber_t k() const noexcept = 0

Returns the beam’s wavenumber.

inline auto wavelength() const noexcept

Returns the beam’s wavelength.

inline const auto &get_envelope() const noexcept

Returns beam’s envelope.

inline const auto &dir() const noexcept

Beam mean direction.

inline const auto &origin() const noexcept

Beam origin.

inline bool from_infinity() const noexcept

Returns TRUE if beam originates from infinity.

inline const auto &mean_ray() const noexcept

Beam mean ray.

inline auto frame() const noexcept

Beam’s local frame.

inline pqvec3_t footprint(length_t dist) const noexcept

Beam’ spatial three-dimensional footprint at propagation distance dist (in beam’s local frame)

inline pqvec3_t std_dev(length_t dist) const noexcept

Beam’ spatial standard deviation over local x,y,z axes at propagation distance dist. (in beam’s local frame)

inline gaussian_wavefront_t wavefront(length_t dist) const noexcept

Beam’ wavefront, in local frame, at propagation distance dist.

inline pqvec2_t project(const pqvec3_t &p, length_t beam_dist) const noexcept

Returns the point ‘p’ after projection onto the beam cross section after propagation a distance of ‘beam_dist’.

inline bool is_ray() const noexcept

Returns true if this beam is a ray.

intersection_footprint_t surface_footprint_ellipsoid(const intersection_surface_t &surface, const length_t beam_z_dist) const noexcept

Returns the footprint on intersection with a surface.

Parameters:
  • surface – surface intersection

  • beam_z_dist – beam propagation distance

inline intersection_footprint_t surface_footprint_static(const intersection_surface_t &surface, const length_t beam_z_dist) const noexcept

Returns the footprint on intersection with a surface.

Parameters:
  • surface – surface intersection

  • beam_z_dist – beam propagation distance

Public Static Functions

static inline constexpr f_t major_axis_to_z_scale() noexcept

Returns the scaling factor for the beam footprint along the z-axis (direction of propagation) as a function of the major axis (x-axis).

Protected Functions

inline beam_generic_t(const ray_t &ray, const sourcing_geometry_t &sourcing_geometry) noexcept
inline beam_generic_t(const elliptic_cone_t &envelope) noexcept

Protected Attributes

elliptic_cone_t envelope
length_t self_intersection_distance