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.
Calculations
-
Half-width of a contour
Half the crosswind width of a concentration level at a given distance.
w = σy × √(2 × ln(C₀ ÷ C_end))
Gaussian plume concentration and contours process/env/plume.js64-bit- CadCraft
- BimCraft
-
Height of a contour
The height above ground up to which the concentration stays at or above the endpoint at a given distance.
Gaussian plume concentration and contours process/env/plume.js64-bit- CadCraft
- BimCraft
-
Contour polygon in site coordinates
The outline of a concentration level as a polygon on the site plan, with its reach and greatest height.
(x, y) → (cx + x·cos t − y·sin t, cy + x·sin t + y·cos t)
Gaussian plume concentration and contours process/env/plume.js64-bit- CadCraft
- BimCraft
-
Gas density relative to air
Whether the released gas is heavier than air, which makes a Gaussian result untrustworthy.
ratio = (P·M ÷ R·T) ÷ (P·M_air ÷ R·T_air); dense when ratio > 1.1
Gaussian plume concentration and contours process/env/plume.js64-bit- CadCraft
- BimCraft
-
Wind speed at height
The wind speed at a height from the speed measured at 10 m.
u = u₁₀ × (max(z, 1) ÷ 10)^p
Stack plume rise and air dispersion screening process/env/dispersion.js64-bit- CadCraft
- BimCraft
-
Plume rise and effective height
How far the plume rises above the stack and the effective release height used by the plume equation.
Fb = g·vs·d²·(Ts − Ta) ÷ 4Ts; Δh = 21.425·Fb^0.75 ÷ u (Fb < 55) or 38.71·Fb^0.6 ÷ u; stable: Δh = 2.6·∛(Fb ÷ u·s)
Stack plume rise and air dispersion screening process/env/dispersion.js64-bit- CadCraft
- BimCraft
-
Stack from a flowsheet stream
Exit velocity, volume flow and the emission rate of each species from a process stream.
V̇ = F·R·T ÷ P; vs = V̇ ÷ (π·d² ÷ 4); Qᵢ = F·zᵢ·MWᵢ
Stack plume rise and air dispersion screening process/env/dispersion.js64-bit- CadCraft
- BimCraft
-
Concentration from one stack at one point
The ground concentration in µg/m³ from one source for one wind speed and stability class.
Stack plume rise and air dispersion screening process/env/dispersion.js64-bit- CadCraft
- BimCraft
-
Worst-case 1-hour concentration
The highest ground-level concentration over all stability classes, wind speeds and distances, and its longer-period estimates.
xᵢ = xMin × (xMax ÷ xMin)^(i ÷ steps); C_avg = C_max × factor
Stack plume rise and air dispersion screening process/env/dispersion.js64-bit- CadCraft
- BimCraft
-
Receptor position in the wind frame
The downwind and crosswind distance of a receptor from a source for one hour's wind direction, and the concentration there.
θ = (dirFrom + 180) mod 360; x_d = dx·sin θ + dy·cos θ; y_c = dx·cos θ − dy·sin θ
Stack plume rise and air dispersion screening process/env/dispersion.js64-bit- CadCraft
- BimCraft
-
Hour-by-hour statistics at receptors
The highest and second-highest hourly value, the period mean and the highest 24-hour mean at each receptor.
mean = Σ cₕ ÷ n; rolling₂₄ = max over windows of (Σ of 24 hours) ÷ 24
Stack plume rise and air dispersion screening process/env/dispersion.js64-bit- CadCraft
- BimCraft
-
Contours for a site plan
The contour polygon of each concentration level for one wind condition, in site coordinates.
angle = 90 − ((dirFrom + 180) mod 360); C_end = level × 10⁻⁶
Stack plume rise and air dispersion screening process/env/dispersion.js64-bit- CadCraft
- BimCraft
-
Comparison with a limits pack
Whether a result is above, or within 80 % of, the limit a person typed for that pollutant and averaging time.
fraction = c ÷ limit
Stack plume rise and air dispersion screening process/env/dispersion.js64-bit- CadCraft
- BimCraft
-
Contours as drawing entities
The contour polylines, stack marker, wind arrow and labels placed in a drawing.
drawing point = site point × scale
Stack plume rise and air dispersion screening process/env/plumedraw.js64-bit- CadCraft
- BimCraft
-
Stoichiometric matrix
The 8 by 13 table of how much of each component each process makes or uses.
Activated sludge plant steady state (ASM1) process/env/water.js64-bit- CadCraft
- BimCraft
-
Process rates
The rate of each of the 8 biological processes at given concentrations.
r₁ = µH × SS ÷ (KS + SS) × SO ÷ (KOH + SO) × XBH (and seven more Monod products)
Activated sludge plant steady state (ASM1) process/env/water.js64-bit- CadCraft
- BimCraft
-
Reaction rate of each component
The net production of each of the 13 components from the 8 process rates.
dcₖ/dt = Σⱼ νⱼₖ × ρⱼ
Activated sludge plant steady state (ASM1) process/env/water.js64-bit- CadCraft
- BimCraft
-
Clarifier split
The effluent and underflow concentrations from the clarifier feed and the capture fraction a person gives.
eff = (1 − capture) × c; und = (Qc × c − Qe × eff) ÷ Qu
Activated sludge plant steady state (ASM1) process/env/water.js64-bit- CadCraft
- BimCraft
-
Tank mass balances
The rate of change of every component in every tank: flow in and out, reaction and aeration.
dc/dt = (Σ Q_in × c_in − Q × c) ÷ V + Σⱼ νⱼ × ρⱼ + KLa × (SO_sat − SO)
Activated sludge plant steady state (ASM1) process/env/water.js64-bit- CadCraft
- BimCraft
-
Steady-state iteration
Advances the plant state with implicit steps until nothing changes any more.
(I ÷ h − J) × Δy = F(y); stop when max |Fᵢ| ÷ (|yᵢ| + 1) < tol
Activated sludge plant steady state (ASM1) process/env/water.js64-bit- CadCraft
- BimCraft
-
COD, nitrogen and oxygen balances, sludge age
Checks that what enters the plant equals what leaves plus what reacts, and gives the sludge retention time.
residual = in − out + reaction; rel = residual ÷ (|in| + 10⁻¹²); SRT = Σ V × solids ÷ (Qw × Xw + Qe × Xe)
Activated sludge plant steady state (ASM1) process/env/water.js64-bit- CadCraft
- BimCraft
-
Oxygen used and supplied
The oxygen the reactions use next to what the aerators supply, in kg per day.
kg/d = g/d ÷ 1000
Activated sludge plant steady state (ASM1) process/env/water.js64-bit- CadCraft
- BimCraft
-
Bar-screen head loss
The head lost through a bar screen.
h = β × (w ÷ b)^(4/3) × v² ÷ 2g × sin θ
Water treatment unit processes and sludge sizing process/env/water.js64-bit- CadCraft
- BimCraft
-
Ideal settling basin
The overflow rate and the fraction of particles removed.
v₀ = Q ÷ A; removal = min(1, vs ÷ v₀)
Water treatment unit processes and sludge sizing process/env/water.js64-bit- CadCraft
- BimCraft
-
Granular filter head loss
The head lost through a clean filter bed in laminar flow.
h = 180 × L × ν × (1 − ε)² × v ÷ (g × ε³ × d²)
Water treatment unit processes and sludge sizing process/env/water.js64-bit- CadCraft
- BimCraft
-
Disinfection survival
The fraction of organisms surviving a contact time, and the log removal.
s = exp(−k × Cⁿ × t); log removal = −log₁₀(s)
Water treatment unit processes and sludge sizing process/env/water.js64-bit- CadCraft
- BimCraft
-
Contact time for a log removal
The contact time needed to reach a wanted log removal.
t = log₁₀ removal × ln 10 ÷ (k × Cⁿ)
Water treatment unit processes and sludge sizing process/env/water.js64-bit- CadCraft
- BimCraft
-
Sludge retention time
The mass of sludge in the system divided by the mass leaving per day.
SRT = V × X ÷ (Qw × Xw + Qe × Xe)
Water treatment unit processes and sludge sizing process/env/water.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
NTU for a wanted effectiveness
The size (NTU) an exchanger needs to reach a given effectiveness.
Heat exchanger rating process/equip/exchanger.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
-
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.js64-bit- CadCraft
- BimCraft
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.