pub struct Nuclide { /* private fields */ }Expand description
Efficient representation of nuclide
Implementations
sourceimpl Nuclide
impl Nuclide
pub fn proton_emission(&mut self, pcount: usize) -> (f64, Vec<Particle>)
pub fn neutron_emission(&mut self, ncount: usize) -> (f64, Vec<Particle>)
pub fn alpha_emission(&mut self, acount: usize) -> (f64, Vec<Particle>)
pub fn alpha_neutron(&mut self, ncount: usize) -> (f64, Vec<Particle>)
pub fn neutron_deuteron(&mut self) -> (f64, Vec<Particle>)
pub fn neutron_triton(&mut self) -> (f64, Vec<Particle>)
pub fn electron_capture(&mut self, ccount: usize) -> (f64, Vec<Particle>)
pub fn electron_emission(&mut self, bcount: usize) -> (f64, Vec<Particle>)
pub fn electron_neutron(&mut self, ncount: usize) -> (f64, Vec<Particle>)
pub fn electron_proton(&mut self, pcount: usize) -> (f64, Vec<Particle>)
pub fn electron_alpha(&mut self) -> (f64, Vec<Particle>)
pub fn electron_deuteron(&mut self) -> (f64, Vec<Particle>)
pub fn electron_triton(&mut self) -> (f64, Vec<Particle>)
pub fn electron_fission(&mut self) -> (f64, Vec<Particle>)
pub fn positron_emission(&mut self, bcount: usize) -> (f64, Vec<Particle>)
pub fn positron_proton(&mut self, pcount: usize) -> (f64, Vec<Particle>)
pub fn positron_alpha(&mut self) -> (f64, Vec<Particle>)
pub fn positron_fission(&mut self) -> (f64, Vec<Particle>)
pub fn spontaneous_fission(&mut self) -> (f64, Vec<Particle>)
pub fn cluster_decay(&mut self, daughter: &Self) -> (f64, Vec<Particle>)
pub fn double_cluster(
&mut self,
daughter: &Self,
son: &Self
) -> (f64, Vec<Particle>)
sourceimpl Nuclide
impl Nuclide
sourcepub fn new(input: &str) -> Option<Nuclide>
pub fn new(input: &str) -> Option<Nuclide>
Initializes a new Nuclide from a string representation.
pub fn from_nucleons(z: usize, n: usize) -> Option<Self>
pub fn assign(idx: usize) -> Self
pub fn change(&mut self, idx: usize)
sourcepub fn create(z: usize, n: usize) -> (f64, f64)
pub fn create(z: usize, n: usize) -> (f64, f64)
Returns the approximate mass and binding energy of a nuclide, theorectical or real, using the Bethe-Weizacker liquid-drop approximation.
sourcepub fn nuclide_index(&self) -> usize
pub fn nuclide_index(&self) -> usize
Returns the underlying unique value. Can be used in conjunction with “assign” and “change” to rapidly create or convert nuclides without decay
sourcepub fn element_name(&self) -> String
pub fn element_name(&self) -> String
Returns the element name.
sourcepub fn proton_neutron(&self) -> (usize, usize)
pub fn proton_neutron(&self) -> (usize, usize)
Returns the proton and neutron count
sourcepub fn neutron_separation(&self) -> f64
pub fn neutron_separation(&self) -> f64
Approximate neutron separation energy
sourcepub fn proton_separation(&self) -> f64
pub fn proton_separation(&self) -> f64
Approximate proton separation energy
sourcepub fn isotope_list(&self) -> Vec<Self>
pub fn isotope_list(&self) -> Vec<Self>
returns a vector of all isotopes of the element
sourcepub fn mirror(&self) -> Option<Self>
pub fn mirror(&self) -> Option<Self>
Returns the nuclide (if it exists) that has swapped proton-neutron count
sourcepub fn list() -> Vec<Self>
pub fn list() -> Vec<Self>
Produces a vector of all nuclides sorted by atomic number, e.g all hydrogen isotopes, all helium isotopes, …
pub fn isobar_list(&self) -> Vec<Self>
pub fn isotone_list(&self) -> Vec<Self>
Trait Implementations
sourceimpl Atom for Nuclide
impl Atom for Nuclide
sourcefn identity(&self) -> String
fn identity(&self) -> String
Returns an identifying string of the form {Symbol}-{Atomic number} e.g “Ra-227”
sourcefn mass_deficit_ev(&self) -> f64
fn mass_deficit_ev(&self) -> f64
Mass deficit as MeV
sourcefn binding_energy(&self) -> f64
fn binding_energy(&self) -> f64
Returns the binding energy. Utilizing the mass model
sourcefn spin_parity(&self) -> (i8, i8)
fn spin_parity(&self) -> (i8, i8)
Returns the isospin and parity in the form of a i8 pair, one of which is negatively signed for - parity
sourcefn electron_affinity(&self) -> f64
fn electron_affinity(&self) -> f64
Returns electron affinity
sourcefn ionization_energies(&self, level: usize) -> Option<f64>
fn ionization_energies(&self, level: usize) -> Option<f64>
Returns the ionization energies for all known levels. Values are in kj/mol.
sourcefn electronegativity(&self) -> f64
fn electronegativity(&self) -> f64
Returns the thermochemical electronegativity as calculated by Oganov and Tantardini. Currently the best predictor of experimental values
sourcefn mullikan_en(&self) -> f64
fn mullikan_en(&self) -> f64
Returns the Mullikan, or absolute, electronegativity in kj/mol
sourcefn pauling_en(&self) -> f64
fn pauling_en(&self) -> f64
Pauling Electronegativity. A poor fit for experimental values, however it is here for completeness
sourcefn covalent_radii(&self, bond: usize) -> Option<f64>
fn covalent_radii(&self, bond: usize) -> Option<f64>
Radius in Single-double-and-triple covalent bonds
sourcefn ionic_radii(&self) -> f64
fn ionic_radii(&self) -> f64
ionic radii
sourcefn vdr_crystal(&self) -> f64
fn vdr_crystal(&self) -> f64
Returns the Van Der Waal radius in crystalline structures. Values are in meters.
sourcefn vdr_isolated(&self) -> f64
fn vdr_isolated(&self) -> f64
Returns the Van Der Waal radius of isolated atoms
sourcefn decay_constant(&self) -> f64
fn decay_constant(&self) -> f64
Approximation of decay constant
sourcefn decay_time(&self, time: f64) -> bool
fn decay_time(&self, time: f64) -> bool
Returns true if the nuclide would have decayed in the time given. The nuclide remains unchanged
sourcefn decay_mode(&self) -> String
fn decay_mode(&self) -> String
Returns the probable decay modes as a string
sourcefn static_decay(&mut self, time: f64) -> (f64, Vec<Particle>)
fn static_decay(&mut self, time: f64) -> (f64, Vec<Particle>)
Performs a maximum of one decay in the time given
sourcefn decay(&mut self, time: f64) -> (f64, Vec<Particle>)
fn decay(&mut self, time: f64) -> (f64, Vec<Particle>)
Returns the name and isotope number of the nuclide
use ::Nuclide::Atom;
use ::Nuclide::Nuclide;
let mut uranium = Nuclide::new("U-238").unwrap();
// total particle energy of the nuclide and vector of decay particles
let (particle_energy,particle_vector) = uranium.decay(5E+20);
// final nuclide in the U-238 decay series
assert_eq!(uranium.identity(), "Pb-206");sourcefn atomic_num(&self) -> u64
fn atomic_num(&self) -> u64
Atomic number
sourcefn mass_deficit(&self) -> f64
fn mass_deficit(&self) -> f64
Mass defect or the difference between the empirical mass and the mass of the constituents, in Daltons
fn mass_deficit_kg(&self) -> f64
sourcefn mass_deficit_j(&self) -> f64
fn mass_deficit_j(&self) -> f64
Mass defect in Joules
fn binding_energy_j(&self) -> f64
sourcefn electron_affinity_ev(&self) -> f64
fn electron_affinity_ev(&self) -> f64
Electron affinity in MeV
sourcefn ionization_energies_ev(&self, level: usize) -> Option<f64>
fn ionization_energies_ev(&self, level: usize) -> Option<f64>
Returns the ionization energies for all known levels. Values are in MeV
sourcefn mean_lifetime(&self) -> f64
fn mean_lifetime(&self) -> f64
The mean lifetime of nuclide/isomer
sourceimpl PartialEq<Nuclide> for Nuclide
impl PartialEq<Nuclide> for Nuclide
impl Copy for Nuclide
impl Eq for Nuclide
impl StructuralEq for Nuclide
impl StructuralPartialEq for Nuclide
Auto Trait Implementations
impl RefUnwindSafe for Nuclide
impl Send for Nuclide
impl Sync for Nuclide
impl Unpin for Nuclide
impl UnwindSafe for Nuclide
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more