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

  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Volume of a closed mesh

    The volume enclosed by a triangle mesh.

    V = Σ a · (b × c) ÷ 6

    Generative design by topology optimization topopt.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Unit vector

    Scales a vector to length 1.

    a ÷ |a|

    Vectors, plane frames and transforms vec.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Matrix applied to a point

    Transforms a point by a 4 × 4 matrix.

    p′ = M₃ₓ₃ p + t

    Vectors, plane frames and transforms vec.js
    • PartCraft
    64-bit
  • Matrix product

    Multiplies two 4 × 4 matrices.

    C = A B

    Vectors, plane frames and transforms vec.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Triangle buffer for drawing

    Copies the part's mesh into the vertex buffer the GPU draws.

    3D view of the part view3d.js
    • PartCraft
    32-bit, display only
  • Result colors on the part

    Spreads per-vertex or per-corner result colors onto the drawn triangles.

    3D view of the part view3d.js
    • PartCraft
    32-bit, display only
  • What is under the pointer

    Finds the face, edge or plane under the pointer.

    3D view of the part view3d.js
    • PartCraft
    32-bit, display only
  • 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.js
    • PartCraft
    64-bit
  • Bounding box of the mesh

    The smallest box around the part's surface triangles.

    Voxel grid of a part voxel.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.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.