pub struct Nf2ffResult { /* private fields */ }Expand description
Far-field evaluation of a recorded NF2FF box (see the
module docs). Frequencies are addressed by index into
freqs.
Implementations§
Source§impl Nf2ffResult
impl Nf2ffResult
Sourcepub fn wavenumber(&self, k: usize) -> f64
pub fn wavenumber(&self, k: usize) -> f64
Wavenumber 2πf·√(ε_r μ_r)/c0 of the background at frequency
index k (2πf/c0 in vacuum).
Sourcepub fn wave_impedance(&self) -> f64
pub fn wave_impedance(&self) -> f64
Wave impedance η = Z0·√(μ_r/ε_r) of the background [Ω].
Sourcepub fn background(&self) -> Medium
pub fn background(&self) -> Medium
The background medium (lossless).
Sourcepub fn with_background(self, eps_r: f64, mu_r: f64) -> Result<Self>
pub fn with_background(self, eps_r: f64, mu_r: f64) -> Result<Self>
Evaluates the far field in the lossless background eps_r, mu_r
(changes k and η; the recorded near fields are kept).
§Errors
Error::Invalid unless both values are positive and finite.
Sourcepub fn with_center(self, c: [f64; 3]) -> Self
pub fn with_center(self, c: [f64; 3]) -> Self
Uses c [m] as phase centre (changes only the far-field phases).
Sourcepub fn with_mirror(self, m: Mirror) -> Result<Self>
pub fn with_mirror(self, m: Mirror) -> Result<Self>
Adds an infinite mirror plane (see Mirror); faces lying on it
are ignored from then on.
§Errors
Error::Invalid if a mirror normal to the same axis exists, or if
the plane cuts through the box.
Sourcepub fn pattern(&self, k: usize, dirs: &[(f64, f64)]) -> Vec<FarField>
pub fn pattern(&self, k: usize, dirs: &[(f64, f64)]) -> Vec<FarField>
Far fields at the directions dirs ((θ, φ) pairs [rad]).
Sourcepub fn cut_theta(&self, k: usize, phi: f64, thetas: &[f64]) -> Vec<FarField>
pub fn cut_theta(&self, k: usize, phi: f64, thetas: &[f64]) -> Vec<FarField>
θ cut at fixed phi: far fields at thetas [rad].
Sourcepub fn cut_phi(&self, k: usize, theta: f64, phis: &[f64]) -> Vec<FarField>
pub fn cut_phi(&self, k: usize, theta: f64, phis: &[f64]) -> Vec<FarField>
φ cut at fixed theta: far fields at phis [rad].
Sourcepub fn radiation_intensity(&self, k: usize, theta: f64, phi: f64) -> f64
pub fn radiation_intensity(&self, k: usize, theta: f64, phi: f64) -> f64
Radiation intensity U(θ, φ) (with the background’s η).
Sourcepub fn radiated_power(&self, k: usize) -> f64
pub fn radiated_power(&self, k: usize) -> f64
Radiated power: the Poynting flux ½ Re ∮(E × H*)·n̂ dS out of the
box (of the real half-space with mirrors) at frequency index k.
Sourcepub fn radiated_power_far(&self, k: usize, n_theta: usize, n_phi: usize) -> f64
pub fn radiated_power_far(&self, k: usize, n_theta: usize, n_phi: usize) -> f64
Radiated power from the far field: ∮ U dΩ over the sphere (the
real half-space with mirrors), midpoint rule with n_theta × n_phi
directions.
Sourcepub fn directivity(&self, k: usize, theta: f64, phi: f64) -> f64
pub fn directivity(&self, k: usize, theta: f64, phi: f64) -> f64
Directivity 4πU/P_rad towards (θ, φ), with the box flux
radiated_power.
Sourcepub fn gain(&self, k: usize, theta: f64, phi: f64, accepted_power: f64) -> f64
pub fn gain(&self, k: usize, theta: f64, phi: f64, accepted_power: f64) -> f64
Gain 4πU/P_acc towards (θ, φ) for the accepted power
accepted_power (same normalisation, e.g.
PortResult::accepted_power
of the feeding port at the same frequency).
Sourcepub fn max_directivity(&self, k: usize) -> MaxDirectivity
pub fn max_directivity(&self, k: usize) -> MaxDirectivity
The maximum of the directivity over the real directions: a 5° scan refined twice (to ≈ 0.05°) around the best direction.