Skip to the content.

Separation/compression PFD and P&ID visual acceptance

This reference tracks the coordinated visual-acceptance milestone in #1332 and #2899. It uses the public EvenSol/NeqSim-Colab/notebooks/process/comparesimulations2.ipynb source model.

Source fidelity

Issue #3619 corrects the earlier acceptance interpretation: deterministic output and zero findings from the old route-only diagnostics did not establish visual acceptance. The original outputs contained duplicate continuations, endpoint-envelope traversal, misordered pages and collisions in the P&ID proposal layer. The core correction below is the first dependency in the issue’s delivery sequence; the issue remains open for the later qualification gates.

The inspected notebook is blob 68f13ad17dce03ee343e2f711437d57cdcb58f19. Cell b46addc3 defines reusable getprocess(); cell 63e9cf5b contains a detailed reference illustration. Cell 78f9c5ff is a retained historical Graphviz output and is not fresh visual-acceptance evidence.

The runnable model contains 39 named process elements covering three separation stages, flash-gas cooling/scrubbing/recompression, liquid returns, two-sided gas heat exchange, fuel-gas splitting, gas export, and oil export. The illustration shows 24-VB-01, but getprocess() does not contain that equipment or a water-removal duty. Implementations must not invent either to resemble the illustration.

Coordinated delivery API

EngineeringDiagramDualProfileDelivery publishes pfd/ and pid/ sub-deliveries from the same ProcessSystem. It fails when either delivery is incomplete or the canonical source-graph fingerprints differ.

The full-model reference now also opts into Request.Builder.blockFlowOverview(sections, layout). This creates a separate A3 bfd/overview.svg and bfd/overview.pdf, plus bfd/document-set.json and bfd/material-block-graph.json. The bundle manifest includes their paths, visual evidence and SVG/PDF hashes. Report.getBlockFlowProjection() and getBlockFlowRendering() expose the mapping and rendering. The ordinary dual-profile API remains opt-in and returns null for those getters when no BFD is requested.

The seven explicitly declared blocks are feed, separation, recompression, cold process, oil export, fuel gas and gas export. Their directed connections come only from the canonical material graph. The three product paths remain separate; no gas-export-to-oil-export connection is synthesized. Inter-section connections, including condensate returns, retain their complete sourceConnectionIds. Internal connections remain in each block’s internalConnectionIds. A full-model test verifies that these lists form an exact partition of the canonical material connections. Numerical recycle utilities are aggregated with their sections and are not promoted to physical equipment.

Each sub-delivery contains controlled document JSON, native SVG sheet(s), a native PDF drawing set, native DEXPI 2.0 Process XML, and a delivery manifest. The bundle manifest labels the PFD exchange as DEXPI_2_0_PROCESS. The P&ID child-delivery exchange remains labelled PROCESS_PFD_BFD_COMPANION_ONLY. When an executed operating case and explicit balance-boundary declarations are supplied, the coordinated bundle additionally publishes:

Boundary declarations resolve exact canonical source labels and fail closed for missing, duplicate, or invalid operating evidence. The compatibility writer’s volatile export date/time is normalized to the documented 1970-01-01T00:00:00 reproducibility sentinel; it is not an engineering revision timestamp. The controlled revision remains in the manifests.

The facade is intentionally opt-in. Existing Graphviz, native DEXPI Process and Plant, Proteus, simulation, and document APIs are unchanged. Supplying an operating-case identity opts into the companion package and therefore requires at least one explicit balance boundary.

Request.Builder.includePidEngineeringRegisters(true) additionally publishes pid/pid-design-model.json, pid/pid-completeness-report.json, and pid/pid-engineering-registers.json. It reuses the existing offshore complete proposal rules with teaching area code 00 and a persistent plant identity. The option defaults to false and is enabled by the full-model reference below. Report.getPidEngineeringRegisters() returns the immutable register snapshot, or null when the option is disabled.

The registers preserve canonical material-connection identities, source-linked nozzle/valve/instrument/interface proposals, control and safeguarding signal relationships, rule provenance, and unresolved completeness findings. Material links between nozzles or relief destinations are not counted as control signals. Candidate line bindings require project review. Missing pipe sizes, classes, schedules and materials remain PROJECT_INPUT_REQUIRED; reducers remain NO_GOVERNED_REDUCER_DECLARATION rather than invented fittings.

