Skip to content

Make 3D mortar normal projection robust to exterior inverse roots #33438

Description

@Andreas-Lepak

Bug Description

The existing 3D mortar normal-projection mapping can map a valid mortar-segment
quadrature point to reference coordinates outside its primary or secondary parent
face. This can terminate an otherwise valid mortar calculation with an error such as:

Quadrature point: (x,y,z)=(0.320121, 1.01915, 0) out of bounds, truncating

For a bilinear QUAD subpatch, the inverse mapping from a physical point to
reference coordinates can have two real roots. The current Newton iteration is
initialized with the mortar-segment reference coordinates, which are not generally
an approximation of the parent-face reference coordinates. Newton can therefore
converge to an exact exterior root even when a unique in-domain root exists.

The current mapping also derives a projection normal from each mortar segment
instead of preserving the exact normal used to construct and clip the corresponding
secondary subpatch. The mapping and clipping operations should use the same
direction by construction.

PR #33368 circumvents the
out-of-bounds symptom by adding an opt-in reference-coordinate interpolation
mapping, but the most common approach in litterature remains the normal projection of quadrature points.

A proposed correction is to:

  • store and reuse the exact subpatch normal supplied during mortar clipping for
    projection to both interface sides;
  • normalize the projected subpatch geometry before inversion;
  • invert projected TRI subpatches directly;
  • find the complete set of roots of the projected bilinear QUAD map and select the
    unique root in the subpatch reference domain;
  • validate the projected Jacobian, inverse residual, and reference-domain bounds;
  • snap only clipping-tolerance-sized boundary violations and recheck the physical
    projection residual after snapping.

Larger bounds violations, singular or folded projected subpatches, ambiguous roots,
and invalid residuals should continue to produce clear errors. The mapping should
not silently discard a quadrature point or fall back to a different mapping method.

Steps to Reproduce

The failure can be reproduced directly in the two-dimensional clipping plane with
the following convex distorted QUAD4:

node 0 = ( 1.1056566107179440, -2.3743618714475840)
node 1 = ( 1.4212556253123650,  1.7157664687565681)
node 2 = (-0.4663591280150303,  1.5483600798486492)
node 3 = ( 0.6300030586204182, -1.2957883472676080)

target = (1.0865728771728467, -2.3242274706887325)
Newton initial guess = (0.1, 0.7)

For the bilinear map

$$ \boldsymbol{x}(\xi,\eta) = \boldsymbol{a} + \boldsymbol{b}\xi + \boldsymbol{c}\eta + \boldsymbol{d}\xi\eta, $$

both of the following are roots to approximately machine precision:

Mapping result $\xi$ $\eta$ Residual norm In parent domain
Current Newton result -1.817299496850416 1.168568117190683 $5.7\times10^{-16}$ No
Feasible inverse root -0.9970323331851894 -0.9181493063418357 $5.5\times10^{-16}$ Yes

Starting from the mortar reference point, the current Newton iteration converges
to the first root. The subsequent parent-domain check reports an out-of-bounds
quadrature point even though the second root is valid.

This case can be used as a focused unit test. A full-path regression should also
construct and clip a distorted 3D mortar interface, then verify projection to both
parent sides using the stored clipping normal.

Impact

This failure can stop 3D mortar contact and continuity calculations on distorted,
nonmatching, or higher-order meshes even when the mortar quadrature point has a
valid projection onto both parent faces. It is especially disruptive for nonlinear
contact calculations because the failure may appear only after deformation changes
the local interface geometry.

Hardening the default normal-projection path would remove this unnecessary failure
mode without changing mortar-segment topology, clipping, triangulation, contact
enforcement, or the public mapping default. The reference-interpolation option from
PR #33368 would remain available as a distinct mapping choice.

[Optional] Diagnostics

The exterior and feasible roots above were evaluated using the same bilinear QUAD
map and physical target. Their residual norms demonstrate that the failure is not
caused merely by a loose Newton stopping tolerance: it is a root-selection problem.

The proposed implementation should also retain tolerance-sized boundary snapping.
In exact arithmetic, clipping with the same projection direction should keep a
retained mortar quadrature point feasible. In floating-point arithmetic, however,
clipping predicates and intersections intentionally use tolerances, so a nominal
boundary point can recover as, for example, $\xi=1+5\times10^{-9}$. Snapping such a
point is appropriate only when the violation is no larger than the clipping
tolerance and the post-snap physical projection residual is still acceptable.

Metadata

Metadata

Assignees

Labels

P: normalA defect affecting operation with a low possibility of significant effects.T: defectAn anomaly, which is anything that deviates from expectations.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions