- name
- neqsim-capability-map
- description
- Structured inventory of NeqSim's capabilities by engineering discipline. USE WHEN: checking what NeqSim can do, planning implementations, assessing gaps for engineering tasks, or routing work to the right agent. Covers thermodynamics, process equipment, PVT, standards, mechanical design, flow assurance, safety, and economics.
- last_verified
- 2026-10-03
# NeqSim Capability Map
Structured reference of what NeqSim can do, organized by engineering discipline.
Use this to quickly check if a capability exists before searching the source code.
## Start with current source and deployed capabilities
Treat the tables below as navigation hints, not an exhaustive or qualified support list.
For any unfamiliar capability, first follow
[the discovery contract](../../../docs/development/AGENT_CAPABILITY_DISCOVERY.md).
In a checkout, run `uv run --project devtools --locked devtools/capability_search.py "<need or API>" --json`.
It searches current source types and public member names across all Java domains and returns
agent/skill entry points, documentation and bounded test references. Use `--audit` to check
package routing completeness. Source routing is distinct from the operation coverage registry.
With MCP, search the deployed artifact and inspect the exact API/schema before execution.
Read only the relevant sections and follow references; do not load this entire inventory for
every calculation. Recheck source, tests and runtime version before accepting a stated gap.
For measured agent/MCP coverage, inspect `getCapabilities.engineeringCoverage`
and use `runCapability` with `action="coverage"`, `view="capabilities"` or
`view="apis"`, a query and bounded pagination. Follow the returned tool, API,
skill and agent references; retrieve the schema and inspect setup before running.
Reuse the catalog digest across pages. Declared routes and source/test mentions
are not successful execution or engineering qualification. An unmapped API needs
review, not an automatic conclusion that it is unsupported. See
`docs/development/ENGINEERING_CAPABILITY_COVERAGE.md` for the evidence contract
and campaign #3153 completion gates.
**Last updated:** 2026-10-03 (section L lists the capability families that have a dedicated skill added in the 2026-10 audit)
---
## A. Thermodynamic Models (Equations of State)
### Cubic EOS
| Class | Fluid Type | Mixing Rule | Notes |
|-------|-----------|-------------|-------|
| `SystemSrkEos` | Dry/lean gas, simple HC | `"classic"` | Most common choice |
| `SystemPrEos` | General HC, oil systems | `"classic"` | Better liquid densities than SRK |
| `SystemPrEos1978` | HC with Peng-Robinson 1978 | `"classic"` | Updated alpha function |
| `SystemPrEosvolcor` | PR with volume correction | `"classic"` | Volume-translated PR |
| `SystemSrkEosvolcor` | SRK with volume correction | `"classic"` | Volume-translated SRK |
| `SystemSrkPenelouxEos` | SRK with Peneloux correction | `"classic"` | Volume shift |
| `SystemSrkMathiasCopeman` | SRK + Mathias-Copeman alpha | `"classic"` | Better vapor pressure fit |
| `SystemPrMathiasCopeman` | PR + Mathias-Copeman alpha | `"classic"` | Better vapor pressure fit |
| `SystemSrkTwuCoonEos` | SRK + Twu-Coon alpha | `"classic"` | TST-type alpha function |
| `SystemRKEos` | Redlich-Kwong (original) | `"classic"` | Historical / teaching |
| `SystemPrDanesh` | PR-Danesh variant | `"classic"` | Oil recovery applications |
| `SystemPsrkEos` | Predictive SRK (group contribution) | — | No BIPs needed for some systems |
| `SystemSrkSchwartzentruberEos` | SRK + Schwarzentruber-Renon | `"classic"` | Polar compounds |
### Association & Polar EOS (CPA)
| Class | Fluid Type | Mixing Rule | Notes |
|-------|-----------|-------------|-------|
| `SystemSrkCPAstatoil` | Water, MEG, methanol, polar | `10` (numeric) | **Primary CPA choice** |
| `SystemSrkCPA` | CPA (generic) | `10` | Base CPA |
| `SystemSrkCPAs` | CPA simplified | `10` | Faster CPA variant |
| `SystemPrCPA` | PR-based CPA | `10` | PR + association |
| `SystemElectrolyteCPAstatoil` | Brines, salt solutions | `10` | Electrolyte + CPA |
| `SystemElectrolyteCPA` | Electrolyte CPA | `10` | Base electrolyte |
### Reference EOS (High Accuracy)
| Class | Fluid Type | Notes |
|-------|-----------|-------|
| `SystemGERG2008Eos` | Natural gas (custody transfer) | ISO 20765, highest accuracy |
| `SystemGERG2004Eos` | Natural gas (older GERG) | Predecessor to 2008 |
| `SystemSpanWagnerEos` | Pure CO2 | CO2 reference EOS |
| `SystemLeachmanEos` | Pure hydrogen | H2 reference EOS |
| `SystemWaterIF97` | Pure water / steam | IAPWS-IF97 |
| `SystemVegaEos` | LNG / cryogenic | Specialized for LNG |
### SAFT Family
| Class | Fluid Type | Notes |
|-------|-----------|-------|
| `SystemPCSAFT` | Polymers, associating | PC-SAFT |
| `SystemPCSAFTa` | PC-SAFT variant | Alternative parameterization |
### Other / Specialized
| Class | Fluid Type | Notes |
|-------|-----------|-------|
| `SystemBWRSEos` | Benedict-Webb-Rubin-Starling | Only CH4 + C2H6 parameterized |
| `SystemIdealGas` | Ideal gas law | Teaching / reference |
| `SystemBnsEos` | BNS EOS | Specialized |
| `SystemUMRPRUEos` | UMRPRU group contribution | Predictive mixing rules |
| `SystemNRTL` | Activity coefficient (NRTL) | Liquid-liquid equilibrium |
| `SystemUNIFAC` | Activity coefficient (UNIFAC) | Group contribution |
| `SystemSoreideWhitson` | Soreide-Whitson for oil/water | HC-water mutual solubility |
| `SystemKentEisenberg` | Acid gas treating | H2S/CO2 in amines |
| `SystemDesmukhMather` | Acid gas treating | Amine systems |
| `SystemDuanSun` | CO2 in brine | CO2 solubility |
| `SystemAmmoniaEos` | Ammonia systems | NH3-specific |
**Package:** `neqsim.thermo.system`
---
## B. Flash Calculations (ThermodynamicOperations)
| Method | Class/Operation | Notes |
|--------|----------------|-------|
| TP flash | `ops.TPflash()` | Standard pressure-temperature |
| PH flash | `ops.PHflash()` | Pressure-enthalpy |
| PS flash | `ops.PSflash()` | Pressure-entropy |
| TV flash | `ops.TVflash()` | Temperature-volume |
| UV flash | `ops.UVflash()` | Internal energy-volume |
| Dew point P | `ops.dewPointPressureFlash()` | At given T |
| Dew point T | `ops.dewPointTemperatureFlash()` | At given P |
| Bubble point P | `ops.bubblePointPressureFlash()` | At given T |
| Bubble point T | `ops.bubblePointTemperatureFlash()` | At given P |
| Phase envelope | `ops.calcPTphaseEnvelope()` | Full PT envelope |
| Cricondenbar | `ops.calcPTphaseEnvelope()` → `.get("cricondenbar")` | Max pressure on envelope |
| Cricondentherm | `ops.calcPTphaseEnvelope()` → `.get("cricondentherm")` | Max temperature on envelope |
| Solid flash | `ops.TPSolidflash()` | Wax, hydrate, ice, S8 precipitation |
| Hydrate T | `ops.hydrateEquilibriumTemperature()` | Hydrate formation temperature |
| Hydrate P | `ops.hydrateFormationPressure()` | Hydrate formation pressure |
| Wax T | `ops.calcWAT()` | Wax appearance temperature |
| Freeze T | `ops.freezingPointTemperatureFlash()` | Freeze-out temperature |
| Water dew point | `ops.waterDewPointTemperatureFlash()` | ISO 18453 / GERG-water: `SystemGERGwaterEos` with `setMixingRule(8)`; follow the `neqsim-standards-lookup` execution rule |
**CRITICAL:** After any flash, call `fluid.initProperties()` before reading
transport properties (viscosity, thermal conductivity, density).
**Package:** `neqsim.thermodynamicoperations`
---
## C. Process Equipment
### Separation
| Class | Type | Package |
|-------|------|---------|
| `Separator` | 2-phase (gas/liquid) | `process.equipment.separator` |
| `ThreePhaseSeparator` | 3-phase (gas/oil/water) | `process.equipment.separator` |
| `GasScrubber` | Gas scrubbing | `process.equipment.separator` |
| `GasScrubberSimple` | Simplified scrubber | `process.equipment.separator` |
| `NeqGasScrubber` | Non-equilibrium (mass-transfer) gas scrubber | `process.equipment.separator` |
### Compression & Expansion
| Class | Type | Package |
|-------|------|---------|
| `Compressor` | Centrifugal / reciprocating | `process.equipment.compressor` |
| `CompressorChart` | Performance curves | `process.equipment.compressor` |
| `Expander` | Turbo-expander | `process.equipment.expander` |
### Heat Transfer
| Class | Type | Package |
|-------|------|---------|
| `Heater` | Generic heater (duty specification) | `process.equipment.heatexchanger` |
| `Cooler` | Generic cooler (duty specification) | `process.equipment.heatexchanger` |
| `HeatExchanger` | Shell-and-tube (2 streams) | `process.equipment.heatexchanger` |
| `NeqHeater` | Non-equilibrium heater | `process.equipment.heatexchanger` |
### Valves & Pressure Control
| Class | Type | Package |
|-------|------|---------|
| `ThrottlingValve` | Isenthalpic flash | `process.equipment.valve` |
### Distillation & Absorption
| Class | Type | Package |
|-------|------|---------|
| `DistillationColumn` | Tray column | `process.equipment.distillation` |
| `Condenser` | Column condenser | `process.equipment.distillation` |
| `Reboiler` | Column reboiler | `process.equipment.distillation` |
| `SimpleTEGAbsorber` | TEG absorption | `process.equipment.absorber` |
| `SimpleAbsorber` | Generic absorber | `process.equipment.absorber` |
| `WaterStripperColumn` | Water stripper | `process.equipment.absorber` |
### Mixing & Splitting
| Class | Type | Package |
|-------|------|---------|
| `Mixer` | Stream mixing | `process.equipment.mixer` |
| `StaticMixer` | In-line mixer | `process.equipment.mixer` |
| `Splitter` | Stream splitting | `process.equipment.splitter` |
| `ComponentSplitter` | Component-based split | `process.equipment.splitter` |
### Pipelines & CO2 Well Analysis
| Class | Type | Package |
|-------|------|---------|
| `AdiabaticPipe` | Adiabatic pipe flow | `process.equipment.pipeline` |
| `PipeBeggsAndBrills` | Beggs & Brill correlation (+ formation temperature gradient) | `process.equipment.pipeline` |
| `PipeGray` | Gray (1974) multiphase vertical flow for gas / gas-condensate wells (Woldesemayat-Ghajar holdup option) | `process.equipment.pipeline` |
| `VoidFractionCorrelations` | Two-phase void-fraction / gas-holdup correlations (Woldesemayat-Ghajar 2007) | `process.equipment.pipeline` |
| `TwoFluidPipe` | Transient two-fluid multiphase model with 7 conservation equations, AUSM+, boundary conditions, direct electrical heating (DEH). See `neqsim-flow-assurance` for validity limits | `process.equipment.pipeline` |
| `CO2InjectionWellAnalyzer` | CO2 injection well safety analysis | `process.equipment.pipeline` |
| `TransientWellbore` | Shutdown cooling / depressurization transient | `process.equipment.pipeline` |
| `CO2FlowCorrections` | CO2-specific two-phase flow corrections (static utility) | `process.equipment.pipeline` |
| `InterfacialFriction` | Interfacial friction closures (Taitel-Dukler, Andritsos-Hanratty, Wallis, Oliemans) | `process.equipment.pipeline.twophasepipe.closure` |
| `onePhasePipeFlowNode` | Single-phase pipe flow node | `fluidmechanics.flownode.onephasenode` |
| `StratifiedFlowNode`, `SlugFlowNode`, `AnnularFlow`, `BubbleFlowNode`, `DropletFlowNode` | Two-phase pipe flow-regime nodes | `fluidmechanics.flownode.twophasenode.twophasepipeflownode` |
### Reactors
| Class | Type | Package |
|-------|------|---------|
| `GibbsReactor` | Gibbs energy minimization | `process.equipment.reactor` |
| `GibbsReactorCO2` | CO2-focused Gibbs reactor | `process.equipment.reactor` |
| `StoichiometricReaction` | Stoichiometric reactions | `process.equipment.reactor` |
| `StirredTankReactor` | CSTR | `process.equipment.reactor` |
| `FurnaceBurner` | Combustion | `process.equipment.reactor` |
| `SulfurDepositionAnalyser` | S8 deposition analysis | `process.equipment.reactor` |
| `AmmoniaSynthesisReactor` | NH3 synthesis | `process.equipment.reactor` |
| `AnaerobicDigester` | Biogas production (AD) | `process.equipment.reactor` |
| `FermentationReactor` | Monod/Contois/substrate-inhibited kinetics | `process.equipment.reactor` |
View on GitHub