Skip to the content.

This reference workflow carries one modeled DOE Big Hill Sweet assay through crude heating, atmospheric fractionation, the calculated atmospheric-bottoms boundary, and a caller-configured vacuum column. It is the executable integration layer between the existing public-assay factory and the existing rigorous column APIs.

Public provenance

The material identity is the 24 September 2021 U.S. Department of Energy Strategic Petroleum Reserve Big Hill Sweet assay encoded by DoeBigHillSweetAssay:

The source reports assay composition and properties. It does not report a matching atmospheric/vacuum tower configuration, pressure profile, heat duties, reflux, side-draw policy, or product-yield benchmark. All such values in the workflow are explicit engineering inputs or documented numerical qualification settings.

Composition-preserving handoff

DoeBigHillVacuumFractionationCase.create(...) retains the earlier normalized three-cut 650 degF+ screening feed. The new createFromAtmosphericBottoms(...) overload serves a different purpose: it clones the calculated atmospheric liquid-bottoms stream, verifies that the three named DOE heavy pseudo-components remain present, applies the caller’s explicit vacuum-feed temperature and pressure, and configures the existing MESH-residual vacuum column.

No component is re-created, discarded, or replaced by a normalized assay slice. The source stream is not mutated. This preserves one assay identity across the software boundary while keeping the two feed contracts distinguishable.

DoeBigHillVacuumFractionationCase.OperatingInputs vacuumInputs =
    new DoeBigHillVacuumFractionationCase.OperatingInputs(
        12, 4, 640.0, 0.12, 0.08, 0.16, 700.0, 0.5);

DoeBigHillVacuumFractionationCase vacuum =
    DoeBigHillVacuumFractionationCase.createFromAtmosphericBottoms(
        "DOE Big Hill connected vacuum",
        atmosphericColumn.getLiquidOutStream(),
        vacuumInputs);

vacuum.getColumn().run(UUID.randomUUID());
DoeBigHillVacuumFractionationResult result =
    DoeBigHillVacuumFractionationResult.evaluate(vacuum);

The same public method is accessible through NeqSim’s normal JPype bridge. The caller remains responsible for running and accepting the upstream atmospheric solve before constructing the handoff.

Connected operating sensitivity

The reboiler-temperature sensitivity also accepts the solved atmospheric-bottoms stream directly. Each point independently clones the complete handoff composition, changes only the caller-owned vacuum reboiler temperature, runs the qualified MESH column, and evaluates the existing immutable result contract. Tray count, feed tray, feed temperature and pressure, top and bottom pressure, and condenser reflux remain the explicit baseline values at every point.

double[] reboilerTemperaturesKelvin = {698.0, 702.0};
DoeBigHillVacuumReboilerTemperatureSensitivity sensitivity =
    DoeBigHillVacuumReboilerTemperatureSensitivity.run(
        "DOE Big Hill connected vacuum screen",
        atmosphericColumn.getLiquidOutStream(),
        vacuumInputs,
        reboilerTemperaturesKelvin);

The connected overload is JPype-callable with the same Java array and stream objects. The repository regression uses the exact public overload and verifies that the source stream is unchanged, both independently constructed points pass mass, component, energy, residual, and boiling-order gates, and the returned point array is defensive.

The two temperatures above are a deliberately bounded numerical perturbation around the explicit 700 K baseline. They are neither DOE observations nor a recommended plant envelope. A separately executed and rendered Python/JPype notebook remains the publication gate for Python workflow evidence; this Java API does not claim that unexecuted artifact.

Regression-protected engineering contract

DoeBigHillAtmosphericVacuumIntegrationTest exercises the complete connected boundary:

  1. DoeBigHillSweetAssay creates the complete twelve-component modeled crude.
  2. FiredHeater heats that same stream using explicit efficiency, fuel-LHV, CO2-factor, NOx-factor, and stack-temperature assumptions.
  3. The qualified eight-tray atmospheric MESH case produces overhead, one liquid side draw, and calculated bottoms.
  4. The cloned atmospheric bottoms feed the existing twelve-tray vacuum MESH case.
  5. Final atmospheric and vacuum products close total mass and per-component molar flow within the columns’ 5% numerical acceptance tolerance.
  6. Both columns must report accepted mass and energy closure, and the vacuum result exposes discrete normal-boiling-point distributions and 10%/90% quantiles.
  7. Fired duty, absorbed duty, fuel use, and direct CO2 bookkeeping must satisfy their independent identities.

The 5% column tolerance is a numerical integration acceptance inherited from the existing broad-boiling qualification. It is not measurement uncertainty or a plant-performance tolerance.

Engineering limits

This workflow establishes composability, identity preservation, conservation, energy closure, product ordering, and utility/emission bookkeeping. It does not claim:

Do not mix Sarir operating or plant-yield evidence into this DOE case. Use SarirAtmosphericFractionationCase only for its separately documented public reference boundary.