Source profileQuality 86/100

equinor/neqsim/.github/skills/neqsim-consequence-analysis/SKILL.md

neqsim-consequence-analysis

Quantitative consequence analysis for oil & gas hazards — jet fire, pool fire, vapour cloud explosion (VCE), BLEVE, Gaussian plume and heavy-gas dispersion, probit-based fatality probabilities, individual and societal risk roll-up. USE WHEN: a task requires fire-radiation contours, dispersion to LFL/IDLH/ERPG, BLEVE thermal/missile assessment, or QRA-style risk integration of multiple release outcomes. Anchors on neqsim.process.safety.fire, neqsim.process.safety.dispersion, neqsim.process.safety

Source repository stars
136
Declared platforms
0
Static risk flags
0
Last source update
2026-08-05
Source checked
2026-08-05

Decision brief

What it does—and where it fits

Quantitative consequence modelling that converts a release scenario (mass flow, inventory, ignition probability) into thermal radiation contours, overpressure contours, dispersion footprints, and finally individual / societal fatality risk per ISO 17776, NORSOK Z-013, API 752 an…

Best for

  • Jet-fire, pool-fire, VCE or BLEVE source-term modelling
  • Toxic / flammable dispersion to LFL, IDLH, ERPG-2/3 or 1 % fatality contours
  • Probit-based fatality probability for thermal radiation, overpressure or toxic dose

Not for

  • Stability class — using class D ("typical") instead of F for hazard contours
  • Heavy gas — applying Gaussian to CO₂ / LPG releases under-predicts near-field

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/equinor/neqsim --skill ".github/skills/neqsim-consequence-analysis"
Safe inspection promptEditorial

Inspect the Agent Skill "neqsim-consequence-analysis" from https://github.com/equinor/neqsim/blob/9e8d44a141bba600026d2229969b49af50f34237/.github/skills/neqsim-consequence-analysis/SKILL.md at commit 9e8d44a141bba600026d2229969b49af50f34237. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Verification Tests

    src/test/java/neqsim/process/safety/{fire,dispersion,qra}/ contain JUnit 5 tests for every model. Run:

    src/test/java/neqsim/process/safety/{fire,dispersion,qra}/ contain JUnit 5 tests for every model. Run:
  2. 02

    When to Use

    Distinct from neqsim-process-safety (HAZOP / LOPA / SIL — frequency side) and neqsim-relief-flare-network (PSV sizing / flare radiation — design side). This skill is the consequence side of QRA.

    Jet-fire, pool-fire, VCE or BLEVE source-term modellingToxic / flammable dispersion to LFL, IDLH, ERPG-2/3 or 1 % fatality contoursProbit-based fatality probability for thermal radiation, overpressure or toxic dose
  3. 03

    Standards

    API 521 §6 — flare and vent radiation, fire heat input

    API 521 §6 — flare and vent radiation, fire heat inputAPI 752 / 753 / 756 — facility siting, occupied buildingsNORSOK Z-013 / S-001 — risk acceptance, fire & explosion loads
  4. 04

    Method 1 — Jet Fire (API 521 + CCPS solid-flame)

    Typical thermal radiation criteria (API 521 / NORSOK S-001):

    Typical thermal radiation criteria (API 521 / NORSOK S-001):
  5. 05

    Method 2 — Pool Fire

    Review the “Method 2 — Pool Fire” section in the pinned source before continuing.

    Review and apply the “Method 2 — Pool Fire” source section.

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score86/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars136SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
equinor/neqsim
Skill path
.github/skills/neqsim-consequence-analysis/SKILL.md
Commit
9e8d44a141bba600026d2229969b49af50f34237
License
Apache-2.0
Collected
2026-08-05
Default branch
master
View the original SKILL.md

NeqSim Consequence Analysis Skill

Quantitative consequence modelling that converts a release scenario (mass flow, inventory, ignition probability) into thermal radiation contours, overpressure contours, dispersion footprints, and finally individual / societal fatality risk per ISO 17776, NORSOK Z-013, API 752 and the CCPS Guidelines for Chemical Process Quantitative Risk Analysis.

