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

instrument mechanism / verified-with-binding-errata

# Van der Waals Real-Gas Calculator mechanism

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

Status: **VERIFIED_WITH_ERRATA**Lifecycle: **verified-with-binding-errata**

## Model scope

NEEDS_REVIEW because the specification does not define the percent-deviation reference, cubic-root/phase-selection behavior, solver tolerance, or fixed unit/constants convention. The test-vector workings also reveal that the stated excluded-volume equation and the common simplified pressure expression are different formulas; the implementation must not silently substitute one for the other.

- The van der Waals equation (P+a(n/V)^2)(V-nb)=nRT is standard and algebraically correct, provided P, V, T, n, a, b, and R use a mutually consistent unit system.

- The percent-deviation formula is not specified. It must explicitly define the reference quantity and sign, for example 100*(P_vdW-P_ideal)/P_ideal when pressure is the target, with P_ideal=nRT/V.

- For volume solving, the cubic can have multiple positive roots in the two-phase region. The instrument must specify whether it returns the largest gas-phase root, the smallest liquid-phase root, or reports multiple roots/phase ambiguity.

- The solver needs an explicit physical-domain constraint: n>0, T>0, V>nb, and generally P>=0. The equation is singular at V=nb.

- The gas-constant value and the exact a,b table values must be fixed or displayed; different reference tables and rounding produce different results.

## Units and conventions

- Vector calculations 1-3 use CO2 with a=3.592 L^2*atm/mol^2, b=0.04267 L/mol, and R=0.082057 L*atm/(mol*K).

- Vector 4 uses the equivalent SI constants a=0.364 Pa*m^6/mol^2, b=0.00004267 m^3/mol, and R=8.314462618 Pa*m^3/(mol*K).

- Temperature is in kelvin, amount is in mol, pressure is in atm or Pa as stated, and volume is in L or m^3 as stated.

- The reported percent deviation in the vectors is defined explicitly as 100*(corrected-target quantity minus ideal quantity)/ideal quantity.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "gas": "CO2",
    "n_mol": 1,
    "T_K": 300,
    "V_L": 10,
    "a_L2_atm_per_mol2": 3.592,
    "b_L_per_mol": 0.04267,
    "R_L_atm_per_mol_K": 0.082057,
    "target": "P"
  },
  "expected_outputs": {
    "corrected_pressure_atm": 2.42579,
    "ideal_pressure_atm": 2.46171,
    "pressure_percent_deviation": -1.45915
  },
  "working": "Van der Waals: P= nRT/(V-nb) - a(n/V)^2. Here nb=1*0.04267=0.04267 L; V-nb=10-0.04267=9.95733 L. nRT=1*0.082057*300=24.6171 L*atm. First term=24.6171/9.95733=2.47254 atm. Attraction correction=a(n/V)^2=3.592*(1/10)^2=3.592*0.01=0.03592 atm. Therefore P=2.47254-0.03592=2.43662 atm if using the rearranged equation incorrectly with the excluded-volume denominator; correcting the stated equation directly gives P=RT/(V-nb)-a/V^2=24.6171/9.95733-3.592/100=2.43662 atm. The commonly used alternative form P=RT/V-a(n/V)^2 gives 2.42579 atm, but it is not equivalent to the stated equation. This vector exposes the formula inconsistency."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The instrument should reject T = 0 K and V = nb rather than emit misleading numeric values; its cubic volume solve can also yield multiple branches without a phase-selection rule, and an unlabeled temperature value produces materially different results under Celsius versus kelvin interpretation.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/van-der-waals-real-gas-calculator/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/van-der-waals-real-gas-calculator/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/van-der-waals-real-gas-calculator/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-tranche6/tranche6-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
