Source: https://guthlabs.ai/docs/instruments/fluid-property-lookup-water-air-common-fluids/mechanism/

instrument mechanism / verified-clean

# Fluid Property Lookup (Water/Air/Common Fluids) mechanism

The inspectable method record for Fluid Property Lookup (Water/Air/Common Fluids), kept separate from implementation and qualification.

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

## Model scope

Core derived-property formulas and lookup interpolation are standard, but the instrument needs an explicit table schema: fluid identity and composition, phase, pressure basis, temperature range, interpolation rule, source edition, and behavior at phase boundaries. Verdict is NEEDS_REVIEW because the current specification does not define those constraints or resolve the conflicting saturation/1 atm convention.

- Table interpolation is a valid method only between explicitly tabulated temperatures and under the same pressure/phase conditions; the interpolation rule is not specified, so linear interpolation must be declared as an assumption.

- Kinematic viscosity must be computed as ν = μ/ρ, and Prandtl number as Pr = μ cp/k; the specification does not explicitly state these derived formulas.

- Gas properties require a defined pressure model or pressure-specific tables. Temperature alone is insufficient for density, and pressure can also affect other properties.

- The supported fluid list, valid temperature ranges, phase boundaries, and saturation-versus-single-pressure conventions are unspecified.

- Near phase changes, properties can be discontinuous or strongly nonlinear, so unrestricted interpolation can produce invalid values.

## Units and conventions

- Temperature inputs are in kelvin unless explicitly labeled in degrees Celsius; the vectors below label temperature units to remove ambiguity.

- Pressure is absolute pressure in pascals; 1 atm = 101325 Pa exactly for these vectors.

- Density ρ is in kg/m^3, dynamic viscosity μ is in Pa·s, kinematic viscosity ν is in m^2/s, thermal conductivity k is in W/(m·K), and specific heat cp is in J/(kg·K).

- Prandtl number is dimensionless and calculated as Pr = μ cp/k.

- The air entries are dry-air values at approximately 1 atm; the water entries are liquid-water values except the 100 °C entry, which is at saturation pressure.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "fluid": "water",
    "temperature": 20,
    "temperature_unit": "degC",
    "pressure": 101325,
    "pressure_unit": "Pa",
    "phase": "liquid"
  },
  "expected_outputs": {
    "rho_kg_m3": 998.2,
    "mu_Pa_s": 0.001002,
    "nu_m2_s": 0.00000100381,
    "k_W_mK": 0.598,
    "cp_J_kgK": 4182,
    "Pr": 7.0073
  },
  "reference_data": {
    "temperature_C": 20,
    "rho_kg_m3": 998.2,
    "mu_Pa_s": 0.001002,
    "k_W_mK": 0.598,
    "cp_J_kgK": 4182,
    "pressure_Pa": 101325,
    "source_convention": "Widely tabulated standard liquid-water property values; Incropera thermophysical-property tables, approximately 20 degC and 1 atm"
  },
  "working": "ν = μ/ρ = 0.001002 Pa·s / 998.2 kg/m^3 = 1.00381×10^-6 m^2/s. Pr = μ cp/k = (0.001002×4182)/0.598 = 4.190364/0.598 = 7.0073."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The specification does not define a pressure-validity rule, phase-selection rule, or absolute-versus-gauge pressure convention. Zero absolute pressure produces zero density and an undefined kinematic viscosity, while the saturation branch is non-unique at the phase switch unless phase or quality is supplied.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/fluid-property-lookup-water-air-common-fluids/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/fluid-property-lookup-water-air-common-fluids/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/fluid-property-lookup-water-air-common-fluids/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-tranche7/tranche7-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