When to Use

  • Jet-fire, pool-fire, VCE or BLEVE source-term modelling
  • Toxic / flammable dispersion to LFL, IDLH, ERPG-2/3 or 1 % fatality contours
  • Probit-based fatality probability for thermal radiation, overpressure or toxic dose
  • QRA roll-up: combine release frequency × ignition probability × fatality probability
  • Source-term generation as input to PHAST / FLACS / KFX

Distinct from neqsim-process-safety (HAZOP / LOPA / SIL — frequency side) and neqsim-relief-flare-network (PSV sizing / flare radiation — design side). This skill is the consequence side of QRA.

Standards

  • API 521 §6 — flare and vent radiation, fire heat input
  • API 752 / 753 / 756 — facility siting, occupied buildings
  • NORSOK Z-013 / S-001 — risk acceptance, fire & explosion loads
  • CCPS QRA Guidelines — probit constants, ignition probabilities
  • TNO Yellow Book — multi-energy / Baker-Strehlow VCE
  • EI 15 — hazardous area classification

Method 1 — Jet Fire (API 521 + CCPS solid-flame)

import neqsim.process.safety.fire.JetFireModel;
import neqsim.process.safety.dispersion.ProbitModel;

// 30 kg/s gas leak, 50 MJ/kg HoC, 25 % radiative fraction
JetFireModel jet = new JetFireModel(30.0, 50.0e6, 0.25);
double flux50m = jet.radiationFluxAt(50.0);   // W/m²
double dist125 = jet.distanceForFlux(12500.0); // m where flux = 12.5 kW/m²

Typical thermal radiation criteria (API 521 / NORSOK S-001):

Flux (kW/m²)EffectUse
1.6No discomfort for long exposurePublic area limit
4.7Sufficient for evacuation in 30 sEscape route
12.5Wood ignites, equipment failure (5 min)Process equipment limit
37.5Structural failure of process equipmentDamage to steel structure

Method 2 — Pool Fire

import neqsim.process.safety.fire.PoolFireModel;

// 500 kg liquid, burning rate 0.05 kg/m²·s, dike diameter 8 m, η = 0.30
PoolFireModel pool = new PoolFireModel(0.05, 8.0, 50.0e6, 0.30);
double flux = pool.radiationFluxAt(25.0); // W/m² at 25 m

Method 3 — Vapour Cloud Explosion (TNO Multi-Energy)

import neqsim.process.safety.fire.VCEModel;

// 200 kg flammable in cloud, congestion class 7 (heavy)
VCEModel vce = new VCEModel(200.0, 50.0e6, 7);
double overpressure = vce.overpressureAt(60.0); // Pa at 60 m
double safeDist = vce.distanceForOverpressure(20684.0); // m for 3 psi

Method 4 — BLEVE

import neqsim.process.safety.fire.BLEVECalculator;

// 50 t propane vessel
BLEVECalculator bleve = new BLEVECalculator(50000.0, 50.0e6, 0.40);
double fireballDiameter = bleve.fireballDiameter();   // m
double fireballDuration = bleve.fireballDuration();   // s
double thermalDose = bleve.thermalDoseAt(150.0);      // (W/m²)^(4/3)·s

Method 5 — Gaussian Plume Dispersion (Briggs σ)

import neqsim.process.safety.dispersion.GaussianPlume;

// 10 kg/s leak, ground-level source, 4 m/s wind, neutral stability D
GaussianPlume plume = new GaussianPlume(10.0, 0.0, 4.0,
    GaussianPlume.Stability.D, GaussianPlume.Terrain.RURAL);
double conc = plume.centerlineGroundConcentration(200.0); // kg/m³
double distLFL = plume.distanceToConcentration(0.044);    // m to methane LFL

Stability classes: A (very unstable) … F (stable). RURAL vs URBAN selects Briggs σ coefficients per Pasquill-Gifford. Use Stability.F for worst-case dispersion analysis (calm night, low wind).

Method 6 — Heavy-Gas Dispersion

For dense releases (CO₂, propane, butane) the Gaussian model under-predicts near-field concentrations. Use HeavyGasDispersion (Britter-McQuaid screening):

import neqsim.process.safety.dispersion.HeavyGasDispersion;

HeavyGasDispersion hgs = new HeavyGasDispersion(
    50.0,    // continuous release rate [kg/s]
    1.98,    // gas density at release [kg/m³]
    1.20,    // ambient density [kg/m³]
    4.0);    // wind speed [m/s]
double distLFL = hgs.distanceToConcentration(0.05); // m

