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.

  • 6,917 calculations in 1,248 source files
  • 143 exact
  • 6,286 in 64-bit
  • 335 with a 32-bit step
  • Last reviewed

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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Mesh volume

    The volume of the linear tetrahedral mesh, kept in its statistics.

    V = Σₑ volume of tet e

    Tetrahedral mesh of a part tetmesh.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Stefan–Boltzmann constant

    The radiation constant in the solver's units, W/(mm²·K⁴).

    σ = 5.670374419 × 10⁻¹⁴

    Heat conduction, steady and transient thermal.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Incomplete Cholesky preconditioner

    Factors the conduction matrix on its own pattern to speed up the temperature solve.

    Heat conduction, steady and transient thermal.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit

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.