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

  • Run to a steady state

    Steps the flow until it stops changing or a limit is reached.

    change = max |u′ − u| ÷ dt

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Velocity at cell centers

    The velocity at the center of each cell.

    u_c = ½(u_left + u_right); v_c = ½(v_bottom + v_top)

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Velocity at a point

    The velocity at any point of the region.

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Stream function

    The stream function at the cell corners.

    ψ(i, j) = ψ(i, j − 1) + U(i, j − 1) × h_y

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • VTK export

    Writes velocity, pressure and tracer fields as a legacy ASCII VTK file.

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Mixing time

    The time at which a tracer's spread falls below a target.

    CV = √(Σ (c − mean)² ÷ n) ÷ mean

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Lattice directions and weights

    The nine directions of the lattice and the weight of each.

    w = 4/9, 1/9 (×4), 1/36 (×4)

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Mixer set-up

    Creates the grid, the solid mask, the force field and the starting distributions.

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Equilibrium distributions

    The equilibrium the flow and the tracer relax toward.

    f_eq = w ρ (1 + 3 c·u + 4.5 (c·u)² − 1.5 u²); g_eq = w C (1 + 3 c·u)

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Collision step

    Density, velocity and tracer value of each cell, and the relaxation of its distributions.

    ρ = Σ f; u = (Σ f c + ½ F) ÷ ρ; f ← f − (f − f_eq) ÷ τ + source

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Outlet condition

    Sets the last column of a flow-through box from its neighbor.

    f_out = f_eq(1, u_nb) + (f_nb − f_eq(ρ_nb, u_nb))

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Velocity at a point

    The velocity reported at a position in the grid.

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Result fields

    A copy of the velocity, speed, density or tracer field for reading or plotting.

    speed = √(u_x² + u_y²)

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Mixing time

    The number of steps until the tracer is evenly spread.

    deviation = max |C − mean|; reached when deviation ≤ level × starting deviation

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Residence time distribution

    The distribution of times a pulse of tracer takes to leave a flow-through box, with its mean, variance and the nominal time.

    E = flux ÷ Σ(flux × Δt); mean = Σ t E Δt; variance = Σ t² E Δt − mean²; nominal = V ÷ Q

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • VTK export

    Writes the velocity and tracer fields as a legacy ASCII VTK file.

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Guard on every written measure

    Decides what is written when a value is missing or not a number.

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Arc angles brought into one turn

    Brings an angle into the range from 0 up to 2π before it is written.

    r = a mod 2π; r + 2π when r < 0

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Arc

    Writes an arc's center, radius and two angles.

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Line

    Writes a line's two end points.

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Polyline vertices

    Writes the vertices of a lightweight polyline.

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Vertex widths

    Writes the start and end width at a polyline vertex.

    equal widths: one value, −|width|

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Linetype pattern length

    The total length of a linetype's dash pattern.

    length = Σ |element length|

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Text direction

    The x-axis direction written for a block of text.

    x axis = (cos θ, sin θ, 0)

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Block scale

    Writes the three scale factors of a block reference in the format's compact form.

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Single-line text

    Writes a text's insertion point, height, rotation, width factor and oblique angle.

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Extension record values

    Writes the numbers kept in an extension record.

    DWG object values written and read dwg/objects-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Block content matrix of a multileader

    The 4 × 4 matrix written for a multileader's block content when the model gives none.

    M = translate(l) · rotate_z(θ) · scale(s)

    DWG object values written and read dwg/mleader-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Line read

    Reads a line's two end points.

    DWG object values written and read dwg/objects-read.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Polyline vertices read

    Reads the vertices of a lightweight polyline.

    DWG object values written and read dwg/objects-read.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • North direction of older geolocation data

    Turns the north angle of a version 1 geolocation object into a direction vector.

    north = (sin a, cos a)

    DWG object values written and read dwg/objects-read.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Fit point parameters and knots

    The parameter of each fit point along the spline, and the knot vector built from them.

    u₀ = 0; uᵢ = uᵢ₋₁ + |Qᵢ − Qᵢ₋₁|; knots = [0,0,0,0, u₁ … uₙ₋₂, L,L,L,L]

    Spline through fit points dwg/spline-fit.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    64-bit
  • Cubic basis functions at a parameter

    The four B-spline basis values that weigh the control points at one fit point.

    Cox–de Boor recurrence, degree 3

    Spline through fit points dwg/spline-fit.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    64-bit
  • Start condition

    The rows that pin the first control point and set the spline's start tangent or a natural start.

    P₀ = Q₀; P₁ − P₀ = T₀ × u₄ ÷ 3 or P₀ ÷ u₄ − P₁ (1 ÷ u₄ + 1 ÷ u₅) + P₂ ÷ u₅ = 0

    Spline through fit points dwg/spline-fit.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    64-bit
  • End condition

    The rows that pin the last control point and set the spline's end tangent or a natural end.

    Pₘ₋₁ = Qₙ₋₁; Pₘ₋₁ − Pₘ₋₂ = T₁ × (L − uₘ₋₁) ÷ 3 or the zero second derivative row

    Spline through fit points dwg/spline-fit.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    64-bit
  • Solve for the control points

    Solves the banded system for the x, y and z of every control point.

    A · P = B

    Spline through fit points dwg/spline-fit.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    64-bit
  • Lineweight to the file's lineweight index

    Picks the stored lineweight that is nearest to the one the layer or object has.

    index = the i with the smallest |table[i] − lineweight|

    Values changed when a DWG is written dwg/write.js
    • CadCraft
    • ModelCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    Exact
  • Ellipse with a ratio above 1

    Rewrites an ellipse whose minor axis is longer than its major axis so the file holds a ratio of 1 or less.

    major′ = (−m_y, m_x) × ratio; ratio′ = 1 ÷ ratio; start and end − π ÷ 2

    Values changed when a DWG is written dwg/write.js
    • CadCraft
    • ModelCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Ray and construction line direction

    Writes the direction of a ray or construction line as a unit vector.

    d′ = d ÷ |d|

    Values changed when a DWG is written dwg/write.js
    • CadCraft
    • ModelCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Drawing extents

    The lower left and upper right corner of model space written to the file header.

    min and max of x, y, z over the defining points

    Values changed when a DWG is written dwg/write.js
    • CadCraft
    • ModelCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Default angles of a light

    The hotspot and falloff angles written for a light that has none of its own.

    hotspot = π ÷ 4; falloff = π ÷ 4 + 0.0872664626

    Values changed when a DWG is written dwg/solid-write.js
    • CadCraft
    • ModelCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Standard gravity

    The acceleration that turns a member's or plate's mass into its own weight.

    g = 9.80665 m/s²

    Member axes and section properties frame/frame-model.js
    • CadCraft
    • BimCraft
    • DetailCraft
    Exact
  • Member length and local axes

    The length of a member and the three unit vectors its forces and section are measured in.

    L = |P_j − P_i|; x = (P_j − P_i) ÷ L; z = unit(Z − (Z·x) x); y = z × x; then y and z turned by the roll

    Member axes and section properties frame/frame-model.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Zero-length member test

    Removes a member whose two ends are at the same place.

    |P_j − P_i| < 1e-6 mm

    Member axes and section properties frame/frame-model.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Area and second moments of a polygon section

    Area, centroid, second moments about the centroid, principal moments and their angle for a section outline with holes.

    A = ½ Σ cᵢ; Iyy = (1 ÷ 12) Σ (v₀² + v₀v₁ + v₁²) cᵢ − A c_v²; cᵢ = u₀v₁ − u₁v₀; I₁,₂ = (Iyy + Izz) ÷ 2 ± √(((Iyy − Izz) ÷ 2)² + Iyz²)

    Member axes and section properties frame/frame-model.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Torsion constant

    The Saint-Venant torsion constant J of a catalog section or of an outline.

    I with fillets: J = ⅔ B T³ + ⅓ (D − 2T) t³ + 2 α D₁⁴ − 0.420 T⁴; open: Σ b t³ ÷ 3; tube: 4 Am² t ÷ p; round tube: π (D⁴ − (D − 2t)⁴) ÷ 32

    Member axes and section properties frame/frame-model.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Section properties for the analysis

    Chooses the area, the two second moments, J and the roll a drawn section is analyzed with.

    A = the profile's exact area if given, else the polygon's; Iy, Iz = Iyy, Izz, or I₁, I₂ with roll = the principal angle

    Member axes and section properties frame/frame-model.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • A load split onto the member's axes

    Turns one point or distributed load in a global or local direction into pieces along the member's own three axes.

    piece = load × (direction · local axis); a, b clamped to [0, L]

    Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Inverse of the released block

    Inverts the small stiffness block of a member's released end actions.

    Gauss–Jordan with partial pivoting

    Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Member stiffness with released ends

    Removes pinned or sliding end actions from a member's 12 × 12 stiffness.

    k_c = k_kk − k_kr · k_rr⁻¹ · k_rk

    Frame analysis: loads, releases, end forces and reactions frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    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.