sciforge 0.0.3

A comprehensive scientific computing library in pure Rust with zero dependencies
Documentation
pub fn nucleation_temperature(solution_concentration: f64, cooling_rate: f64) -> f64 {
    -2.0 - 0.5 * cooling_rate - 0.1 * solution_concentration
}

pub fn ice_growth_rate(supercooling: f64, diffusion_coeff: f64, latent_heat: f64) -> f64 {
    diffusion_coeff * supercooling.powi(2) / latent_heat
}

pub fn intracellular_ice_probability(cooling_rate: f64, critical_rate: f64) -> f64 {
    1.0 / (1.0 + (critical_rate / cooling_rate).powi(2))
}

pub fn ostwald_recrystallization_rate(temperature: f64, activation_energy: f64) -> f64 {
    use crate::constants::K_B;
    let t_abs = temperature + 273.15;
    1e10 * (-activation_energy / (K_B * t_abs)).exp()
}

pub fn anti_freeze_protein_thermal_hysteresis(concentration: f64, k_th: f64, n: f64) -> f64 {
    k_th * concentration.powf(n)
}

pub fn cryoprotectant_toxicity(
    concentration: f64,
    temperature: f64,
    exposure_time: f64,
    k_tox: f64,
) -> f64 {
    k_tox * concentration * exposure_time * (temperature + 273.15) / 310.0
}

pub fn dehydration_during_freezing(
    initial_water: f64,
    osmotic_coefficient: f64,
    ice_fraction: f64,
) -> f64 {
    initial_water * (1.0 - osmotic_coefficient * ice_fraction)
}

pub fn vitrification_temperature(
    water_fraction: f64,
    tg_pure_solute: f64,
    tg_water: f64,
    k_gt: f64,
) -> f64 {
    (water_fraction * tg_water + k_gt * (1.0 - water_fraction) * tg_pure_solute)
        / (water_fraction + k_gt * (1.0 - water_fraction))
}