pub struct RadialProfile {
pub histories: u64,
pub depth_lo_m: f64,
pub depth_hi_m: f64,
pub edges_m: Vec<f64>,
pub energy_ev: Vec<f64>,
pub std_err_ev: Vec<f64>,
pub beyond_ev: f64,
pub beyond_std_err_ev: f64,
pub total_ev: f64,
pub total_std_err_ev: f64,
}Expand description
A radial energy-deposition profile in a depth slab, summed over all
histories, with per-bin standard errors. Bin i is the annulus
edges_m[i] <= r < edges_m[i + 1].
Fields§
§histories: u64Histories accumulated.
depth_lo_m: f64Lower depth of the slab, m.
depth_hi_m: f64Upper depth of the slab (excluded), m.
edges_m: Vec<f64>Bin edges, m; one more than bins, starting at 0.
energy_ev: Vec<f64>Energy per bin, eV.
std_err_ev: Vec<f64>Standard error of each bin’s energy, eV.
beyond_ev: f64Energy deposited in the slab beyond the last edge, eV.
beyond_std_err_ev: f64Its standard error, eV.
total_ev: f64Energy deposited in the slab, eV: the bins plus beyond_ev.
total_std_err_ev: f64Its standard error, eV (from the per-history slab totals).
Implementations§
Source§impl RadialProfile
impl RadialProfile
Sourcepub const TOTAL_REL_TOLERANCE: f64 = 1e-6
pub const TOTAL_REL_TOLERANCE: f64 = 1e-6
Relative tolerance of the check that total_ev equals the bin
energies plus beyond_ev (see RadialProfile::validate).
RadialAccumulator sums the same deposits into the bins and into the
slab total, but in a different order, so the two agree only to
floating-point rounding: a naive sum of n non-negative terms is off
by at most about n ε relative (ε ≈ 1.1e-16), well below 1e-6 for
any feasible number of histories.
Sourcepub fn validate(&self) -> Result<(), PsfError>
pub fn validate(&self) -> Result<(), PsfError>
Checks that the profile is consistent: edges start at 0 and increase,
one energy and one error per bin, all finite, errors non-negative; the
depth slab finite with depth_lo_m < depth_hi_m; beyond_ev,
total_ev and their errors finite and non-negative; and total_ev
equal to the bin energies plus beyond_ev within
RadialProfile::TOTAL_REL_TOLERANCE relative.
Sourcepub fn center_m(&self, i: usize) -> f64
pub fn center_m(&self, i: usize) -> f64
Representative radius of bin i, m: the geometric mean of its edges,
and half the outer edge for the central disc.
Sourcepub fn density_ev_per_m2(&self) -> Vec<f64>
pub fn density_ev_per_m2(&self) -> Vec<f64>
Mean areal energy density of each bin, eV/m².
Sourcepub fn density_std_err_ev_per_m2(&self) -> Vec<f64>
pub fn density_std_err_ev_per_m2(&self) -> Vec<f64>
Standard error of each bin’s areal density, eV/m².
Trait Implementations§
Source§impl Clone for RadialProfile
impl Clone for RadialProfile
Source§fn clone(&self) -> RadialProfile
fn clone(&self) -> RadialProfile
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RadialProfile
impl Debug for RadialProfile
Source§impl<'de> Deserialize<'de> for RadialProfile
impl<'de> Deserialize<'de> for RadialProfile
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for RadialProfile
impl PartialEq for RadialProfile
Source§impl Serialize for RadialProfile
impl Serialize for RadialProfile
impl StructuralPartialEq for RadialProfile
Auto Trait Implementations§
impl Freeze for RadialProfile
impl RefUnwindSafe for RadialProfile
impl Send for RadialProfile
impl Sync for RadialProfile
impl Unpin for RadialProfile
impl UnsafeUnpin for RadialProfile
impl UnwindSafe for RadialProfile
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more