oxiphysics_materials/eos/
vineteos_traits.rs1use super::functions::EquationOfState;
12#[allow(unused_imports)]
13use super::functions::*;
14use super::types::VinetEos;
15
16impl EquationOfState for VinetEos {
17 fn pressure(&self, density: f64) -> f64 {
18 self.pressure_from_volume(1.0 / density)
19 }
20 fn sound_speed(&self, density: f64) -> f64 {
21 let h = density * 1e-6;
22 let p_hi = self.pressure_from_volume(1.0 / (density + h));
23 let p_lo = self.pressure_from_volume(1.0 / (density - h));
24 ((p_lo - p_hi) / (2.0 * h)).max(0.0).sqrt()
25 }
26 fn density_from_pressure(&self, pressure: f64) -> f64 {
27 1.0 / self.volume(pressure)
28 }
29}