# equinor/neqsim architecture

> Architecture diagram of the GitHub repository equinor/neqsim, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/equinor/neqsim
- Repository: https://github.com/equinor/neqsim

## Overview

NeqSim is a Java engineering library for thermodynamic property calculations, process and flow simulation, and engineering design, with Python and AI-assisted entry points documented in the README. A typical user supplies a fluid or engineering task, runs calculations or a flowsheet, then uses results for design checks and reviewable outputs. The README documents broad capabilities, but most core simulation modules are not present in the supplied tree excerpt; those nodes therefore have no asserted source path. Sampled source supports the agentic, engineering, materials, optimization, flow, and diagram components shown.

Main entry points: [`src/main/java/neqsim/util/agentic/AgenticEngineeringKernel.java`](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/util/agentic/AgenticEngineeringKernel.java) (Engineering Kernel), [`src/main/java/neqsim/process/engineering/SimulationEngineeringDesignRunner.java`](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/engineering/SimulationEngineeringDesignRunner.java) (Design Runner), [`src/main/java/neqsim/process/engineering/model/EngineeringDiagramDocumentSet.java`](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/engineering/model/EngineeringDiagramDocumentSet.java) (Diagram Documents), [`src/main/java/neqsim/fluidmechanics`](https://github.com/equinor/neqsim/tree/master/src/main/java/neqsim/fluidmechanics) (Pipeline Flow)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_simulation["Simulation Core"]
  node_thermo["Thermodynamic Models"]
  node_flash["Flash Operations"]
  node_properties["Fluid Properties"]
  node_process["Process Flowsheets"]
  node_pvt["PVT Studies"]
  node_flow["Pipeline Flow"]
end

subgraph group_engineering["Engineering Analysis"]
  node_design["Design Runner"]
  node_optimization["Process Optimization"]
  node_materials["Materials Review"]
  node_safety["Safety Studies"]
  node_standards["Standards Checks"]
end

subgraph group_agentic["Agentic Workflow"]
  node_agent_kernel["Engineering Kernel"]
  node_service_context["Service Context"]
  node_calculation_context["Calculation Context"]
end

subgraph group_representation["Engineering Outputs"]
  node_documents["Diagram Documents"]
  node_native_diagram["Native Diagram Renderer"]
  node_dexpi["DEXPI Layout"]
end

node_user(("Engineer or Agent"))
node_result["Engineering Results"]

node_user -->|"defines fluid"| node_thermo
node_thermo -->|"supplies model"| node_flash
node_flash -->|"calculates"| node_properties
node_user -->|"builds flowsheet"| node_process
node_process -->|"runs simulation"| node_result
node_user -->|"requests study"| node_pvt
node_pvt -->|"produces analysis"| node_result
node_user -->|"requests flow"| node_flow
node_flow -->|"calculates flow"| node_result
node_user -->|"requests design"| node_design
node_design -->|"runs checks"| node_standards
node_design -->|"evaluates safety"| node_safety
node_design -->|"assembles results"| node_result
node_user -->|"requests optimization"| node_optimization
node_optimization -->|"returns solution"| node_result
node_user -->|"requests review"| node_materials
node_materials -->|"returns assessments"| node_result
node_user -->|"describes task"| node_agent_kernel
node_agent_kernel -->|"uses service inputs"| node_service_context
node_agent_kernel -->|"records evidence"| node_calculation_context
node_agent_kernel -->|"plans analysis"| node_design
node_agent_kernel -->|"prepares workflow"| node_result
node_documents -->|"renders"| node_native_diagram
node_documents -->|"lays out"| node_dexpi
node_native_diagram -->|"writes diagram"| node_result
node_dexpi -->|"exports layout"| node_result

click node_flow "https://github.com/equinor/neqsim/tree/master/src/main/java/neqsim/fluidmechanics"
click node_design "https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/engineering/SimulationEngineeringDesignRunner.java"
click node_optimization "https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/util/optimizer/ProcessOptimizationEngine.java"
click node_materials "https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/materials/MaterialsReviewEngine.java"
click node_agent_kernel "https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/util/agentic/AgenticEngineeringKernel.java"
click node_service_context "https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/engineering/production/EngineeringMethodServiceContext.java"
click node_calculation_context "https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/engineering/calculation/EngineeringCalculationContext.java"
click node_documents "https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/engineering/model/EngineeringDiagramDocumentSet.java"
click node_native_diagram "https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/processmodel/diagram/NativeEngineeringDiagramRenderer.java"
click node_dexpi "https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/processmodel/dexpi/DexpiLayoutEngine.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_thermo,node_flash,node_properties,node_process,node_pvt,node_flow toneBlue
class node_design,node_optimization,node_materials,node_safety,node_standards toneAmber
class node_agent_kernel,node_service_context,node_calculation_context toneMint
class node_documents,node_native_diagram,node_dexpi toneRose
class node_user,node_result toneIndigo
```

## Components

### Simulation Core

- **Thermodynamic Models**
- **Flash Operations**
- **Fluid Properties**
- **Process Flowsheets**
- **PVT Studies**
- [Pipeline Flow](https://github.com/equinor/neqsim/tree/master/src/main/java/neqsim/fluidmechanics): `src/main/java/neqsim/fluidmechanics`

### Engineering Analysis

- [Design Runner](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/engineering/SimulationEngineeringDesignRunner.java): `src/main/java/neqsim/process/engineering/SimulationEngineeringDesignRunner.java`
- [Process Optimization](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/util/optimizer/ProcessOptimizationEngine.java): `src/main/java/neqsim/process/util/optimizer/ProcessOptimizationEngine.java`
- [Materials Review](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/materials/MaterialsReviewEngine.java): `src/main/java/neqsim/process/materials/MaterialsReviewEngine.java`
- **Safety Studies**
- **Standards Checks**

### Agentic Workflow

- [Engineering Kernel](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/util/agentic/AgenticEngineeringKernel.java): `src/main/java/neqsim/util/agentic/AgenticEngineeringKernel.java`
- [Service Context](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/engineering/production/EngineeringMethodServiceContext.java): `src/main/java/neqsim/process/engineering/production/EngineeringMethodServiceContext.java`
- [Calculation Context](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/engineering/calculation/EngineeringCalculationContext.java): `src/main/java/neqsim/process/engineering/calculation/EngineeringCalculationContext.java`

### Engineering Outputs

- [Diagram Documents](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/engineering/model/EngineeringDiagramDocumentSet.java): `src/main/java/neqsim/process/engineering/model/EngineeringDiagramDocumentSet.java`
- [Native Diagram Renderer](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/processmodel/diagram/NativeEngineeringDiagramRenderer.java): `src/main/java/neqsim/process/processmodel/diagram/NativeEngineeringDiagramRenderer.java`
- [DEXPI Layout](https://github.com/equinor/neqsim/blob/master/src/main/java/neqsim/process/processmodel/dexpi/DexpiLayoutEngine.java): `src/main/java/neqsim/process/processmodel/dexpi/DexpiLayoutEngine.java`

### Other components

- **Engineer or Agent**
- **Engineering Results**

## Connections

- Engineer or Agent → Thermodynamic Models: defines fluid
- Thermodynamic Models → Flash Operations: supplies model
- Flash Operations → Fluid Properties: calculates
- Engineer or Agent → Process Flowsheets: builds flowsheet
- Process Flowsheets → Engineering Results: runs simulation
- Engineer or Agent → PVT Studies: requests study
- PVT Studies → Engineering Results: produces analysis
- Engineer or Agent → Pipeline Flow: requests flow
- Pipeline Flow → Engineering Results: calculates flow
- Engineer or Agent → Design Runner: requests design
- Design Runner → Standards Checks: runs checks
- Design Runner → Safety Studies: evaluates safety
- Design Runner → Engineering Results: assembles results
- Engineer or Agent → Process Optimization: requests optimization
- Process Optimization → Engineering Results: returns solution
- Engineer or Agent → Materials Review: requests review
- Materials Review → Engineering Results: returns assessments
- Engineer or Agent → Engineering Kernel: describes task
- Engineering Kernel → Service Context: uses service inputs
- Engineering Kernel → Calculation Context: records evidence
- Engineering Kernel → Design Runner: plans analysis
- Engineering Kernel → Engineering Results: prepares workflow
- Diagram Documents → Native Diagram Renderer: renders
- Diagram Documents → DEXPI Layout: lays out
- Native Diagram Renderer → Engineering Results: writes diagram
- DEXPI Layout → Engineering Results: exports layout
