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
-
Von Mises stress and plastic strain per element
The largest von Mises stress and the largest equivalent plastic strain among each element's Gauss points.
vm_e = max over 4 points of vonMises(σ); α_e = max over 4 points of α
Nonlinear and contact stress study nonlinear.js32-bit in part- PartCraft
-
Reported maximum stress, displacement and safety factor
The peak von Mises stress and where it is, the peak displacement, and the smallest safety factor against yield.
max σ_vm = largest element value; max |u| = largest nodal √(u_x² + u_y² + u_z²); safety = yield ÷ max σ_vm
Nonlinear and contact stress study nl-worker.js32-bit in part- PartCraft
-
Support reactions
The total force the supports carry, overall and per support group.
R = Σ over constrained nodes of (f_int − f_applied)
Nonlinear and contact stress study nl-worker.js64-bit- PartCraft
-
Element values averaged to nodes
The nodal stress and plastic strain fields the plot colors by.
node value = mean of the values of the elements that share the node
Nonlinear and contact stress study nl-worker.js64-bit- PartCraft
-
Separating the pieces of a part
Splits a part's surface mesh into its connected pieces so each can be meshed on its own for a contact study.
vertices are the same when round(x × 10⁴), round(y × 10⁴), round(z × 10⁴) agree
Nonlinear and contact stress study nl-worker.js32-bit in part- PartCraft
-
Density unit for the solver
Converts the material's density from kg/m³ to the solver's tonnes per mm³.
ρ_t/mm³ = ρ_kg/m³ × 1e-12
Nonlinear and contact stress study nl-worker.js64-bit- PartCraft
-
Von Mises stress from CalculiX results
The von Mises stress at each node from the six stress components of a results file.
σ_vm = √(½((a − b)² + (b − c)² + (c − a)²) + 3(d² + e² + f²))
Nonlinear and contact stress study nl-worker.js64-bit- PartCraft
-
Density unit change
Converts a material's density from kg/m³ to tonnes/mm³, the unit the solver uses.
ρ (t/mm³) = ρ (kg/m³) × 1e-12
Contact and magnet study results phys-worker.js64-bit- PartCraft
-
Element values averaged to nodes
Gives each node the mean of the values of the elements that share it.
value at a node = Σ element values ÷ number of elements at the node
Contact and magnet study results phys-worker.js64-bit- PartCraft
-
Maximum stress, plastic strain and displacement
The maxima the study reports, and where they occur.
|u| = √(u_x² + u_y² + u_z²); maximum over the elements (stress, plastic strain) and over the nodes (displacement)
Contact and magnet study results phys-worker.js64-bit- PartCraft
-
Per-vertex result arrays
Copies the nodal stress, plastic strain, displacement size and displacement vector to the vertices of the plot mesh.
Contact and magnet study results phys-worker.js32-bit in part- PartCraft
-
Placing a part's mesh in the assembly
Moves each mesh node of a placed part to the assembly frame with the instance's 4 × 4 matrix.
x′ = M · (x, y, z, 1)
Contact and magnet study results phys-worker.js64-bit- PartCraft
-
Contact penalty stiffness
Chooses the stiffness of the contact springs for each pair of touching faces when none is given.
k_n = autoPenalty(min(E_slave, E_master), h_min, factor); factor = 100 (frictionless) or 1000 (bonded)
Contact and magnet study results phys-worker.js64-bit- PartCraft
-
Total contact force and peak pressure
Adds the force at every contact point and finds the highest contact pressure.
F = Σ forceᵢ; p_max = max pressureᵢ
Contact and magnet study results phys-worker.js64-bit- PartCraft
-
Maximum flux density, forces and region areas
The largest flux density of a magnet study and where it is, the force on each requested body, and the area of each region.
B_max = max over the elements of |B|; region area = Σ element areas
Contact and magnet study results phys-worker.js64-bit- PartCraft
-
Flux density and potential fields
The flux density of every element and the magnetic vector potential of every node, as returned to the page.
Contact and magnet study results phys-worker.js32-bit in part- PartCraft
-
Maxima from a results file read back
The largest displacement and von Mises stress in a CalculiX results file read back onto the study's mesh.
σ_vm = √(½·((a − b)² + (b − c)² + (c − a)²) + 3·(d² + e² + f²)); |u| = √(u_x² + u_y² + u_z²)
Contact and magnet study results phys-worker.js64-bit- PartCraft
-
Automatic element size
A tidy element size that gives about the target number of elements for a solid of a given volume.
raw = ∛(volume ÷ target); size = next step ≥ raw among 1, 1.25, 1.5, 2, 2.5, 3, 4, 5, 6, 8 × 10ⁿ
Study set-up: element size and the mesh handed to the solver sim.js64-bit- PartCraft
-
Estimated element count
The element size a study will use and the number of elements that size is expected to give.
estimate = round(volume ÷ h³) (× 12 for tetrahedra)
Study set-up: element size and the mesh handed to the solver sim.js64-bit- PartCraft
-
Mesh copy for the solver
Copies the body's triangle mesh for the worker that meshes and solves the study.
Study set-up: element size and the mesh handed to the solver sim.js32-bit in part- PartCraft
-
Design box and size of a generative study
The design space of a generative study (the body's box grown by a margin), its volume, element size and estimated element count.
box = bbox ± margin; volume = Δx × Δy × Δz (box) or the body's volume; estimate = round(volume ÷ h³)
Study set-up: element size and the mesh handed to the solver sim.js64-bit- PartCraft
-
Sketch plane from the file
Reads a sketch plane's origin, normal and x direction and checks that x lies in the plane.
|x̂ · n̂| ≤ 1e-6
Import of a parametric export file swimport.js64-bit- PartCraft
-
Sketch points into the part's plane
Builds the file's sketch frame and maps each sketch point into the frame of the plane the sketch is put on.
x = unit(x − n·(x · n)); y = n × x; (u, v) → world = o + u·x + v·y → plane = ((w − o′) · x′, (w − o′) · y′)
Import of a parametric export file swimport.js64-bit- PartCraft
-
Distance from a point to a segment
The distance from a position to a straight piece of an edge.
t = clamp((p − a) · (b − a) ÷ |b − a|², 0, 1); d = |p − (a + t·(b − a))|
Import of a parametric export file swimport.js64-bit- PartCraft
-
Nearest edge to a stored position
Finds which edge of the part built so far a fillet or chamfer in the file refers to, and how far the stored position is from it.
minimum over the edge polyline segments of the point-to-segment distance
Import of a parametric export file swimport.js32-bit in part- PartCraft
-
Distance from a point to a triangle
The distance from a position to one display triangle of a face.
inside the triangle: |(p − a) · n̂|; else the least distance to its three sides
Import of a parametric export file swimport.js64-bit- PartCraft
-
Nearest face to a stored position
Finds which face of the part built so far a feature in the file refers to.
minimum over the display triangles of the point-to-triangle distance
Import of a parametric export file swimport.js32-bit in part- PartCraft
-
Flat face lying in a sketch's plane
Looks for a named flat face of the part in the plane a sketch was drawn on, so the sketch can follow that face.
| |n_face · n| − 1 | < 1e-9 and |(o − o_face) · n_face| < 1e-7 × max(1, |o|)
Import of a parametric export file swimport.js64-bit- PartCraft
-
Base plane and world axis tests
Decides whether a plane is one of the three base planes.
| |n̂ · n_base| − 1 | < 1e-9 and |o · n_base| < 1e-9 × max(1, |o|)
Import of a parametric export file swimport.js64-bit- PartCraft
-
Dimension turned into a parameter
Gives a dimension that other equations use a parameter of its own, holding its value.
expression text = formatNumber(value) (12 significant digits, expr.js)
Import of a parametric export file swimport.js64-bit- PartCraft
-
Equation result against the stored value
Warns when an imported equation would give a different number from the value the file holds.
|v − held| > 1e-6 × max(1, |held|)
Import of a parametric export file swimport.js64-bit- PartCraft
-
Volume check
Compares the volume of the rebuilt part with the volume recorded in the file.
same when |V − V_file| ≤ 1e-4 × max(1, V_file)
Import of a parametric export file swimport.js64-bit- PartCraft
-
Principal stresses
The largest, middle and smallest principal stress of a stress state.
s₁ = m + 2q cos φ, s₃ = m + 2q cos(φ + 2π ÷ 3), s₂ = 3m − s₁ − s₃; φ = acos(det ÷ 2q³) ÷ 3
Stress, displacement and error results on tetrahedra tetfea.js64-bit- PartCraft
-
Equivalent strain
The von Mises equivalent strain from the six engineering strains.
ε_eq = √(⅔ (a² + b² + c² + (γ_xy² + γ_yz² + γ_zx²) ÷ 2)), a, b, c = normal strains − mean
Stress, displacement and error results on tetrahedra tetfea.js64-bit- PartCraft
-
Gauss points to corners
The value at an element corner of the linear field that passes through the four Gauss-point values.
cᵢ = (gᵢ − 0.1381966… × Σg) ÷ (0.5854101… − 0.1381966…)
Stress, displacement and error results on tetrahedra tetfea.js64-bit- PartCraft
-
Largest von Mises stress in an element
The unaveraged maximum von Mises stress of each element and the largest over the mesh.
max over the 4 Gauss points and the 4 extrapolated corners
Stress, displacement and error results on tetrahedra tetfea.js64-bit- PartCraft
-
Nodal stress, strain and displacement, and their maxima
The values the plot colors by and the maxima the result reports.
σ at a node = mean over its elements; |u| = √(u_x² + u_y² + u_z²); maximum over the nodes
Stress, displacement and error results on tetrahedra tetfea.js32-bit in part- PartCraft
-
Error indicator per element
How far the averaged stress field is from each element's own stresses, in the energy norm.
e_K² = ∫ (σ* − σₕ)ᵀ C⁻¹ (σ* − σₕ) dV; U = ∫ σₕᵀ C⁻¹ σₕ dV
Stress, displacement and error results on tetrahedra tetfea.js64-bit- PartCraft
-
Support reactions
The total reaction force and the reaction of each support group.
r = K u − f at the supported nodes, kept along the supported directions; R = Σ r
Stress, displacement and error results on tetrahedra tetfea.js64-bit- PartCraft
-
Reported maxima, safety factor and error percentage
The numbers the study result states: error percentage, maximum stress and displacement, principal stress range and minimum safety factor.
η = 100 √(Σe² ÷ (U + Σe²)); safety = yield ÷ maximum von Mises
Stress, displacement and error results on tetrahedra tetfea.js32-bit in part- PartCraft
-
Error estimate of several fields
Combines the error indicators of mode shapes, or of a buckling pre-stress and its modes, into one estimate.
e_K² = Σ_f e_K,f² ÷ U_f; η = 100 √(Σe² ÷ (n + Σe²))
Stress, displacement and error results on tetrahedra tetfea.js64-bit- PartCraft
-
Mesh volume and mass
The volume and mass of the meshed part shown with the study.
volume = Σₑ Σₚ wₚ det Jₚ; mass in kg = volume × ρ (t/mm³) × 1000
Stress, displacement and error results on tetrahedra tetfea.js64-bit- PartCraft
-
Error estimate of a heat solution
The estimated error of a steady temperature solution, per element and as a percentage.
e_K² = ∫ (q* − qₕ)·(q* − qₕ) ÷ k dV; η = 100 √(Σe² ÷ (U + Σe²))
Stress, displacement and error results on tetrahedra tet-elements.js64-bit- PartCraft
-
Nodal values onto plot vertices
Copies a solved nodal field (stress, displacement, temperature, strain) to the vertices of the plot mesh.
Result fields sent to the plot, legend and probe tet-worker.js32-bit in part- PartCraft
-
Heat flux size per vertex
The heat flux magnitude in W/m² at each plot vertex.
q = flux × 10⁶; |q| = √(q_x² + q_y² + q_z²)
Result fields sent to the plot, legend and probe tet-worker.js32-bit in part- PartCraft
-
Mode shape per vertex
A vibration or buckling mode shape scaled so its largest displacement is 1.
shape = u ÷ max |u|
Result fields sent to the plot, legend and probe tet-worker.js32-bit in part- PartCraft
-
Plot mesh of the tetrahedral model
The surface of the tetrahedral mesh as triangles for the result view, each boundary face split in four through its midside nodes.
Result fields sent to the plot, legend and probe tet-worker.js32-bit in part- PartCraft
-
Grid field sampled at plot vertices
Samples a voxel-grid result (temperature, flux, temperature rise, mode shape) at each vertex of the plot mesh.
Result fields sent to the plot, legend and probe thermal-worker.js32-bit in part- PartCraft
-
Heat flux size per vertex on a voxel mesh
The heat flux magnitude in W/m² at each plot vertex of a voxel study.
q = flux × 10⁶; |q| = √(q_x² + q_y² + q_z²)
Result fields sent to the plot, legend and probe thermal-worker.js32-bit in part- PartCraft
-
Buckling mode shape on a voxel mesh
A buckling mode shape sampled on the plot mesh and scaled to a largest displacement of 1.
shape = u ÷ max |u|
Result fields sent to the plot, legend and probe thermal-worker.js32-bit in part- 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.