In this section, we will describe our contact algorithm between two elastic bodies which occupy the domain \(\Omega ^1\) and \(\Omega ^2\), respectively. The domains will be described implicitly using two level set functions. We begin our problem definition in the continuous setting in this subsection, before we describe its discretization of the domains and the definition of the discretization of the unknowns in the next subsection.

We assume that each elastic body is only undergoing small deformations and that they interact through frictionless unilateral contact. A contact problem between more than two bodies is possible in our framework and a contact algorithm for a larger number of solids has been introduced in [12]. However, in this contribution, we restrict ourselves to the contact problem between two bodies (see Fig. 1). Let \(\Omega ^b\) denote our total domain which contains our two elastic bodies. Let \(\phi ^1:\Omega ^b \rightarrow {\mathbb {R}}\) and \(\phi ^2:\Omega ^b \rightarrow {\mathbb {R}}\) be the two level set functions that describe the geometry of body 1 and the geometry of body 2, respectively. We then define two domains \(\Omega ^1\) and \(\Omega ^2\) by

$$\begin{aligned} \begin{aligned} \Omega ^1&:= \{ x \in \Omega ^b \, | \, \phi ^1(x) \le 0 \ \text {and} \ \phi ^2(x) > 0 \},\\ \Omega ^2&:= \{ x \in \Omega ^b \, | \, \phi ^2(x) \le 0 \}. \end{aligned} \end{aligned}$$

(1)

The contact interface \(\Gamma ^c\) between the two solids, which is assumed to be of non-zero measure, is defined as

$$\begin{aligned} \Gamma ^c = \{ x \in \Omega ^b \, | \, \phi ^2(x)=0 \ \text {and} \ \phi ^1(x) \le 0 \}. \end{aligned}$$

(2)

Furthermore, let \(\partial \Omega ^i\) denote the boundary of \(\Omega ^i\), \(i=1,2\) and \(\partial \Omega := (\partial \Omega ^1 \cup \partial \Omega ^2) \backslash \Gamma ^c\) the boundary of domain \(\Omega ^1\) and \(\Omega ^2\) without \(\Gamma ^c\). We further partition the boundary \(\partial \Omega \) into a Neumann part \(\partial \Omega ^t\) and a Dirichlet part \(\partial \Omega ^u\) with \( \partial \Omega ^t \cap \partial \Omega ^u = \emptyset \).

The problem of unilateral contact can be formulated as an optimisation problem under inequality constraints. We look for displacement field \({ \underline{u} }:= \{ { \underline{u} }^1, { \underline{u} }^2\}:\Omega ^1 \times \Omega ^2 \rightarrow {\mathbb {R}}^d \times {\mathbb {R}}^d\) that minimises the potential energy

$$\begin{aligned} {\mathcal {J}}({ \underline{u} }) := \frac{1}{2} a({ \underline{u} },{ \underline{u} }) - l({ \underline{u} }) \end{aligned}$$

(3)

under inequality constraints

$$\begin{aligned} \llbracket { \underline{u} }\rrbracket \cdot { \underline{n} }_\Gamma \le 0 \qquad \text { on } \Gamma ^c \end{aligned}$$

(4)

and Dirichlet boundary conditions

$$\begin{aligned} { \underline{u} }= { \underline{u} }_d \qquad \text {on} \ \partial \Omega ^u. \end{aligned}$$

(5)

Here, \(d=\{2,3\}\) is the spatial dimension, \({ \underline{n} }_{\Gamma }\) denotes the normal on \(\Gamma ^c\) pointing from \(\Omega ^1\) to \(\Omega ^2\), \(u_d\) is a known prescribed displacement and \({\llbracket { \underline{u} }\rrbracket } = { \underline{u} }^1 - { \underline{u} }^2\) denotes the jump of \({ \underline{u} }\) across the contact interface \(\Gamma _c\). The inequality constraint (4) enforces a zero interpenetration between the domains \(\Omega ^1\) and \(\Omega ^2\). In the previous expression, the bilinear form *a* is defined as

