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
-
Residence time distribution
The distribution of times a pulse of tracer takes to leave a flow-through box, with its mean, variance and the nominal time.
E = flux ÷ Σ(flux × Δt); mean = Σ t E Δt; variance = Σ t² E Δt − mean²; nominal = V ÷ Q
2D mixing solver (lattice Boltzmann) cfd/lbm.js64-bit- CadCraft
-
VTK export
Writes the velocity and tracer fields as a legacy ASCII VTK file.
2D mixing solver (lattice Boltzmann) cfd/lbm.js64-bit- CadCraft
-
Guard on every written measure
Decides what is written when a value is missing or not a number.
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Arc angles brought into one turn
Brings an angle into the range from 0 up to 2π before it is written.
r = a mod 2π; r + 2π when r < 0
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Arc
Writes an arc's center, radius and two angles.
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Line
Writes a line's two end points.
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Polyline vertices
Writes the vertices of a lightweight polyline.
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Vertex widths
Writes the start and end width at a polyline vertex.
equal widths: one value, −|width|
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Linetype pattern length
The total length of a linetype's dash pattern.
length = Σ |element length|
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Text direction
The x-axis direction written for a block of text.
x axis = (cos θ, sin θ, 0)
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Block scale
Writes the three scale factors of a block reference in the format's compact form.
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Single-line text
Writes a text's insertion point, height, rotation, width factor and oblique angle.
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Extension record values
Writes the numbers kept in an extension record.
DWG object values written and read dwg/objects-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Block content matrix of a multileader
The 4 × 4 matrix written for a multileader's block content when the model gives none.
M = translate(l) · rotate_z(θ) · scale(s)
DWG object values written and read dwg/mleader-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Line read
Reads a line's two end points.
DWG object values written and read dwg/objects-read.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Polyline vertices read
Reads the vertices of a lightweight polyline.
DWG object values written and read dwg/objects-read.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
North direction of older geolocation data
Turns the north angle of a version 1 geolocation object into a direction vector.
north = (sin a, cos a)
DWG object values written and read dwg/objects-read.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Fit point parameters and knots
The parameter of each fit point along the spline, and the knot vector built from them.
u₀ = 0; uᵢ = uᵢ₋₁ + |Qᵢ − Qᵢ₋₁|; knots = [0,0,0,0, u₁ … uₙ₋₂, L,L,L,L]
Spline through fit points dwg/spline-fit.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
-
Cubic basis functions at a parameter
The four B-spline basis values that weigh the control points at one fit point.
Cox–de Boor recurrence, degree 3
Spline through fit points dwg/spline-fit.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
-
Start condition
The rows that pin the first control point and set the spline's start tangent or a natural start.
P₀ = Q₀; P₁ − P₀ = T₀ × u₄ ÷ 3 or P₀ ÷ u₄ − P₁ (1 ÷ u₄ + 1 ÷ u₅) + P₂ ÷ u₅ = 0
Spline through fit points dwg/spline-fit.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
-
End condition
The rows that pin the last control point and set the spline's end tangent or a natural end.
Pₘ₋₁ = Qₙ₋₁; Pₘ₋₁ − Pₘ₋₂ = T₁ × (L − uₘ₋₁) ÷ 3 or the zero second derivative row
Spline through fit points dwg/spline-fit.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
-
Solve for the control points
Solves the banded system for the x, y and z of every control point.
A · P = B
Spline through fit points dwg/spline-fit.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
-
Lineweight to the file's lineweight index
Picks the stored lineweight that is nearest to the one the layer or object has.
index = the i with the smallest |table[i] − lineweight|
Values changed when a DWG is written dwg/write.jsExact- CadCraft
- ModelCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Ellipse with a ratio above 1
Rewrites an ellipse whose minor axis is longer than its major axis so the file holds a ratio of 1 or less.
major′ = (−m_y, m_x) × ratio; ratio′ = 1 ÷ ratio; start and end − π ÷ 2
Values changed when a DWG is written dwg/write.js64-bit- CadCraft
- ModelCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Ray and construction line direction
Writes the direction of a ray or construction line as a unit vector.
d′ = d ÷ |d|
Values changed when a DWG is written dwg/write.js64-bit- CadCraft
- ModelCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Drawing extents
The lower left and upper right corner of model space written to the file header.
min and max of x, y, z over the defining points
Values changed when a DWG is written dwg/write.js64-bit- CadCraft
- ModelCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Default angles of a light
The hotspot and falloff angles written for a light that has none of its own.
hotspot = π ÷ 4; falloff = π ÷ 4 + 0.0872664626
Values changed when a DWG is written dwg/solid-write.js64-bit- CadCraft
- ModelCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Standard gravity
The acceleration that turns a member's or plate's mass into its own weight.
g = 9.80665 m/s²
Member axes and section properties frame/frame-model.jsExact- CadCraft
- BimCraft
- DetailCraft
-
Member length and local axes
The length of a member and the three unit vectors its forces and section are measured in.
L = |P_j − P_i|; x = (P_j − P_i) ÷ L; z = unit(Z − (Z·x) x); y = z × x; then y and z turned by the roll
Member axes and section properties frame/frame-model.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Zero-length member test
Removes a member whose two ends are at the same place.
|P_j − P_i| < 1e-6 mm
Member axes and section properties frame/frame-model.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Area and second moments of a polygon section
Area, centroid, second moments about the centroid, principal moments and their angle for a section outline with holes.
A = ½ Σ cᵢ; Iyy = (1 ÷ 12) Σ (v₀² + v₀v₁ + v₁²) cᵢ − A c_v²; cᵢ = u₀v₁ − u₁v₀; I₁,₂ = (Iyy + Izz) ÷ 2 ± √(((Iyy − Izz) ÷ 2)² + Iyz²)
Member axes and section properties frame/frame-model.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Torsion constant
The Saint-Venant torsion constant J of a catalog section or of an outline.
I with fillets: J = ⅔ B T³ + ⅓ (D − 2T) t³ + 2 α D₁⁴ − 0.420 T⁴; open: Σ b t³ ÷ 3; tube: 4 Am² t ÷ p; round tube: π (D⁴ − (D − 2t)⁴) ÷ 32
Member axes and section properties frame/frame-model.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Section properties for the analysis
Chooses the area, the two second moments, J and the roll a drawn section is analyzed with.
A = the profile's exact area if given, else the polygon's; Iy, Iz = Iyy, Izz, or I₁, I₂ with roll = the principal angle
Member axes and section properties frame/frame-model.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
A load split onto the member's axes
Turns one point or distributed load in a global or local direction into pieces along the member's own three axes.
piece = load × (direction · local axis); a, b clamped to [0, L]
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Inverse of the released block
Inverts the small stiffness block of a member's released end actions.
Gauss–Jordan with partial pivoting
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Member stiffness with released ends
Removes pinned or sliding end actions from a member's 12 × 12 stiffness.
k_c = k_kk − k_kr · k_rr⁻¹ · k_rk
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Fixed-end loads with released ends
Moves the load a released end cannot carry onto the member's other end actions.
p_c = p_k − k_kr · k_rr⁻¹ · p_r
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Member stiffness in global axes
Turns a member's stiffness from its own axes to the model's.
k_g = Tᵀ · k · T, by 3 × 3 blocks
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Directions nothing stiffens
Finds translations and rotation directions at a node that no member resists, so they can be held instead of stopping the run.
translation: diagonal + spring ≤ 1e-14 × largest diagonal; rotation: eigenvalue ≤ 1e-10 × largest rotational diagonal
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Eigenvalues of a symmetric 3 × 3 matrix
The principal stiffnesses and directions of the rotation block at a node.
cyclic Jacobi rotations; t = sign(θ) ÷ (|θ| + √(θ² + 1))
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Loads of a case or combination
Adds up node forces and member loads of every case in a set, each times its factor, including the members' own weight.
own weight w = −factor × f × ρ × 1e-9 × A × g (N/mm along −Z)
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Member end forces and reactions
The six forces at each end of every member and the forces at the supports, from the solved displacements.
f = k_c · u_local − p_c; reaction = Σ Tᵀ f − loads applied at the node
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
One step of iterative refinement
Solves the leftover out-of-balance once more and adds the correction to the displacements.
r = loads − member forces; x₂ = x + K⁻¹ r, kept if max |r₂| < max |r|
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Sum of the reactions
The total force and moment of all support reactions, for the equilibrium check printed in the report.
ΣF = Σ R; ΣM = Σ (M + r × R) about the global origin
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Sum of the applied loads
The total force and moment of every load of a set about the global origin.
ΣF = Σ F; ΣM = Σ (M + r × F); distributed loads by 4-point Gauss
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Linear combination of results
Adds computed load sets, each times a factor, into one result.
u = Σ fᵢ uᵢ, the same for end forces, reactions, loads and totals
Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Internal forces at a cut
N, Vy, Vz, T, My and Mz at a distance x from the member's start.
S = −(F_i + ∫₀ˣ q); M = −(M_i + r × F_i + Σ r × q)
Forces and deflection along a member frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Deflection along the member
The member's displacement between its ends, from its curvature.
v″ = M_z ÷ (E I_z); w″ = −M_y ÷ (E I_y); u′ = N ÷ (E A); trapezoids, twice
Forces and deflection along a member frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Station values and deflection off the chord
The values kept at each station, and how far the member bows from the straight line between its ends.
rel = √(v_rel² + w_rel²); v_rel = v − v_end × x ÷ L
Forces and deflection along a member frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Largest and smallest values along a member
The maximum and minimum of each internal force, where they occur, and the largest deflection with its span ratio.
max and min over the stations; ratio = L ÷ deflection
Forces and deflection along a member frame/frame-solve.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.