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
-
Structural load of a temperature rise
Adds every element's thermal load into the nodal force vector of a thermal-stress study.
f = Σₑ ∫ Bᵀ D ε_th dV
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Boundary conditions and area scale
Converts the study's heat inputs to solver units and scales them for the difference between true and meshed face area.
scale = true face area ÷ meshed area (1 when either is 0)
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Minimum and maximum temperature, maximum flux
The lowest and highest temperature with their locations, and the largest heat flux in W/m².
max flux in W/m² = max |q| ÷ 10⁻⁶
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Material values in solver units
Conductivity and volumetric heat capacity of the material in the solver's units.
k × 10⁻³; ρc = density × cp × 10⁻⁹
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Volume and mass of a voxel thermal study
The meshed volume and the mass shown in the study summary.
mass in kg = volume (mm³) × density (kg/m³) × 10⁻⁹
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Thread diameters
The major, minor and pitch diameter and the thread depth of a size.
ISO: depth = 5√3 ÷ 16 × P, d₁ = d − 2 × depth, d₂ = d − 0.649519 P; trapezoidal: depth = P ÷ 2, d₂ = d − P ÷ 2
Thread dimensions and modeled threads threads.js64-bit- PartCraft
-
Size that fits a round face
Chooses the thread size nearest a shaft's or a bore's diameter.
shaft: nearest d; bore: nearest (d₁ + d₂) ÷ 2; accepted when the difference ≤ 0.12 × the face diameter
Thread dimensions and modeled threads threads.js64-bit- PartCraft
-
Profile corners over one pitch
The crest, flank and root corners of the thread profile as axial position and radius.
ISO: crest P ÷ 8, root P ÷ 4; trapezoidal: crest = root = P (0.5 − tan(π ÷ 12) ÷ 2); flank = (P − crest − root) ÷ 2
Thread dimensions and modeled threads threads.js64-bit- PartCraft
-
Profile radius at an axial position
The radius of the thread profile at any position along the axis.
r = r₀ + (r₁ − r₀)(w − u₀) ÷ (u₁ − u₀), w = u mod P
Thread dimensions and modeled threads threads.js64-bit- PartCraft
-
Cross-section of a modeled thread
The polygon cut square to the axis whose twisted extrusion is the thread.
point = (r cos θ, r sin θ), r = profile(∓P θ ÷ 2π)
Thread dimensions and modeled threads threads.js64-bit- PartCraft
-
Helical solid
The thread's solid shape from the cross-section.
turns = h ÷ P; slices = ceil(turns × max(24, segments)); twist = 360° × turns
Thread dimensions and modeled threads threads.js64-bit- PartCraft
-
Cutting tool of a modeled thread
The solid that is cut from a shaft or a bore to leave the thread, with its clearance.
profile shifted by ∓clearance; start moved back by ceil(ext₀ ÷ P) × P
Thread dimensions and modeled threads threads.js64-bit- PartCraft
-
Numbers in the thread callout
Formats the pitch and the thread length written in a drawing's thread note.
text = value rounded to 3 decimals, trailing zeros dropped
Thread dimensions and modeled threads threads.js64-bit- PartCraft
-
Density filter
Averages each element's density with its neighbors within the minimum member size.
x̃ₘ = Σ w xₙ ÷ Σ w, w = r − distance (in elements)
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Element strain energy
uᵀ Kₑ u for every element, the quantity the sensitivities are built from.
s = uₑᵀ Kₑ uₑ
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Stiffness scale, compliance and sensitivities
The stiffness of each element from its density, the compliance of the design and how the compliance changes with each density.
E = E_min + xᵖ (1 − E_min); c = Σ E k uᵀKₑu; ∂c/∂x = −p xᵖ⁻¹ (1 − E_min) k uᵀKₑu
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Threshold projection
Pushes filtered densities toward 0 or 1 when the projection option is on.
x = (tanh βη + tanh β(x̃ − η)) ÷ (tanh βη + tanh β(1 − η)), η = 0.5
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Density update at the target volume
Updates every density and finds the multiplier at which the design's volume meets the target.
x_new = clamp(x √(−∂c ÷ (∂v λ)), x ± move, 0, 1); bisect λ until (l₂ − l₁) ÷ (l₁ + l₂) ≤ 10⁻⁵
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Final compliance and returned densities
The compliance of the final design and the density field handed to the next steps.
c = Σ f·u
Generative design by topology optimization topopt.js32-bit in part- PartCraft
-
How many elements the solid design keeps
The number of densest elements kept so the design holds its optimized volume, and the density of the last one kept.
n = round(Σx), at least the preserved elements; level = density of the n-th densest
Generative design by topology optimization topopt.js32-bit in part- PartCraft
-
Surface level that holds the optimized volume
Finds the density level whose surface encloses the optimized material volume.
target = Σx × h³; 10 bisections of the level between 0.05 and 0.95
Generative design by topology optimization topopt.js32-bit in part- PartCraft
-
Surface vertex in a cell
Places one surface vertex in each grid cell the surface passes through.
t = (vₐ − iso) ÷ (vₐ − v_c), kept in [0.1, 0.9]; vertex = mean of the edge crossings
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Smoothed surface mesh and its volume
Smooths the surface, restores its volume, and returns the mesh with its volume.
Generative design by topology optimization topopt.js32-bit in part- PartCraft
-
Surface smoothing
Smooths the surface mesh without shrinking it as much as plain averaging would.
p ← p + f (mean of neighbors − p), f alternating 0.5 and −0.53
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Volume restored after smoothing
Moves every vertex along its normal by one distance so the mesh volume is the voxel volume again.
d = (V₀ − V) ÷ area, three steps
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Volume of a closed mesh
The volume enclosed by a triangle mesh.
V = Σ a · (b × c) ÷ 6
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Check of the solid design
The mass, volume, largest stress and displacement and the safety factor of the kept elements, solved again with the real material.
volume = elements × h³; mass in kg = volume × ρ (t/mm³) × 1000; safety = yield ÷ max von Mises
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Compliance for another material
Rescales the compliance of a shape when an outcome uses a different material.
c = c₀ × E₀ ÷ E
Generative design by topology optimization topopt.js64-bit- PartCraft
-
Unit vector
Scales a vector to length 1.
a ÷ |a|
Vectors, plane frames and transforms vec.js64-bit- PartCraft
-
Frame of a plane
The origin and the x, y and normal axes given to a sketch plane.
o = (p·n) n; x = Y × n (or world X made square to n when |n_y| > 0.9); y = n × x
Vectors, plane frames and transforms vec.js64-bit- PartCraft
-
Sketch point to model space
The 3D position of a sketch point (u, v) on its plane.
p = o + u x + v y
Vectors, plane frames and transforms vec.js64-bit- PartCraft
-
Model point to sketch coordinates
The sketch coordinates of a 3D point on a plane.
u = (p − o)·x; v = (p − o)·y
Vectors, plane frames and transforms vec.js64-bit- PartCraft
-
Rotation about an axis
The matrix that turns geometry by an angle about an axis through a point.
R = c I + s [d]× + (1 − c) d dᵀ, c = cos a, s = sin a, a = deg × π ÷ 180; translation = p − R p
Vectors, plane frames and transforms vec.js64-bit- PartCraft
-
Reflection in a plane
The matrix that mirrors geometry in a plane.
M = I − 2 n nᵀ; translation = 2 (o·n) n
Vectors, plane frames and transforms vec.js64-bit- PartCraft
-
Matrix applied to a point
Transforms a point by a 4 × 4 matrix.
p′ = M₃ₓ₃ p + t
Vectors, plane frames and transforms vec.js64-bit- PartCraft
-
Matrix product
Multiplies two 4 × 4 matrices.
C = A B
Vectors, plane frames and transforms vec.js64-bit- PartCraft
-
Small linear system
Solves A x = b for a small dense system.
Gaussian elimination with partial pivoting, then back substitution
Vectors, plane frames and transforms vec.js64-bit- PartCraft
-
Number shown with up to four decimals
Formats a length or number for display.
text = value rounded to dp decimals (4 by default); |value| < 10⁻⁹ shown as 0
Vectors, plane frames and transforms vec.js64-bit- PartCraft
-
Triangle buffer for drawing
Copies the part's mesh into the vertex buffer the GPU draws.
3D view of the part view3d.js32-bit, display only- PartCraft
-
Result colors on the part
Spreads per-vertex or per-corner result colors onto the drawn triangles.
3D view of the part view3d.js32-bit, display only- PartCraft
-
What is under the pointer
Finds the face, edge or plane under the pointer.
3D view of the part view3d.js32-bit, display only- PartCraft
-
Grid size and origin
The number of cubes along each axis and where the grid starts.
n = max(1, ceil(size ÷ h − 10⁻⁶)); origin = box center − n h ÷ 2
Voxel grid of a part voxel.js64-bit- PartCraft
-
Bounding box of the mesh
The smallest box around the part's surface triangles.
Voxel grid of a part voxel.js64-bit- PartCraft
-
Study size estimate
The rough element count, node count and memory shown before a voxel study is meshed.
elements ≈ round(volume ÷ h³)
Voxel grid of a part voxel.js64-bit- PartCraft
-
Where a row's ray crosses the surface
The x positions at which the ray through a row of cube centers enters and leaves the part.
x = (w₀ xₐ + w₁ x_b + w₂ x_c) ÷ (w₀ + w₁ + w₂), w from the y/z projection
Voxel grid of a part voxel.js64-bit- PartCraft
-
Cubes between two crossings
Marks the cubes of a row whose centers lie between an entry and an exit crossing.
i from ceil((x_in − origin) ÷ h − 0.5) to floor((x_out − origin) ÷ h − 0.5)
Voxel grid of a part voxel.js64-bit- PartCraft
-
Position of a grid node
The coordinates of a grid node from its index.
p = origin + (i, j, k) × h
Voxel grid of a part voxel.js64-bit- PartCraft
-
Distance from a point to a triangle
The squared distance from a grid node or cube center to a surface triangle.
Voxel grid of a part voxel.js64-bit- PartCraft
-
Faces nearest a point
Which of the part's faces a grid node lies on, with each face's normal there.
faces with d² ≤ max(d_min² + (10⁻³ h)², (d_min + 10⁻³ h)²)
Voxel grid of a part voxel.js64-bit- PartCraft
-
Tributary area of surface nodes
The share of a picked face's area carried by each grid node, used to spread loads.
each exposed cube face with all four corners on the picked faces gives h² ÷ 4 to each corner; area = Σ h²
Voxel grid of a part voxel.js64-bit- PartCraft
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.