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
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.jsExact- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
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.