Skip to content
This repository was archived by the owner on Sep 14, 2022. It is now read-only.

Commit 7767850

Browse files
authored
Merge pull request #5 from feos-org/remove_openblas
Remove ndarray-linalg from dependencies
2 parents e88ca51 + 09aa2e2 commit 7767850

13 files changed

Lines changed: 41 additions & 58 deletions

.github/workflows/test.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@ jobs:
1515

1616
steps:
1717
- uses: actions/checkout@v2
18-
- name: Install openBLAS
19-
run: sudo apt-get install -y libopenblas-dev
2018
- name: Build
2119
run: cargo build --release
2220
- name: Run tests
23-
run: cargo test --release --features="openblas-system"
21+
run: cargo test --release

Cargo.toml

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,36 @@
11
[package]
22
name = "feos-pcsaft"
33
version = "0.1.0"
4-
authors = ["Gernot Bauer <bauer@itt.uni-stuttgart.de>", "Philipp Rehner <rehner@itt.uni-stuttgart.de>"]
4+
authors = ["Gernot Bauer <bauer@itt.uni-stuttgart.de>", "Philipp Rehner <prehner@ethz.ch>"]
55
edition = "2018"
66

77
[lib]
88
name = "feos_pcsaft"
99
crate-type = ["rlib", "cdylib"]
1010

1111
[dependencies]
12-
quantity = "0.3"
12+
quantity = "0.4"
1313
feos-core = "0.1"
14-
feos-dft = { git = "https://github.com/feos-org/feos-dft", branch = "main" }
15-
num-dual = "0.3"
14+
feos-dft = "0.1"
15+
num-dual = "0.4"
1616
num = "0.4"
1717
num-traits = "0.2"
18-
ndarray-linalg = "0.14"
1918
ndarray = { version = "0.15", features=["approx"] }
2019
serde = { version = "1.0", features = ["derive"] }
2120
serde_json = "1.0"
2221
indexmap = "1.3.2"
2322
lazy_static = "1.4.0"
2423
thiserror = "1.0"
25-
numpy = { version = "0.14", optional = true }
24+
numpy = { version = "0.15", optional = true }
2625

2726
[dev-dependencies]
2827
approx = "0.4"
2928

3029
[dependencies.pyo3]
31-
version = "0.14"
30+
version = "0.15"
3231
features = ["extension-module", "abi3", "abi3-py36"]
3332
optional = true
3433

3534
[features]
3635
default = []
3736
python = ["pyo3", "quantity/python", "feos-core/python", "feos-dft/python", "numpy"]
38-
openblas-system = ["feos-core/openblas-system"]
39-
openblas-static = ["feos-core/openblas-static"]
40-
intel-mkl-system = ["feos-core/intel-mkl-system"]
41-
intel-mkl-static = ["feos-core/intel-mkl-static"]
42-
netlib-system = ["feos-core/netlib-system"]
43-
netlib-static = ["feos-core/netlib-static"]

examples/adsorption_isotherms.ipynb

Lines changed: 9 additions & 9 deletions
Large diffs are not rendered by default.

