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.
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:
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:
projection to both interface sides;
unique root in the subpatch reference domain;
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:
For the bilinear map
both of the following are roots to approximately machine precision:
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.$\xi=1+5\times10^{-9}$ . Snapping such a
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,
point is appropriate only when the violation is no larger than the clipping
tolerance and the post-snap physical projection residual is still acceptable.