The opt-in registers add a source-linked, P&ID PROPOSAL OVERLAY - REVIEW REQUIRED layer to the P&ID SVG/PDF sheets only. Each proposed nozzle, valve, instrument, and declared interface has an independent marker, legible full tag, and stable semantic identity at its canonical source equipment. Dense instrument and valve callouts use deterministic four-column racks with multiple rows plus distributed attachment points along the owning equipment boundary instead of one wide converging fan. Same-equipment control/safeguarding relationships use alternating external tracks; other relationships retain stable separated lanes. PFD rendering, the simulation, and both DEXPI exchange profiles remain unchanged. The overlay is review evidence, not a complete project P&ID or a qualified symbol catalog.

The plant overview on sheet 1 also carries three source-evidenced controlled sheet-index regions. Each region names its referenced detail sheet and lists only the canonical equipment assigned there. The regions are explicitly marked NOT PROCESS CONNECTIVITY: they improve whole-sheet navigation and utilization without copying semantic equipment, synthesizing area flows, or changing the canonical topology. Their paper-millimetre geometry is part of the proposed layout register and remains review-required.

The bundle manifest records that projection boundary and fingerprints all three sidecars. isComplete() confirms bundle delivery, not an approved P&ID design; the completeness report retains engineering errors and review gaps.

Requirement and evidence matrix

Requirement Current implementation Automated evidence Remaining acceptance work
One canonical plant, distinct PFD/P&ID profiles Dual-profile facade, shared source fingerprint, and P&ID-only proposal overlay EngineeringDiagramDualProfileDeliveryTest and full-model profile assertions Improve whole-sheet clarity without changing the canonical plant
Reviewable vector and PDF sheets Native A1 SVG/PDF sheets, process-equipment symbols, obstacle-aware fixed-port orthogonal routing, endpoint-aligned separated off-page lanes, collision-scored horizontal route labels, complete adaptive-size line-terminal identities, flow arrows, controlled sheet-index regions, compact multi-row P&ID proposal racks, and external same-equipment signal tracks Renderer obstacle-bypass, full-identity, label-segment/connector-alignment, and non-connectivity sheet-index tests; rack-span/row/track checks; bundle artifact checks; and fresh full-sheet/detail inspection Retain accountable reviewed baselines and resolve any defect visible despite automated diagnostics
Stable regeneration Deterministic child and bundle manifests plus byte-stable SVG/PDF Fresh-model repeated-delivery test Retain accountable reviewed visual baselines
Native PFD exchange Native DEXPI 2.0 Process artifact Delivery assessment, bundle labels, and full-model topology assertions External interoperability qualification
P&ID exchange identity Companion-only child label plus separate native DEXPI 2.0 Plant and Proteus 4.1 proposal artifacts Plant assessment, profile labels, artifact and deterministic-regeneration assertions Qualify the full-model proposal and external interoperability
Stream and H&MB companions Opt-in governed stream/balance artifacts with exact boundary resolution Valid, missing-case, unknown-boundary, and repeated-delivery tests Publish and qualify full-model operating values and boundary assignments
Piping and instrumentation content Opt-in source-linked proposal registers, sidecars, and per-element P&ID-only SVG/PDF callouts with distributed equipment-boundary attachment points Register fidelity, immutability, signal classification, full-tag/semantic-ID and distinct attachment-point coverage, unique signal-path, profile-difference, and regeneration tests Supply governed inputs and materialize reviewed per-element exchange content
Manual layout and routing Three persistent proposed A1 sheets, left-to-right rows, explicit stream-terminal assignments, nozzle-exit constraints, protected-route precedence, shared-track penalties, and unique reciprocal continuations Reverse/vertical port, endpoint-interior, border, duplicate-emission, page-order and full-model regressions Accountable route refinement, crossing/junction conventions and reviewed visual baselines
Standards alignment Explicit scope and no-conformance boundary Manifest flags and documentation checks Licensed clause mapping and accountable review

Engineering and qualification boundary

