Skip to the content.

Use this page to install NeqSim, run one complete thermodynamic calculation, and choose the maintained guide that matches your task. NeqSim uses kelvin for constructor temperatures and bara for constructor pressures unless an API explicitly accepts a unit string.

Install the released library

Add the current release to a Maven project:

<dependency>
  <groupId>com.equinor.neqsim</groupId>
  <artifactId>neqsim</artifactId>
  <version>3.18.0</version>
</dependency>

Use Maven Central to inspect published artifacts and GitHub Releases for release notes and downloadable assets. Application builds should pin a released version rather than track the changing master branch.

Build the current source

Clone the repository when contributing to NeqSim or validating changes against current source:

git clone https://github.com/equinor/neqsim.git
cd neqsim
./mvnw install

On Windows, run mvnw.cmd install. The Maven wrapper supplies the repository’s Maven version. NeqSim source remains Java 8 compatible; continuous integration also tests newer supported JDKs. See the developer setup guide for prerequisites, formatting, tests, and platform-specific troubleshooting.

Run the canonical Java quick start

The following complete program is shared with the documentation landing pages and protected by the landing-page regression contract:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import neqsim.thermo.system.SystemInterface;
import neqsim.thermo.system.SystemSrkEos;
import neqsim.thermodynamicoperations.ThermodynamicOperations;

public final class NeqSimQuickStart {
  private static final Logger logger = LogManager.getLogger(NeqSimQuickStart.class);

  private NeqSimQuickStart() {}

  public static void main(String[] args) {
    SystemInterface gas = new SystemSrkEos(298.15, 50.0);
    gas.addComponent("methane", 0.90);
    gas.addComponent("ethane", 0.05);
    gas.addComponent("propane", 0.03);
    gas.addComponent("CO2", 0.02);
    gas.setMixingRule("classic");

    ThermodynamicOperations operations = new ThermodynamicOperations(gas);
    operations.TPflash();
    gas.initProperties();

    logger.info("Density: {} kg/m3", gas.getDensity("kg/m3"));
    logger.info("Compressibility: {}", gas.getZ());
  }
}

TPflash() solves phase equilibrium at the system temperature and pressure. The explicit initProperties() call prepares physical-property results before the example reads density. The example logs values instead of writing directly to standard output, in line with repository rules.

For compilation and dependency details, continue with the Java getting-started guide. Python users should start from the Python integration on the documentation landing page, which uses the supported jneqsim gateway.

Choose a maintained workflow

Goal Recommended guide
Create fluids, run flashes, and read properties Thermodynamics recipes
Understand models and phase-equilibrium methods Thermodynamics guide
Inspect flash equations and validation Flash equations and tests
Characterize oils and heavy fractions Fluid characterization
Run laboratory-style PVT studies PVT simulation workflows
Build a steady-state process Process recipes
Understand process execution and reporting ProcessSystem guide
Model absorbers and strippers Absorber and stripper guide
Select a pipeline workflow Pipeline documentation index
Build dynamic cases Process transient simulation guide
Screen oil-quality methods Oil-quality standards
Find runnable tutorials and notebooks Examples index
Diagnose setup or runtime problems Troubleshooting guide

The curated usage-example catalog groups these guides by engineering task and records the validation expectations for complete programs and notebooks.

Interpret results responsibly

Use current source, focused tests, published benchmarks, and accountable engineering review before using a result for design or operational decisions.