opencad
← Machines
MachinePASS 13/13

Disc brake

Rebuild of the COMSOL heat-generation-in-a-disc-brake model with a thermal simulation.

Facts

Backend
build123d
Gates
13 pass, 0 fail, 1 n/a
Envelope
280.0 × 280.0 × 23.0 mm
Bodies
2 (2 modelled)
Joints
1
Simulations
2
Truth case
yes, scored against held-back geometry

Printable part designs

PartGatesFiles
disc
disc-brake-disc
PASS 11/11STEP · STL
pad
disc-brake-pad
PASS 11/11STEP · STL

Assembled machine

FileKindSize
disc-brake.stepSTEP0.1 MB
disc-brake.stlSTL0.2 MB

Source

assembly.yaml (design contract)

Design intent

Rebuild of the COMSOL 6.3 Application Library model "Heat Generation in a Disc Brake" (sources/comsol-brake-disc-packet.md is authoritative; figures 1, 2, 3 and 5 are illustrative) as a machine of two separately designed parts in COMSOL's coordinates converted to millimetres: the half-thickness disc (radius 140, z = 0..13, symmetry plane z = 0) with its radius-80 hub (z = 13..23), rotating about z on a revolute joint driven by the car's panic-braking speed history through the wheel radius, and one pad, the fixed datum, resting on the disc face z = 13. A transient CalculiX thermal analysis (friction_brake source) and the reduced brake_energy budget predict how hot the disc and pad get while an 1,800 kg car brakes from 25 m/s to 5 m/s at 10 m/s2 between t = 2 s and 4 s, and how much they cool by t = 12 s.

Gates

TierGateResultEvidence
Aparts_pass
Every part design passed its own 12 gates and has a handoff STEP
PASSresults/build123d/disc-brake/parts.json designs.<design>.gates_ok: disc-brake-disc=True, disc-brake-pad=True
Abom_complete
Every body of the bill of materials is in the export, once, with a placement
PASSresults/build123d/disc-brake/verify.json solid_count = 2 (expected 2); placements.missing = []; unmatched = []
Ajoint_fidelity
Every joint's child frame lies on its parent frame (axis, offset, rest angle)
PASSresults/build123d/disc-brake/verify.json joints.joints.<joint>.checks; failing: none
Aclearances
Static clearances and seats at rest
PASSresults/build123d/disc-brake/verify.json clearances.<name>; failing: none
Amotion_clear
Every drive moves through its range without interference; gears mesh; ratios match tooth counts
PASSresults/build123d/disc-brake/kinematics.json motions.<name>.max_interference: discRevolution=0
Afluid_domain
Each fluid region is one sealed piece within its volume band and agrees with the source's fluid body
n/aresults/build123d/disc-brake/domains.json fluids.<name>:
Bexport_agreement
Each exported body equals its part handoff x placement; the assembled envelope matches
PASSresults/build123d/disc-brake/verify.json agreement.bodies.<body>.volume_rel/hausdorff_mm; envelope.max_error = 0.0 (tol 0.1)
Bperformance
Every predicted observable meets the requirement the sources state
PASSresults/build123d/disc-brake/simulate.json observables.<id>.requirement: peakDiscTemperature=424.4741869608688
Bconservation
Energy, mass and force balances of every analysis close within their tolerance
PASSresults/build123d/disc-brake/simulate.json simulations.<id>.conservation: brakeThermal.energy_balance=-0.0007835191088104391, brakeEnergy.energy_balance=5.625393155410303e-16
Brefinement
Mesh/time-step refinement changes each prediction by less than its tolerance
PASSresults/build123d/disc-brake/simulate.json simulations.<id>.refinement: brakeThermal change 0.007797014611053177
Csource_hygiene
The assembly source imports only its declared inputs, formats and lints clean
PASSresults/build123d/disc-brake/verify.json hygiene: cad_refs=[] truth_refs=[]; ruff format True, ruff check True
Cboundaries_complete
Every face of a bounded body carries exactly one named boundary
PASSresults/build123d/disc-brake/domains.json boundaries.<body>.unassigned/conflicts: none
Cprovenance
Stage JSONs carry provenance stamps; part handoffs are hash-bound; inputs carry provenance
PASSresults/build123d/disc-brake/<stage>.json provenance present for ['verify', 'kinematics', 'domains', 'simulate']; parts.json designs.<d>.step_sha256 present: True
Cevidence_separation
No worker-visible artefact reads truth; the assembly source only places declared inputs
PASSresults/build123d/disc-brake/verify.json hygiene.truth_refs = []

Bill of materials

BodyKindDesignMaterial
discmodelleddisc-brake-discdisc material of packet Table 1 (iron-like; k 82 W/(m K), Cp 449 J/(kg K), emissivity 0.28)
padmodelleddisc-brake-padpad friction material of packet Table 1 (k 8.7 W/(m K), Cp 935 J/(kg K), emissivity 0.8)