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
-
Jacobian of the element
The map between the element's own square coordinates and the plate's plane, its determinant and inverse.
det J = x,ξ y,η − y,ξ x,η; J⁻¹ = adj(J) ÷ det J
Plate element for slabs and walls frame/plate.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Plate axes, warp and area
The plate's own x, y and normal, its corners in that plane, how far the corners leave the plane, and its area.
n = unit(d₁ × d₂) of the diagonals; warp = max |z| of the corners from the mean plane; area = ½ |Σ (xᵢ yᵢ₊₁ − xᵢ₊₁ yᵢ)|
Plate element for slabs and walls frame/plate.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Plane-stress material matrix
The matrix that turns strains into forces per length, or curvatures into moments per length.
D = f ÷ (1 − ν²) × [[1, ν, 0], [ν, 1, 0], [0, 0, (1 − ν) ÷ 2]]
Plate element for slabs and walls frame/plate.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Element stiffness
The 24 × 24 stiffness of one plate in its own axes and in the model's.
K = ∫ Bᵀ D B dA by 2 × 2 Gauss; D_b = E t³ ÷ (12 (1 − ν²)); D_s = 5⁄6 G t; membrane: k_cc − k_ci k_ii⁻¹ k_ic
Plate element for slabs and walls frame/plate.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Transverse shear at the tying points
The shear strain rows at the four edge midpoints that the element interpolates from.
γ̃_ξ at (0, ∓1); γ̃_η at (∓1, 0)
Plate element for slabs and walls frame/plate.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Shear strains at a point
The two transverse shear strains at an integration point from the tied values.
[γ_x, γ_y] = J⁻¹ [γ̃_ξ, γ̃_η]; γ̃ interpolated linearly between opposite edges
Plate element for slabs and walls frame/plate.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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
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.