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

  • Cutting an outline into triangles

    Ear clipping of an outline that is neither square-cornered nor four-cornered.

    an ear: cross(a, b, c) > 1e-12 and no other corner inside

    Meshing a slab or wall into plates frame/plate-mesh.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Triangles into quadrilaterals

    Cuts each triangle into three quadrilaterals and each of those into k × k plates.

    k = ⌈longest edge ÷ 2 ÷ size − 1e-9⌉; nodes by bilinear blend

    Meshing a slab or wall into plates frame/plate-mesh.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Mesh quality

    The largest side ratio and the smallest corner angle of the plates.

    aspect = longest side ÷ shortest side; angle = acos(u·v ÷ (|u| |v|))

    Meshing a slab or wall into plates frame/plate-mesh.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Mesh nodes onto model nodes

    Uses an existing node of the frame for a mesh node that lies within the merge tolerance of it, else adds a new node.

    |existing − new| ≤ tol (1 mm by default)

    Meshing a slab or wall into plates frame/plate-mesh.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Wall plates

    Meshes a vertical wall along a line in plan between two heights.

    node = from + e_x × u, z = z₀ + v; e_x = (to − from) ÷ L

    Meshing a slab or wall into plates frame/plate-mesh.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Is a plate a proper quadrilateral

    Refuses a plate whose corners are in a line or folded over.

    each corner: (e₁ × e₂) · n ÷ |n| > 1e-3 × |e₁| × |e₂|

    Meshing a slab or wall into plates frame/plate-model.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Nodes of a rigid floor by height

    Collects the nodes that belong to a floor given by its height.

    |z_node − z_floor| ≤ tol (1 mm by default)

    Meshing a slab or wall into plates frame/plate-model.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Bar positions of a beam

    Places the top, bottom and side bars of a beam section from their count and cover.

    y_i = −b ÷ 2 + c + (b − 2c) × i ÷ (n − 1); side bars evenly between the rows

    Concrete section by strain compatibility frame/rc-section.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Bar positions of a column cage

    Places the bars around the perimeter of a column, corners counted once.

    y_i = −y_c + 2 y_c × i ÷ (n − 1); y_c = b ÷ 2 − cover

    Concrete section by strain compatibility frame/rc-section.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Bars gathered into layers

    The depth of each bar from the compression face, with bars at one depth added into one layer.

    d = depth ÷ 2 − sign × position, rounded to 1e-6 mm

    Concrete section by strain compatibility frame/rc-section.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Axial force and moment for a neutral axis depth

    The section's axial force and its moment about mid-depth when the neutral axis is at depth c.

    a = min(β₁ c, h); C_c = α₁ f′c b a; ε_s = ε_cu (c − d) ÷ c; f_s = clamp(E_s ε_s, ±f_y); P = C_c + Σ F; M = Σ F × (h ÷ 2 − d)

    Concrete section by strain compatibility frame/rc-section.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Neutral axis for a given axial force

    The neutral axis depth at which the section's axial force equals the target.

    bisection on c between 1e-6 × depth and 1000 × depth

    Concrete section by strain compatibility frame/rc-section.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Stress block factor β₁

    The depth of the equivalent stress block as a share of the neutral axis depth.

    0.85 for f′c ≤ 28; 0.85 − 0.05 (f′c − 28) ÷ 7; 0.65 for f′c ≥ 55

    Concrete member strength to ACI 318-19 frame/rc-aci318.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Strength reduction factor

    The factor φ for axial force and bending from the strain in the extreme tension steel.

    0.90 for ε_t ≥ ε_ty + 0.003; 0.65 (0.75 spiral) for ε_t ≤ ε_ty; a straight line between

    Concrete member strength to ACI 318-19 frame/rc-aci318.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Square root of the concrete strength in shear

    The √f′c used in the shear formulas.

    min(√f′c, 8.3)

    Concrete member strength to ACI 318-19 frame/rc-aci318.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Bending strength of a beam section

    The nominal and design moment of a section at zero axial force, with the minimum steel and ductility tests.

    c from P(c) = 0; Mn = M(c); φMn; As,min = max(0.25 √f′c ÷ fy, 1.4 ÷ fy) b d

    Concrete member strength to ACI 318-19 frame/rc-aci318.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Steel required for a moment

    The steel area a singly reinforced section needs for a factored moment.

    Rn = Mu ÷ (φ b d²); As = (0.85 f′c ÷ fy) (1 − √(1 − 2 Rn ÷ 0.85 f′c)) b d

    Concrete member strength to ACI 318-19 frame/rc-aci318.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • One-way shear strength

    The concrete and stirrup contributions to shear strength, the minimum stirrups and the spacing limit.

    Vc by Table 22.5.5.1 (a), (b) or (c); λs = min(1, √(2 ÷ (1 + 0.004 d))); Vs = Av fyt d ÷ s; φVn = 0.75 (Vc + Vs)

    Concrete member strength to ACI 318-19 frame/rc-aci318.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Axial force and moment diagram

    The nominal and design strength outline of a column section for bending about one axis.

    (Mn, Pn) at 121 depths c from 20 h down to 0.001 h, plus the balanced, tension-controlled and P = 0 points; Po = 0.85 f′c (Ag − Ast) + fy Ast

    Concrete member strength to ACI 318-19 frame/rc-aci318.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Utilization on the diagram

    How far a factored axial force and moment are along the ray from the origin to the diagram.

    ratio = √(Mu² + Pu²) ÷ t, t = where the ray meets the outline

    Concrete member strength to ACI 318-19 frame/rc-aci318.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Threshold torsion

    The torque above which torsion would have to be designed for.

    φ Tth = 0.75 × 0.083 λ √f′c Acp² ÷ pcp

    Concrete member strength to ACI 318-19 frame/rc-aci318.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Strengths of a section, worked out once

    The bending strengths for both axes and signs, the two strength diagrams, the effective shear depths and the threshold torsion of a section.

    shear depth d = centroid of the bars beyond mid-depth, or 0.8 × depth when there are none

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Design moment strength at an axial load

    The largest design moment the strength diagram allows at a given axial force.

    linear interpolation between the two diagram points that bracket Pu

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Moment magnification of a slender column

    The magnified design moment of a non-sway column about one axis.

    Pc = π² (0.4 Ec Ig ÷ (1 + βdns)) ÷ (k L)²; δ = Cm ÷ (1 − Pu ÷ 0.75 Pc) ≥ 1; Mc = δ max(M₂, Pu (15 + 0.03 h)); Ec = 4700 √f′c

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Drawn section against the concrete section

    Checks that the analyzed section's area and inertias agree with the b × h the bars were given for.

    |A − b h| ≤ 0.05 b h; I within 5 % of b h³ ÷ 12 × 1, 0.70 or 0.35

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Beam flexure ratio

    The utilization of a beam in bending about one or both axes.

    |My| ÷ φMny + |Mz| ÷ φMnz

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Column axial force and bending ratio

    The utilization of a column under axial force with one or two moments.

    one moment: the ray ratio on its diagram; two, Pu ≥ 0.1 f′c Ag: max(r_y + r_z − Pu ÷ (φ Po), Pu ÷ φPn,max); two, lower Pu: |My| ÷ φMny(Pu) + |Mz| ÷ φMnz(Pu)

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Design moments of the slab's bar layers

    The moment each of the four bar layers must carry so that bending and twisting are both covered.

    M*x = Mx + |Mxy|, M*y = My + |Mxy|; if one is negative: 0, and the other raised by Mxy² ÷ |that moment|

    Concrete member and slab checks on a solved frame frame/slab-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Slab reinforcement and shear

    The steel required and provided per meter in each layer, and the one-way shear check of a slab.

    d = h − cover − bar ÷ 2 (outer layer); provided = (π d_b² ÷ 4) × 1000 ÷ s; need = max(required, ρ_min × 1000 × h); ratio = need ÷ provided

    Concrete member and slab checks on a solved frame frame/slab-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Concrete stiffness for the analysis

    The elastic modulus, shear modulus and density given to concrete members.

    E = 4700 √f′c; G = E ÷ 2.4; ρ = 2400 kg/m³

    Concrete member and slab checks on a solved frame frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Cracked stiffness factor

    The share of the gross stiffness used for cracked members.

    0.70 columns; 0.35 beams; 1 when not cracked

    Concrete member and slab checks on a solved frame frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    Exact
  • Area of a bar

    The cross-section area of a reinforcing bar from its diameter.

    A = π d² ÷ 4

    Concrete member and slab checks on a solved frame frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Approximate period

    The building's approximate fundamental period from its height and structural system.

    Ta = Ct × (hn ÷ 1000)^x, hn in mm

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Upper limit factor on the period

    The factor Cu that caps a period taken from analysis.

    table of SD1 against Cu, straight lines between rows

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Seismic response coefficient

    The coefficient Cs that multiplies the building's weight to give the base shear.

    Cs = SDS ÷ (R ÷ Ie), at most SD1 ÷ (T R ÷ Ie) or SD1 TL ÷ (T² R ÷ Ie), at least max(0.044 SDS Ie, 0.01) and 0.5 S1 ÷ (R ÷ Ie) where S1 ≥ 0.6

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Height exponent

    The exponent k of the vertical distribution of the story forces.

    k = 1 for T ≤ 0.5 s; 2 for T ≥ 2.5 s; 1 + (T − 0.5) ÷ 2 between

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Base shear and story forces

    The base shear, the force on each floor and the shear in each story.

    V = Cs W; Cvx = wx hx^k ÷ Σ wi hi^k; Fx = Cvx V; Vx = Σ F from the top down

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Story force on a rigid floor

    Puts a story force on a floor at its master point, with the accidental torsion.

    Mz = −((x₀ − x_m) Fy − (y₀ − y_m) Fx) ± 0.05 × plan size × F

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Design drift against the allowable

    The design story drift and its ratio to the allowable drift.

    δ = Cd δ_e ÷ Ie; allowed = 0.020, 0.015 or 0.010 × story height; ratio = δ ÷ allowed

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Suggested floor levels

    The heights at which level members meet, offered as the building's floors.

    z = (z_a + z_b) ÷ 2 of a level member; levels within 1 mm are one; stored z rounded to 0.1 mm

    Seismic loads and story drift to ASCE 7-22 frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Floor weights into newtons

    Turns the floor weights typed in kN into the N the procedure works in.

    w (N) = w (kN) × 1000

    Seismic loads and story drift to ASCE 7-22 frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Period of the analyzed frame

    The fundamental period in each direction from the floor weights and the frame's displacements under the seismic forces.

    T = 2π √(Σ wᵢ δᵢ² ÷ (g Σ fᵢ δᵢ))

    Seismic loads and story drift to ASCE 7-22 frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Weight of each floor from the loads

    The vertical load of chosen load cases gathered at each floor, as its seismic weight.

    node load = node forces + member equivalent loads + plate corner loads; each node's load goes to the floor at or above it

    Seismic loads and story drift to ASCE 7-22 frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • A number as report text

    Writes a value with a fixed number of decimals.

    text = v.toFixed(d); 0 when |v| < 0.5 × 10⁻ᵈ

    Numbers in the frame analysis report frame/frame-report.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Force in kN

    A force in newtons printed in kilonewtons.

    kN = N ÷ 1000, 2 decimals; kN·m = N·mm ÷ 10⁶, 2 decimals

    Numbers in the frame analysis report frame/frame-report.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Reactions, largest displacement and the envelope

    Gathers each set's reactions, the node that moves most, each member's extremes, and the largest value of each force over all sets.

    displacement = √(ux² + uy² + uz²); envelope = the value with the largest magnitude over the sets

    Numbers in the frame analysis report frame/frame-report.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Deflection as a span ratio

    Prints a member's deflection as L over a whole number.

    'L/' + round(L ÷ deflection)

    Numbers in the frame analysis report frame/frame-report.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Demand and capacity as text

    Prints a design check's demand and capacity in kN or kN·m.

    kN = round(N ÷ 10) ÷ 100; kN·m = round(N·mm ÷ 10⁴) ÷ 100; ratios to 3 decimals

    Numbers in the frame analysis report frame/frame-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Utilization as a percentage

    Prints a utilization ratio as a percentage with one decimal.

    round(ratio × 1000) ÷ 10, 1 decimal

    Numbers in the frame analysis report frame/frame-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • A number in the concrete and seismic tables

    Writes a value with a chosen number of decimals.

    round(v × 10ᵈ) ÷ 10ᵈ, then d decimals

    Numbers in the frame analysis report frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    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.