forked from 1b-agent/fieldcraft-upstream
* mesh: one transfinite interpolation for mapped hex and mesh.block; stable oracle report mesh.block's lattice is now built from the structured hex mesher's transfinite code: faces by quad::transfinite_grid, the interior by the new quad::transfinite_volume (Gordon-Thiel, blended by the block's graded parameters), which hex::mapped now calls too. 2D patches are the transfinite_grid of their sides. Edge curves return their corners exactly. Oracle: a zero-reference quantity (rounding noise) keeps its absolute tolerance as its fixture band, and docs/oracle.md shows such noise and relative errors inside the fixture band as bounds, so the report no longer changes with the order of floating-point operations (it failed the 'docs/oracle.md is current' check on main after #50). Scordelis-Lo moved by 1.4e-9 relative (an ill-conditioned thin shell of solids: sub-ulp node changes) and is re-blessed. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm * simplify: shared face filling and lattice index; faces blended like the volume; exact ends for every edge quad::transfinite_faces fills a block's six faces (with a per-face hook that hex::mapped uses to project onto its B-rep faces) and quad::lattice_index fixes the lattice layout for all three users. transfinite_grid_blended blends faces by the block's graded parameters, so faces and interior use one parametrisation and mesh.block reproduces its earlier Gordon-Hall lattice (the Scordelis-Lo fixture is back to its blessed value). Straight edges also return their corners exactly. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm --------- Co-authored-by: jyviko <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]>
34 lines
786 B
JSON
34 lines
786 B
JSON
{
|
|
"note": "ModelCraft's accepted results for this case, written by `cargo xtask oracle --bless`. A result outside its band fails CI.",
|
|
"values": {
|
|
"sxx": {
|
|
"band": 1.0000000000000034e-9,
|
|
"value": 1.0000000000000033
|
|
},
|
|
"sxy": {
|
|
"band": 1e-9,
|
|
"value": 5.826462044860843e-16
|
|
},
|
|
"syy": {
|
|
"band": 2.0000000000000026e-9,
|
|
"value": 2.0000000000000027
|
|
},
|
|
"szz": {
|
|
"band": 3.0000000000000025e-9,
|
|
"value": 3.000000000000002
|
|
},
|
|
"ux": {
|
|
"band": 2.500000000000003e-13,
|
|
"value": -0.0002500000000000003
|
|
},
|
|
"uy": {
|
|
"band": 1.000000000000001e-12,
|
|
"value": 0.0010000000000000009
|
|
},
|
|
"uz": {
|
|
"band": 2.2500000000000027e-12,
|
|
"value": 0.0022500000000000024
|
|
}
|
|
}
|
|
}
|