Repository navigation
What is NeqSim?
NeqSim is an open-source Java library for thermodynamic fluid properties, phase equilibrium, PVT calculations, and process simulation. It is used to model fluids and process equipment such as separators, compressors, heat exchangers, pipelines, wells, and complete flowsheets.
This release ships both the core NeqSim simulation engine and the MCP server distribution that lets MCP-compatible AI clients call governed NeqSim calculation tools.
What is included in this release
| Distribution | Asset | Runtime | Use this when |
|---|---|---|---|
| NeqSim core library | neqsim-3.26.0.jar |
Java 17+ | You need Java 17 or Python neqsim-python compatibility. |
| NeqSim core library | neqsim-3.26.0-Java8.jar |
Java 8+ | You need Java 8 or Python neqsim-python compatibility. |
| NeqSim MCP server | neqsim-mcp-server-3.26.0-runner.jar |
Java 21+ | You want VS Code Copilot, Claude Desktop, Cursor, or another MCP client to use NeqSim tools. |
| NeqSim MCP server checksum | neqsim-mcp-server-3.26.0-runner.jar.sha256 |
- | You want to verify the downloaded MCP runner jar. |
| NeqSim MCP server container | ghcr.io/equinor/neqsim-mcp-server:3.26.0 |
Docker | You want to run the MCP server without installing Java locally. |
Install the MCP server
The MCP server gives MCP-compatible LLM clients access to validated thermodynamic and process simulation tools through a governed tool interface.
Jar install (requires Java 21+)
VERSION=3.26.0
curl -fLO "https://github.com/equinor/neqsim/releases/download/v${VERSION}/neqsim-mcp-server-${VERSION}-runner.jar"
curl -fLO "https://github.com/equinor/neqsim/releases/download/v${VERSION}/neqsim-mcp-server-${VERSION}-runner.jar.sha256"
sha256sum -c neqsim-mcp-server-${VERSION}-runner.jar.sha256Docker install
docker pull ghcr.io/equinor/neqsim-mcp-server:3.26.0Claude Desktop example
{
"mcpServers": {
"neqsim": {
"command": "java",
"args": ["-jar", "/path/to/neqsim-mcp-server-3.26.0-runner.jar"]
}
}
}See the MCP Server README for VS Code Copilot, Cursor, Docker, Streamable HTTP, and deployment-profile configuration.
Use the core Java library
Use the release assets above when you need standalone jars. For Maven projects, use the published package dependency:
<dependency>
<groupId>com.equinor.neqsim</groupId>
<artifactId>neqsim</artifactId>
<version>3.26.0</version>
</dependency>Release notes
GitHub-generated release notes are included with this release and list the commits and pull requests since the previous version.
What's Changed
- feat(field): exercise live injection route configurations by @EvenSol in #4317
- feat(field): integrate mapped rotating equipment power by @EvenSol in #4322
- docs: correct default BIP transfer documentation by @EvenSol in #4323
- [AI-Assisted] fix(thermo): derive phase mass fractions from conserved inventory by @EvenSol in #4325
- refactor: workflows by @asmfstatoil in #4315
- docs: execute ISO 15403 gas-quality guide by @EvenSol in #4274
- [AI-Assisted] fix(thermo): isolate classic mixing-rule calculation accumulators by @EvenSol in #4333
- [AI-Assisted] fix(thermo): preserve cold-start gas/oil/wax equilibrium by @EvenSol in #4329
- feat(pipeline): add experimental non-equilibrium post-pigging film transfer by @EvenSol in #4282
- Fix trace-water phase split causing pump PS-flash failures by @Sviatose in #4320
- fix(network): fail closed on mapped compressor errors by @EvenSol in #4328
- [AI-Assisted] fix(compressor): report consistent speed-solve results and convergence by @EvenSol in #4326
- [AI-Assisted] docs: repair independent heavy-fraction cookbook recipes by @EvenSol in #4338
- feat(optimization): persist and revalidate field envelope evidence by @EvenSol in #4312
- [AI-Assisted] fix(characterization): preserve shared quantile cut placement by @EvenSol in #4330
- docs: propose NRC-2937 shared flash and process state contracts by @EvenSol in #4331
- refact: Newton solvers to use custom linear algebra operations by @asmfstatoil in #4335
- docs: clarify deprecation support duration and removal process by @asmfstatoil in #4344
- chore: new skill to assist with version bumping new neqsim releases by @asmfstatoil in #4345
- [AI-Assisted] feat(pipeline): add conservative signed-face complementarity by @EvenSol in #4339
- [AI-Assisted] docs: make Python quickstart units example standalone by @EvenSol in #4346
- feat: add neqsim-maven-version-maintenance skill for managing depende… by @asmfstatoil in #4352
- chore: Use 'uv run' for executing Python scripts in the devtools directory by @asmfstatoil in #4347
- fix(thermo): restore electrolyte derivative consistency by @EvenSol in #4332
- feat(optimization): aggregate lifecycle envelope evidence by @EvenSol in #4342
- [AI-Assisted] feat(pipeline): handle exact signed-face transitions by @EvenSol in #4350
- chore: move test by @asmfstatoil in #4355
- [AI-Assisted] fix(thermo): diagnose stale electrolyte mixing rules without EOS regressions by @EvenSol in #4348
- [AI-Assisted] feat(thermo): report Pitzer catalog gaps for barite qualification by @EvenSol in #4356
- [AI-Assisted] docs: enforce controls benchmark contracts in unittest (D198) by @EvenSol in #4358
- feat(optimization): persist lifecycle envelope evidence by @EvenSol in #4359
- [AI-Assisted] test(network): shared reservoir production and injection acceptance by @EvenSol in #4361
- fix(ci): validate stacked pull requests on feature branches by @EvenSol in #4340
- [AI-Assisted] fix(thermo): reset classic HV pair state at init(1) by @EvenSol in #4363
- [AI-Assisted] fix(thermo): isolate component derivative arrays on clone by @EvenSol in #4364
- [AI-Assisted] fix(data): repair MEG alias dielectric coefficients by @EvenSol in #4365
- [AI-Assisted] docs: restore portfolio-risk guide destination (#2499 D199) by @EvenSol in #4369
- fix(ci): update workflow to include master branch for pull requests a… by @asmfstatoil in #4372
- chore: keep track log local. new PR after i messed up Andreas' PR by @asmfstatoil in #4357
- test: convert tests to benchmarks by @asmfstatoil in #4373
- feat(chemical-equilibrium): migrate to EJML for matrix operations and… by @asmfstatoil in #4360
- feat(optimization): report lifecycle period changes by @EvenSol in #4370
- [AI-Assisted] test(network): quantify shared reservoir timestep refinement by @EvenSol in #4371
- feat(ci): enhance engineering capability coverage workflow to rebuild… by @asmfstatoil in #4374
- [AI-Assisted] fix(thermo): correct CO2 KCl electrolyte response by @EvenSol in #4367
- fix(pipeline): reconcile fitting lookup defaults and explicit K factors by @EvenSol in #4377
- refact: reduce jama.matrix in flouid boundary classes by @asmfstatoil in #4378
- Refactor and enhance tests for distillation and thermodynamic operations by @asmfstatoil in #4375
- refact: gather functions for array copying by @asmfstatoil in #4400
- refact: replace custom array copy methods with utility functions by @asmfstatoil in #4402
- [AI-Assisted] fix(pipeline): correct wall tolerance and pipe sizing data by @EvenSol in #4397
- [AI-Assisted] fix(database): restore merged standards CSV records by @EvenSol in #4396
- refact: replace custom matrix copy methods with utility function acro… by @asmfstatoil in #4403
- refact: replace custom copy methods with copyMatrixArray utility in m… by @asmfstatoil in #4404
- [AI-Assisted] fix(reliability): preserve unknown OREDA measurements by @EvenSol in #4395
- [AI-Assisted] docs: qualify stream property initialization guarantees by @EvenSol in #4398
- [AI-Assisted] fix(network): reject incomplete pump operating points by @EvenSol in #4401
- [AI-Assisted] fix(mechanical): resolve named material and company design data by @EvenSol in #4406
- [AI-Assisted] fix(subsea): reconcile material, PLEM and regional design inputs by @EvenSol in #4407
- [AI-Assisted] fix(chemistry): select active reactions and reconcile element inventories by @EvenSol in #4408
- [AI-Assisted] fix(packing): preserve material identity and reject missing geometry by @EvenSol in #4405
- [AI-Assisted] fix(exchanger): preserve material flags and invalidate rejected ratings by @EvenSol in #4410
- feat(optimization): persist accepted lifecycle states by @EvenSol in #4399
- [AI-Assisted] fix(cpa): isolate phase state across clones by @EvenSol in #4412
- [AI-Assisted] fix(vessels): load requested plate allowable and reject missing data by @EvenSol in #4409
- refactor: migrate numerical backends to EJML with compatibility safeguards by @asmfstatoil in #4366
- [AI-Assisted] fix(data): restore sourced neutral DEA identity and molar mass by @EvenSol in #4411
- [AI-Assisted] fix(network): separate stable pump flow limits from bypass by @EvenSol in #4414
- [AI-Assisted] fix(electrolyte-cpa): isolate phase state across clones by @EvenSol in #4415
- test(distillation): prevent Sarir steam integration timeout on slow CI by @EvenSol in #4418
- [AI-Assisted] fix(pipeline): reject unsupported material selections by @EvenSol in #4417
- [AI-Assisted] test(safety): verify CPA release inventory isolation and refinement by @EvenSol in #4419
- feat(devtools): Bayesian calibrate stage, task-loop runner and backtest drift tuning for living tasks by @EvenSol in #4420
- docs(agents): route living tasks; sync community skill mirror by @EvenSol in #4422
- chore(skills): sync community skill mirror and merge duplicate-name skills by @EvenSol in #4423
- refactor: improve documentation and code clarity in various classes by @asmfstatoil in #4424
- fix(standards): reject unsupported ISO6976 reference temperatures by @EvenSol in #4425
- deprecate legacy Aspen IP21 and OnlineSignal integration by @EvenSol in #4426
- [AI-Assisted] docs: align instrument overview and cabinet sizing by @EvenSol in #4421
- [AI-Assisted] fix(thermo): conserve empty outlet inventory after phase removal by @EvenSol in #4428
- refactor: complete EJML migration and remove JAMA by @asmfstatoil in #4416
- [AI-Assisted] fix(mechanical): finalize design-data lookup and override ownership by @EvenSol in #4429
- [AI-Assisted] fix(pump): make reduced-curve operating status speed-consistent by @EvenSol in #4431
- feat(optimization): refine hard constraint boundaries by @EvenSol in #4430
- [AI-Assisted] ci(electrolyte): retain traceable assessment evidence by @EvenSol in #4433
- fix(asphaltene): validate onset searches and reset results by @EvenSol in #4432
- chore(deps): bump org.apache.maven:apache-maven from 3.9.16 to 3.10.0 by @dependabot[bot] in #4438
- [AI-Assisted] fix(saturation): enforce pure-fluid domain and HC dew equilibrium by @EvenSol in #4440
- chore(deps-dev): bump org.sonatype.central:central-publishing-maven-plugin from 0.11.0 to 0.12.0 by @dependabot[bot] in #4435
- chore(deps-dev): bump com.github.spotbugs:spotbugs-maven-plugin from 4.10.4.1 to 4.10.5.0 by @dependabot[bot] in #4436
- chore(deps-dev): bump org.codehaus.mojo:versions-maven-plugin from 2.22.0 to 2.23.0 by @dependabot[bot] in #4437
- [AI-Assisted] fix(distillation): close terminal duties on published streams by @EvenSol in #4439
- [AI-Assisted] docs: clarify design-case acceptance boundaries (D202) by @EvenSol in #4434
- [AI-Assisted] fix(data): reconcile DEA identity and Henry source inventory by @EvenSol in #4441
- [AI-Assisted] fix(amine): distinguish failed CO2 reads from zero pressure by @EvenSol in #4442
- [AI-Assisted] fix(chemistry): discard stale LP mole estimates by @EvenSol in #4444
- [AI-Assisted] fix(heater): invalidate changed steady-state specifications by @EvenSol in #4445
- refactor(fluidboundary): remove deprecated JAMA compatibility and sim… by @asmfstatoil in #4446
- feat(optimization): report sampled operating-region transitions by @EvenSol in #4447
- [AI-Assisted] test(refinery): audit Sarir fractionation evidence by @EvenSol in #4448
- Compressor solve-efficiency update, test and agent doc/skill notes by @EvenSol in #4449
- test(thermo): retain source-matched salt-free CO2 baseline by @EvenSol in #4453
- [AI-Assisted] feat(refinery): blend complete TBP tables by mass by @EvenSol in #4454
- [AI-Assisted] fix(pipeline): make ambient temperature profile units explicit by @EvenSol in #4456
- feat(optimization): compare lifecycle region transitions by @EvenSol in #4460
- docs(agents): add Echo 3D equipment visuals to task workflow by @EvenSol in #4462
- thermo-fluid agent: check a precharacterized well-fluid library befor… by @EvenSol in #4463
- [AI-Assisted] fix(flash): recover missing aqueous phase in wet gas-condensate by @EvenSol in #4457
- fix(e300): write VCRIT in m3/kmol and ZCRIT dimensionless, convert VCRIT on read by @EvenSol in #4455
- [AI-Assisted] docs: correct ISO 6976 numerical provenance and reference boundaries by @EvenSol in #4459
- [AI-Assisted] fix(pump): align alternative-map BEP with requested speed by @EvenSol in #4461
- [AI-Assisted] feat(refinery): add catalytic reforming balance by @EvenSol in #4465
- [AI-Assisted] test(thermo): retain all Dholabhai hydrate recipes by @EvenSol in #4466
- [AI-Assisted] test(tasks): qualify portable continuous-task handoff by @EvenSol in #4468
- [AI-Assisted] fix(standards): correct ISO 6976:2016 60F air factor by @EvenSol in #4464
- Docs/echo 3d equipment visuals by @EvenSol in #4470
- [AI-Assisted] chore(release): prepare NeqSim 3.26.0 by @EvenSol in #4469
Full Changelog: v3.25.0...v3.26.0