sciforge 0.0.3

A comprehensive scientific computing library in pure Rust with zero dependencies
Documentation
pub fn raoult_law(x_solvent: f64, p0_solvent: f64) -> f64 {
    x_solvent * p0_solvent
}

pub fn henrys_law(kh: f64, partial_pressure: f64) -> f64 {
    kh * partial_pressure
}

pub fn mole_fraction(moles_component: f64, total_moles: f64) -> f64 {
    moles_component / total_moles.max(1e-30)
}

pub fn molality(moles_solute: f64, mass_solvent_kg: f64) -> f64 {
    moles_solute / mass_solvent_kg.max(1e-30)
}

pub fn molarity(moles_solute: f64, volume_liters: f64) -> f64 {
    moles_solute / volume_liters.max(1e-30)
}

pub fn gibbs_duhem_check(x1: f64, d_mu1: f64, x2: f64, d_mu2: f64) -> f64 {
    x1 * d_mu1 + x2 * d_mu2
}

pub fn activity_from_mole_fraction(gamma: f64, x: f64) -> f64 {
    gamma * x
}

pub fn margules_one_suffix(a: f64, x1: f64) -> f64 {
    a * x1 * x1
}