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

  • 4 × 4 inverse

    Inverts the stiffness block of the incompatible modes.

    Gauss–Jordan with partial pivoting

    Plate element for slabs and walls frame/plate.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Element stiffness in global axes

    Turns the plate's stiffness from its own axes to the model's.

    K_g = Tᵀ K T, by 3 × 3 blocks

    Plate element for slabs and walls frame/plate.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Forces and moments in a plate

    Membrane forces, bending and twisting moments and transverse shears per unit length at a point of a plate.

    N = D_m ε; M = −D_b κ; Q = D_s γ

    Plate element for slabs and walls frame/plate.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Gauss point values to the corners

    Corner values of a result from its four integration point values.

    bilinear through the 2 × 2 points, read at ξ, η = ±√3

    Plate element for slabs and walls frame/plate.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Corner shares of a plate's area

    The part of a uniform pressure or of the plate's weight that goes to each corner.

    ∫ Nᵢ dA by 2 × 2 Gauss

    Plate element for slabs and walls frame/plate.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Poisson's ratio of a plate's material

    The ratio the plate element uses, from the material's two moduli.

    ν = E ÷ (2G) − 1

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Master point of a rigid floor

    The point a floor's in-plan movement is measured at, and each node's offset from it.

    x_m = mean of the nodes' x; y_m = mean of the nodes' y (or the point given)

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Rigid floor constraint

    Ties a floor node's two in-plan movements and its rotation about the vertical to the floor's master point.

    u_x = U_x − (y − y_m) R_z; u_y = U_y + (x − x_m) R_z; r_z = R_z

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Skyline Cholesky factorization

    Factorizes the stiffness of the whole model once for every load set.

    K = L Lᵀ; L_ii = √(K_ii − Σ L_ik²)

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Forward and back substitution

    Solves the factorized system for one load vector.

    L y = f; Lᵀ x = y

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Loads on plates

    Turns a plate's own weight and area loads into forces at its corners.

    corner force = (∫ Nᵢ dA) × p; own weight p = −factor × f × ρ × 1e-9 × g × t

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Node displacements from the solution

    Gives every node its six displacements, including those tied to a floor's master point.

    u_q = Σ c × x_e over the constraint map of q

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Plate forces into the reactions

    Adds each plate's corner forces to the support reactions and stores the plate's center results.

    f = K_g u, added at the corners; center results at ξ = η = 0

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Plate results at the nodes

    The moments and forces shown at each node of a slab or wall.

    inside: mean of the corner values of the plates at the node; on an edge: a + b x + c y fitted through nearby Gauss values, read at the node

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Least-squares plane through Gauss values

    The value at a node on a slab's edge, from a plane fitted through the integration point values around it.

    normal equations 3 × 3, first unknown by Cramer's rule

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Story drift

    How far each rigid floor moves relative to the floor below, at its center and at its worst node.

    drift = move(floor) − move(floor below) at the same point; ratio = |drift| ÷ story height

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Combined plate results

    Adds plate results and floor movements of several load sets, each times its factor.

    result = Σ fᵢ × resultᵢ

    Frame analysis with slabs, walls and rigid floors frame/plate-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Cleaning an outline

    Removes repeated points and corners that lie on a straight run, and makes the outline counter-clockwise.

    drop a point when |p − q| ≤ 1e-6; drop a corner when |cross| ≤ 1e-9 × |b − a|²

    Meshing a slab or wall into plates frame/plate-mesh.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Is the outline square-cornered

    Finds the turn that makes every edge of the outline and its openings run along one of two square directions.

    turn = atan2 of the longest edge; each edge: min(|dx|, |dy|) ≤ 1e-6 × max(1, length)

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

    Lays grid lines through every corner and given point and divides each gap into equal parts no longer than the size asked for.

    n = ⌈gap ÷ size − 1e-9⌉; line_j = a + (b − a) × j ÷ n

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

    Decides whether a grid cell's center lies inside the outline or inside an opening.

    even–odd crossing count

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

    A structured mesh between the opposite edges of a convex four-corner outline.

    P(s, t) = (1 − s)(1 − t) P₀ + s (1 − t) P₁ + s t P₂ + (1 − s) t P₃; s = i ÷ n, t = j ÷ m

    Meshing a slab or wall into plates frame/plate-mesh.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • 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

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.