- name
- neqsim-standards-lookup
- description
- Industry standards lookup and compliance tracking for NeqSim engineering tasks. USE WHEN: any engineering task requires standards compliance (API, ISO, NORSOK, DNV, ASME, EN, ASTM), ISO 18453 / GERG-water water dew point, risk assessment, or safety analysis. Provides equipment-to-standards mapping, calculation setup rules, database query patterns, results.json schema for standards_applied, and risk standards quick-reference.
- last_verified
- 2026-08-02
# NeqSim Standards Lookup
Reference for identifying, applying, and documenting industry standards compliance
in every engineering task. All tasks — Quick, Standard, or Comprehensive — must
identify applicable standards proportional to task depth.
## Standards Identification (MANDATORY First Step)
Before any simulation or analysis, identify applicable standards:
| Task Scale | Standards Requirement |
|------------|----------------------|
| **Quick** | 1-line note: "Per \[STANDARD\]" or "N/A — property lookup" |
| **Standard** | Table of applicable standards with scope and status |
| **Comprehensive** | Full table with clause numbers, design values, and compliance evidence |
## Search the Local Standards Library First (MANDATORY)
Before paraphrasing a standard from memory, citing it second-hand, or declaring
it unobtainable, search the user's configured document root. It holds full PDFs
and is more authoritative than recall:
```bash
neqsim --show-document-root # may be unset - then there is no library
neqsim documents "API 521" # recursive; every word must appear in the path
```
Words may be in any order and need not be adjacent (`"API 521"` finds
`API STD 521 ...`), but a standard filed under another body's number (for
example `DNV-ST-F101`) is only found by that exact designation. When several
editions are present (for example two `TR3500` versions), cite the edition you
actually read.
Every task folder also carries the listing at
`step1_scope_and_research/references/document_root_index.md` — read it, since a
subagent may have no CLI access. Refresh it with `neqsim documents --index .`.
- **Cite clause numbers from the PDF**, not from memory. A remembered limit that
turns out to be the previous edition is a silent compliance error.
- **File names are indicative only.** A document can contain the standard you
need without naming it (company guidelines often embed API/NORSOK
requirements), so open likely candidates before concluding it is absent.
- Copy the standards actually used into `references/literature/` (or `manual/`
for company documents) so the task folder stays self-contained, and cite the
document number in `standards_applied`.
- Only after this search comes up empty may a standard be recorded as a
`data_gap`. When no document root is configured, say so explicitly in the gap
entry rather than implying the standard does not exist.
## Equipment → Standards Mapping
NeqSim's standards database is in `src/main/resources/designdata/standards/`.
The index file `standards_index.csv` maps equipment types to applicable standards:
| Equipment Type | Primary Standards | NeqSim CSV File |
|----------------|-------------------|-----------------|
| Separator, ThreePhaseSeparator, GasScrubber | NORSOK P-001, API 12J, ASME VIII | `norsok_standards.csv`, `api_standards.csv`, `asme_standards.csv` |
| Compressor | API 617, NORSOK P-002 | `api_standards.csv`, `norsok_standards.csv` |
| Pump | API 610 | `api_standards.csv` |
| Pipeline, AdiabaticPipe, MultiphasePipe | NORSOK L-001, ASME B31.3/B31.4/B31.8, DNV-ST-F101 | `norsok_standards.csv`, `asme_standards.csv`, `dnv_iso_en_standards.csv` |
| Pipeline, FlexiblePipe, Cable, Umbilical on seabed | DNV-RP-F109 | Typed kernel `DnvRpF109OnBottomStabilityKernel`; project values remain explicit inputs |
| HeatExchanger, Heater, Cooler | API 660/661, TEMA | `api_standards.csv` |
| Tank | API 650/620, API 2000 | Use `Api2000TankVentingScreeningKernel` for current 7th-edition caller-controlled normal/emergency demand and rated-capacity screening; `api_standards.csv` covers catalog data |
| Valve | ASME B31.3 | `asme_standards.csv` |
| Subsea equipment | NORSOK U-001, DNV-ST-F101 | `norsok_standards.csv`, `subsea_standards.csv` |
| Well casing/tubing | API 5CT, API TR 5C3, NORSOK D-010 | `api_standards.csv`, `norsok_standards.csv` |
| Flange | ASME B16.5 | `asme_standards.csv` |
| Process flow diagram, block flow diagram, graphical symbols (documentation) | ISO 10628-1:2014, ISO 10628-2:2012 (collective application of ISO 14617); NORSOK P-002:2023+AC:2024 sets no diagram requirement | Not in the CSV tables; texts are paywalled, so claim "conventions applied, conformance not claimed". Edition evidence and checks: `process-study-report` skill, `references/standards_verification.md` |
| Orifice plate / differential-pressure metering | ISO 5167-1/-2, AGA 3 / API MPMS 14.3 | Use `Iso5167OrificeMeteringKernel` for strict ISO 5167-2:2022 screening; keep `Standard_AGA3` for an AGA/API basis and `Orifice` for process simulation |
| CO2 corrosion / materials selection | NORSOK M-506, ISO 15156 / NACE MR0175, NORSOK M-001 | Use `NorsokM506CorrosionDesignKernel` for strict M-506 screening; use `NorsokM506ElectrolyteBridge` for a rigorous brine pH/FeCO3 basis and keep `NorsokM506CorrosionRate` for legacy sweeps |
| Offshore steel fatigue | DNV-RP-C203 | Use `DnvRpC203FatigueDesignKernel` with a verified project-controlled S-N curve and stress spectrum; do not report legacy pipeline/riser shortcuts as exact-edition C203 evidence |
| Submarine-pipeline free spans | DNV-RP-F105 | Use `DnvRpF105FreeSpanScreeningKernel` for the current 2025-12 first-mode/dimensionless screen; project response triggers are not DNV acceptance criteria and the legacy allowable-span calculator is not F105 evidence |
| Inspected pipeline metal loss | DNV-RP-F101 | Use `DnvRpF101CorrodedPipelineScreeningKernel` for the current isolated longitudinal defect/internal-pressure screen; measured geometry and caller-controlled factors are evidence, not values inferred from M-506, and ST-F101 design checks remain separate |
| CO2 pipeline design and operation | DNV-RP-F104 | Use `DnvRpF104Co2PipelineEnvelopeScreeningKernel` for the current caller-controlled composition and operating-envelope margin screen; use its requirement pack only for bounded capability discovery and keep ST-F101, fracture, materials/corrosion, construction, operation, safety, and requalification separate |
| Submarine-pipeline global buckling | DNV-RP-F110 | Use `DnvRpF110GlobalBucklingResponseScreeningKernel` for the current caller-controlled external-analysis force/strain/displacement/feed-in response envelope; keep structural response, soil springs, critical buckling, imperfections/triggers, local capacity, and F109/F114/F105/ST-F101 acceptance separate |
| Submarine-pipeline pipe-soil interaction | DNV-RP-F114 | Use `DnvRpF114PipeSoilInteractionScreeningKernel` for the current caller-controlled vertical/axial/lateral demand-resistance envelope; keep geotechnical model derivation and F109/F110/F105/ST-F101 acceptance separate |
| Fixed-roof tank venting | API 2000 | Use `Api2000TankVentingScreeningKernel` for the current 7th-edition caller-controlled demand/capacity screen; do not infer licensed demand factors or report it as device sizing/conformity |
| Mineral scale / produced water | (industry practice; Davies + Ksp(T)) | `ElectrolyteScaleCalculator` / `ScaleKinetics` / `BrineMixingScaleEvaluator` (`process.chemistry.scale`) |
### ISO 18453 / GERG-water execution rule
For a natural-gas **water dew point** request with a named **ISO 18453:2004** or
**GERG-water** basis, use this setup and retain its model basis:
1. Prefer `neqsim.standards.gasquality.Standard_ISO18453` for a water dew point
at a specified pressure. Its constructor sets up `SystemGERGwaterEos` and
`setMixingRule(8)`; explicitly call `setPressure(pressureBara)` before
`calculate()`, then read `getValue("dewPointTemperature", "C")`. Do not assume
the feed pressure replaces the wrapper's reference pressure.
2. For a direct calculation, construct `SystemGERGwaterEos(temperatureK,
pressureBara)`, add the composition, call `setMixingRule(8)`, initialize, then
create `ThermodynamicOperations` for that fluid and call
`waterDewPointTemperatureFlash()`. Use a clone when the original process
fluid must be preserved. Do not substitute
GERG-2008, ordinary PR with `"classic"`, or CPA for an ISO 18453 model basis.
3. Require positive finite water mole fraction and positive finite absolute
pressure. State whether moisture is on a wet-gas or dry-gas basis. For wet-gas
ppmv, `y_water = ppmv * 1e-6`; scale dry-component fractions by `1 - y_water`
and verify the complete wet composition sums to one. Convert dry-basis
moisture before using it as a wet-gas mole fraction. For mass per volume,
retain the specified reference temperature, pressure, and dry/real-gas basis.
4. Below **273.16 K**, ISO 18453 uses an **ice reference**, not supercooled
liquid water. CPA liquid-water and hydrate boundaries are different
calculations. Reject non-finite output and report convergence failures.
5. Report pressure, water basis, composition, NeqSim version, model and mixing
rule. Check the standard's composition limits: the validated range is
**−15 to +5 °C and 5–100 bara**; the extended range is **−50 to +40 °C and
1–300 bara**, with unknown correlation uncertainty. A converged result or a
class name does not establish full ISO compliance.
Use the [maintained executable example and validation boundaries](../../../docs/standards/dew_point_standards.md)
and route the task to the [gas-quality agent](../../agents/gas-quality.agent.md).
`Draft_ISO18453` remains the legacy contract path; new direct calculations use
`Standard_ISO18453`. Keep hydrocarbon dew point and cricondentherm separate.
### DNV-RP-F109 implementation status
`EquipmentDesignKernelRegistry.lookup(StandardType.DNV_RP_F109)` exposes a
`SCREENING` kernel for the exact catalogued edition `2021-05+AMD 2025-09`.
It calculates vertical equilibrium and a transparent absolute-static lateral
screen, or checks displacement supplied by an externally validated generalized or
dynamic response model. It intentionally excludes licensed generalized-design
tables, response generation, environmental-statistics derivation, soil-model
qualification, and conformity assessment. Do not report a passing kernel result as
DNV certification or clause-complete compliance; report the implemented check scope
and retain `engineeringApprovalRequired=true`.
### DNV-ST-F101 pipeline screening
For current DNV-ST-F101 requests, use
`neqsim.process.engineering.calculation.DnvStF101PipelineDesignKernel` with a complete
`DnvStF101PipelineDesignInput`. It preserves operating, incidental, and test pressure; collapse;
propagation buckling; local-buckling load interaction; fatigue; temperature/material de-rating;
safety class; ovality; fabrication route; and installation strain as distinct checks.
Do not route DNV-ST-F101 to `PipeMechanicalDesignCalculator.DNV_OS_F101`. That constant is the
legacy DNV-OS-F101 screen. Missing structural inputs or unsupported editions must remain blocked,
and a calculated result must retain `CALCULATED_REVIEW_REQUIRED`. Never describe a passing screen
as certification or code compliance; require a licensed project copy and independent review.
See `docs/process/dnv_st_f101_pipeline_screening.md` and the `neqsim-capability-map` skill.
## TR/NORSOK Integration Classes
### NORSOK M-506 execution rule
For an explicit NORSOK M-506 calculation, prefer
`neqsim.process.engineering.calculation.NorsokM506CorrosionDesignKernel`. It implements only the
unamended 2017 edition, checks `Pipeline` / `AdiabaticPipe` / `Pipe` applicability, retains raw
unit-explicit input values, and blocks unsupported or out-of-range cases before the mutable legacy
calculator runs. Treat `NorsokM506CorrosionAssessment.getProjectedUniformWallLossMm()` as rate
multiplied by exposure time, not as a specified corrosion allowance or acceptance decision.
The kernel is `SCREENING`: verify the purchased standard, wetting and water-chemistry basis,
localized corrosion, sour service, inhibitor availability, materials selection, and project
criteria independently. When `feCO3SaturationRatio` is enabled, report it as a NeqSim film-factor
extension and retain the source chemistry evidence. Standards Norway's May 2026 systematic-review
notice is the lifecycle source for the catalogued 2017 edition; do not silently apply this kernel to
a later revision.
### ISO 5167 execution rule
For an explicit ISO orifice-metering calculation, use
`neqsim.process.engineering.calculation.Iso5167OrificeMeteringKernel`. The registered method supports
only unamended ISO 5167-2:2022, paired with ISO 5167-1:2022. It requires an `Orifice` equipment
basis, explicit liquid or gas/vapour service, a supported tapping arrangement, and affirmative
single-phase/full-pipe/subsonic/non-pulsating and installation evidence before calculation.
Do not treat `geometryAndInstallationVerified(true)` as evidence created by NeqSim; retain the
inspection and installation record. Keep uncertainty, calibration, straight lengths, plate
condition, custody-transfer acceptance, and project metering procedure outside the kernel. Use
`Standard_AGA3` under an AGA 3/API MPMS 14.3 basis and do not relabel that result as ISO 5167.
### DNV-RP-C203 execution rule
For an explicit DNV-RP-C203 basis, use
`neqsim.process.engineering.calculation.DnvRpC203FatigueDesignKernel`. It supports the catalogued
`2024-10` edition including amendment `2025-10`, rejects additional project amendments, and is a
`SCREENING` S-N/Palmgren-Miner calculation.
The caller must supply and verify a controlled single-slope or continuous bi-linear curve, stress
spectrum, SCF, thickness factor, other stress-range factor, design fatigue factor, damage limit, and
exposure.
Do not copy licensed curve tables into NeqSim and do not infer that a verification Boolean is the
evidence itself. Retain curve/detail selection, environment, fabrication, thickness, weld and SCF
basis, structural stress derivation, load combinations, rainflow counting, inspection plan, and
accountable approval externally. The older pipeline/riser fatigue methods have inconsistent embedded
intercepts and remain legacy estimates, not exact-edition C203 calculations.
### DNV-RP-F105 execution rule
For an explicit DNV-RP-F105 basis, use
`neqsim.process.engineering.calculation.DnvRpF105FreeSpanScreeningKernel`. It supports only the
catalogued unamended `2025-12` edition for `Pipeline` and `AdiabaticPipe`. The kernel evaluates a
simply supported Euler-Bernoulli first mode with caller-supplied effective modal mass and axial
force, then reports current/wave frequency ratios, reduced velocities, and Keulegan-Carpenter
number. Steel outside diameter and hydrodynamic diameter are separate inputs.
Treat the geometry, structural-model, environmental, and project-trigger verification Booleans as
attestations whose evidence must be retained externally. Strouhal number, frequency-ratio band, and
reduced-velocity limits are caller-controlled escalation triggers, not embedded DNV requirements or
acceptance decisions. Keep soil/shoulder stiffness, interacting spans, detailed in-line/cross-flow
VIV and direct-wave response, ULS/FLS, fatigue, monitoring, intervention, and conformity open.
`PipeMechanicalDesignCalculator.calculateAllowableSpanLength(...)` is a legacy fixed-assumption
estimate with fallback and cap behavior. Never report that output as current-edition F105 evidence.
### DNV-RP-F101 execution rule
For an explicit DNV-RP-F101 basis, use
`neqsim.process.engineering.calculation.DnvRpF101CorrodedPipelineScreeningKernel`. It supports the
catalogued `2019-09+AMD:2025-09` edition and only calculates the deterministic isolated
longitudinal metal-loss equation under internal pressure. Require externally verified assessment
wall thickness, measured defect depth and length, caller-controlled depth allowance,
characteristic ultimate tensile strength, internal/external pressures, caller-controlled pressure
factor, and isolated-defect applicability.
Treat every verification Boolean as an attestation, not the evidence itself. Keep inspection
accuracy and growth derivation, factor selection, interacting/complex defects, combined
longitudinal compression, probabilistic methods, crack/dent/gouge/blister or weld damage, repair,
fitness-for-service acceptance, and accountable approval external. Do not turn
`NorsokM506CorrosionAssessment.getProjectedUniformWallLossMm()` into RP-F101 defect dimensions.
RP-F101 remaining-strength screening is not DNV-ST-F101 original design. It does not replace
pressure containment, collapse, propagation buckling, local buckling, load interaction, fatigue,
incidental/test pressure, de-rating, safety class, ovality, fabrication route, or installation
strain checks.
### DNV-RP-F104 execution rule
For an explicit current `DNV-RP-F104 2021-02+AMD:2021-09` basis, use
`DnvRpF104Co2PipelineEnvelopeScreeningKernel`. Require verified project CO2/water limits,
other-impurity status, composition/EOS basis, the minimum-pressure interpretation and uncertainty of
each supplied single-phase boundary, an ordered operating profile, MAOP, design temperatures, and
external integrity/lifecycle review evidence. Negative margins remain calculated findings; missing
evidence blocks execution.
Use `StandardRegistry.requireRequirementPack(StandardSelection.strictRequirements(
StandardType.DNV_RP_F104))` to discover related thermodynamic, hydraulic, corrosion, mechanical,
monitoring, and consequence capabilities. The pack does not prove clause coverage. Do not substitute
the pure-CO2 critical point, `CO2FlowCorrections.isDensePhase(...)`, or embedded
`DensePhaseCO2Corrosion` values for the project basis. F104 does not replace DNV-ST-F101 structural
design or the external fracture, materials, corrosion, construction, safety, operation, and
requalification assessments.
### DNV-RP-F114 execution rule
For an explicit current `DNV-RP-F114 2021-05` basis, use
`DnvRpF114PipeSoilInteractionScreeningKernel`. Supply positive pipe diameter and submerged weight,
then named route/design-situation cases with externally established non-negative vertical, axial,
and lateral demand magnitudes and positive resistance magnitudes on a consistent N/m basis.
Require external evidence for applicability, site investigation, soil interpretation,
pipe/interface configuration, installation history, cyclic/drainage/rate/consolidation effects,
load-displacement and resistance models, uncertainty/spatial variability, design actions and
acceptance criteria, and lifecycle interfaces. A negative margin remains a calculated finding.
Never derive F114 resistance from NeqSim soil thermal conductivity, burial heat-transfer inputs, a
generic friction coefficient, or submerged weight alone. Keep F109 on-bottom stability, F110 global
buckling, F105 free spans, ST-F101 structural design, and conformity external.
### DNV-RP-F110 execution rule
For an explicit current `DNV-RP-F110 2019-09+AMD:2021-09` basis, use
`DnvRpF110GlobalBucklingResponseScreeningKernel`. Supply positive pipe diameter and structural wall
thickness, then named route/design-situation cases containing externally analysed effective force,
peak longitudinal strain, peak global displacement, and required feed-in length together with
caller-controlled allowable or available values.
Require external evidence for applicability, operating envelope/effective force, pipe properties
and as-laid geometry, pipe-soil interaction, imperfections/triggers/design strategy, global
structural model, design situations/load combinations, local capacity/strain criteria,
uncertainty/sensitivity/buckle sharing, and lifecycle actions. A negative margin remains calculated.
Never interpret the force limit as a NeqSim-derived critical-buckling or initiation criterion. Keep
F109/F114/F105, every DNV-ST-F101 check, conformity, and accountable approval external.
### API 2000 execution rule
For an explicit API 2000 basis, use
`neqsim.process.engineering.calculation.Api2000TankVentingScreeningKernel`. It supports only the
catalogued unamended `7th Ed` for caller-verified non-refrigerated fixed-roof `Tank` or
`SimpleTankFiller` service. Supply maximum filling/withdrawal rates, caller-controlled movement
ratios, externally established thermal/other normal demands, total emergency demand, rated
normal/emergency capacities, their rated pressure/vacuum conditions, tank limits, and one common
gas-volume reference state.
Treat the evidence Booleans as attestations, not proof. Keep API demand tables/equations, scenario
derivation, vent area and device selection, manufacturer curves, pressure losses, flame arresters,
blanketing, external floating roofs, refrigerated storage, installation/testing, and conformity
external. An adequate caller-controlled constraint result is not API compliance.
Use these Java classes when a task references Equinor technical requirements,
STS0131, TR1965, TR2237, or NORSOK P-002:
| Scope | Class | Use |
|-------|-------|-----|
| Gas scrubber conformance | `neqsim.process.mechanicaldesign.separator.conformity.ConformityRuleSet.create("TR1965")` | Checks TR1965 K-factor, gas/liquid margins, entrainment, and scrubber layout metadata configured on `GasScrubberMechanicalDesign`. |
| Blowdown fire acceptance | `neqsim.process.safety.depressurization.STS0131AcceptanceCriteria` | Evaluates `DepressurizationResult` against time-to-escape/time-to-rupture pressure, inventory, and escalated fire-rate limits. |
| Piping/line sizing | `neqsim.process.mechanicaldesign.pipeline.NorsokP002LineSizingValidator` | Screens `PipeLineInterface` velocity, pressure gradient, and erosional velocity using NORSOK P-002 style limits. |
| Leak detection sensitivity | `neqsim.process.safety.leakdetection.MassBalanceLeakDetector` | Estimates minimum detectable leak rate from flow, pressure, temperature, and linepack uncertainty. |
| Performance standards | `neqsim.process.safety.barrier.TR2237Templates` | Creates starter barrier registers with TR2237-style performance standards and NORSOK S-001 topic mappings. |
| Standards review | `neqsim.process.safety.compliance.StandardsDesignReview` | Converts supported calculated checks from a `ProcessSystem` into `StandardsComplianceReport`. |
| Overpressure LOPA targets | `LOPAResult.getSTS0131OverpressureTargetFrequency(...)` | Selects target event frequency from STS0131 pressure severity bands. |
| LEL endpoint policy | `GasDispersionAnalyzer.builder().sts0131IntegralEndpoint()` | Uses 20% LFL for integral dispersion tools; `sts0131CfdEndpoint()` uses 50% LFL. |
### TR1965 Gas Scrubber Pattern
View on GitHub