Source: https://guthlabs.ai/docs/instruments/van-der-waals-real-gas-eos-solver/mechanism/

instrument mechanism / verified-clean

# Van der Waals Real-Gas EOS Solver mechanism

The inspectable method record for Van der Waals Real-Gas EOS Solver, kept separate from implementation and qualification.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Model scope

The core EOS is correct, but the specification needs an unambiguous definition of deviation-from-ideal-gas percentage, explicit SI-unit handling, domain validation, and a deterministic policy for selecting among multiple cubic volume roots. Because those behaviors are unspecified, the instrument requires review before being labeled verified.

- The stated Van der Waals equation of state is standard: (P + a n^2/V^2)(V - nb) = nRT.

- For pressure, the implementation should explicitly use P = nRT/(V - nb) - a n^2/V^2.

- For temperature, the implementation should explicitly use T = (P + a n^2/V^2)(V - nb)/(nR).

- For volume, the cubic to solve is P V^3 - (Pnb + nRT)V^2 + a n^2 V - a n^3 b = 0.

- The specified deviation-from-ideal-gas percentage is not defined. It must state whether it means 100(P_vdW - P_ideal)/P_ideal at fixed n,T,V, a compressibility-factor deviation, or another quantity.

- Newton iteration alone is not sufficient for all Van der Waals volume cases: the cubic can have multiple positive roots, so phase/root selection and a physical-root policy are required.

## Units and conventions

- Use SI units: P in Pa, V in m^3, T in K, n in mol, a in Pa m^6 mol^-2, b in m^3 mol^-1, and R = 8.314462618 J mol^-1 K^-1.

- The tabulated a and b values must correspond to the selected gas and the same unit convention.

- The molar-volume constraint V > nb is required for finite positive pressure and temperature calculations.

- The 10 L test input is converted as 10 L = 0.010 m^3 before applying the equation.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "gas": "CO2",
    "n_mol": 1,
    "T_K": 300,
    "V_L": 10,
    "a_Pa_m6_per_mol2": 0.364,
    "b_m3_per_mol": 0.0000427,
    "R_J_per_mol_K": 8.314462618
  },
  "expected_outputs": {
    "pressure_Pa": 246863.5286,
    "ideal_pressure_Pa": 249433.8785,
    "deviation_percent": -1.0304734
  },
  "reference_data": {
    "method": "P = nRT/(V-nb) - a n^2/V^2",
    "V_m3": 0.01
  },
  "working": "Convert volume: V = 10 L * 0.001 m^3/L = 0.01000000000 m^3. Compute nb = 1.0 * 0.0000427 = 0.0000427 m^3. Compute nRT = 1.0 * 8.314462618 * 300.0 = 2494.3387854 Pa m^3. Compute nRT/(V-nb) = 2494.3387854/(0.0100000000 - 0.0000427) = 2494.3387854/0.0099573 = 250503.5286 Pa. Compute a n^2/V^2 = 0.364/(0.0100000000^2) = 3640.0000 Pa. Therefore P = 250503.5286 - 3640.0000 = 246863.5286 Pa. Ideal pressure is P_ideal = nRT/V = 2494.3387854/0.0100000000 = 249433.8785 Pa. Deviation = 100*(246863.5286 - 249433.8785)/249433.8785 = -1.0304734%."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The specification leaves phase selection under the subcritical three-root regime unspecified, so a cubic/Newton solver may return an arbitrary liquid, unstable, or gas root. Exact singular inputs also require explicit rejection, and temperature-unit ambiguity can change the computed pressure from 2.243 MPa to a negative value.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/van-der-waals-real-gas-eos-solver/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/van-der-waals-real-gas-eos-solver/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/van-der-waals-real-gas-eos-solver/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche8/tranche8-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
