Rebuild of the COMSOL heat-generation-in-a-disc-brake model with a thermal simulation.
| Part | Gates | Files |
|---|---|---|
| disc disc-brake-disc | PASS 11/11 | STEP · STL |
| pad disc-brake-pad | PASS 11/11 | STEP · STL |
| File | Kind | Size |
|---|---|---|
| disc-brake.step | STEP | 0.1 MB |
| disc-brake.stl | STL | 0.2 MB |
assembly.yaml (design contract)
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.
| Tier | Gate | Result | Evidence |
|---|---|---|---|
| A | parts_pass Every part design passed its own 12 gates and has a handoff STEP | PASS | results/build123d/disc-brake/parts.json designs.<design>.gates_ok: disc-brake-disc=True, disc-brake-pad=True |
| A | bom_complete Every body of the bill of materials is in the export, once, with a placement | PASS | results/build123d/disc-brake/verify.json solid_count = 2 (expected 2); placements.missing = []; unmatched = [] |
| A | joint_fidelity Every joint's child frame lies on its parent frame (axis, offset, rest angle) | PASS | results/build123d/disc-brake/verify.json joints.joints.<joint>.checks; failing: none |
| A | clearances Static clearances and seats at rest | PASS | results/build123d/disc-brake/verify.json clearances.<name>; failing: none |
| A | motion_clear Every drive moves through its range without interference; gears mesh; ratios match tooth counts | PASS | results/build123d/disc-brake/kinematics.json motions.<name>.max_interference: discRevolution=0 |
| A | fluid_domain Each fluid region is one sealed piece within its volume band and agrees with the source's fluid body | n/a | results/build123d/disc-brake/domains.json fluids.<name>: |
| B | export_agreement Each exported body equals its part handoff x placement; the assembled envelope matches | PASS | results/build123d/disc-brake/verify.json agreement.bodies.<body>.volume_rel/hausdorff_mm; envelope.max_error = 0.0 (tol 0.1) |
| B | performance Every predicted observable meets the requirement the sources state | PASS | results/build123d/disc-brake/simulate.json observables.<id>.requirement: peakDiscTemperature=424.4741869608688 |
| B | conservation Energy, mass and force balances of every analysis close within their tolerance | PASS | results/build123d/disc-brake/simulate.json simulations.<id>.conservation: brakeThermal.energy_balance=-0.0007835191088104391, brakeEnergy.energy_balance=5.625393155410303e-16 |
| B | refinement Mesh/time-step refinement changes each prediction by less than its tolerance | PASS | results/build123d/disc-brake/simulate.json simulations.<id>.refinement: brakeThermal change 0.007797014611053177 |
| C | source_hygiene The assembly source imports only its declared inputs, formats and lints clean | PASS | results/build123d/disc-brake/verify.json hygiene: cad_refs=[] truth_refs=[]; ruff format True, ruff check True |
| C | boundaries_complete Every face of a bounded body carries exactly one named boundary | PASS | results/build123d/disc-brake/domains.json boundaries.<body>.unassigned/conflicts: none |
| C | provenance Stage JSONs carry provenance stamps; part handoffs are hash-bound; inputs carry provenance | PASS | results/build123d/disc-brake/<stage>.json provenance present for ['verify', 'kinematics', 'domains', 'simulate']; parts.json designs.<d>.step_sha256 present: True |
| C | evidence_separation No worker-visible artefact reads truth; the assembly source only places declared inputs | PASS | results/build123d/disc-brake/verify.json hygiene.truth_refs = [] |
| Body | Kind | Design | Material |
|---|---|---|---|
| disc | modelled | disc-brake-disc | disc material of packet Table 1 (iron-like; k 82 W/(m K), Cp 449 J/(kg K), emissivity 0.28) |
| pad | modelled | disc-brake-pad | pad friction material of packet Table 1 (k 8.7 W/(m K), Cp 935 J/(kg K), emissivity 0.8) |