Engine: mesh.mirror reflects meshed bodies across a plane

The bodies' elements are reflected across a datum plane (or a point and
normal) with fieldcraft_mesh::mirror and joined on it. The image is tagged as
the design's body at the reflected place (found by volume and centroid, or
named in `as`), its faces with that body's faces under them, so sets by face
name reach both halves. Half a bar meshed hex8 or hex20 and mirrored has the
whole bar's node and element counts and volume, and its bending deflection to
1e-12; tet4 and tet10 mirror valid and conforming.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
jyvikoandClaude Opus 5.5 authored and Irakli Kourtis committed 2026-10-14 20:00:59 -04:00
1 parent 9fc8e27933
commit 0f99a1c687
6 files changed
+387 -3

No files matched your search

+6
View File
@@ -710,6 +710,12 @@ pub const CELLS: &[Field] = &[
TOLERANCE,
];
pub const MIRROR: &[Field] = &[
json("plane", "Plane").req().hint(r#""Datum" or {"point": [x, y, z], "normal": [nx, ny, nz]}"#),
references("bodies", "Bodies", C::Body).hint("every meshed body"),
json("as", "Images").hint(r#"{"body": "image body"}; default: the design's body at the reflected place"#),
];
pub const HEX_OCTREE: &[Field] = &[
BODY,
SURFACE,