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
-
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
-
Fields of each time step on tetrahedra
Copies the stress, displacement and temperature-rise fields of every stored time step to the plot vertices.
Result fields sent to the plot, legend and probe thermal-worker.js32-bit in part- PartCraft
-
Longest edge of a tetrahedron
The length of the longest of an element's six edges.
L = √max((Δx)² + (Δy)² + (Δz)²)
Automatic mesh refinement of tetrahedral studies tetadapt.js64-bit- PartCraft
-
Which elements to refine and to what size
Marks the elements with the largest error and gives each a new target edge length.
ē = (target ÷ 100) √((U + Σe²) ÷ m); h_new = h × clamp((e_K ÷ ē)^(−1/2), 0.5, 0.7)
Automatic mesh refinement of tetrahedral studies tetadapt.js64-bit- PartCraft
-
New boundary vertices onto the exact faces
Moves a vertex created on the boundary onto the true surface of its faces, unless that would damage the elements around it.
accept when every tet keeps volume > 0 and min dihedral ≥ min(10°, before)
Automatic mesh refinement of tetrahedral studies tetadapt.js64-bit- PartCraft
-
Volume of the refined mesh
The volume of the refined linear mesh, kept in its statistics.
V = Σₑ volume of tet e
Automatic mesh refinement of tetrahedral studies tetadapt.js64-bit- PartCraft
-
When the refinement stops
Compares each pass's estimated error with the target and decides whether to refine again.
stop when η ≤ target, or passes used, or elements > limit
Automatic mesh refinement of tetrahedral studies tetadapt.js64-bit- PartCraft
-
Closest point on a triangle
The nearest point of a surface triangle to a given point, and the squared distance.
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Ray against a triangle
Where a ray crosses a surface triangle, used for inside tests, wall thickness and cut points.
t = (e₂·q) ÷ det, det = e₁·(d × e₂)
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Is a point inside the part
Decides whether a point lies inside the closed surface.
inside when most clean rays cross the surface an odd number of times
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Projection onto a face
Moves a point onto a plane, a cylinder, a recorded surface or, failing those, the face's triangles.
plane: p − ((p − o)·n) n; cylinder: axis point + r × radial ÷ |radial|
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Projection onto the meeting of several faces
Moves a point onto the edge or corner where two or three faces meet.
repeat: project onto each face in turn, until the move < 10⁻¹² × diagonal
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Signed volume of a tetrahedron
The volume of one element, positive for the expected vertex order.
V = (u · (v × w)) ÷ 6
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Dihedral angles and aspect ratio of a tetrahedron
The smallest and largest dihedral angle and the aspect ratio of one element.
θ = atan2(1.5 V |e|, −n₁·n₂ ÷ 4); aspect = L_max ÷ (2√6 × r_in), r_in = 3V ÷ ΣA
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Mesh quality summary
The smallest and largest dihedral angle, the worst and mean aspect ratio and a histogram, as shown with the study.
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Element size from surface curvature
Estimates the radius of curvature between neighboring surface triangles of one face and the element size it allows.
angle = acos(n₁·n₂); r ≈ |c₁ − c₂| ÷ angle; size = r × curv
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Element size from wall thickness and gaps
Measures the wall behind and the gap in front of each surface triangle and the element size they allow.
wall: size = distance ÷ thick; gap: size = distance ÷ 1.5
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Background lattice spacing
Chooses the cube size of the background lattice so the part's box is a whole number of cubes where possible.
s = L_min ÷ ceil(L_min ÷ h − 10⁻⁹); per axis: L ÷ n when within 8 % of s
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Longest edge chosen for bisection
Picks the edge of an element that is split, the same way in every element that shares it.
compare round(length² ÷ unit × 10⁷); ties by vertex numbers
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Where a lattice edge crosses the surface
The point on a lattice edge where it leaves the part.
p = a + t (b − a), t from the first ray hit; else 40 bisections of the inside test
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Lattice vertices warped onto the surface
Moves a lattice vertex onto a nearby cut point so no very short edge is created.
warp when fraction of the edge < α (0.24999, 0.41189 or 0.33)
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Closest point on the part's edges
Finds the nearest point on the part's edge polylines, used to snap boundary vertices onto sharp edges.
t = clamp(((p − a)·d) ÷ |d|², 0, 1); distance = √min d²
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Boundary vertices onto exact faces
Moves each boundary vertex onto the true surface of its faces when all of them have an exact record.
move when 10⁻¹² × diagonal ≤ distance ≤ 0.25 h and the tets around keep min dihedral ≥ min(10°, before)
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Mesh volume
The volume of the linear tetrahedral mesh, kept in its statistics.
V = Σₑ volume of tet e
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Interior vertices moved to improve angles
Moves interior vertices of poor elements when that raises the worst dihedral angle around them.
accept a trial position when the worst angle rises by more than 10⁻⁹ degrees
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Jacobian check of a quadratic element
The Jacobian determinant at the four corners and four Gauss points of a 10-node tetrahedron.
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Midside nodes onto the exact surface
Places the middle node of each boundary edge on the true surface so curved faces stay curved.
start at (a + b) ÷ 2; move onto the faces when every Jacobian stays > 0.2 × its straight value
Tetrahedral mesh of a part tetmesh.js64-bit- PartCraft
-
Stefan–Boltzmann constant
The radiation constant in the solver's units, W/(mm²·K⁴).
σ = 5.670374419 × 10⁻¹⁴
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Unit factors from SI
The factors that convert conductivity, flux, film coefficient, heat generation and heat capacity from SI to the solver's millimeter units.
k × 10⁻³; flux and h × 10⁻⁶; generation and ρc × 10⁻⁹
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Unit-cube element matrices
The conduction, capacity and thermal-load matrices of a unit cube, scaled for every voxel element.
K = Σ_g ∇Nₐ·∇N_b ÷ 8; M = Σ_g NₐN_b ÷ 8
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Thermal load of the incompatible-mode element
The share of a thermal load carried by the element's internal bubble modes, and their thermal stress.
f = E α h² (TH ÷ (1 − 2ν) + Aᵀ Fᵢ) ΔT, A = −Kᵢᵢ⁻¹ Kᵢc
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Voxel element routines
Conduction, capacity, heat load, gradient, thermal load, stresses and geometric stiffness of one voxel element.
K = k h K_unit; C = ρc h³ M_unit (lumped: ρc h³ ÷ 8); ∇T = Σ G₀ Tₐ ÷ h
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Area of a boundary quad
The area of a four-node boundary facet.
A = |d₁ × d₂| ÷ 2 (d₁, d₂ the diagonals)
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Volume and facet areas of the voxel mesh
The mesh volume and the area of every exposed voxel face.
volume = elements × h³; facet area = h²
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Incomplete Cholesky preconditioner
Factors the conduction matrix on its own pattern to speed up the temperature solve.
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Conjugate-gradient solve for temperatures
Solves the heat system for the temperature of every free node.
stop when ‖r‖ ÷ ‖b‖ < 10⁻¹⁰
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Heat flux from a power
Turns a total power on picked faces into a flux per unit area.
q = P ÷ A (meshed area); flux input: q × scale
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Radiation as a film coefficient
The equivalent film coefficient of a radiating facet at its current temperature.
h_r = ε σ (T² + T∞²)(T + T∞) × scale, T in kelvin (°C + 273.15)
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Steady solve with radiation
Repeats the temperature solve with updated radiation coefficients until the temperatures settle.
stop when max |T_new − T_old| ≤ 10⁻⁶ K, at most 60 passes
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Transient time stepping
Advances the temperature field in time and stores the frames shown on the time slider.
(C ÷ Δt + θK) T⁺ = (C ÷ Δt − (1 − θ)K) T + f, Δt = t ÷ steps, time of step s = s × Δt
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Heat balance
The heat entering through each boundary condition, generated, stored, and what is left over.
imbalance = inflow − outflow − stored; fixed temperature: Q = (K T)ₙ − other heat into node n
Heat conduction, steady and transient thermal.js64-bit- PartCraft
-
Heat flux
The heat flux of every element, its average at the nodes and the largest element value.
q = −k ∇T; |q| = √(q_x² + q_y² + q_z²)
Heat conduction, steady and transient thermal.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.