sciforge-core 0.0.4

Shared engineering primitives: materials, fasteners, fluids, propulsion taxonomies, std components.
Documentation
use sciforge_hub::prelude::physics::quantum as q;

#[derive(Debug, Clone, Copy)]
pub struct HydrogenAtom {
    pub principal_quantum_number: u32,
    pub effective_charge: f64,
}

impl HydrogenAtom {
    pub fn new(principal_quantum_number: u32) -> Self {
        Self {
            principal_quantum_number,
            effective_charge: 1.0,
        }
    }

    pub fn hydrogenic(principal_quantum_number: u32, effective_charge: f64) -> Self {
        Self {
            principal_quantum_number,
            effective_charge,
        }
    }

    pub fn energy_j(&self) -> f64 {
        q::hydrogen_energy(self.principal_quantum_number)
    }

    pub fn energy_ev(&self) -> f64 {
        q::hydrogen_energy_level_z(self.principal_quantum_number, self.effective_charge)
    }

    pub fn bohr_radius_m(&self) -> f64 {
        q::bohr_radius_nth(self.principal_quantum_number, self.effective_charge)
    }
}

pub fn ground_state() -> HydrogenAtom {
    HydrogenAtom::new(1)
}

pub fn transition_wavelength_m(n_initial: u32, n_final: u32) -> f64 {
    q::rydberg_wavelength(n_initial, n_final)
}

pub fn radial_r10(r_m: f64) -> f64 {
    q::hydrogen_radial_r10(r_m)
}

pub fn radial_r20(r_m: f64) -> f64 {
    q::hydrogen_radial_r20(r_m)
}

pub fn radial_r21(r_m: f64) -> f64 {
    q::hydrogen_radial_r21(r_m)
}