The end-to-end demo met a raw-CDT sliver that the validity gate accepted (exactly positive) and the solver refused. Now: - One validity criterion, `fieldcraft_model::admissible_jacobian` (normalized Jacobian above 1e-12), used by the implicit solver (fem `positive_inverse`), the explicit tet4/hex8 kinematics and the mesh gate, which proves it on the whole element (tet4: the solvers' own Jacobian; curved kinds: a Bernstein floor), so whatever passes the gate passes the solvers. - CDT rounding repaired by flips on the rounded mesh (Diazzi et al. 2023 §5.1) instead of the ±2-ulp nudge. - `fieldcraft-mesh::tet`: a mutable tetrahedral complex whose every change is a checked replacement (positive and admissible tetrahedra, faces matched with opposite orientation) with an exact undo log; edge removal (Klincsek), multi-face removal, Delaunay insertion with boundary faces, edge collapse; a curvature- and thickness-graded size field; constrained Delaunay refinement with encroachment splits; ODT smoothing; the Klingner–Shewchuk schedule; boundary vertices moved onto the exact B-rep surfaces at the end; tet10 with mid-edge nodes on the geometry. - `mesh.tet.generate` gains size, order, quality, quality_target, curvature_angle, grading, max_passes, max_points and reports the CDT's and the mesh's quality; `solve.probe` takes a set and reports its largest von Mises stress. - Oracle cases filleted-bracket-fillet-stress(-coarse): the fillet's peak von Mises stress on tet10 meshes of 2k and 13.5k elements, 213.3 MPa (a four-level study stays within 1.8%); the CDT cases keep the raw tetrahedralization. - Corpus quality columns: all 20 valid parts mesh and pass the gate. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm
891 B
Filleted L-bracket: peak stress on the fillet (fine mesh)
The corpus part filleted-bracket (an 8 mm L-bracket with an R6 inside fillet and a hole through
each leg), built with SolidCraft from design.json. The foot face F2:side:l1 is clamped and a
2 kN load in +x acts on the top face F2:side:l5 (steel, E = 210 GPa, ν = 0.3). The leg bends
about its root, where the fillet concentrates the stress; beam theory gives about 197 MPa nominal
at the root (6FL/(bt²) with L = 42 mm, b = 40 mm, t = 8 mm).
mesh.tet.generate makes a quality tet10 mesh (size 5.66 mm, 31.8° per element along curved
faces), with the boundary and mid-edge nodes on the exact fillet cylinder. The peak nodal von
Mises stress on the fillet over a four-level study (sizes 16, 11.3, 8, 5.66 mm with 90°, 64°,
45°, 32°): 213.3, 210.6, 214.3, 213.3 MPa. The coarse and the fine level are the two cases.