Skip to content
Merged
Prev Previous commit
Next Next commit
Fix warnings and re-export si_units as feos.si
  • Loading branch information
prehner committed Sep 28, 2024
commit 208a83b1a00e130f92951a86f58cf82d857a9f77
4 changes: 3 additions & 1 deletion feos-core/src/phase_equilibria/phase_diagram_pure.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ use super::PhaseEquilibrium;
use crate::equation_of_state::Residual;
use crate::errors::EosResult;
use crate::state::{State, StateVec};
use crate::{ReferenceSystem, SolverOptions};
#[cfg(feature = "rayon")]
use crate::ReferenceSystem;
use crate::SolverOptions;
#[cfg(feature = "rayon")]
use ndarray::{Array1, ArrayView1, Axis};
use quantity::Temperature;
Expand Down
2 changes: 1 addition & 1 deletion feos-dft/src/python/solver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ impl PyDFTSolverLog {

#[getter]
fn get_time(&self) -> Time<Array1<f64>> {
self.0.time().into()
self.0.time()
}

#[getter]
Expand Down
15 changes: 7 additions & 8 deletions src/python/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ use dft::dft as dft_module;
pub fn feos(m: &Bound<'_, PyModule>) -> PyResult<()> {
m.add("__version__", env!("CARGO_PKG_VERSION"))?;
// m.add_wrapped(wrap_pymodule!(quantity_module))?;
todo!();

m.add_wrapped(wrap_pymodule!(eos_module))?;
#[cfg(feature = "dft")]
Expand All @@ -57,7 +56,7 @@ pub fn feos(m: &Bound<'_, PyModule>) -> PyResult<()> {
#[cfg(feature = "saftvrmie")]
m.add_wrapped(wrap_pymodule!(saftvrmie_module))?;

set_path(m, "feos.si", "quantity")?;
// set_path(m, "feos.si", "quantity")?;
set_path(m, "feos.eos", "eos")?;
#[cfg(feature = "estimator")]
set_path(m, "feos.eos.estimator", "eos.estimator_eos")?;
Expand All @@ -83,15 +82,15 @@ pub fn feos(m: &Bound<'_, PyModule>) -> PyResult<()> {
#[cfg(feature = "saftvrmie")]
set_path(m, "feos.saftvrmie", "saftvrmie")?;

// re-export si_units within feos. Overriding __module__ is required for pickling.
m.py().run_bound(
"\
import sys
quantity.SINumber.__module__ = 'feos.si'
quantity.SIArray1.__module__ = 'feos.si'
quantity.SIArray2.__module__ = 'feos.si'
quantity.SIArray3.__module__ = 'feos.si'
quantity.SIArray4.__module__ = 'feos.si'
",
import si_units
sys.modules['feos.si'] = si_units
si_units.PySIObject.__module__ = 'feos.si'
si_units.PyAngle.__module__ = 'feos.si'
",
None,
Some(&m.dict()),
)?;
Expand Down
38 changes: 18 additions & 20 deletions src/saftvrqmie/python.rs
Original file line number Diff line number Diff line change
Expand Up @@ -193,13 +193,13 @@ impl PySaftVRQMieParameters {
/// Returns
/// -------
/// PySIArray2
fn sigma_eff(&self, temperature: Temperature) -> PyResult<Length<Array2<f64>>> {
fn sigma_eff(&self, temperature: Temperature) -> Length<Array2<f64>> {
let n = self.0.m.len();
let t: Temperature = temperature.try_into()?;
let t = temperature.to_reduced();
let sigma_eff_ij = Array2::from_shape_fn((n, n), |(i, j)| -> f64 {
self.0.calc_sigma_eff_ij(i, j, t.to_reduced())
self.0.calc_sigma_eff_ij(i, j, t)
});
Ok(sigma_eff_ij * ANGSTROM)
sigma_eff_ij * ANGSTROM
}

/// Calculate effective epsilon_k.
Expand All @@ -212,13 +212,13 @@ impl PySaftVRQMieParameters {
/// Returns
/// -------
/// PySIArray2
fn epsilon_k_eff(&self, temperature: Temperature) -> PyResult<Temperature<Array2<f64>>> {
fn epsilon_k_eff(&self, temperature: Temperature) -> Temperature<Array2<f64>> {
let n = self.0.m.len();
let t: Temperature = temperature.try_into()?;
let t = temperature.to_reduced();
let epsilon_k_eff = Array2::from_shape_fn((n, n), |(i, j)| -> f64 {
self.0.calc_epsilon_k_eff_ij(i, j, t.to_reduced())
self.0.calc_epsilon_k_eff_ij(i, j, t)
});
Ok(epsilon_k_eff * KELVIN)
epsilon_k_eff * KELVIN
}

/// Calculate temperature dependent diameter.
Expand All @@ -231,17 +231,16 @@ impl PySaftVRQMieParameters {
/// Returns
/// -------
/// PySIArray2
fn diameter(&self, temperature: Temperature) -> PyResult<Length<Array2<f64>>> {
fn diameter(&self, temperature: Temperature) -> Length<Array2<f64>> {
let n = self.0.m.len();
let t: Temperature = temperature.try_into()?;
let t = temperature.to_reduced();
let sigma_eff_ij = Array2::from_shape_fn((n, n), |(i, j)| -> f64 {
self.0.calc_sigma_eff_ij(i, j, t.to_reduced())
self.0.calc_sigma_eff_ij(i, j, t)
});
let diameter = Array2::from_shape_fn((n, n), |(i, j)| -> f64 {
self.0
.hs_diameter_ij(i, j, t.to_reduced(), sigma_eff_ij[[i, j]])
self.0.hs_diameter_ij(i, j, t, sigma_eff_ij[[i, j]])
});
Ok(diameter * ANGSTROM)
diameter * ANGSTROM
}

/// Calculate FH pre-factor D.
Expand All @@ -254,13 +253,12 @@ impl PySaftVRQMieParameters {
/// Returns
/// -------
/// PySIArray2
fn quantum_d(&self, temperature: Temperature) -> PyResult<Area<Array2<f64>>> {
fn quantum_d(&self, temperature: Temperature) -> Area<Array2<f64>> {
let n = self.0.m.len();
let t: Temperature = temperature.try_into()?;
let quantum_d = Array2::from_shape_fn((n, n), |(i, j)| -> f64 {
self.0.quantum_d_ij(i, j, t.to_reduced())
});
Ok(quantum_d * (ANGSTROM * ANGSTROM))
let t = temperature.to_reduced();
let quantum_d =
Array2::from_shape_fn((n, n), |(i, j)| -> f64 { self.0.quantum_d_ij(i, j, t) });
quantum_d * (ANGSTROM * ANGSTROM)
}

/// Calculate de Boer parameter.
Expand Down