Resources Numerical accuracy

Calculations

Every calculation under our calculation policies: what it works out, its formula and the precision it runs at. Open one to see its code as it is in the released app.

  • 6,917 calculations in 1,248 source files
  • 143 exact
  • 6,286 in 64-bit
  • 335 with a 32-bit step
  • Last reviewed

Calculations

  • Tank footprints for the site plan

    The plan area and the side of a square footprint for each tank.

    area = V ÷ depth; side = √area

    Water treatment unit processes and sludge sizing process/env/water.js
    • CadCraft
    • BimCraft
    64-bit
  • Complete-mix tank sizing

    Sludge production, tank volume, retention time, food-to-mass ratio and oxygen demand.

    Px = Y × Q × (S₀ − S) ÷ (1 + kd × θc); V = θc × Px ÷ X; O₂ = Q × (S₀ − S) − 1.42 × Px

    Water treatment unit processes and sludge sizing process/env/design.js
    • CadCraft
    • BimCraft
    64-bit
  • Return sludge ratio

    The return flow as a fraction of the plant flow.

    Qr ÷ Q = (X − Xe) ÷ (Xr − X)

    Water treatment unit processes and sludge sizing process/env/design.js
    • CadCraft
    • BimCraft
    64-bit
  • Clarifier loadings

    Surface overflow rate and solids loading of a clarifier.

    overflow = Q ÷ A; solids = (Q + Qr) × X ÷ 1000 ÷ A ÷ 24

    Water treatment unit processes and sludge sizing process/env/design.js
    • CadCraft
    • BimCraft
    64-bit
  • Reading to SI units

    Converts a temperature, pressure, flow or length reading to SI, including gauge pressures.

    K = °C + 273.15; K = (°F − 32) × 5 ÷ 9 + 273.15; Pa = gauge × factor + atmosphere; else value × factor

    Plant readings: units, comparison and trends process/env/historian.js
    • CadCraft
    • BimCraft
    64-bit
  • Marker text

    The value shown next to a tag on the diagram and the 3D model.

    Plant readings: units, comparison and trends process/env/historian.js
    • CadCraft
    • BimCraft
    64-bit
  • Plant against model

    How far each plant reading is from the value the model gives.

    deviation = (plant − model) ÷ |model| (÷ 1 when the model value is 0)

    Plant readings: units, comparison and trends process/env/historian.js
    • CadCraft
    • BimCraft
    64-bit
  • Trend thinning

    Reduces a long series to at most a given number of points for plotting, keeping its shape.

    per bucket: keep the sample with the largest triangle area against the previous kept point and the next bucket's mean

    Plant readings: units, comparison and trends process/env/historian.js
    • CadCraft
    • BimCraft
    64-bit
  • Series summary

    Count, minimum, maximum, mean and standard deviation of a series.

    mean = Σ v ÷ n; sd = √(Σ (v − mean)² ÷ n)

    Plant readings: units, comparison and trends process/env/historian.js
    • CadCraft
    • BimCraft
    64-bit
  • Log-mean temperature difference

    The mean driving temperature difference of a counter-current exchanger.

    ΔT_lm = (ΔT₁ − ΔT₂) ÷ ln(ΔT₁ ÷ ΔT₂)

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • LMTD correction factor

    The correction for one shell pass with an even number of tube passes.

    F = [S ÷ (R − 1)] × ln((1 − P) ÷ (1 − R·P)) ÷ ln((2 − P(R + 1 − S)) ÷ (2 − P(R + 1 + S))), S = √(R² + 1)

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • Effectiveness from NTU

    The fraction of the largest possible heat transfer an exchanger of a given type achieves.

    counter: ε = (1 − e^(−NTU(1 − Cr))) ÷ (1 − Cr·e^(−NTU(1 − Cr))); Cr → 0: ε = 1 − e^(−NTU)

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • NTU for a wanted effectiveness

    The size (NTU) an exchanger needs to reach a given effectiveness.

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • Duty and outlet temperatures from UA

    The heat duty and both outlet temperatures of an exchanger of known UA.

    Q = ε × C_min × (T_h,in − T_c,in); T_h,out = T_h,in − Q ÷ C_h; T_c,out = T_c,in + Q ÷ C_c

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • Tube-side film coefficient

    The heat-transfer coefficient and friction factor inside the tubes.

    f = (0.79·ln Re − 1.64)⁻²; Nu = (f/8)(Re − 1000)·Pr ÷ (1 + 12.7·√(f/8)·(Pr^(2/3) − 1))

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • Overall heat-transfer coefficient

    The overall coefficient referred to the outside tube area, from both films, the wall and fouling.

    1 ÷ U = 1 ÷ h_o + R_fo + d_o·ln(d_o ÷ d_i) ÷ 2k_w + R_fi·d_o ÷ d_i + d_o ÷ (d_i·h_i)

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • Shell-side coefficient and pressure drop (Kern)

    The film coefficient and pressure drop on the shell side by Kern's screening method.

    h = 0.36·(k ÷ De)·Re^0.55·Pr^(1/3)·φ; ΔP = f·Gs²·Ds·(Nb + 1) ÷ (2ρ·De·φ); f = exp(0.576 − 0.19·ln Re)

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • Tube layout and count

    The position of every tube inside the shell and how many fit.

    x = i × pitch (+ pitch ÷ 2 on odd triangular rows); y = j × pitch × √3 ÷ 2; kept when x² + y² ≤ R²

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • Shell-and-tube rating

    Duty, mean temperature difference, overall coefficient, required and provided area, overdesign and pressure drops.

    A_req = Q ÷ (U × F × ΔT_lm); A_prov = n × π × d_o × L; overdesign = A_prov ÷ A_req − 1

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • Plate exchanger rating

    Film coefficients, overall coefficient, duty and outlet temperatures of a plate exchanger.

    Nu = C × Reⁿ × Pr^(1/3); U = 1 ÷ (1 ÷ h_h + 1 ÷ h_c + t ÷ k_w + R_f)

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • Tube vibration screening

    The natural frequency of a tube span, the vortex-shedding frequency and the critical gap velocity.

    f_n = (π ÷ 2) × √(E·I ÷ (m·L⁴)); I = π(d_o⁴ − d_i⁴) ÷ 64; V_c = K·f_n·d_o·√(2π·ζ·m ÷ (ρ·d_o²))

    Heat exchanger rating process/equip/exchanger.js
    • CadCraft
    • BimCraft
    64-bit
  • Baffled shell geometry

    Cross-flow area, leakage and bypass areas and the fraction of tubes in cross flow.

    Sm = B·[(Ds − Dotl) + (Dotl − d_o)(p − d_o) ÷ p]; Fc = [π + 2x·sin(acos x) − 2·acos x] ÷ π

    Heat exchanger rating process/equip/bell.js
    • CadCraft
    • BimCraft
    64-bit
  • Ideal tube-bank j and f

    The heat-transfer and friction factors of an ideal tube bank from the pack's coefficients.

    j = a₁ × (1.33 ÷ (p/d_o))^a × Re^a₂, a = a₃ ÷ (1 + 0.14·Re^a₄)

    Heat exchanger rating process/equip/bell.js
    • CadCraft
    • BimCraft
    64-bit
  • Bell-Delaware correction factors

    The five factors that correct the ideal coefficient for baffle cut, leakage and bypass.

    Jc = c₀ + c₁·Fc; Jl = p₁(1 − rs) + (1 − p₁(1 − rs))·e^(−p₂·rlm); Jb = e^(−Cb·Fbp·(1 − ∛(2·Nss⁺)))

    Heat exchanger rating process/equip/bell.js
    • CadCraft
    • BimCraft
    64-bit
  • Shell-side coefficient (Bell-Delaware)

    The shell-side film coefficient from the ideal bank value and the correction factors.

    h = j × cp × G × Pr^(−2/3) × Jc·Jl·Jb·Js·Jr

    Heat exchanger rating process/equip/bell.js
    • CadCraft
    • BimCraft
    64-bit
  • Shells in series

    The overall effectiveness of several identical shells in series.

    z = ((1 − ε₁·Cr) ÷ (1 − ε₁))ⁿ; ε = (z − 1) ÷ (z − Cr)

    Heat exchanger rating process/equip/bell.js
    • CadCraft
    • BimCraft
    64-bit
  • Tube sheet as drawing entities

    The shell circle, tube circles and pass lane placed in a drawing.

    drawing value = layout value (m) × scale

    Heat exchanger rating process/equip/bell.js
    • CadCraft
    • BimCraft
    64-bit
  • Pump curve fit

    The quadratic head-flow curve through two or three points a person gives.

    H = c₀ + c₁·Q + c₂·Q²; two points: k = (h₁ − h₂) ÷ (q₂² − q₁²)

    Piping network, pumps and compressors process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Net positive suction head available

    The suction head available at a pump above the vapor pressure.

    NPSHa = (P − Pv) ÷ (ρ·g) + z − h_loss

    Piping network, pumps and compressors process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Polytropic head

    The polytropic head and specific power of gas compression.

    Hp = n ÷ (n − 1) × Z·R·T ÷ M × ((P₂ ÷ P₁)^((n−1)/n) − 1)

    Piping network, pumps and compressors process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Surge margin

    How far a compressor's operating flow is from the surge line at its head.

    margin = (Q − Q_surge(H)) ÷ Q_surge(H)

    Piping network, pumps and compressors process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Greitzer B parameter

    A number that indicates whether a compression system tends to surge or stall.

    B = U ÷ (2·a_s) × √(Vp ÷ (Ac·Lc))

    Piping network, pumps and compressors process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Control valve Kv at an opening

    The flow coefficient of a control valve at a given opening.

    equal percentage: Kv = Kvs × R^(x − 1); linear: Kvs × x; quick opening: Kvs × √x

    Piping network, pumps and compressors process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Head loss of a link

    The head (or pressure-squared) loss of a pipe, pump, valve or control valve at a flow, and its slope.

    liquid: h = (f·L ÷ D + K) × Q·|Q| ÷ (2g·A²); gas: P₁² − P₂² = (Z·R·T ÷ M)(W ÷ A)²·(f·L ÷ D + K + 2·ln(P₁ ÷ P₂))

    Piping network, pumps and compressors process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Network iteration

    Finds the head at every free node and the flow in every link.

    each pass: Q = c₀ + g·(H_a − H_b), g = 1 ÷ (dh/dQ); solve Σ g·(H_i − H_n) = −demand ± c₀

    Piping network, pumps and compressors process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Node pressures and link results

    Pressure at each node and flow, mass flow, velocity and pressure drop of each link.

    liquid: P = (H − z)·ρ·g; gas: P = √(P²); v = Q ÷ A

    Piping network, pumps and compressors process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Compressor head, power and outlet temperature

    Isentropic and polytropic head, both efficiencies, shaft work, power and discharge temperature.

    Hs = (Z·R·T₁ ÷ M) × (k ÷ (k − 1)) × (r^((k−1)/k) − 1); Hp = (Z·R·T₁ ÷ M) ÷ m × (r^m − 1); T₂ = T₁·r^m

    Piping network, pumps and compressors process/equip/compressor.js
    • CadCraft
    • BimCraft
    64-bit
  • Operating point against the surge line

    The surge margin of a compressor run, with the head converted to the unit of the map.

    H(m) = Hp ÷ g

    Piping network, pumps and compressors process/equip/compressor.js
    • CadCraft
    • BimCraft
    64-bit
  • Pressure wave speed

    The speed of a pressure wave in a liquid inside an elastic pipe.

    a = √((K ÷ ρ) ÷ (1 + (K·D ÷ E·e)·c₁))

    Water hammer and pump trip process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Joukowsky pressure rise

    The pressure rise for an instant change of velocity.

    ΔP = ρ × a × ΔV

    Water hammer and pump trip process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Valve closure transient

    Head and flow at the valve over time, and the highest and lowest head, when a valve at the end of a pipe opens or closes.

    H_P = (C⁺ + C⁻) ÷ 2; Q_P = (C⁺ − C⁻) ÷ 2B; valve: q = (−B·c + √(B²c² + 4c·C⁺)) ÷ 2

    Water hammer and pump trip process/equip/network.js
    • CadCraft
    • BimCraft
    64-bit
  • Fitting loss, 2-K form

    The loss coefficient of a fitting from its two constants, the Reynolds number and the pipe diameter in inches.

    K = K₁ ÷ Re + K∞ × (1 + 1 ÷ D)

    Water hammer and pump trip process/equip/transient.js
    • CadCraft
    • BimCraft
    64-bit
  • Fitting loss, 3-K form

    The loss coefficient of a fitting from its three constants.

    K = K₁ ÷ Re + Kᵢ × (1 + K_d ÷ D^0.3)

    Water hammer and pump trip process/equip/transient.js
    • CadCraft
    • BimCraft
    64-bit
  • Pump trip transient

    Head, flow and pump speed over time after a pump loses power, and when the check valve closes.

    H = α²·h(Q ÷ α), α = ω ÷ ω₀; I·dω/dt = −ρ·g·Q·H ÷ (η·ω)

    Water hammer and pump trip process/equip/transient.js
    • CadCraft
    • BimCraft
    64-bit
  • Pipe section properties

    Metal area, second moment of area, torsion constant and section modulus of a pipe.

    A = π(D² − d²) ÷ 4; I = π(D⁴ − d⁴) ÷ 64; J = 2I; Z = I ÷ (D ÷ 2)

    Pipe stress checks process/equip/pipestress.js
    • CadCraft
    • BimCraft
    64-bit
  • Tee stress intensification

    The stress intensification factors of a welding, reinforced or unreinforced tee.

    i_o = max(0.9 ÷ h^(2/3), 1); i_i = max(0.75·i_o + 0.25, 1); welding tee h = 4.4·T ÷ r

    Pipe stress checks process/equip/pipestress.js
    • CadCraft
    • BimCraft
    64-bit
  • Bend stress intensification and flexibility

    The flexibility characteristic, stress intensification factors and flexibility factor of a bend.

    h = t·R₁ ÷ r²; i_i = 0.9 ÷ h^(2/3); i_o = 0.75 ÷ h^(2/3); k = 1.65 ÷ h

    Pipe stress checks process/equip/pipestress.js
    • CadCraft
    • BimCraft
    64-bit
  • Bend tangent points

    Replaces each corner of the run by the two tangent points of a bend of the given radius.

    θ = acos(u₁ · u₂); tangent length a = R₁ × tan(θ ÷ 2)

    Pipe stress checks process/equip/pipestress.js
    • CadCraft
    • BimCraft
    64-bit
  • Node stations along the run

    Places a node at every corner, support and tee by its distance along the run.

    s = Σ segment lengths; key = s rounded to 0.001 mm; point = a + f × (b − a)

    Pipe stress checks process/equip/pipestress.js
    • CadCraft
    • BimCraft
    64-bit
  • Weight and thermal loads

    The contents and insulation weight per length and the forces that represent free thermal expansion.

    w = ρ_c × 10⁻⁹ × (π ÷ 4)·d² × g + (kg/m ÷ 1000) × g; F = E × A × α × ΔT

    Pipe stress checks process/equip/pipestress.js
    • CadCraft
    • BimCraft
    64-bit

A calculation is added only after its source was read. Each statement can be checked in the code shown on its policy's page; the app repositories are public. When a release changes a calculation, its page says so until it has been read again.