$$\begin{aligned} \begin{aligned} a({ \underline{u} },\delta { \underline{u} }) = a^1({ \underline{u} }^1,\delta { \underline{u} }^1) + a^2({ \underline{u} }^2,\delta { \underline{u} }^2) = \sum _{i=1}^2 \int _{ \Omega ^i } { \underline{\underline{\sigma }} }({ \underline{u} }^i) : { \underline{\underline{\epsilon }} }(\delta { \underline{u} }^i) \, d{ \Omega }\end{aligned} \end{aligned}$$

(6)

where \({ \underline{\underline{\sigma }} }({ \underline{u} }^i) = \lambda ^i \, \text {tr}({ \underline{\underline{\epsilon }} }({ \underline{u} }^i))\, \pmb {I} + 2 \, \mu _i \,{ \underline{\underline{\epsilon }} }({ \underline{u} }^i) \) is the Cauchy-stress tensor, \({ \underline{\underline{\epsilon }} }({ \underline{u} }^i) = \frac{1}{2} \left( \nabla { \underline{u} }^i + (\nabla { \underline{u} }^i)^T\right) \) is the strain tensor, \(\lambda ^i\) and \(\mu ^i\) are the two Lamé coefficients, i.e. \( \lambda ^i = \frac{E^i \nu ^i}{(1 + \nu ^i)(1 - 2 \nu ^i)} \), \(\mu ^i = \frac{E^i}{2(1 + \nu ^i)}\), with Young’s modulus \(E^i\) and Poisson’s ratio \(\nu ^i\), \(i=1,2\). The linear form *l* is defined as

$$\begin{aligned} \begin{aligned} l(\delta { \underline{u} }) = \displaystyle l^1(\delta { \underline{u} }^1) + l^2(\delta { \underline{u} }^2) = \sum _{i=1}^2 \int _{\Omega ^i} \underline{f} \cdot \delta { \underline{u} }^i \, d\Omega + \sum _{i=1}^2 \int _{\partial \Omega ^t \cap \partial \Omega ^i} \underline{t}_d \cdot \delta { \underline{u} }^i \, d\Gamma \end{aligned} \end{aligned}$$

(7)

In the following, we set the Poisson’s ratios to \(\nu ^1=\nu ^2=0.3\). Here, \(\underline{f}\) is a given body force and \(\underline{t}_d\) is a given boundary traction.

The primal constrained optimisation problem (3)–(5) can be reformulated as an unconstrained primal/dual problem, which will be the basis for the development of this paper. In this setting, the solution to the contact problem is found by extremising the Lagrangian

$$\begin{aligned} {\mathcal {L}}({ \underline{u} },\lambda ) := {\mathcal {J}}({ \underline{u} }) + b(\lambda ,{ \underline{u} }) \end{aligned}$$

(8)

with respect to primal variable \({ \underline{u} }\), in the space of fields satisfying the Dirichlet boundary conditions, but not the unilateral contact condition, which is now relaxed and enforced by

$$\begin{aligned} b(\lambda ,{ \underline{u} }) = \int _{\Gamma ^c} \lambda \, ( \llbracket { \underline{u} }\rrbracket \cdot { \underline{n} }_\Gamma ) \, d\Gamma . \end{aligned}$$

(9)

We reformulate the primal dual formulation in terms of the Karush–Kuhn–Tucker conditions, which consist of the linear variational form

$$\begin{aligned} a(u,\delta { \underline{u} }) + b(\lambda ,\delta { \underline{u} }) = l(\delta { \underline{u} }) \end{aligned}$$

(10)

for all \(\delta { \underline{u} }\) satisfying \(\delta u = 0\) over \(\partial \Omega _u\) and the nonlinear constraint on the contact interface \(\Gamma ^c\)

