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

  • 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
  • Cables and pipes under an overhead line

    The cable routes and pipes an overhead line crosses in plan, with the line's chainage and the level of the top of each.

    cable top = ground − cover ÷ m per unit; pipe top = invert at the crossing + diameter

    Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js
    • CivilCraft
    64-bit
  • Joints from the drum length

    How many joints each cable needs and where along the route they fall.

    run = length × (1 + slack %); joints per cable = ⌈run ÷ drum⌉ − 1; at = k × drum ÷ (1 + slack %)

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

    Trench length, excavation, bedding and backfill volumes, duct length and cable length of a route.

    excavation = width × depth × length; bedding = width × bedding × length; backfill = excavation − bedding − ducts × π(d ÷ 2)² × length; cable = (length × slack + 2 × depth) × count

    Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js
    • CivilCraft
    64-bit
  • Numbers in the file

    Turns a value into the fixed-decimal text the file carries, and newtons into decanewtons.

    text = v.toFixed(d); daN = N ÷ 10, 2 decimals

    Line study file (.DON) export and import powerline/don.js
    • CivilCraft
    64-bit
  • Signed line angle at each support

    The turn of the line at each support in degrees, counter-clockwise positive.

    turn = atan2 of the span ahead − atan2 of the span behind, wrapped to ±180°

    Line study file (.DON) export and import powerline/don.js
    • CivilCraft
    64-bit
  • Support coordinates and heights written

    Each support's position, ground level, pole length, height above ground and line angle as written to the file.

    X = x × m per unit, 3 decimals; Hauteur = typed height × m per unit + embedment

    Line study file (.DON) export and import powerline/don.js
    • CivilCraft
    64-bit
  • Section tension and catenary parameter written

    The reference temperature, horizontal tension and catenary parameter of each section as written to the file.

    Parametre = H ÷ w, 3 decimals; TensionIni = H ÷ 10 daN, 2 decimals

    Line study file (.DON) export and import powerline/don.js
    • CivilCraft
    64-bit
  • Reading a number

    Turns a field's text into a number, accepting a decimal comma.

    Line study file (.DON) export and import powerline/don.js
    • CivilCraft
    64-bit
  • Angles in grades

    Converts a line angle given in grades to degrees.

    degrees = grades × 0.9

    Line study file (.DON) export and import powerline/don.js
    • CivilCraft
    64-bit
  • A study file into a line

    Turns the supports read from a file into a line in project units.

    x = X (m) ÷ m per unit; voltage kV = V ÷ 1000

    Line study file (.DON) export and import powerline/don.js
    • CivilCraft
    64-bit
  • Cubic meters per cubic yard

    The factor used to give volumes in cubic yards in a feet project.

    1 yd³ = 0.764554857984 m³

    Power line tables, quantities and GIS export powerline/outputs.js
    • CivilCraft
    Exact
  • Stringing table rows

    Tension, span length, sag and conductor length per section and temperature, in project units.

    length ÷ m per unit; force ÷ 10 for daN or ÷ 4.4482216152605 for lbf

    Power line tables, quantities and GIS export powerline/outputs.js
    • CivilCraft
    64-bit
  • Stringing table CSV

    The stringing table as CSV text.

    lengths and sags round(v, 2); tension round(v, 1)

    Power line tables, quantities and GIS export powerline/outputs.js
    • CivilCraft
    64-bit
  • Support table rows

    Ground, attachment, load, nominal load, foundation and swing per support, in project units.

    attach height = attach z − ground z; load = worst F_eq in daN or lbf

    Power line tables, quantities and GIS export powerline/outputs.js
    • CivilCraft
    64-bit
  • Conductor length to buy

    The conductor length of a line with an allowance for jumpers and waste.

    length = Σ catenary lengths × phases × circuits × 1.02 ÷ m per unit

    Power line tables, quantities and GIS export powerline/outputs.js
    • CivilCraft
    64-bit
  • Lengths and volumes in project units

    Converts meters and cubic meters to feet and cubic yards for the quantity rows.

    LF = m ÷ 0.3048; CY = m³ ÷ 0.764554857984

    Power line tables, quantities and GIS export powerline/outputs.js
    • CivilCraft
    64-bit
  • Quantities file for TakeoffCraft

    The quantity rows in the format TakeoffCraft reads.

    qty = round(qty, 2)

    Power line tables, quantities and GIS export powerline/outputs.js
    • CivilCraft
    64-bit
  • Clear-sky beam and diffuse irradiance

    The irradiance outside the atmosphere, the beam transmittance, and the beam and diffuse irradiance at the ground.

    τ_b = a₀ + a₁·exp(−k ÷ cos Z); G_on = 1367·(1 + 0.033·cos(2πn ÷ 365)); G_bn = G_on·τ_b; τ_d = 0.271 − 0.294·τ_b

    Clear-sky solar irradiance pv/daylight-bim-sky.js
    • CivilCraft
    64-bit
  • Meters per unit

    The length of each supported unit in meters.

    ft = 0.3048; US survey ft = 1200 ÷ 3937; in = 0.0254; yd = 0.9144; mi = 1609.344

    Placing a scanned sheet in the project scanstart/place.js
    • CivilCraft
    Exact
  • Scale from two points

    Project units per pixel from two points on the scan and the true distance between them.

    units per pixel = distance ÷ √(Δpx² + Δpy²)

    Placing a scanned sheet in the project scanstart/place.js
    • CivilCraft
    64-bit
  • Scale from a stated scale

    Project units per pixel from the scan's resolution and a scale such as 1 inch = 50 feet or 1:500.

    per ÷ dpi, or ratio × 0.0254 ÷ (m per unit) ÷ dpi

    Placing a scanned sheet in the project scanstart/place.js
    • CivilCraft
    64-bit
  • Placement from a scale, origin and rotation

    The transform that puts the sheet's lower-left corner at a point, turned by an angle, at a given scale.

    c = s·cos θ, d = s·sin θ; X = x₀ − d·h + c·px + d·py; Y = y₀ + c·h + d·px − c·py

    Placing a scanned sheet in the project scanstart/place.js
    • CivilCraft
    64-bit
  • Pixel to project coordinates

    The project position of a pixel.

    X = g₀ + g₁·px + g₂·py; Y = g₃ + g₄·px + g₅·py

    Placing a scanned sheet in the project scanstart/place.js
    • CivilCraft
    64-bit
  • Inverse placement

    The transform from project coordinates back to pixels.

    det = g₁·g₅ − g₂·g₄; inverse = adjugate ÷ det

    Placing a scanned sheet in the project scanstart/place.js
    • CivilCraft
    64-bit
  • Scale of a placement

    The project units per pixel a placement stands for, reported with every fit.

    scale = √|g₁·g₅ − g₂·g₄|

    Placing a scanned sheet in the project scanstart/place.js
    • CivilCraft
    64-bit
  • Rotation of a placement

    The angle a placement turns the sheet by, in degrees.

    rotation = atan2(g₄, g₁) × 180 ÷ π

    Placing a scanned sheet in the project scanstart/place.js
    • CivilCraft
    64-bit
  • 3 × 3 linear solve

    Solves the normal equations of the affine fit.

    Gauss-Jordan elimination with partial pivoting

    Placing a scanned sheet in the project scanstart/place.js
    • CivilCraft
    64-bit
  • Least-squares fit to matched points

    The placement that best matches points picked on the scan to their project coordinates, with each point's residual and the root mean square.

    similarity: c = Σ(u·X + v·Y) ÷ Σ(u² + v²), d = Σ(u·Y − v·X) ÷ Σ(u² + v²); rms = √(Σ r² ÷ n)

    Placing a scanned sheet in the project scanstart/place.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.