src/dft/association.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ use crate::eos::association::{
22
assoc_site_frac_a, assoc_site_frac_ab, helmholtz_energy_density_cross_association,
33
};
44
use crate::parameters::PcSaftParameters;
5+
use feos_core::EosError;
56
use feos_dft::{
67
FunctionalContributionDual, WeightFunction, WeightFunctionInfo, WeightFunctionShape,
78
};
8-
use feos_core::EosError;
99
use ndarray::*;
10-
use num_dual::{DualNum, SolveDual};
10+
use num_dual::DualNum;
1111
use std::f64::consts::PI;
1212
use std::fmt;
1313
use std::rc::Rc;
@@ -34,7 +34,6 @@ impl AssociationFunctional {
3434
impl<N> FunctionalContributionDual<N> for AssociationFunctional
3535
where
3636
N: DualNum<f64> + ScalarOperand,
37-
Array2<N>: SolveDual<N>,
3837
{
3938
fn weight_functions(&self, temperature: N) -> WeightFunctionInfo<N> {
4039
let p = &self.parameters;

src/eos/association.rs

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::parameters::PcSaftParameters;
22
use feos_core::{EosError, HelmholtzEnergyDual, StateHD};
33
use ndarray::*;
4-
use ndarray_linalg::Norm;
4+
use num_dual::linalg::{norm, LU};
55
use num_dual::*;
66
use std::f64::consts::{FRAC_PI_3, PI};
77
use std::fmt;
@@ -92,10 +92,7 @@ pub(crate) fn assoc_site_frac_a<D: DualNum<f64>>(deltarho: D, na: f64) -> D {
9292
}
9393
}
9494

95-
impl<D: DualNum<f64> + ScalarOperand> HelmholtzEnergyDual<D> for CrossAssociation
96-
where
97-
Array2<D>: SolveDual<D>,
98-
{
95+
impl<D: DualNum<f64> + ScalarOperand> HelmholtzEnergyDual<D> for CrossAssociation {
9996
fn helmholtz_energy(&self, state: &StateHD<D>) -> D {
10097
let p = &self.parameters;
10198

@@ -145,7 +142,6 @@ pub fn helmholtz_energy_density_cross_association<S, D: DualNum<f64> + ScalarOpe
145142
) -> Result<D, EosError>
146143
where
147144
S: Data<Elem = D>,
148-
Array2<D>: SolveDual<D>,
149145
{
150146
// check if density is close to 0
151147
if density.sum().re() < f64::EPSILON {
@@ -224,10 +220,7 @@ fn newton_step_cross_association<D: DualNum<f64> + ScalarOperand>(
224220
nb: &Array1<f64>,
225221
rho: &Array1<D>,
226222
tol: f64,
227-
) -> Result<bool, EosError>
228-
where
229-
Array2<D>: SolveDual<D>,
230-
{
223+
) -> Result<bool, EosError> {
231224
// gradient
232225
let mut g: Array1<D> = Array::zeros(2 * p.nassoc);
233226
// Hessian
@@ -259,10 +252,10 @@ where
259252
}
260253

261254
// Newton step
262-
x.assign(&(&*x - &h.solve(&g)?));
255+
x.assign(&(&*x - &LU::new(h)?.solve(&g)));
263256

264257
// check convergence
265-
Ok(g.map(D::re).norm() < tol)
258+
Ok(norm(&g.map(D::re)) < tol)
266259
}
267260

268261
#[cfg(test)]

tests/critical_point.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use std::rc::Rc;
1010
#[test]
1111
fn test_critical_point_pure() -> Result<(), Box<dyn Error>> {
1212
let params = PcSaftParameters::from_json(
13-
&["propane"],
13+
vec!["propane"],
1414
"tests/test_parameters.json",
1515
None,
1616
IdentifierOption::Name,
@@ -30,7 +30,7 @@ fn test_critical_point_pure() -> Result<(), Box<dyn Error>> {
3030
#[test]
3131
fn test_critical_point_mix() -> Result<(), Box<dyn Error>> {
3232
let params = PcSaftParameters::from_json(
33-
&["propane", "butane"],
33+
vec!["propane", "butane"],
3434
"tests/test_parameters.json",
3535
None,
3636
IdentifierOption::Name,

tests/dft.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ fn test_bulk_implementations() -> Result<(), Box<dyn Error>> {
1717
let NAV_old = 6.022140857e23 / MOL;
1818

1919
let params = Rc::new(PcSaftParameters::from_json(
20-
&["water_np"],
20+
vec!["water_np"],
2121
"tests/test_parameters.json",
2222
None,
2323
IdentifierOption::Name,
@@ -92,7 +92,7 @@ fn test_dft_propane() -> Result<(), Box<dyn Error>> {
9292
let NAV_old = 6.022140857e23 / MOL;
9393

9494
let params = Rc::new(PcSaftParameters::from_json(
95-
&["propane"],
95+
vec!["propane"],
9696
"tests/test_parameters.json",
9797
None,
9898
IdentifierOption::Name,
@@ -216,7 +216,7 @@ fn test_dft_water() -> Result<(), Box<dyn Error>> {
216216
let NAV_old = 6.022140857e23 / MOL;
217217

218218
let params = Rc::new(PcSaftParameters::from_json(
219-
&["water_np"],
219+
vec!["water_np"],
220220
"tests/test_parameters.json",
221221
None,
222222
IdentifierOption::Name,
@@ -297,7 +297,7 @@ fn test_dft_water() -> Result<(), Box<dyn Error>> {
297297
#[test]
298298
fn test_entropy_bulk_values() -> Result<(), Box<dyn Error>> {
299299
let params = PcSaftParameters::from_json(
300-
&["water_np"],
300+
vec!["water_np"],
301301
"tests/test_parameters.json",
302302
None,
303303
IdentifierOption::Name,

tests/properties.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use std::rc::Rc;
1010
#[test]
1111
fn test_dln_phi_dp() -> Result<(), Box<dyn Error>> {
1212
let params = PcSaftParameters::from_json(
13-
&["propane", "butane"],
13+
vec!["propane", "butane"],
1414
"tests/test_parameters.json",
1515
None,
1616
IdentifierOption::Name,
@@ -43,7 +43,7 @@ fn test_dln_phi_dp() -> Result<(), Box<dyn Error>> {
4343
#[test]
4444
fn test_virial_is_not_nan() -> Result<(), Box<dyn Error>> {
4545
let params = PcSaftParameters::from_json(
46-
&["water_np"],
46+
vec!["water_np"],
4747
"tests/test_parameters.json",
4848
None,
4949
IdentifierOption::Name,

tests/stability_analysis.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use std::rc::Rc;
99
#[test]
1010
fn test_stability_analysis() -> Result<(), Box<dyn Error>> {
1111
let params = PcSaftParameters::from_json(
12-
&["water_np", "hexane"],
12+
vec!["water_np", "hexane"],
1313
"tests/test_parameters.json",
1414
None,
1515
IdentifierOption::Name,
@@ -26,7 +26,7 @@ fn test_stability_analysis() -> Result<(), Box<dyn Error>> {
2626
assert!(check.len() > 0);
2727

2828
let params = PcSaftParameters::from_json(
29-
&["propane", "butane"],
29+
vec!["propane", "butane"],
3030
"tests/test_parameters.json",
3131
None,
3232
IdentifierOption::Name,

tests/state_creation_mixture.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use std::rc::Rc;
1010

1111
fn propane_butane_parameters() -> Result<Rc<PcSaftParameters>, ParameterError> {
1212
Ok(Rc::new(PcSaftParameters::from_json(
13-
&["propane", "butane"],
13+
vec!["propane", "butane"],
1414
"tests/test_parameters.json",
1515
None,
1616
IdentifierOption::Name,

0 commit comments

Comments
 (0)