$$\begin{aligned} \begin{aligned}&\llbracket { \underline{u} }\rrbracket \cdot { \underline{n} }_\Gamma \le 0 \\&\lambda \ge 0, \\&({ \underline{u} }\cdot { \underline{n} }_{\Gamma }) \, \lambda = 0, \end{aligned} \end{aligned}$$

(11)

which can be reformulated as

$$\begin{aligned} \int _{\Gamma ^c} \left( \lambda - \gamma \left[ \llbracket { \underline{u} }\rrbracket \cdot n_\Gamma + \frac{1}{\gamma } \, \lambda \right] _+ \right) \delta \lambda \, d\Gamma = 0 \end{aligned}$$

(12)

for all \(\delta \lambda \in L^2(\Gamma ^c)\). Here, \(\gamma \) is a strictly positive scalar and \(\left[ x \right] _{+}\) denotes the positive part of a scalar quantity \(x \in {\mathbb {R}}\), defined as

$$\begin{aligned} \left[ x \right] _{+} = {\left\{ \begin{array}{ll} x &{}\quad \text{ if } x>0, \\ 0 &{}\quad \text{ otherwise }. \end{array}\right. } \end{aligned}$$

(13)

For a proof of the equivalence of condition (11) and (12) see for example [10, 11].

### CutFEM primal/dual solver for the contact problem

In this section, we will describe the discretization of the contact problem, which uses level set descriptions of the geometries in a fixed and regular background grid. The boundary of the elastic bodies will be represented by the zero contour lines of level set functions, which will be allowed to intersect the background mesh cells in an arbitrary manner. Each domain \(\Omega ^i\) will be embedded in their own fictitious domain resulting in overlapping fictitious domains along the contact interface. Each \({ \underline{u} }^i\) will obtain its own set of degrees of freedom in its fictitious domain allowing for a multiple valued displacement \({ \underline{u} }= ({ \underline{u} }^1,{ \underline{u} }^2)\) along the interface. This enables jumps in the displacement along the interface.

#### CutFEM/level-set approximation of the geometry

Let us introduce a triangulation \({\mathcal {T}}_h\) of the background domain \(\Omega ^b\). We assume a simple shape for \(\Omega ^b\), which is easy to mesh with a regular background grid, e.g. a bounding box which contains both elastic bodies. Furthermore, let us introduce the finite element space of continuous piecewise linear functions, i.e.

$$\begin{aligned} {\mathcal {Q}}_h : = \{ \phi \in {\mathcal {C}}^0(\Omega ^b): \phi |_{K} \in {\mathcal {P}}^1(K) \, \forall K \in {\mathcal {T}}_h \}. \end{aligned}$$

(14)

We now define a piecewise linear approximation \(\phi ^{1}_{h} \in {\mathcal {Q}}_h\) of level set \(\phi ^1\) and \(\phi ^{2}_h \in {\mathcal {Q}}_h\) of level set \(\phi ^2\), such that for any \(i \in \{1,2\}\), the nodal values of \(\phi ^{i}_h\) coincides with the values of \(\phi ^i\) at the locations of the nodes. We now define the approximate physical domains \(\Omega _h^1\) and \(\Omega _h^2\) as follows:

$$\begin{aligned} \begin{aligned}&\displaystyle \Omega _h^1 = \{ x \in \Omega ^b \, | \, \phi ^{1}_h(x) \le 0 \ \text {and} \ \phi ^{2}_h(x) \ge 0 \}\\&\displaystyle \Omega _h^2 = \{ x \in \Omega ^b \, | \, \phi ^{2}_h(x) \le 0 \} \end{aligned} \end{aligned}$$

(15)

and the piecewise linear approximation of the interface

$$\begin{aligned} \Gamma ^c_h = \{ x \in \Omega ^b \, | \, \phi ^1_h(x) = 0 \ \text {and} \ \phi ^2_h(x) \le 0 \}. \end{aligned}$$

(16)

#### Overlapping domain decomposition

Now, we define the set of all elements of \({\mathcal {T}}_h\) that have a non-zero intersection with \(\Omega _h^i\), \(i=1,2\)

$$\begin{aligned} \hat{{\mathcal {T}}}_h^i := \{ K \in {\mathcal {T}}_h: K \cap { \Omega }^i_h \ne \emptyset \}. \end{aligned}$$

(17)

The domain corresponding to this set, denoted by \({\hat{\Omega }}_h^i := \bigcup _{K \in \hat{{\mathcal {T}}}_h^i } K \), is called *fictitious domain*. Furthermore, let us denote all elements which are intersected with \(\Gamma ^c_h\) by

$$\begin{aligned} \hat{{\mathcal {G}}}_h := \{ K \in {\mathcal {T}}_h\, | \, K \cap \Gamma _h^c \ne \emptyset \} \end{aligned}$$

(18)

The domain corresponding to this set is denoted by \({\hat{\Gamma }}^{h} := \bigcup _{K \in \hat{{\mathcal {G}}}_h } K \). This definition will be used to extend interface quantities to a band of elements.

Of key importance to CutFEM methods is the careful tailoring of regularization terms to ensure that the system matrix remains well-conditioned. To this end, we define the set of ghost-penalty element edges for fictitious domain \({\hat{\Omega }}_h^i \), \(i \in \{ 1, 2\}\) as

$$\begin{aligned} \hat{{\mathcal {F}}}_G^i:= \{ F = K \cap K' : K \in \hat{{\mathcal {T}}}_h^i \text{ and } K' \in \hat{{\mathcal {T}}}_h^i, \, F \cap {\hat{\Gamma }}^{h} \ne \emptyset \}. \end{aligned}$$

(19)

For stabilization purposes still, we further define the set of intersected interface edges

$$\begin{aligned} \hat{{\mathcal {F}}}_I:= \{ F = K \cap K' : K \in \hat{{\mathcal {G}}}_h \text{ and } K' \in \hat{{\mathcal {G}}}_h \}. \end{aligned}$$

(20)

Note our consistent use of notation \(\hat{.}\) to indicate extended quantities.

#### Fictitious domain and extended interface finite element spaces

We seek the displacement approximation \({\hat{{ \underline{u} }}}_h =\left( {\hat{{ \underline{u} }}}_h^1,{\hat{{ \underline{u} }}}_h^2 \right) \) of the two-body contact problem in the product space

$$\begin{aligned} \begin{aligned} \hat{{\mathcal {U}}}_h&= \hat{{\mathcal {U}}}_h^1 \times \hat{{\mathcal {U}}}_h^2, \\ \hat{{\mathcal {U}}}_h^i&:= \{ {\hat{{ \underline{u} }}} \in {\mathcal {C}}^0({\hat{\Omega }}_h^i): {\hat{{ \underline{u} }}} |_{K} \in {\mathcal {P}}^1(K) \, \forall K \in \hat{{\mathcal {T}}}_h^i \}, \quad i=1,2. \end{aligned} \end{aligned}$$

(21)

Note that \({\hat{{ \underline{u} }}}_h\) is multi-valued. This feature allows for the representation of embedded discontinuities in CutFEM. In all elements that are intersected by the contact interface \(\Gamma ^c_h\), \({\hat{{ \underline{u} }}}_h^1\) and \({\hat{{ \underline{u} }}}_h^2\) may take different values at a single point, which results in a non-zero displacement jump between \({\hat{u}}_h^2\) and \({\hat{u}}_h^1\).

Next, we define the space of extended interface fields of polynomial order 1 as

$$\begin{aligned} \hat{{\mathcal {W}}}_h := \{ {\hat{W}} \in {\mathcal {C}}^0(\hat{{\mathcal {G}}}_h): {\hat{W}} |_{K} \in {\mathcal {P}}^1(K) \, \forall K \in \hat{{\mathcal {G}}}_h \}. \end{aligned}$$

(22)

This is another important aspect of the CutFEM approach. Fields on manifolds such as embedded interfaces are represented as the trace of a finite element field defined in \({\mathbb {R}}^d\). In this paper, this feature will be used to represent the Lagrange multipliers required to enforce contact conditions in a primal/dual setting.

### Primal/dual CutFEM solver

We now describe our P1/P1 LaTIn/CutFEM primal/dual algorithms, first introduced in [12]. We seek the displacement field in the linear CutFEM space \(\hat{{\mathcal {U}}}_h\) and the Lagrange multipliers, which correspond to the normal reaction forces from contact, in the spaces of linear interface fields \( \hat{{\mathcal {W}}}_h\). The presentation formalism that we have chosen for this paper allows us to highlight its relationship with the work presented in [7, 8] in the specific case of frictionless unilateral contact (our algorithm extends straightforwardly to more general interface conditions such as frictional contact or elastic damageable cohesive interfaces [25]).

#### Regularization of the bulk displacement

Let us define the extended and stabilized bilinear form over the product of fictitious domain fields as

$$\begin{aligned} {\hat{a}}_h({\hat{{ \underline{u} }}}_h,\delta {\hat{{ \underline{u} }}}_h) = \sum _{i=1}^2 {\hat{a}}_h^i({\hat{{ \underline{u} }}}_h,\delta {\hat{{ \underline{u} }}}_h) + \sum _{i=1}^2 {\hat{s}}_h^i({\hat{{ \underline{u} }}}_h,\delta { \underline{u} }_h) \end{aligned}$$

(23)

where for \(i \in \{ 1,2\}\)

$$\begin{aligned} {\hat{a}}_h^i({\hat{{ \underline{u} }}}_h,\delta {\hat{{ \underline{u} }}}_h) = \int _{ \Omega ^i_h } { \underline{\underline{\sigma }} }({ \underline{u} }^i_h) : { \underline{\underline{\epsilon }} }(\delta { \underline{u} }^i_h) \, d{ \Omega }\end{aligned}$$

(24)

and the so-called ghost-penalty terms are defined by

$$\begin{aligned} {{\hat{s}}_h^i}({{\hat{{ \underline{u} }}}_h},\delta {{\hat{{ \underline{u} }}}_h}) = \sum _{F \in {\hat{{\mathcal {F}}}^i_G} } \int _{F} \frac{\alpha \, h}{E^i} \, \llbracket {{ \underline{\underline{\sigma }} }({ \underline{u} }_h^i) \cdot { \underline{n} }_F} \rrbracket \cdot \llbracket {{ \underline{\underline{\sigma }} }(\delta { \underline{u} }_h^i) \cdot {{ \underline{n} }_F}}\rrbracket \, d \Gamma . \end{aligned}$$

(25)

Here, \(\llbracket {x \cdot {{ \underline{n} }_F} }\rrbracket \) denotes the normal jump of the quantity *x* over the face, *F*, defined as \(\llbracket {x \cdot {{ \underline{n} }_F} } = \left. x \right| _{K}{{ \underline{n} }_F} - \left. x \right| _{K'}{{ \underline{n} }_F}\rrbracket \), where \({{ \underline{n} }}_F\) denotes a unit normal to the facet *F* with fixed but arbitrary orientation and \(\alpha >0\) is the ghost penalty parameter.

#### Regularization of the Lagrange multiplier field

The discretized conditions for optimality are the following: Find \(({\hat{u}}_h,{\hat{\lambda }}_h) \in \hat{{\mathcal {U}}}_h \times \hat{{\mathcal {W}}}_h\) satisfying the Dirichlet boundary conditions such that \(\forall ( \delta {\hat{u}}_h, \delta {\hat{\lambda }}_h ) \in \hat{{\mathcal {U}}}_h \times \hat{{\mathcal {W}}}_h\), where \(\delta {\hat{u}}_h\) satisfies the homogeneous boundary conditions (and there is no positivity requirement for the Lagrange multipliers),

$$\begin{aligned} \boxed { \left\{ \begin{aligned} \displaystyle {\hat{a}}_h({\hat{{ \underline{u} }}}_h,\delta {\hat{{ \underline{u} }}}_h) + b_h({\hat{\lambda }}_h, \delta {\hat{{ \underline{u} }}}_h ) + \epsilon _\heartsuit \, s_\heartsuit ({\hat{\lambda }}_h, \llbracket \delta {\hat{{ \underline{u} }}}_h \rrbracket \cdot n_{\Gamma _h} )&= l(\delta {\hat{{ \underline{u} }}}_h)\\ \displaystyle \left( \delta {\hat{\lambda }}_h , {\hat{\lambda }}_h - \gamma \left[ \llbracket {\hat{{ \underline{u} }}}_h \rrbracket \cdot { \underline{n} }_{\Gamma _h} +\frac{1}{\gamma } {\hat{\lambda }}_h \right] _+ \right) _{\Gamma _h^c} + s_\heartsuit (\hat{\delta \lambda }_h, {\hat{\lambda }}_h)&= 0 \end{aligned} \right. } \end{aligned}$$

(26)

where \(s_\heartsuit \) is a regularization term that penalizes the jump of Lagrange multipliers across interface element edges, as introduced in [8]:

$$\begin{aligned} s_\heartsuit ( \delta {\hat{\lambda }}_h, {\hat{\lambda }}_h) = \beta h^3 \sum _{F \in {\hat{F}}_I} \int _F \llbracket \nabla \delta {\hat{\lambda }}_h \cdot { \underline{n} }_F \rrbracket \cdot \llbracket \nabla {\hat{\lambda }}_h \cdot { \underline{n} }_F \rrbracket \, d \Gamma . \end{aligned}$$

(27)

Here, \(( u,v )_{\Gamma _h^c}= \int _{\Gamma _h^c} u v \, d \Gamma \). And \(\epsilon _\heartsuit \) is either 0 or 1. The toggle boolean \(\epsilon _\heartsuit \) is introduced for comparison to other references. When \(\epsilon _\heartsuit =1\), the previous problem is equivalent to the extremization of the saddle-type functional

$$\begin{aligned} {\mathcal {M}}({\hat{{ \underline{u} }}}_h,{\hat{\lambda }}_h)&:= \frac{1}{2} {\hat{a}}_h({\hat{{ \underline{u} }}}_h, {\hat{{ \underline{u} }}}_h) +\frac{\gamma }{2} \left( \left[ \llbracket {\hat{{ \underline{u} }}}_h \rrbracket \cdot { \underline{n} }_{\Gamma _h} + \frac{1}{\gamma } {\hat{\lambda }}_h \right] _+ , \left[ \llbracket {\hat{{ \underline{u} }}}_h \rrbracket \cdot { \underline{n} }_{\Gamma _h} + \frac{1}{\gamma } {\hat{\lambda }}_h \right] _+ \right) _{\Gamma _h^c}\nonumber \\&\quad - \frac{1}{2 \gamma } b_h \left( {\hat{\lambda }}_h , {\hat{\lambda }}_h \right) - l({\hat{{ \underline{u} }}}_h) - s_\heartsuit ({\hat{\lambda }}_h,{\hat{\lambda }}_h) \end{aligned}$$

(28)

with respect to both of its arguments. However, in this contribution, we choose \(\epsilon _\heartsuit =0\). This is to make the present formulation consistent with the developments proposed in [12], were the CutFEM-LaTIn algorithm was introduced in a completely different manner. We do not claim that this choice is better than the alternative.

#### Domain decomposition formulation

Whilst the previous “jump” formulation (26) couples the CutFEM subdomains, the LaTIn algorithm introduced in [12] implements a nonlinear domain decomposition approach. In this LaTIn-CutFEM algorithm the bulk problem is first solved in each subdomain independently and then interface fluxes and displacements are computed at the contact interface \(\Gamma _h^c\). We iterate between the bulk problems (linear stage) for \(i=1,2\) and the interface problem (local stage) until we achieve convergence. In the following, we briefly outline the main steps of the algorithm, a more detailed description can be found in [12].

To reformulate the “jump” formulation (26) into a problem over each fictitious domain \({\hat{\Omega }}^i_h\), we realize that (26) can be decomposed into

$$\begin{aligned} \left\{ \begin{array}{l} \displaystyle \sum _{i=1}^2 {\hat{a}}^i_h({\hat{{ \underline{u} }}}^i_h,\delta {\hat{{ \underline{u} }}}^i_h) + \displaystyle b_h({\hat{\lambda }}_h, \delta {\hat{{ \underline{u} }}}^i_h ) = \displaystyle \sum _{i=1}^2 l^i(\delta {\hat{{ \underline{u} }}}_h^i),\\ \displaystyle \left( \delta {\hat{\lambda }}_h , {\hat{\lambda }}_h - \gamma \left[ \llbracket {\hat{{ \underline{u} }}}_h \rrbracket \cdot { \underline{n} }_{\Gamma _h} +\frac{1}{\gamma } {\hat{\lambda }}_h \right] _+ \right) _{\Gamma _h^c} + s_\heartsuit (\hat{\delta \lambda }_h, {\hat{\lambda }}_h) = 0, \end{array} \right. \, . \end{aligned}$$

(29)

where \(b_h\) decomposes into \(b_h^1\) and \(b_h^2\) as

$$\begin{aligned} \begin{aligned} \displaystyle b_h({\hat{\lambda }}_h,\delta {\hat{{ \underline{u} }}}_h)&= \displaystyle \int _{\Gamma _h^c} {\hat{\lambda }}_h ( \llbracket \delta {\hat{{ \underline{u} }}}_h \rrbracket \cdot { \underline{n} }_{\Gamma _h} ) \, d \Gamma \\&= \displaystyle \int _{\Gamma _h^c} {\hat{\lambda }}_h ( \delta {\hat{{ \underline{u} }}}^1_h \cdot { \underline{n} }_{\Gamma _h} ) \, d \Gamma - \int _{\Gamma _h^c} {\hat{\lambda }}_h ( \delta {\hat{{ \underline{u} }}}^2_h \cdot { \underline{n} }_{\Gamma _h} ) \, d \Gamma \\&=: \displaystyle b^1_h({\hat{\lambda }}_h,\delta {\hat{{ \underline{u} }}}^1_h) - b^2_h({\hat{\lambda }}_h,\delta {\hat{{ \underline{u} }}}^2_h) \, . \end{aligned} \end{aligned}$$

(30)

Let *k* denote the iteration steps starting with \(k=0\). We then iterate between the linear stage and the local stage detailed below.

The linear stage In which we solve the bulk problems: Find the displacement \({\hat{{ \underline{u} }}}_h \in \hat{{\mathcal {U}}}_h\) such that for all \(i=1,2\) and for all \(\delta {\hat{u}}_h \in \hat{{\mathcal {U}}}_h\)

$$\begin{aligned} {\hat{a}}^i_h({\hat{{ \underline{u} }}}^{i,k+1}_h,\delta {\hat{{ \underline{u} }}}^i_h) + b^i_h({\hat{\lambda }}^{i,k+1}_h, \delta {\hat{{ \underline{u} }}}^i_h ) = l^i(\delta {\hat{{ \underline{u} }}}_h^i) \end{aligned}$$

(31)

subject to the descent direction for the interface fluxes \({\hat{\lambda }}^{i.k+1}_h \in \hat{{\mathcal {W}}}_h\) and the interface displacements \( {\hat{w}}^{i,k+1} \in \hat{{\mathcal {W}}}_h\), \(i=1,2\),

$$\begin{aligned} ({\hat{\lambda }}^{i,k+1}_h - {\hat{\lambda }}^{i,k+\frac{1}{2}}_h) - \gamma ( {\hat{w}}^{i,k+1} - {\hat{w}}^{i,k+\frac{1}{2}} ) = 0 \, , \end{aligned}$$

(32)

where the quantities from the previous half-iterate are known from the local stage and the interface displacements are given by

$$\begin{aligned} \left( {\hat{w}}^{i,k+1} , \delta {\hat{\lambda }}_h \right) _{\Gamma _h^c} = \left( {\hat{{ \underline{u} }}}^{i,k+1} \cdot { \underline{n} }_{\Gamma _h}, \delta {\hat{\lambda }}_h \right) _{\Gamma _h^c} \,. \end{aligned}$$

(33)

The local stage In each quadrature point along the interface \(\Gamma _h^c\), find the interface fields \(\{ \hat{{\hat{w}}}^{i,k+\frac{1}{2}}_h , \hat{{\hat{\lambda }}}^{1,k+\frac{1}{2}}_h\} \), \(i=1,2\), that satisfy the contact condition

$$\begin{aligned} \hat{{\hat{\lambda }}}^{i,k+\frac{1}{2}}_h = \gamma \left[ ( \hat{{\hat{w}}}^{1,k+\frac{1}{2}}_h - \hat{{\hat{w}}}^{2,k+\frac{1}{2}}_h )\cdot n_{\Gamma _h} +\frac{1}{\gamma } \hat{{\hat{\lambda }}}^{1,k+\frac{1}{2}}_h \right] _+ \end{aligned}$$

(34)

subject to search directions

$$\begin{aligned} (\hat{{\hat{\lambda }}}^{i,k+\frac{1}{2}}_h - {\hat{\lambda }}^{i,k}) + \gamma ( {\hat{w}}^{i,k+\frac{1}{2}} - {\hat{w}}^{i,k} ) = 0 \, , \end{aligned}$$

(35)

for all \(i=1,2\) and to equality/definition

$$\begin{aligned} \hat{{\hat{\lambda }}}^{2,k+\frac{1}{2}}_h = - \hat{{\hat{\lambda }}}^{1,k+\frac{1}{2}}_h \, . \end{aligned}$$

(36)

We regularize the interface quantities \(\{ \hat{{\hat{w}}}^{i,k+\frac{1}{2}}_h , \hat{{\hat{\lambda }}}^{1,k+\frac{1}{2}}_h\}\) by solving the linear interface problem: Find the filtered Lagrange multiplier \( {\hat{\lambda }}^{i,k+\frac{1}{2}}_h \in \hat{{\mathcal {W}}}_h\) for all \( \delta {\hat{\lambda }}_h \in \hat{{\mathcal {W}}}_h\) such that

$$\begin{aligned} \left( {\hat{\lambda }}^{i,k+\frac{1}{2}}_h , \delta {\hat{\lambda }}_h \right) _{\Gamma _h^c} + s_\heartsuit ( {\hat{\lambda }}^{i,k+\frac{1}{2}}_h , \delta {\hat{\lambda }}_h ) = \left( \hat{{\hat{\lambda }}}^{i,k+\frac{1}{2}}_h, \delta {\hat{\lambda }}_h \right) _{\Gamma _h^c} \, , \end{aligned}$$

(37)

for \(i=1\) or \(i=2\). The filtered interface jumps \({\hat{w}}^{i,k+\frac{1}{2}}\) for \(i=1\) and \(i=2\) can then be recovered locally using search direction (35), replacing the “double hat”—unfiltered—Lagrange multiplier by its regularized counterpart.