diff --git a/.github/neqsim-engine.sha256 b/.github/neqsim-engine.sha256 index 11929ffd..9f92533f 100644 --- a/.github/neqsim-engine.sha256 +++ b/.github/neqsim-engine.sha256 @@ -1 +1 @@ -0741834bf64b73f26fe889516809487c047f6415d55ed7223f49ad4f95b8e60c neqsim-3.26.0.jar +99abe878ff58bd90d6ad3242b2d0cdb6808d1300efbf2226c6a91eef4e2265a1 neqsim-3.27.0.jar diff --git a/conda/meta.yaml b/conda/meta.yaml index 6fcae9e3..9325e903 100644 --- a/conda/meta.yaml +++ b/conda/meta.yaml @@ -1,5 +1,5 @@ {% set name = "neqsim" %} -{% set version = "3.26.0" %} +{% set version = "3.27.0" %} package: name: {{ name|lower }} diff --git a/docs/release-notes/v3.27.0.md b/docs/release-notes/v3.27.0.md new file mode 100644 index 00000000..58df8bbb --- /dev/null +++ b/docs/release-notes/v3.27.0.md @@ -0,0 +1,69 @@ +# NeqSim Python 3.27.0 + +NeqSim Python is the Python interface to the NeqSim engine for thermodynamic +calculations, physical properties, process simulation, and PVT analysis from +Python and Jupyter notebooks. + +## Highlights + +- Bundles the NeqSim Java 3.27.0 engine for Java 17 or newer. +- Compressors: chart-mode compressors now honor the selected polytropic + method, head inversion tolerance scales for tiny shaft duties, wet-gas energy + increments are resolved differentially, and a fixed-speed operating point + classifies recycle, throttling and head-deficit cases. Shaft groups, + driver-limited throughput, gas-turbine site rating and a platform power system + are added. +- Thermodynamic fixes: `Component.getCpD()` returns the stored coefficient + without the former `1e-10` offset, so ideal-gas heat capacity and enthalpy + shift slightly (for example, the gas enthalpy of a methane/water SRK flash at + 280 K and 10 bara changes by about 0.01 %). Latent heat coefficients are + reconciled, GERG-water temperature derivatives are consistent, trace-water CPA + dew points are solved, PH flash iteration stops on residual stall, and PR-CPA + caloric consistency is restored. +- Pipeline and network: signed-face outlet thermodynamics, two-fluid node energy + and source conservation, VFPPROD table-driven hydraulics, a `TwoFluidPipe` + liquid holdup calibration multiplier, and experimental Safety Shutdown valve + travel and acoustics models. +- Process and dynamics: an opt-in run watchdog for `ProcessSystem` and + `ProcessModel`, transactional valve actuators and adaptive step acceptance, + fixed-geometry ejector off-design mode, and turboexpander nozzle capacity and + IGV flow function. +- Reservoir and PVT: generalized Rs/Rv material-balance history estimates, + measured component history replay and fitting, and calibrated EOS checkpoints. +- Other: older `.neqsim` files load correctly, the electrolyzer water balance + and Faradaic modes are conserved, Fuller diffusion volumes are corrected, + `EmissionsTracker` uses the IPCC AR5 methane GWP (28), and analyser + sample-system screening is added. +- Retains Python 3.10-3.14 support and the existing NeqSim Python API. + +## Install + +Use pip when you already have Java installed: + +```bash +pip install --upgrade neqsim==3.27.0 +``` + +Use conda when you want OpenJDK installed with the package: + +```bash +conda install -c conda-forge neqsim=3.27.0 +``` + +Requirements: + +- Python 3.10 or newer. +- Java 17 or newer for pip installs. Download Java from + [Adoptium](https://adoptium.net/). +- Conda installs include OpenJDK through conda-forge. + +Verify the installed package version without starting the JVM: + +```bash +python -c "from importlib.metadata import version; print(version('neqsim'))" +``` + +## Useful Links + +- Full changelog: https://github.com/equinor/neqsim-python/compare/v3.26.0...v3.27.0 +- NeqSim Java 3.27.0 release: https://github.com/equinor/neqsim/releases/tag/v3.27.0 diff --git a/environment.yml b/environment.yml index 7d2a0740..9f93c19e 100644 --- a/environment.yml +++ b/environment.yml @@ -19,4 +19,4 @@ dependencies: # Install neqsim from PyPI until conda-forge package is available - pip - pip: - - neqsim==3.26.0 + - neqsim==3.27.0 diff --git a/pyproject.toml b/pyproject.toml index 50b0111f..e580c510 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "neqsim" -version = "3.26.0" +version = "3.27.0" description = "NeqSim is a tool for thermodynamic and process calculations" authors = [{ name = "Even Solbraa", email = "esolbraa@gmail.com" }] requires-python = ">=3.10,<4" diff --git a/src/neqsim/data/neqsim_api.json.gz b/src/neqsim/data/neqsim_api.json.gz index 3d417314..3ac86415 100644 Binary files a/src/neqsim/data/neqsim_api.json.gz and b/src/neqsim/data/neqsim_api.json.gz differ diff --git a/src/neqsim/lib/neqsim-3.26.0.jar b/src/neqsim/lib/neqsim-3.27.0.jar similarity index 92% rename from src/neqsim/lib/neqsim-3.26.0.jar rename to src/neqsim/lib/neqsim-3.27.0.jar index 56b1ce96..f11c4ed8 100644 Binary files a/src/neqsim/lib/neqsim-3.26.0.jar and b/src/neqsim/lib/neqsim-3.27.0.jar differ diff --git a/tests/test_NeqSim.py b/tests/test_NeqSim.py index 3cc319d8..e88740f4 100644 --- a/tests/test_NeqSim.py +++ b/tests/test_NeqSim.py @@ -19,7 +19,7 @@ def test_Viscosity(): thermoOps.TPflash() gasEnthalpy = thermoSystem.getPhase(0).getEnthalpy() - assert abs(1079.8561270889081 - gasEnthalpy) < 1e-10 + assert abs(1079.7110727588224 - gasEnthalpy) < 1e-10 thermoSystem.initPhysicalProperties("Viscosity") gasViscosity = thermoSystem.getPhase(0).getViscosity("kg/msec") diff --git a/uv.lock b/uv.lock index 34264400..6751d5c9 100644 --- a/uv.lock +++ b/uv.lock @@ -1897,7 +1897,7 @@ wheels = [ [[package]] name = "neqsim" -version = "3.26.0" +version = "3.27.0" source = { editable = "." } default-groups = "all" dependencies = [