Skip to main content

ResonanceRange

Struct ResonanceRange 

Source
pub struct ResonanceRange {
    pub energy_low: f64,
    pub energy_high: f64,
    pub resolved: bool,
    pub formalism: ResonanceFormalism,
    pub target_spin: f64,
    pub scattering_radius: f64,
    pub naps: i32,
    pub ap_table: Option<Tab1>,
    pub l_groups: Vec<LGroup>,
    pub rml: Option<Box<RmlData>>,
    pub urr: Option<Box<UrrData>>,
    pub r_external: Vec<RExternalEntry>,
}
Expand description

A single energy range within the resolved resonance region.

Fields§

§energy_low: f64

Lower energy bound (eV).

§energy_high: f64

Upper energy bound (eV).

§resolved: bool

Resolved (true) or unresolved (false).

§formalism: ResonanceFormalism

Resonance formalism used in this range.

§target_spin: f64

Target spin (I).

§scattering_radius: f64

Scattering radius (fm).

Constant value from the ENDF CONT header AP field. When ap_table is Some, use scattering_radius_at(energy_ev) instead of reading this field directly — the table provides the energy-dependent value, clamping to the nearest endpoint for energies outside the table range. This constant is only used when ap_table is None (NRO=0).

§naps: i32

NAPS flag: scattering radius calculation control.

NAPS=0: use the channel radius for penetrability/shift calculations. NAPS=1: use the scattering radius (AP or AP(E)) for penetrability/shift. Reference: ENDF-6 Formats Manual §2.2.1

§ap_table: Option<Tab1>

Energy-dependent scattering radius AP(E) (fm), present when NRO=1.

ENDF-6 §2.2.1: when NRO≠0 a TAB1 record immediately follows the range CONT header to give AP(E) as a piecewise function. At each energy the table value replaces the constant scattering_radius in penetrability, shift, and hard-sphere phase calculations.

None when the range has NRO=0 (constant AP).

Reference: ENDF-6 Formats Manual §2.2.1; SAMMY mlb/mmlb1.f90

§l_groups: Vec<LGroup>

Spin groups for LRF=1/2/3 (L-grouped). Empty for LRF=7 and LRU=2.

§rml: Option<Box<RmlData>>

R-Matrix Limited data for LRF=7. None for LRF=1/2/3 and LRU=2.

§urr: Option<Box<UrrData>>

Unresolved Resonance Region data (LRU=2). None for all LRU=1 ranges.

When Some, cross-sections are computed via the Hauser-Feshbach formula in nereids_physics::urr::urr_cross_sections.

§r_external: Vec<RExternalEntry>

R-external (background R-matrix) entries per spin group.

Diagonal, real-valued corrections to the R-matrix that approximate the effect of distant (unresolved) resonances. Keyed by (L, J).

Populated from SAMMY’s “R-EXTERNAL PARAMETERS FOLLOW” section. Empty for ENDF-only data or SAMMY cases without R-external.

SAMMY Ref: Manual Section II.B.1.d, mpar03.f90 Readrx

Implementations§

Source§

impl ResonanceRange

Source

pub fn scattering_radius_at(&self, energy_ev: f64) -> f64

Scattering radius at a given neutron energy.

Returns the interpolated value from ap_table when NRO=1 (energy-dependent radius), or the constant scattering_radius when NRO=0.

Use this method in all physics calculations that need the channel radius, rather than reading scattering_radius directly.

§Arguments
  • energy_ev — Lab-frame neutron energy in eV.
Source

pub fn resonance_count(&self) -> usize

Total resonance count for this range (works for both LRF=1/2/3 and LRF=7).

Trait Implementations§

Source§

impl Clone for ResonanceRange

Source§

fn clone(&self) -> ResonanceRange

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ResonanceRange

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for ResonanceRange

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for ResonanceRange

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,