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

  • Wall at the section line

    The top and footing levels of a wall where the section line crosses it.

    values of the wall station nearest the crossing point

    Landscape sections and detail drawings landscape/section-ls.js
    • CivilCraft
    64-bit
  • Steps in profile

    The stepped outline of a flight where the section line passes through it.

    risers climbed = ⌊distance along the flight ÷ going⌋ + 1; z = bottom + risers × riser

    Landscape sections and detail drawings landscape/section-ls.js
    • CivilCraft
    64-bit
  • Plants near the section line

    The plants drawn in a section, with their height and spread in project units.

    h = height (m) ÷ k; k = 0.3048 for feet

    Landscape sections and detail drawings landscape/section-ls.js
    • CivilCraft
    64-bit
  • Scale of a section on its sheet

    Picks the standard scale a section is drawn at and the paper millimeters per project unit.

    k = real ÷ n; real = 1000 mm per m or 304.8 mm per ft; n = first of 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000 with real ÷ n ≤ fit

    Landscape sections and detail drawings landscape/section-ls.js
    • CivilCraft
    64-bit
  • Scale of a detail

    Picks the standard scale of a wall, paving or steps detail and the paper millimeters per project unit.

    k = per ÷ n; per = 1000 or 304.8; n = first of 5, 10, 20, 25, 50, 100 with 1 ÷ n ≤ fit ÷ per

    Landscape sections and detail drawings landscape/sheets.js
    • CivilCraft
    64-bit
  • Wall detail: batter and footing as drawn

    The lean of the wall face and the footing shown in a wall's detail drawing.

    batter offset = tan(batter°) × (top − footing) × k; footing drawn = min(0.6 × depth, 0.3 m)

    Landscape sections and detail drawings landscape/sheets.js
    • CivilCraft
    64-bit
  • Formula evaluation

    The value of a parsed formula for one row.

    + − × ÷ % ^ in 64-bit; round(x, d) = round(x × 10ᵈ) ÷ 10ᵈ

    Worksheets: formulas, column rounding and totals landscape/worksheet.js
    • CivilCraft
    64-bit
  • Numbers to and from text inside a formula

    How a value is read as a number, and how a number is written when it is joined into text.

    text of a number = round(v × 10⁹) ÷ 10⁹

    Worksheets: formulas, column rounding and totals landscape/worksheet.js
    • CivilCraft
    64-bit
  • Rounding a cell to its column's decimals

    Applies the column's decimals setting to a cell.

    cell = Number(v.toFixed(dec))

    Worksheets: formulas, column rounding and totals landscape/worksheet.js
    • CivilCraft
    64-bit
  • Sum, count, average, minimum and maximum

    The total of a column over a group or the whole worksheet.

    sum = Σ cells; average = Σ cells ÷ n

    Worksheets: formulas, column rounding and totals landscape/worksheet.js
    • CivilCraft
    64-bit
  • Rows, groups, subtotals and totals

    Builds the worksheet's rows from the objects, grouped and sorted, with subtotals and a total line.

    Worksheets: formulas, column rounding and totals landscape/worksheet.js
    • CivilCraft
    64-bit
  • Load per meter of conductor

    The vertical load (weight and ice), the wind load and their resultant per meter of conductor in one load case.

    ice = π((D ÷ 2 + t)² − (D ÷ 2)²) × ρ × g; w_v = m·g + ice; w_h = wind pressure × (D + 2t); w = √(w_v² + w_h²)

    Overhead conductor sag and tension powerline/sag.js
    • CivilCraft
    64-bit
  • Ruling span

    The equivalent span of a section between dead-ends.

    L_r = √(Σ L³ ÷ Σ L)

    Overhead conductor sag and tension powerline/sag.js
    • CivilCraft
    64-bit
  • Axial stiffness and thermal expansion

    EA in newtons and the expansion coefficient per degree from the library's values.

    EA = E (GPa) × 10⁹ × area (mm²) × 10⁻⁶; α = α₆ × 10⁻⁶

    Overhead conductor sag and tension powerline/sag.js
    • CivilCraft
    64-bit
  • Change of state

    The horizontal tension in a new load case and temperature, from a known tension in another.

    H³ + K·H² − M = 0; K = EA·(w₁²L² ÷ (24H₁²) + α(t₂ − t₁)) − H₁; M = EA·w₂²L² ÷ 24

    Overhead conductor sag and tension powerline/sag.js
    • CivilCraft
    64-bit
  • Catenary of one span

    The lowest point, sag, conductor length and the tension at each support of a span, level or inclined.

    a = H ÷ w; x₀ = L ÷ 2 − a·asinh(dz ÷ (2a·sinh(L ÷ 2a))); y(x) = a·(cosh((x − x₀) ÷ a) − cosh(x₀ ÷ a)); length = a·(sinh((L − x₀) ÷ a) + sinh(x₀ ÷ a)); T = H·cosh(x ÷ a)

    Overhead conductor sag and tension powerline/sag.js
    • CivilCraft
    64-bit
  • Horizontal tension for a support-tension limit

    The horizontal tension at which the support tension of the level ruling span equals a limit.

    find H with H·cosh(L_r·w ÷ 2H) = T

    Overhead conductor sag and tension powerline/sag.js
    • CivilCraft
    64-bit
  • Meeting the tension limits on the real spans

    Lowers the reference tension until every support-tension limit holds on the actual spans, then reports which limits hold.

    H ← H ÷ max(T_max ÷ limit); holds when value ≤ limit × (1 + 1e−6)

    Overhead conductor sag and tension powerline/sag.js
    • CivilCraft
    64-bit
  • Stringing table

    Tension, sag and conductor length of every span at each stringing temperature, in still air without ice.

    per temperature: change of state from the reference, then a catenary per span

    Overhead conductor sag and tension powerline/sag.js
    • CivilCraft
    64-bit
  • Unbalanced ice load at a suspension support

    The longitudinal pull on a support when one adjacent span is iced and the other is bare.

    dT = max(|H iced, left − H bare, right|, |H iced, right − H bare, left|)

    Overhead conductor sag and tension powerline/sag.js
    • CivilCraft
    64-bit
  • Starter library conductor data

    The area, diameter, mass, strength, stiffness, expansion and resistance of the generic stranded conductors that come with the app.

    mass = 1.02 × Σ area × density; strength = 0.9 × Σ area × wire strength; R₂₀ = 1.02 × resistivity ÷ area × 1000

    Overhead conductor sag and tension powerline/library.js
    • CivilCraft
    64-bit
  • Line angle at each support

    The turn of the line at each support, in degrees.

    turn = |atan2 of the span ahead − atan2 of the span behind|, wrapped to 0 … 180°

    Overhead line checks: clearances, support loads and sizing powerline/model.js
    • CivilCraft
    64-bit
  • Suspension, angle or dead-end

    Decides each support's role from the line angle when none is set.

    dead-end when turn ≥ dead-end angle; angle when turn > suspension angle

    Overhead line checks: clearances, support loads and sizing powerline/model.js
    • CivilCraft
    64-bit
  • Chainage of the supports

    The cumulative horizontal distance along the line at each support, in project units.

    ch = Σ √(Δx² + Δy²)

    Overhead line checks: clearances, support loads and sizing powerline/model.js
    • CivilCraft
    64-bit
  • Attachment height

    The elevation at which the conductor is attached at each support, in meters.

    attach = ground × m per unit + height above ground − fitting drop − insulator length; embedment = height ÷ 10 + 0.5 when the item gives none

    Overhead line checks: clearances, support loads and sizing powerline/checks.js
    • CivilCraft
    64-bit
  • Span length and level difference

    The horizontal length of each span and the difference in attachment height between its ends.

    L = √(Δx² + Δy²) × m per unit; dz = attach right − attach left

    Overhead line checks: clearances, support loads and sizing powerline/checks.js
    • CivilCraft
    64-bit
  • Clearance to the ground along a span

    The lowest height of the conductor above the ground in each load case, and where it is.

    clearance = min over samples of (attach + y(x) − ground); samples = max(20, ⌈L ÷ 2⌉) + 1

    Overhead line checks: clearances, support loads and sizing powerline/checks.js
    • CivilCraft
    64-bit
  • Clearance over an obstacle

    The height of the conductor above each obstacle the span crosses in plan, in the worst load case.

    clear = min over cases of (attach + y(t × L)) − top; top = the obstacle's own top, or ground + height

    Overhead line checks: clearances, support loads and sizing powerline/checks.js
    • CivilCraft
    64-bit
  • Phase spacing needed

    The spacing between phases a span needs, from its largest sag.

    need = k·√(sag + insulator length) + U ÷ 150 (U in kV)

    Overhead line checks: clearances, support loads and sizing powerline/checks.js
    • CivilCraft
    64-bit
  • Loads on a support

    The transverse, longitudinal and vertical load on a support in each load case and the equivalent load at its nominal point.

    T = n·(w_h × wind span + (H_L + H_R)·sin(turn ÷ 2)); V = n·w_v × weight span + equipment; F_eq = √(T² + L²) × attach height ÷ nominal height

    Overhead line checks: clearances, support loads and sizing powerline/checks.js
    • CivilCraft
    64-bit
  • Insulator swing angle

    The angle a suspension insulator swings to under the wind case.

    swing = atan2(T per conductor, V per conductor + insulator weight ÷ 2)

    Overhead line checks: clearances, support loads and sizing powerline/checks.js
    • CivilCraft
    64-bit
  • Support strength check

    Whether the support's nominal load covers the worst equivalent load times the size factor.

    ok when worst F_eq × factor ≤ nominal × (1 + 1e−6)

    Overhead line checks: clearances, support loads and sizing powerline/checks.js
    • CivilCraft
    64-bit
  • Foundation size

    The depth, diameter and volume of a support's foundation hole.

    depth = embedment, or height ÷ 10 + 0.5; diameter = max(0.6, foot diameter + 0.3) m; volume = π·d² ÷ 4 × depth

    Overhead line checks: clearances, support loads and sizing powerline/checks.js
    • CivilCraft
    64-bit
  • Where a span crosses an obstacle in plan

    The positions along a span, from 0 to 1, where it crosses an obstacle's outline or passes a single point.

    t = ((p − a) × e) ÷ (d × e); u = ((p − a) × d) ÷ (d × e)

    Overhead line checks: clearances, support loads and sizing powerline/checks.js
    • CivilCraft
    64-bit
  • Plant sizes in project units

    The factor that turns a plant's mature height and spread in meters into project units.

    project units per meter = 1 ÷ (1200 ÷ 3937) for feet

    Overhead line checks: clearances, support loads and sizing powerline/landscape-obstacles.js
    • CivilCraft
    64-bit
  • Tree canopy as a ring

    The outline of a plant's canopy used to find where a span passes over it.

    12 points on the circle of radius r: (x + r·cos(2πk ÷ 12), y + r·sin(2πk ÷ 12))

    Overhead line checks: clearances, support loads and sizing powerline/landscape-obstacles.js
    • CivilCraft
    64-bit
  • A plant as an obstacle

    A single plant's canopy radius, height and ground level as an obstacle under a line.

    radius = max(spread ÷ 2, 0.1); height = mature height

    Overhead line checks: clearances, support loads and sizing powerline/landscape-obstacles.js
    • CivilCraft
    64-bit
  • Foundation volume shown in cubic yards

    The foundation volume in the support's properties, in cubic yards for a feet project.

    yd³ = m³ × 1.307951

    Overhead line checks: clearances, support loads and sizing powerline/powerline-ui.js
    • CivilCraft
    64-bit
  • Length of a span in the network

    The electrical length of each overhead span.

    length = √(Δx² + Δy²) × m per unit

    Power network: load current and voltage drop powerline/network.js
    • CivilCraft
    64-bit
  • Snapping to the nearest node

    Finds the support or equipment a route end or a piece of equipment connects to.

    nearest node with distance × m per unit ≤ snap + 1e−9

    Power network: load current and voltage drop powerline/network.js
    • CivilCraft
    64-bit
  • Resistance, reactance and ampacity of an edge

    The electrical data of a span or cable route, with parallel cables counted.

    R = R₂₀ ÷ n; X = X ÷ n (0.08 or 0.35 Ω/km by default); ampacity × n

    Power network: load current and voltage drop powerline/network.js
    • CivilCraft
    64-bit
  • Loads summed upstream

    The active and reactive power each edge carries, and the current each load draws.

    Q = P·tan(acos pf); I = √(P² + Q²) ÷ (√3·U)

    Power network: load current and voltage drop powerline/network.js
    • CivilCraft
    64-bit
  • Current, voltage drop and node voltage

    The current and voltage drop in each edge and the voltage and cumulative drop at each node.

    ΔU = √3·I·(L ÷ 1000)·(R·cos φ + X·sin φ); drop % += ΔU ÷ (U × 1000) × 100; U node = U·(1 − drop ÷ 100)

    Power network: load current and voltage drop powerline/network.js
    • CivilCraft
    64-bit
  • Route length

    The plan length of a cable route in project units.

    L = Σ √(Δx² + Δy²)

    Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js
    • CivilCraft
    64-bit
  • Cover and cable band of a trench

    The cover over the cable and the thickness of the band the cable or its ducts occupy, in meters.

    cover = trench cover, or max(0, depth − bedding − band); band = duct diameter, or cable diameter

    Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js
    • CivilCraft
    64-bit
  • Cable profile and cover check

    The ground and the top of the cable along the route, and whether the cover meets the minimum.

    cable = ground − cover ÷ m per unit; samples every L ÷ 100 by default

    Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js
    • CivilCraft
    64-bit
  • Crossing of two plan segments

    Where two straight segments cross in plan, as a position along each.

    t = ((p − a) × e) ÷ (d × e); u = ((p − a) × d) ÷ (d × e)

    Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js
    • CivilCraft
    64-bit
  • Crossings along the route

    Every place a segment crosses the route, with its chainage.

    ch = chainage of the vertex before + t × segment length

    Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js
    • CivilCraft
    64-bit
  • Separation from a pipe at a crossing

    The clear vertical gap between the cable and a pipe where they cross.

    invert = (inv up + (inv down − inv up)·u) × m per unit; pipe top = invert + diameter; cable top = ground − cover; gap = max(cable bottom − pipe top, invert − cable top)

    Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js
    • CivilCraft
    64-bit
  • Separation from another cable route

    The clear vertical gap between two cable routes that cross, each at its own cover under the same ground.

    gap between [−cover A − band A, −cover A] and [−cover B − band B, −cover B]

    Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js
    • CivilCraft
    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.