Method 7 — Probit Fatality Probability

import neqsim.process.safety.dispersion.ProbitModel;

// Thermal: Y = a + b·ln(t·F^(4/3)), 60 s exposure at 12.5 kW/m²
double pFatality = ProbitModel.thermalFatality()
    .fatalityProbability(60.0, 12500.0);

// Toxic H2S: Y = -31.42 + 3.008·ln(C^1.43·t)
ProbitModel h2s = ProbitModel.h2sFatality();
double pH2S = h2s.fatalityProbability(600.0, 5.0e-4); // 10 min, 500 ppm

// Overpressure (lung haemorrhage): Y = -77.1 + 6.91·ln(P)
ProbitModel ovp = ProbitModel.overpressureFatality();

Built-in factories: thermalFatality(), overpressureFatality(), h2sFatality(), cl2Fatality(), nh3Fatality(), coFatality(). The ToxicLibrary class centralises probit constants for common toxic gases.

Method 8 — QRA Roll-up

import neqsim.process.safety.qra.ConsequenceAnalysisEngine;

ConsequenceAnalysisEngine e = new ConsequenceAnalysisEngine(
    "10 mm gas leak", 1.0e-4); // release frequency [/yr]
e.addJetFire(0.05, jet, ProbitModel.thermalFatality(), 60.0);
e.addJetFire(0.02, pool, ProbitModel.thermalFatality(), 60.0);
e.addToxicCloud(0.01, plume, ProbitModel.h2sFatality(), 600.0);

double IRPA = e.individualFatalityRiskPerYear(50.0); // at 50 m
String text = e.report(50.0);

The engine sums:

IRPA(d) = Σ_outcome f_release · f_branch · P_fatality(d, outcome)

Compare against acceptance criteria:

CriterionLimitSource
Worker IRPA1·10⁻³ /yr (intolerable)UK HSE R2P2
Worker IRPA1·10⁻⁶ /yr (broadly acceptable)UK HSE R2P2
NORSOK FAR10 fatalities / 10⁸ hNORSOK S-001
Public 1 % fatal35 m typical for 12.5 kW/m²API 752

Method 9 — Flare Flame Radiation & Noise (API 537)

import neqsim.process.safety.fire.Api537FlareFlameModel;

Api537FlareFlameModel flame = new Api537FlareFlameModel(
        50.0, 50.0e6, 0.20, 200.0)   // mDot[kg/s], HoC[J/kg], radiantFrac, vExit[m/s]
    .setStackHeightM(40.0)
    .setWindSpeedMPerS(10.0);

double r473 = flame.sterileZoneRadiusM(Api537FlareFlameModel.FLUX_4_73_KW); // property line
double q75  = flame.heatFluxAtGroundDistance(75.0);  // W/m²
double spl  = flame.soundPressureLevelDb(100.0);     // dB at 100 m

Use this instead of the point-source jet-fire form when the source is an elevated flare tip (it accounts for stack height, wind tilt, and flame geometry).

Method 10 — Hazardous-Area Zone Classification (IEC 60079-10-1)

import neqsim.process.safety.dispersion.HazardousAreaCalculator;
import neqsim.process.safety.dispersion.HazardousAreaCalculator.ReleaseGrade;

HazardousAreaCalculator calc = new HazardousAreaCalculator(
        0.1,      // release mass flow [kg/s]
        6.0,      // process pressure [bara]
        340.0,    // temperature [K]
        0.044,    // LFL [volume fraction]
        0.01604)  // molar mass [kg/mol]
    .setReleaseGrade(ReleaseGrade.SECONDARY)  // CONTINUOUS / PRIMARY / SECONDARY
    .setSafetyFactor(0.5);

double dHaz = calc.hazardousDistanceM();
String zone = calc.zoneClassification();   // "Zone 0" / "Zone 1" / "Zone 2"

Maps the dispersion result to an Ex zone for electrical-equipment selection. CONTINUOUS → Zone 0, PRIMARY → Zone 1, SECONDARY → Zone 2.

Method 11 — Passive Fire Protection (PFP) Demand (API 521 / NORSOK S-001)

import neqsim.process.safety.fire.PfpDemandCalculator;
import neqsim.process.safety.fire.PfpDemandCalculator.FireType;
import neqsim.process.safety.fire.PfpDemandCalculator.PfpDemandResult;