The target scope uses ISO 10628-1:2014 and ISO 10628-2:2012 for process-diagram content and symbols, ANSI/ISA-5.1-2024 for instrumentation/control identification, and applicable ISO 14617, ISO 5457, ISO 7200, ISO 3098, and IEC 62424 requirements. Public catalog metadata establishes scope only. Licensed clause mapping, project convention approval, external DEXPI qualification, discipline checking, certification, and construction fitness remain gaps.

The P&ID output is a teaching proposal until project line classes, sizes, specifications, nozzles, valves, reducers, instruments, control functions, isolation, drains, vents, and relief/blowdown interfaces have explicit governed evidence. Missing data must remain visible; the steady-state model does not supply a complete control or safety design.

Executable full-model reference

Comparesimulations2EngineeringDiagramReference executes the existing OilGasProcessSimulationOptimization model at its default operating case and publishes the coordinated bundle:

mvn -q -DskipTests package
java -cp target/classes neqsim.process.examples.Comparesimulations2EngineeringDiagramReference \
  build/comparesimulations2-engineering-diagrams

The reference fails before publication when the simulated plant does not close mass balance within 0.01 percent or if 24-VB-01 appears in the canonical runnable model. Four proposed balance-boundary declarations use well stream as the inlet and fuel gas, export gas, and export oil as outlets.

The retained layout register proposes three A1 landscape detail sheets: three-stage separation/oil export, flash-gas recompression/dew point, and fuel split/gas export compression. Major model objects have persistent proposed sheet assignments and paper-millimetre pins. Sheet 1 indexes those three regions with their canonical equipment membership; feed, products and numerical-recycle stream terminals are assigned to the appropriate detail sheets. The separate A3 BFD provides plant-wide material connectivity. The SVG map, PDF pages and each child manifest’s renderedSheetOrder use actual controlled sheet numbers. Consumers must use that list’s number/title/path for captions instead of sorted filenames. Fixed-port orthogonal routing remains active for unprotected connections and chooses deterministic bypass channels while assessing all symbol envelopes, including endpoint interiors. It penalizes shared route tracks and border excursions. Explicit diagramPortSide declarations support north/east/south/west attachments; ordinary undeclared process ports retain east outlets and west inlets. Protected manual routes remain authoritative and any endpoint traversal is reported. Full line identities are retained in fixed terminal symbols, with adaptive text no smaller than 2.2 mm. These records are reproducible teaching layout evidence, not checked project layout or engineering approval.

The slow regression test executes two fresh plants and compares manifest, source-topology, SVG, and PDF evidence byte-for-byte. It also checks the operating stream/H&MB companions, all three P&ID proposal/register sidecars, and the separate native DEXPI 2.0 Plant and Proteus 4.1 P&ID proposal exchanges. Passing automation establishes deterministic generation only. Fresh full-sheet/detail inspection must still reject unreadable or congested routes, labels, markers, and signals. Project metadata, completed and reviewed line/nozzle/valve/reducer/instrument/control registers, reviewed exchange projection, and accountable discipline review remain mandatory before visual acceptance.

Remaining #3619 qualification work

The completed-scene diagnostics now include estimated text bounds, proposal-marker and signal intersections, connectors, borders and repeated routes. They expose previously unreported defects in the existing P&ID callout layer. isComplete() still means delivery completeness; it does not accept those drawings. The manifest separately records visualAcceptanceStatus: REVIEW_REQUIRED and the checks actually performed. Font widths are estimated and are not measured glyph bounds.

The next gated work is the reviewed family/subtype/orientation symbol catalogue and proportional equipment envelopes; declared physical line/nozzle/control attachments and a separate unbound-proposal register; printed stream IDs with readable operating tables; comprehensive crossing/junction and text-layout qualification; per-element exchange coverage/projection and independent DEXPI/Proteus round-trip evidence; and clean execution and visual inspection of the coordinated Colab draft. The native Plant and Proteus writers still do not receive the synthesized overlay registers or native scene. No displayed-overlay exchange-fidelity claim is made. DexpiShapeCatalog already contains family and instrument-location geometry and should be reconciled with the native scene before adding another symbol catalogue; this correction does not copy or certify its standard references.