engine, docs: self-contact in nonlinear static steps

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 15:47:17 -04:00
1 parent 85f0905db1
commit 0220e2d8bb
5 files changed
+10 -6

No files matched your search

+1 -1
View File
@@ -103,7 +103,7 @@ the control channel and AI agents over MCP (docs/mcp.md) run the same commands.
| Constraints | Reference Point — A reference point for couplings, loads and boundary conditions | ready | `model.reference_point.create`, `model.reference_point.edit`, `model.reference_point.delete` |
| Constraints | Coupling — Kinematic or distributing coupling of a set to a reference point | ready | `model.coupling.create`, `model.coupling.edit`, `model.coupling.delete` |
| Constraints | Tie — Tie non-matching meshes together (dual mortar constraints) | ready | `interaction.tie`, `interaction.tie.edit`, `interaction.tie.delete` |
| Contact | General Contact — Contact between everything that may touch, or self contact of a surface, with friction (explicit dynamics) | ready | `interaction.contact.general`, `interaction.contact.edit`, `interaction.contact.delete` |
| Contact | General Contact — Contact between everything that may touch, or self contact of a surface, with friction (explicit dynamics and nonlinear static steps) | ready | `interaction.contact.general`, `interaction.contact.edit`, `interaction.contact.delete` |
| Contact | Contact Pair — Contact between two surfaces: with friction in explicit dynamics, mortar contact with friction in nonlinear static steps | ready | `interaction.contact.pair`, `interaction.contact.edit`, `interaction.contact.delete` |
| Contact | Find Contacts — Find the parts of the mesh that touch, and make contact pairs of them | ready | `interaction.contact.find` |
| Contact | Rigid Wall — Rigid walls for explicit dynamics | coming soon (M10) | |
+6 -2
View File
@@ -460,8 +460,12 @@ weighted gap g̃_A = Σ ∫ Φ_A (x_m − x_s)·n dA over the overlaps of its fa
facing them, Φ_A the secondary face's own shape functions; ĝ_A = g̃_A / A_A with A_A = ∫ Φ_A over
the node's faces. The pressure field is interpolated like the displacements, so a uniform
pressure crosses a non-matching interface as the consistent nodal forces of both meshes: the
contact patch test. Linear faces (tri3, quad4: tet4, wedge6, hex8); general contact, quadratic
faces, 2D models and arc-length steps are refused by name.
contact patch test. General (single-surface) contact uses one face list, a set's or every
exterior face of the solids, as both sides: each face against every other one facing it that
shares no node with its element (its neighbours) and that it does not reach through more than
half an element (the far side of a thin wall), paired both ways, so the folds of one body press
on each other symmetrically. Linear faces (tri3, quad4: tet4, wedge6, hex8); quadratic faces, 2D
models and arc-length steps are refused by name.
**Segmentation** (`fieldcraft_fem::mortar`): both faces are projected along the secondary
face's unit normal onto its plane, the main polygon is clipped by the secondary one