PfpDemandResult pfp = new PfpDemandCalculator(
        100.0e3,   // fire heat flux [W/m²] (pool ~100 kW/m², jet ~250+ kW/m²)
        0.012)     // wall thickness [m]
    .setFireType(FireType.POOL)               // POOL / JET
    .evaluate(3600.0);                        // required survival time [s]

boolean need = pfp.isPfpRequired();
double thkMm = pfp.getRequiredPfpThicknessMm();
PfpDemandResult.PfpRating rating = pfp.getRating(); // NONE / H60 / J120 ...

Determines whether unprotected steel reaches its critical temperature before the required survival time, and if so the intumescent thickness and H/J rating.

Source Term for External CFD

ConsequenceAnalysisEngine.exportSourceTerm() writes a JSON block usable by PHAST, FLACS, KFX or DNV Safeti containing release rate, momentum, density, duration and chemistry — the standard handoff format described in neqsim-agent-handoff.

Common Pitfalls

  • Stability class — using class D ("typical") instead of F for hazard contours under-predicts safe distance by 2–3×. Always run F at low wind for siting.
  • Heavy gas — applying Gaussian to CO₂ / LPG releases under-predicts near-field concentration. Switch to HeavyGasDispersion when density ratio > 1.2.
  • Probit constants — different sources give different (a, b, n). Always cite the source; the factories in ProbitModel use CCPS values.
  • Ignition probability — small leaks (< 1 kg/s) often use 1–5 %, large leaks (> 50 kg/s) up to 30 % delayed. Use scenario-specific values, not 100 %.
  • Flame view-factor — the simple 1/(4πr²) point-source form is conservative near the flame; use API 521 solid-flame for distances < 2 × flame length.

Verification Tests

src/test/java/neqsim/process/safety/{fire,dispersion,qra}/ contain JUnit 5 tests for every model. Run:

./mvnw test -Dtest=FireModelsTest,GaussianPlumeTest,ProbitModelTest,ConsequenceAnalysisEngineTest,Api537FlareFlameModelTest,HazardousAreaCalculatorTest,PfpDemandCalculatorTest

See Also

  • neqsim-process-safety — frequency side (HAZOP / LOPA / SIL)
  • neqsim-relief-flare-network — PSV sizing and flare radiation
  • neqsim-depressurization-mdmt — emergency depressurization source terms
  • neqsim-agent-handoff — source-term JSON schema

Alternatives

Compare before choosing

Computed 9532,671

K-Dense-AI/scientific-agent-skills

simpy

Build, inspect, test, and analyze bounded process-based discrete-event simulations with SimPy, including events, resources, interrupts, monitoring, replications, warm-up, and reproducible output analysis.

Computed 9598

ffroliva/gflow-cli

pr-council-review

Multi-dimensional LLM council review of an open PR (default) or a local feature branch (§ 8 branch mode, invoked via `/gflow:branch-review`). Five baseline dimensions (correctness, quality, security, tests, memory-hygiene) plus adaptive dimensions per surface (transports / data / CLI / docs / auth / BDD / scripts / release-gate). Each agent invokes specialized skills (security-review, code-review, verify) for its dimension. Reads files via `git show <sha>:<path>` to avoid stale-working-tree fals

Computed 9482

aAAaqwq/AGI-Super-Team

trade-prediction-markets

Build and test Polymarket prediction market trading strategies for YES/NO token trading. Provides 6 tools: get_all_prediction_events (browse markets, $0.001), get_prediction_market_data (analyze price history, $0.001), create_prediction_market_strategy (generate code, $1-$4.50), run_prediction_market_backtest (test performance, $0.001). Trade on real-world events (politics, economics, sports, crypto). Currently simulation only (live deployment coming soon).

Computed 9337,456

github/awesome-copilot

mcp-implementation-security-review

Review the implementation source code of MCP (Model Context Protocol) servers, clients, and tool handlers against a security baseline — authentication, sessions, rate limiting, input-schema validation, official-SDK usage, RCE vectors, and the OWASP MCP Top 10 — producing a report with file/line evidence. Use this skill when: - Reviewing an MCP server implementation for security before release - Checking a server against the baseline controls (MCP-01 to MCP-05) and the OWASP MCP Top 10 - Auditing