Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
strategy:
fail-fast: false
matrix:
model: [pcsaft, gc_pcsaft, pets, uvtheory]
model: [pcsaft, gc_pcsaft, pets, uvtheory, saftvrqmie]

steps:
- uses: actions/checkout@v3
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
### Added
- Added SAFT-VRQ Mie equation of state and Helmholtz energy functional for first order Feynman-Hibbs corrected Mie fluids. [#79](https://github.com/feos-org/feos/pull/79)

### Changed
- Export `EosVariant` and `FunctionalVariant` directly in the crate root instead of their own modules. [#62](https://github.com/feos-org/feos/pull/62)

Expand Down
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ pcsaft = ["association"]
gc_pcsaft = ["association"]
uvtheory = ["lazy_static"]
pets = []
saftvrqmie = []
rayon = ["dep:rayon", "ndarray/rayon", "feos-core/rayon", "feos-dft?/rayon"]
python = ["pyo3", "numpy", "feos-core/python", "feos-dft?/python", "rayon"]
all_models = ["dft", "estimator", "pcsaft", "gc_pcsaft", "uvtheory", "pets"]
all_models = ["dft", "estimator", "pcsaft", "gc_pcsaft", "uvtheory", "pets", "saftvrqmie"]
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ The following models are currently published as part of the `FeOs` framework
|`gc-pcsaft`|(heterosegmented) group contribution PC-SAFT|✓|✓|
|`pets`|perturbed truncated and shifted Lennard-Jones mixtures|✓|✓|
|`uvtheory`|equation of state for Mie fluids and mixtures|✓||
|`saftvrqmie`|equation of state for quantum fluids and mixtures|✓|✓|

The list is being expanded continuously. Currently under development are implementations of ePC-SAFT, a Helmholtz energy functional for the UV theory, and SAFT-VRQ-Mie.

Expand Down
1 change: 1 addition & 0 deletions docs/api/dft.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Implementations of Helmholtz energy functionals for DFT.
HelmholtzEnergyFunctional.pcsaft
HelmholtzEnergyFunctional.gcpcsaft
HelmholtzEnergyFunctional.pets
HelmholtzEnergyFunctional.saftvrqmie
HelmholtzEnergyFunctional.fmt
```

Expand Down
1 change: 1 addition & 0 deletions docs/api/eos.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ The `State` and `PhaseEquilibrium` objects are used to define thermodynamic cond
EquationOfState.pets
EquationOfState.python
EquationOfState.uvtheory
EquationOfState.saftvrqmie
```

## Other data types
Expand Down
1 change: 1 addition & 0 deletions docs/api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,5 @@ These modules contain the objects to e.g. read parameters from files or build pa
peng_robinson
pets
uvtheory
saftvrqmie
```
28 changes: 28 additions & 0 deletions docs/api/saftvrqmie.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# `feos.saftvrqmie`

Utilities to build `SaftVRQMieParameters`.

## Example

```python
from feos.saftvrqmie import SaftVRQMieParameters

parameters = SaftVRQMieParameters.from_json(['hydrogen', 'neon'], 'parameters.json')
```

## Data types

```{eval-rst}
.. currentmodule:: feos.saftvrqmie

.. autosummary::
:toctree: generated/

FeynmanHibbsOrder
Identifier
JobackRecord
PureRecord
BinaryRecord
SaftVRQMieRecord
SaftVRQMieParameters
```
2 changes: 0 additions & 2 deletions docs/api/uvtheory.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@ parameters = UVParameters.from_json(['methane', 'ethane'], 'parameters.json')
Identifier
ChemicalRecord
PureRecord
SegmentRecord
BinaryRecord
BinarySegmentRecord
Perturbation
UVRecord
UVParameters
Expand Down
5,005 changes: 5,005 additions & 0 deletions examples/saftvrqmie/deuterium_32K.table

Large diffs are not rendered by default.

504 changes: 504 additions & 0 deletions examples/saftvrqmie/deuterium_neon_32K.rdf

Large diffs are not rendered by default.

5,005 changes: 5,005 additions & 0 deletions examples/saftvrqmie/deuterium_neon_32K.table

Large diffs are not rendered by default.

80 changes: 80 additions & 0 deletions examples/saftvrqmie/in.binary_deuterium_neon
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
units real
atom_style atomic

# substance
variable substance1 string deuterium
variable substance2 string neon
variable molarweight1 equal 4.028209954364
variable molarweight2 equal 20.17969806457545

# thermodynamic state
variable x1 equal 0.2
variable initial_density equal 813.43 # kg / m3 @ p = 8 bar
variable t equal 32
variable natoms equal 4000
variable n1 equal v_x1*v_natoms
variable n2 equal v_natoms-v_n1

variable molarweight_mix equal v_x1*v_molarweight1+(1-v_x1)*v_molarweight2
variable avogadro equal 6.022*10^23
variable initial_density_mol equal v_initial_density/v_molarweight_mix*v_avogadro*10^(-27) # N / V
variable unit_cell_volume equal 1/v_initial_density_mol
variable box_length equal v_unit_cell_volume^(1/3)*v_natoms^(1/3)

variable rc equal 12.0

# setting up the simulation box
region simulation_box block 0.0 ${box_length} 0.0 ${box_length} 0.0 ${box_length}
create_box 2 simulation_box
create_atoms 1 random ${n1} 1234 NULL
create_atoms 2 random ${n2} 4321 NULL
mass 1 ${molarweight1}
mass 2 ${molarweight2}

# pair potentials
pair_style table linear 5000
pair_coeff 1 1 ${substance1}_${t}K.table FH1_${substance1} ${rc}
pair_coeff 2 2 ${substance2}_${t}K.table FH1_${substance2} ${rc}
pair_coeff 1 2 ${substance1}_${substance2}_${t}K.table FH1_${substance1}_${substance2} ${rc}

neighbor 0.3 bin
neigh_modify delay 0 every 1

# energy minimization
print "Running Minimization"
minimize 1.0e-4 1.0e-6 100 1000

# generate temperatures
velocity all create $t 12345

# Define output
thermo_style custom step temp pe ke vol density

print "Running Equilibration"
fix 1 all nvt temp $t $t 500
run 100000
reset_timestep 0

# RDF
compute gr all rdf 500 1 1 1 2 2 1 2 2
fix 1111 all ave/time 100 1 100 c_gr[*] &
file ${substance1}_${substance2}_${t}K.rdf &
mode vector ave running overwrite &
title1 "# g(r) for ${substance1} ${substance2} at rho=${initial_density}, t=${t}" &
title2 "i r g11 c11 g12 c12 g21 c21 g22 c22"

thermo 1000
fix 1 all nvt temp $t $t 500
dump trj all atom 1000 ${substance1}_${substance2}_${t}K.lammpstrj
dump_modify trj sort id
dump xtctrj all xtc 1000 ${substance1}_${substance2}_${t}K.xtc
dump_modify xtctrj sort id
print "Running Production"

run 100000






Loading