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
-
4 × 4 inverse
Inverts the stiffness block of the incompatible modes.
Gauss–Jordan with partial pivoting
Plate element for slabs and walls frame/plate.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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
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.