# HVAC calculators

Calculate psychrometrics, air loads, hydronic flow, steam, fan and pump power, duct dimensions, and LMTD with formulas, units, and CLI examples.

Canonical: https://ventilatepro.com/exam/cli/calculations/

Documentation version: VentilatePro CLI 0.8.1

Prefer a browser? Use the [free psychrometric calculator](https://ventilatepro.com/tools/psychrometric-calculator/) without login, or follow the [altitude worked example](https://ventilatepro.com/guides/psychrometrics-at-altitude/).

## Run an HVAC calculation without logging in

Calculation commands execute locally. They do not send project data to VentilatePro, do not require a token, and return the same structured result when called from the CLI or the local MCP server. Add `--json` for automation, test fixtures, spreadsheets, or agent workflows.

```text
ventilatepro calc catalog
```

```text
ventilatepro calc psychrometrics --dry-bulb 25 --relative-humidity 50 --units si --json
```

Engineering sign convention

Airside load commands report positive values for cooling or dehumidification and negative values for heating or humidification. Hydronic load follows the sign of `delta_t`. Use absolute values only when equipment capacity—not heat-flow direction—is the required result.

## Calculation catalog

| Command | Primary output | Calculation basis |
| --- | --- | --- |
| `calc psychrometrics` | Complete moist-air state | PsychroLib 2.5.0, IP or SI |
| `calc sensible-load` | Btu/h and refrigeration tons | `Q = 1.08 × CFM × ΔT`, coefficient overridable |
| `calc total-load` | Btu/h and refrigeration tons | `Q = 4.5 × CFM × Δh`, coefficient overridable |
| `calc air-process` | Sensible, latent, total, SHR, mass flow, water removal | PsychroLib endpoint states and entering-air specific volume |
| `calc hydronic-load` | Btu/h and refrigeration tons | `Q = 60 × GPM × ρ × cₚ × ΔT` |
| `calc hydronic-flow` | Required GPM | Inverse hydronic energy balance |
| `calc steam` | Saturated properties and required lb/h | IAPWS-IF97 water and steam formulation |
| `calc fan-power` | Shaft hp, input hp, input kW | `hp = CFM × in. w.g. / (6356 × η)` |
| `calc pump-power` | Shaft hp, input hp, input kW | `hp = GPM × head × SG / (3960 × η)` |
| `calc duct-size` | Area, round diameter, rectangular sides | Continuity at target velocity |
| `calc lmtd` | Terminal differences and LMTD | Parallel-flow or counterflow logarithmic mean |

## Psychrometrics

Supply dry-bulb temperature plus exactly one independent moisture property: relative humidity, wet bulb, dew point, or humidity ratio. When pressure is omitted, VentilatePro evaluates PsychroLib’s standard-atmosphere station pressure at the supplied elevation. Explicit pressure always overrides elevation.

### IP example

```text
ventilatepro calc psychrometrics --dry-bulb 75 --relative-humidity 50
```

Temperature is °F, pressure is psi, elevation is ft, enthalpy is Btu/lb dry air, and specific volume is ft³/lb dry air. Humidity ratio is also returned in grains/lb.

### SI example

```text
ventilatepro calc psychrometrics --dry-bulb 25 --relative-humidity 50 --units si --json
```

Temperature is °C, pressure is Pa, elevation is m, enthalpy is J/kg dry air, and specific volume is m³/kg dry air.

### Returned properties

Dry bulb, wet bulb, dew point, relative humidity, humidity ratio, grains per pound in IP, moist-air enthalpy, dry-air-basis specific volume, moist-air density, vapor pressure, degree of saturation, and station pressure. The JSON response also identifies the input pair, unit system, property units, and calculation basis.

## Sensible, total, and complete air-process loads

### Sensible load

```text
ventilatepro calc sensible-load --cfm 5000 --entering-dry-bulb 80 --leaving-dry-bulb 55
```

The default 1.08 coefficient represents standard-density air and typical moist-air specific heat. Override it when project elevation, density, or calculation standards require a different coefficient.

### Total load from enthalpy

```text
ventilatepro calc total-load --cfm 5000 --entering-enthalpy 31.2 --leaving-enthalpy 22.8
```

The default 4.5 lb dry air/h per CFM factor is the conventional standard-air approximation. Use `air-process` when altitude-adjusted mass flow is important.

### Altitude-adjusted air process

```text
ventilatepro calc air-process --cfm 5000 --entering-dry-bulb 80 --entering-rh 50 --leaving-dry-bulb 55 --leaving-rh 95 --json
```

VentilatePro calculates both endpoint states with PsychroLib, converts CFM to dry-air mass flow using entering specific volume, evaluates total load from enthalpy difference, evaluates sensible load with moist-air specific heat at average humidity ratio, and reports latent load as the reconciled balance. Water removal is based on dry-air mass flow times humidity-ratio reduction.

## Hydronic and saturated-steam calculations

### Hydronic load and flow

```text
ventilatepro calc hydronic-load --gpm 120 --delta-t 10
```

```text
ventilatepro calc hydronic-flow --load 600000 --delta-t 10
```

Defaults are water at 8.33 lb/gal and 1.0 Btu/lb·°F. Supply project-specific density and specific heat for glycol or other fluids.

### Saturated steam

```text
ventilatepro calc steam --pressure 15 --pressure-units psig --load 1000000 --json
```

Pressure may be psig, psia, kPa, or MPa. Results include saturation temperature, saturated-liquid and saturated-vapor specific volumes, `h_f`, `h_fg`, `h_g`, quality, mixture enthalpy, and optional required steam mass flow. Gauge pressure uses 14.6959488 psi atmosphere.

## Fan, pump, duct, and heat-exchanger tools

### Fan input power

```text
ventilatepro calc fan-power --cfm 20000 --static-pressure 4 --fan-efficiency 0.68 --motor-efficiency 0.92
```

### Pump input power

```text
ventilatepro calc pump-power --gpm 500 --head 60 --pump-efficiency 0.75 --motor-efficiency 0.90
```

### Duct geometry

```text
ventilatepro calc duct-size --cfm 2400 --velocity 1200 --aspect-ratio 2
```

### Log-mean temperature difference

```text
ventilatepro calc lmtd --hot-in 200 --hot-out 150 --cold-in 80 --cold-out 120 --arrangement counterflow
```

Efficiencies are decimal fractions from 0 to 1. Duct results are geometric starting points and do not replace friction-rate, noise, fitting-loss, leakage, or constructability checks. LMTD validates both terminal temperature differences and rejects temperature cross.

## The same calculations for AI agents

The local MCP server exposes explicit tools with typed arguments and structured results. These tools remain offline and unauthenticated even when the project-management tools require a VentilatePro token.

| MCP tool | Purpose |
| --- | --- |
| `vp_list_hvac_calculations` | Discover the local calculation catalog. |
| `vp_calculate_psychrometrics` | Resolve a complete IP or SI moist-air state. |
| `vp_calculate_sensible_load` | Conventional sensible air load. |
| `vp_calculate_total_load` | Conventional total air load from enthalpy. |
| `vp_calculate_air_process` | Altitude-adjusted PsychroLib air-process balance. |
| `vp_calculate_hydronic` | Load from GPM or GPM from load. |
| `vp_calculate_steam` | IAPWS saturated properties and steam rate. |
| `vp_calculate_fan_power`, `vp_calculate_pump_power` | Shaft and input power. |
| `vp_calculate_duct_size`, `vp_calculate_lmtd` | Distribution geometry and heat-exchanger temperature difference. |

## References, accuracy, and limits

- Psychrometric calculations use PsychroLib 2.5.0 in its selected IP or SI unit system. PsychroLib documents its equations and coefficients as implementations of ASHRAE Handbook—Fundamentals psychrometric relationships.
- Steam properties use the IAPWS-IF97 formulation through CoolProp 8.0.0's IF97 backend. Saturation requests are limited to the water triple-point and critical pressures.
- The CLI serializes every result with its calculation name, values, units or input basis, formulas where applicable, and sign convention. Hard validation failures return a non-zero exit code.
- Downloaded VentilatePro charts sample saturation at 0.25°F and other property families at 0.5°F, solve enthalpy/saturation intersections numerically, clip curves to the physically valid region, and preserve vector paths in the PDF.
- These tools are engineering calculation aids. Verify final design values, safety factors, code requirements, equipment selections, fluid properties, and manufacturer data for the project.

### Downloaded psychrometric charts

Browser psychrometric charts preserve vector paths in PDF exports. Keep the station pressure, unit system, and source inputs with the report. The [altitude worked example](https://ventilatepro.com/guides/psychrometrics-at-altitude/) explains how pressure changes humidity ratio and specific volume.

### Machine-readable documentation

AI crawlers and retrieval systems can discover the concise documentation index at [`/llms.txt`](https://ventilatepro.com/llms.txt) and the full Markdown corpus at [`/llms-full.txt`](https://ventilatepro.com/llms-full.txt). Both endpoints are public, indexable, linked from every documentation page, and included in `robots.txt`.
