1 Introduction

Isogeometric analysis (IGA), firstly introduced in [21], is a methodology used for the numerical discretization of partial differential equations (PDEs) based on the same building blocks used in computer aided design (CAD). Indeed, in IGA, the same mathematical objects, such as B-splines and non-uniform rational B-splines (NURBS) [34], used for the geometrical description are employed for the numerical solution of the PDE at hand. A distinguishing feature of splines is the high regularity achievable by construction, which allows the approximation of higher-order variational problems directly in their primal, for instance Kirchhoff plates [29, 33], Kirchhoff–Love shells [22, 24, 25, 36] and the Cahn–Hilliard equation [14]. For a detailed review of the method and its recent applications, the reader is referred to [9, 21, 40], whereas its mathematical foundations can be found in [4, 10].

Although smoothness is attained naturally within a patch, geometries of engineering relevance are in general described by multiple patches, where typically the underlying spline representations are non-conforming at the common interface. Clearly, in this scenario, a direct strong coupling between patches is not straightforward to achieve. Moreover, as in the scope of this work we are interested in the Kirchhoff plate model problem, an efficient strategy to obtain \(C^1\)-coupling is needed since a global \(C^1\)-continuity is required to obtain a well-defined bilinear form for the problem at hand. In the literature, three methods are predominantly used to achieve the latter coupling in a weak sense and they are summarized in the following.

High-order mortar methods have been studied in [18, 20] in the context of Kirchhoff plates and Kirchhoff–Love shells, respectively, and have been extended to a general \(C^n\)-coupling in [11]. For a detailed review in the context of isogeometric analysis, we refer to the review article [17]. However, mortar methods lead to the formulation of a saddle point problem, where the associated Lagrange multipliers constitute additional unknowns to be solved for in the global system of equations.

Nitsche method has been analyzed in [38] for coupling isogeometric Kirchhoff plates in the scope of immersed methods and in [15] for imposing weakly kinematic boundary conditions for fourth-order PDEs. Although this family of methods is less sensitive to the choice of parameters compared to classical penalty approaches, their formulation requires additional consistency terms which, in the Kirchhoff problem, involve the computation of derivatives of shape functions up to order three. This adds some extra steps of complexity in the implementation and increases the overall computational cost of the coupling strategy.

Finally, penalty methods are widely used in the engineering community due to their conceptual simplicity, see the seminal work [2]. Furthermore, they can be easily and efficiently incorporated into a numerical code, where we refer to [1, 13, 16, 23, 26] for more insights and some applications in the context of isogeometric Kirchhoff–Love shells. Nonetheless, a major drawback of this approach resides in their lack of robustness with respect to the choice of penalty parameters. Typically, the choice of penalty coefficients is problem-dependent and is based on a time-consuming, heuristic process. As noted in [16], on one hand, if the penalty factors are chosen too small the interface constraint is satisfied only loosely. On the other hand, if the coefficients are too high, the condition number of the resulting system matrix is negatively impacted and the convergence behavior is spoiled by spurious locking phenomena. The contribution in [16] partially addresses these issues by introducing suitably scaled penalty parameters and a single problem-independent user-defined coefficient. This work was recently extended in [26] to alleviate locking by introducing independent fields related to the coupling terms and by exploiting reduced integration techniques.

Our contribution falls into this realm. Inspired by the super-penalty method studied in [3], our goal is to introduce a simple coupling procedure for the displacement and rotation fields, respectively, for non-conforming multi-patch Kirchhoff plates, which preserves the high-order optimal convergence rates achievable by B-splines while mitigating the detrimental effects related to locking. To alleviate the over-constraint of the solution space we perform an \(L^2\)-projection of the penalty terms onto a space of reduced degree defined on the active side of the coupling interface where, motivated by the work in [7] for mortar methods, we select a \(p/p-2\) pairing, where p denotes the B-splines degree. In particular, starting from the perturbed saddle point formulation of the Kirchhoff plate model problem, we show how the corresponding Lagrange multipliers can be eliminated from the system and, more importantly, how the perturbation gives us insights into the optimal choice for the penalty coefficients. Indeed, the proposed methodology is truly parameter-free, as the penalty factors are fully determined by the given physical constants, the geometry and its discretization, i.e. mesh size and spline degree. We remark that the proposed methodology is especially advantageous for moderate degrees \(p=2,3\), where locking phenomena are particularly pronounced and the \(L^2\)-projection proves to be an effective and computationally efficient remedy.

Then, we address the ill-conditioning issues stemming from our choice of super-penalty parameters. We adapt the block preconditioner based on an inexact Schur complement reduction (SCR) introduced in [27, 28] and we combine it with a preconditioner tailored to the isogeometric discretization of the Kirchhoff plate, where we exploit the tensor product structure of B-splines and an efficient algorithm for the solution of the arising Sylvester-like system; for a detailed derivation we refer to [30, 31, 37].

Finally, we show through several numerical benchmarks the optimal convergence properties of the presented methodology, where our approach does not suffer from boundary locking, especially on very coarse meshes. This leads to a substantial improvement in the accuracy achievable per degree-of-freedom (dof).

The structure of the paper is as follows. Section 2 provides a review of the fundamental concepts related to B-splines. Section 3 describes in details the derivation of the proposed methodology and motivates our choice of penalty parameters. Section 4 presents the ideas used in the construction of the preconditioner employed in this work. In Sect. 5 the method is validated on several numerical benchmarks and it is applied to the analysis of an idealized multi-patch design of an L-bracket. Finally, some conclusions are drawn in Sect. 6.

2 A brief introduction to B-splines

In this section, some definitions and fundamentals related to B-splines are reviewed. We refer the reader to [9, 19, 34], and references therein, for a comprehensive review of B-splines and NURBS and their role in isogeometric analysis.

Starting from two integers pn, a univariate B-spline basis function \(b_{i,p}\) of degree p is generated starting from a non-decreasing sequence of real values referred to as knot vector, denoted in the following as \(\Xi = \left\{ \xi _1, \ldots , \xi _{n+p+1} \right\} \). It is worth mentioning that the smoothness of the obtained B-spline basis is \(C^{p-k}\) at every knot, where k denotes the multiplicity of the considered knot, while it is \(C^\infty \) elsewhere. In the remainder of this work, we consider only splines of maximum continuity, i.e. \(C^{p-1}\). The definition of multivariate B-splines \({\mathcal {B}}_{\mathbf{i },\mathbf{p }} (\varvec{\eta } )\) is achieved in a straight-forward manner using the tensor product of univariate B-splines as:

$$\begin{aligned} {\mathcal {B}}_{\mathbf{i },\mathbf{p }} (\varvec{\eta } ) = \prod _{j=1}^{{\widehat{d}}} b_{i_{j},p_{j}}^{j} (\eta _j)\, , \end{aligned}$$
(1)

where \({\widehat{d}}\) denotes the dimension of the parameter space. Additionally, the multi-index \(\mathbf{i }=\left\{ i_{1},\ldots ,i_{{\widehat{d}}}\right\} \) denotes the position in the tensor product structure and \(\mathbf{p }=\left\{ p_{1},\ldots ,p_{{\widehat{d}}}\right\} \) indicates the vector of polynomial degrees, associated with the corresponding parametric dimension \(\varvec{\eta } = \eta _1,\ldots ,\eta _{{\widehat{d}}}\,\), respectively. Then, let us define a domain \(\Omega \in {\mathbb {R}}^{d}\) described by a B-spline parametrization \(\mathbf{F }\) as a linear combination of multivariate B-spline basis functions and corresponding control points as follows:

$$\begin{aligned} \Omega = \mathbf{F }({\widehat{\Omega }}) \quad \text {with} \quad \mathbf{F } (\varvec{\eta } ) =\sum _{\mathbf{i }}{\mathcal {B}}_{\mathbf{i },\mathbf{p }}(\varvec{\eta } ) \mathbf{P }_{\mathbf{i }} \, , \end{aligned}$$
(2)

where the coefficients \(\mathbf{P }_{\mathbf{i }}\in {\mathbb {R}}^{d}\) of the linear combination are the control points and d represents the dimensionality of the physical space. Although not treated here, it is straightforward to extend the notation to NURBS, for details see [9]. In the rest of the paper, without loss of generality, the degree vector \( \mathbf{p } \) will be considered equal in each parametric direction and therefore simplified to a single scalar value p. Further, the vectors \(\mathbf{i }\) and \(\varvec{\eta }\) will be omitted to simplify the notation.

Finally, we can introduce the following discrete space formed by multivariate B-splines of degree p:

$$\begin{aligned} S_{h}^p(\Omega ) = \text {span }\left\{ b \circ \mathbf{F }^{-1} \, \vert \, b \in {\mathcal {B}} \right\} \, . \end{aligned}$$
(3)

3 The projected super-penalty method

In this section, we introduce a method that alleviates locking phenomena arising when coupling non-conforming isogeometric patches. Inspired by the work presented in [7] in the context of isogeometric mortar methods, the proposed technique is based on the projection of the coupling terms at the interface, typically defined in terms of the degree p of the solution space related to the corresponding patch, onto a reduced space of B-splines of degree \(p^{\text {red}} = p - 2\) defined on the active side of the interface.

3.1 The strong form of the Kirchhoff plate problem

Let us introduce the governing PDE, characterized by the bilaplace differential operator, that describes the bending-dominated problem of a Kirchhoff plate, following the notation in [36]. Let us define an open set \(\Omega \subset {\mathbb {R}}^2\) with a sufficiently smooth boundary \(\partial \Omega \), such that the normal vector \({\varvec{n}}\) to the boundary is well-defined (almost) everywhere. Let us also introduce two admissible splittings of the boundary \(\Gamma = \partial \Omega \) into \(\Gamma =\,\overline{\,\Gamma _u \cup \Gamma _Q\,}\,\) and \(\Gamma =\,\overline{\,\Gamma _{\phi } \cup \Gamma _{M}\,}\,\), such that \(\Gamma _u \cap \Gamma _Q = \varnothing \) and \(\Gamma _{\phi } \cap \Gamma _{M} = \varnothing \), respectively. Consequently, the strong form of the problem reads:

$$\begin{aligned} \begin{aligned} D \varDelta ^2 u&= g \quad&\text {in} \quad \Omega \\ u&= u_{ \Gamma } \quad&\text {on} \quad \Gamma _u \\ - \nabla u \cdot {\varvec{n}}&= \phi _{ \Gamma } \quad&\text {on} \quad \Gamma _{\phi } \\ \nu D \varDelta u + (1 - \nu ) D \, {\varvec{n}} \cdot (\nabla \nabla u){\varvec{n}}&= M_{ \Gamma } \quad&\text {on} \quad \Gamma _{M} \\ D ( \nabla (\varDelta u) + (1 - \nu ) \, \varvec{\varPsi }(u)\,) \cdot {\varvec{n}}&= Q_{ \Gamma } \quad&\text {on} \quad \Gamma _{Q} \, , \end{aligned} \end{aligned}$$
(4)

where u represents the deflection of the plate, D its bending stiffness, \(\nu \) is the Poisson ratio, g is the load per unit area in the thickness direction, \(u_{ \Gamma }\), \(\phi _{ \Gamma }\), \(M_{ \Gamma }\) and \(Q_{ \Gamma }\) are the prescribed deflection, rotation, bending moments and effective shear, respectively. The bending stiffness D of an isotropic, homogeneous plate is defined as:

$$\begin{aligned} D = \frac{E t^3}{12(1 - \nu ^2)} \, , \end{aligned}$$
(5)

where E is the Young modulus and t denotes the thickness of the plate. For the sake of simplicity and without loss of generality, these are assumed to be a constant in \(\Omega \). Finally, the differential operator \(\varvec{\varPsi }(\cdot )\) reads:

$$\begin{aligned} \varvec{\varPsi }(\cdot ) = \left[ \frac{\partial ^3 (\cdot )}{\partial x \partial ^2 y} \, , \, \frac{\partial ^3 (\cdot )}{\partial ^2 x \partial y} \right] ^\top \, . \end{aligned}$$
(6)

3.2 The multi-patch formulation of the perturbed saddle point Kirchhoff problem

Here, following the notation used in [7], we introduce a decomposition of \(\Omega \) into N non-overlapping subdomains \(\Omega ^i\) such that:

$$\begin{aligned} \,\overline{\,\Omega \,}\, = \bigcup _{i=1}^N \,\overline{\,\Omega ^i\,}\, \, , \quad \text {where} \quad \Omega ^i \cap \Omega ^j = \varnothing \quad \text {for} \quad i \ne j \, . \end{aligned}$$
(7)

Now, let us define the interface \(\gamma ^{k,m}\) between two adjacent patches \(\Omega ^{k}, \Omega ^{m}, 1 \le k, m \le N\) as the intersection of their corresponding boundaries:

$$\begin{aligned} \gamma ^{k,m} = \partial \Omega ^{k} \cup \partial \Omega ^{m} \, . \end{aligned}$$
(8)

Then, the skeleton \(\Gamma \) is defined as the union of all non-empty interfaces (which we suppose to be labeled with an ordered index \(\ell =1, \ldots , L\)) and reads:

$$\begin{aligned} \Gamma = \bigcup _{\ell =1}^L \gamma ^\ell \, . \end{aligned}$$
(9)

Consequently, we can denote by \(u^k\) and \(\varvec{n}^k\) the value of the primary field and the outward normal on \(\partial \Omega ^k\), and \(u^m\) and \(\varvec{n}^m\) the value of the primary field and outward normal on the neighboring subdomain \(\partial \Omega ^m\), see Fig. 1 for an example on two patches.

Then, for each interface \(\gamma ^{k,m}\) we can write the following coupling conditions:

$$\begin{aligned}&u^k - u^m = 0 \quad \text {on} \quad \gamma ^{k,m} \nonumber \\&\nabla u^k \cdot {\varvec{n}}^k + \nabla u^m \cdot {\varvec{n}}^m = 0 \quad \text {on} \quad \gamma ^{k,m} \, , \end{aligned}$$
(10)

which can be rewritten using the standard jump and normal jump operators, respectively, as:

$$\begin{aligned}&\llbracket u \rrbracket = 0 \quad \text {on} \quad \gamma ^{k,m} \nonumber \nonumber \\&\llbracket \nabla u \rrbracket _n = 0 \quad \text {on} \quad \gamma ^{k,m} \, . \end{aligned}$$
(11)

Further, given \(1 \le s, t \le L\), \(s \ne t\), we denote the cross-points by \(c^{s,t}={\overline{\gamma }}^s \cap {\overline{\gamma }}^t\) and we label them with an ordered index \(c^s\), \(s=1,\ldots ,S\). For ease of notation and without loss of generality, in the following we assume the flexural rigidity D to be constant in \(\Omega \) and the Poisson ratio \(\nu \) to be zero. Further, we assume that the values prescribed as natural boundary conditions are zero as well.

Now, let us introduce for each subdomain \(\Omega ^i\) the following space:

$$\begin{aligned} H^2_\star (\Omega ^i)= \left\{ v^i \in H^2(\Omega ^i): \, v^i |_{\partial \Omega \cap \partial \Omega ^i} = \frac{\partial v^i}{\partial n} \bigg |_{\partial \Omega \cap \partial \Omega ^i} =0 \right\} \, , \end{aligned}$$
(12)
Fig. 1
figure 1

Example of two subdomains \(\Omega ^k, \Omega ^m\) with their coupling interface \(\gamma ^{k,m}\), highlighted in red, and their corresponding normal vectors \(\varvec{n}^k, \varvec{n}^m\). Note that we have separated the subdomains for visualization purposes. For a correct interpretation of the colors, the reader is referred to the web version of this manuscript

from which the following broken Sobolev space can be characterized as:

$$\begin{aligned}&V=\left\{ v \in L^2(\Omega ) :\, v |_{\Omega ^i} \in H^2_\star (\Omega ^i),\,i=1,\ldots , N \, , \, v \nonumber \right. \\&\left. \text { is continuous in } c^s, \,s=1,\ldots ,S \right\} \, , \end{aligned}$$
(13)

endowed with the broken norm \(\Vert \cdot \Vert ^2_{V}= \sum _{i=1}^{N} \Vert \cdot \Vert ^2_{H^2(\Omega ^i)}\). Then, let us also define the spaces:

$$\begin{aligned} H^{\frac{1}{2}}_\star (\Gamma )&=\left\{ \llbracket \nabla v \rrbracket _n :\, v \in V \right\} \nonumber \\ H^{\frac{3}{2}}_\star (\Gamma )&=\left\{ \llbracket v \rrbracket :\, v \in V \right\} \, . \end{aligned}$$
(14)

Lastly, we need to introduce the following dual spaces:

$$\begin{aligned} \begin{aligned}&Q_1=\left[ H^{\frac{3}{2}}_\star (\Gamma )\right] ' \\&Q_2=\left[ H^{\frac{1}{2}}_\star (\Gamma )\right] '\, . \end{aligned} \end{aligned}$$
(15)

We are now ready to formulate (4) as a saddle point problem. Given \(f \in V'\), find \((u,\lambda _1,\lambda _2) \in V \times Q_1 \times Q_2\) such that:

$$\begin{aligned}&\sum _{i=1}^{N}\int _{\Omega ^i} D \, \nabla (\nabla u ) : \nabla (\nabla v ) + \sum _{\ell =1}^{L}\left( \int _{\gamma ^{\ell }} \llbracket v \rrbracket \lambda _1 + \int _{\gamma ^{\ell }} \llbracket \nabla v \rrbracket _n \lambda _2 \right) \nonumber \\&\quad = (f,v) \qquad \forall v \in V \nonumber \\&\quad \sum _{\ell =1}^{L}\int _{\gamma ^{\ell }} \llbracket u \rrbracket \mu _1=0 \qquad \forall \mu _1 \in Q_1 \nonumber \\&\quad \sum _{\ell =1}^{L}\int _{\gamma ^{\ell }} \llbracket \nabla u \rrbracket _n \mu _2 =0 \qquad \forall \mu _2 \in Q_2 \, . \end{aligned}$$
(16)

We also define three continuous bilinear forms \(a:V \times V \rightarrow {\mathbb {R}}\), \(b_1:V \times Q_1 \rightarrow {\mathbb {R}}\) and \(b_2:V \times Q_2 \rightarrow {\mathbb {R}}\) as follows:

$$\begin{aligned} a(u,v)&= \sum _{i=1}^{N}\int _{\Omega ^i} D \, \nabla (\nabla u ) : \nabla (\nabla v )&\qquad&u,v \in V \nonumber \\ b_1(v,\mu _1)&= \sum _{\ell =1}^{L}\int _{\gamma ^{\ell }} \llbracket v \rrbracket \mu _1&\qquad&v \in V, \, \mu _1 \in Q_1 \nonumber \\ b_2(v,\mu _2)&= \sum _{\ell =1}^{L}\int _{\gamma ^{\ell }} \llbracket \nabla v \rrbracket _n \mu _2&\qquad&v \in V, \, \mu _2 \in Q_2 \, . \end{aligned}$$
(17)

Now, given \(\varepsilon ^{(\ell )}_1, \varepsilon ^{(\ell )}_2 > 0, \ell = 1,\ldots , L\), we can introduce the singularly perturbed version of (16): given \(f \in V'\), find \((u_{\varepsilon },\lambda _{1,\varepsilon },\lambda _{2,\varepsilon }) \in V \times L^2(\Gamma ) \times L^2(\Gamma )\), such that

$$\begin{aligned}&\sum _{i=1}^{N} \int _{\Omega ^i} D \, \nabla (\nabla u_{\varepsilon } ) : \nabla (\nabla v )\nonumber \\&\quad + \sum _{\ell =1}^{L}\left( \int _{\gamma ^{\ell }} \llbracket v \rrbracket \lambda _{1,\varepsilon } + \int _{\gamma ^{\ell }} \llbracket \nabla v \rrbracket _n \lambda _{2,\varepsilon }\right) = (f,v) \qquad \forall v \in V \nonumber \\&\quad \sum _{\ell =1}^{L} \left( \int _{\gamma ^{\ell }} \llbracket u_{\varepsilon } \rrbracket \mu _1 - \varepsilon ^{(\ell )}_1 \int _{\gamma ^{\ell }} \lambda _{1,\varepsilon } \mu _1 \right) = 0 \qquad \forall \mu _1 \in L^2(\Gamma ) \nonumber \\&\quad \sum _{\ell =1}^{L} \left( \int _{\gamma ^{\ell }} \llbracket \nabla u_{\varepsilon } \rrbracket _n \mu _2- \varepsilon ^{(\ell )}_2 \int _{\gamma ^{\ell }} \lambda _{2,\varepsilon } \mu _2 \right) =0 \qquad \forall \mu _2 \in L^2(\Gamma ) \, . \end{aligned}$$
(18)

Under suitable regularity assumptions, we can provide an estimation of the error introduced by the perturbations \(\varepsilon ^{(\ell )}_1\) and \(\varepsilon ^{(\ell )}_2\) on the solution of the original saddle point problem (16) as [6, Remark 4.13.14]:

$$\begin{aligned}&\vert \vert u - u_{\varepsilon } \vert \vert _V + \vert \vert \lambda _1 - \lambda _{1,\varepsilon } \vert \vert _{L^2(\Gamma )} + \vert \vert \lambda _2 - \lambda _{2,\varepsilon } \vert \vert _{L^2(\Gamma )} \nonumber \\&\quad \le C \left[ {\tilde{\varepsilon }}_{1}\left( \sum _{\ell =1}^{L} \Vert \lambda _1\Vert ^2_{H^{3/2}(\gamma ^{\ell })} \right) ^{\frac{1}{2}} \right. \nonumber \\&\qquad + \left. {\tilde{\varepsilon }}_{2} \left( \sum _{\ell =1}^{L} \Vert \lambda _2\Vert ^2_{H^{1/2}(\gamma ^{\ell })} \right) ^{\frac{1}{2}}\right] \, \end{aligned}$$
(19)

where we have defined:

$$\begin{aligned} {\tilde{\varepsilon }}_{1}=\max _{\ell =1,\ldots ,L} \varepsilon ^{(\ell )}_1, \quad \text { and }\quad {\tilde{\varepsilon }}_{2}=\max _{\ell =1,\ldots ,L} \varepsilon ^{(\ell )}_2 \, . \end{aligned}$$
(20)

3.3 The projected super-penalty formulation

For each patch \(\Omega ^i\), we assume \(p \ge 2\) and we indicate with \(\overline{{\mathcal {S}}^p_{h}(\Omega ^i)}\) the space trivially obtained extending by zero the elements of \({\mathcal {S}}^p_{h}(\Omega ^i)\) over \(\Omega \setminus \Omega ^i\). Additionally, let us define:

$$\begin{aligned} X_{i,h}=\text {span} \left\{ b \in \overline{{\mathcal {S}}^p_{h}(\Omega ^i)} \right\} . \end{aligned}$$
(21)

Consequently, let us denote by \(V_{i,h} \subset X_{i,h}\) the finite-dimensional space given by the span of B-splines defined on the corresponding subdomain \(\Omega ^i\), where the exact characterization of \(V_{i,h}\) depends on the chosen boundary conditions, for further details we refer to [8]. This allows us to introduce the following finite dimensional subspace of V,

$$\begin{aligned} V_h&= \left\{ v \in \bigcup _{i=1}^{N} V_{i,h}:\, v \text { is continuous in } c^s, \,s=1,\ldots ,S \right\} \, . \end{aligned}$$
(22)

Moreover, for each interface \(\gamma ^{\ell }\), we denote by \(\Xi ^{\ell }\) the knot vector on \(\gamma ^{\ell }\) inherited from the active side. Motivated by the choice of the \(p/p-2\) stable pairing in [7], we construct the following isogeometric space \({\mathcal {S}}^{p-2}_{h}(\gamma ^{\ell })\) on the reduced knot vector \(\Xi _\star ^{\ell }\) obtained by removing from \(\Xi ^{\ell }\) the first and last two knots, where an example is depicted in Fig. 2 for \(p=2,3\). Similarly to before, we indicate with \(\overline{{\mathcal {S}}^{p-2}_{h}(\gamma ^{\ell })}\) the space obtained extending by zero over \(\Gamma \setminus \gamma ^{\ell }\) the elements of \({{\mathcal {S}}^{p-2}_{h}(\gamma ^{\ell })}\).

Fig. 2
figure 2

Example of the projection setup on a coupling interface. We select the finer side (on \(\Omega ^1\) in this example) to define the reduced space for the projection. Additionally, an intersection mesh at the interface is created only for integration purposes to properly compute the projected penalty terms. The \(p+1\) integration points are schematically represented as blue dots

We can now define the discrete counterpart of the Lagrange multiplier spaces as:

$$\begin{aligned} Q_h = Q_{1,h}&= Q_{2,h} = \bigcup _{\ell =1}^{L} \overline{{\mathcal {S}}^{p-2}_{h}(\gamma ^{\ell })} \, . \end{aligned}$$
(23)

With these definitions at hand, the discretized version of (18) reads: find \(\left( u_h, \lambda _{1,h},\lambda _{2,h} \right) \in V_h \times Q_h \times Q_h\) such that:

$$\begin{aligned}&\sum _{i=1}^{N} \int _{\Omega ^i} D \, \nabla (\nabla u_{h} ) : \nabla (\nabla v_h ) \nonumber \\&\qquad + \sum _{\ell =1}^{L}\left( \int _{\gamma ^{\ell }} \llbracket v_h \rrbracket \lambda _{1,h} + \int _{\gamma ^{\ell }} \llbracket \nabla v_h \rrbracket _n \lambda _{2,h}\right) = (f,v_h) \qquad \forall v_h \in V_h \nonumber \\&\quad \sum _{\ell =1}^{L} \left( \int _{\gamma ^{\ell }} \llbracket u_{h} \rrbracket \mu _{1,h} - \frac{1}{\alpha _{\text {defl}}^\ell } \int _{\gamma ^{\ell }} \lambda _{1,h} \mu _{1,h} \right) = 0 \qquad \forall \mu _{1,h} \in Q_h \nonumber \\&\quad \sum _{\ell =1}^{L} \left( \int _{\gamma ^{\ell }} \llbracket \nabla u_{h} \rrbracket _n \mu _{2,h} - \frac{1}{\alpha _{\text {rot}}^\ell } \int _{\gamma ^{\ell }} \lambda _{2,h} \mu _{2,h} \right) =0 \qquad \forall \mu _{2,h} \in Q_h \, , \end{aligned}$$
(24)

where \(\alpha _{\text {defl}}^\ell \) and \(\alpha _{\text {rot}}^\ell \) are “large” parameters related to the deflections and rotations, respectively. In general, they depend on the problem definition, e.g. the physical constant D, the mesh size and spline degree, where a full characterization of our choice will be given later in the section. We can now formally eliminate the Lagrange multipliers and recast (24) into its primal form. Indeed, we can write:

$$\begin{aligned} {\lambda _{1,h}}|_{\gamma ^{\ell }}&= \alpha _{\text {defl}}^\ell \Pi ^{\ell } \llbracket u_h \rrbracket \nonumber \\ {\lambda _{2,h}}|_{\gamma ^{\ell }}&= \alpha _{\text {rot}}^\ell \Pi ^{\ell } \llbracket \nabla u_h \rrbracket _n \, , \end{aligned}$$
(25)

where \(\Pi ^{\ell }:L^2(\gamma ^{\ell }) \rightarrow {\mathcal {S}}^{p-2}_{h}(\gamma ^{\ell })\) denotes the \(L^2\)-projection, associated with the interface \(\gamma ^{\ell }\), onto the reduced space \({\mathcal {S}}^{p-2}_{h}(\gamma ^{\ell })\). Finally, employing the previous results and the properties of the \(L^2\)-projection, the resulting discretized bilinear form, augmented by suitable penalty terms that weakly enforce the coupling conditions (11), reads: find \(u_h \in \, V_h\) such that:

$$\begin{aligned}&\sum _{i=1}^{N}\int _{\Omega ^i} D \, \nabla (\nabla u_h ) : \nabla (\nabla v_h ) + \nonumber \\&\quad + \sum _{\ell =1}^{L} \left( \alpha _{\text {defl}}^\ell \int _{\gamma ^{\ell }} \Pi ^{\ell } \llbracket u_h \rrbracket \Pi ^{\ell } \llbracket v_h \rrbracket \nonumber \right. \\&\left. \quad + \alpha _{\text {rot}}^\ell \int _{\gamma ^{\ell }} \Pi ^{\ell } \llbracket \nabla u_h \rrbracket _n \Pi ^{\ell } \llbracket \nabla v_h \rrbracket _n \right) = (f,v_h) \qquad \forall v_h \in V_h \, .\nonumber \\ \end{aligned}$$
(26)

3.3.1 Inf-sup test

The well-posedness of (24), independently of the value of the parameters \(\alpha _{\text {defl}}^\ell \) and \(\alpha _{\text {rot}}^\ell \), relies on the well-posedness of the underlying unperturbed problem, i.e. the problem corresponding to (24) where we set \(\alpha _{\text {defl}}^\ell = \alpha _{\text {rot}}^\ell = +\infty \, , \ell = 1,\ldots ,L\). Although a rigorous proof of the inf-sup stability of such unperturbed problem is currently under investigation, we assess the behavior of the numerical inf-sup test for a domain \(\Omega \) subdivided along a straight interface into two subdomains \(\Omega ^i, i=1,2\). As we are dealing with a double saddle point problem, we compute two different inf-sup constants \(C_{\text {defl}}^{\text {inf-sup}}\) and \(C_{\text {rot}}^{\text {inf-sup}}\), corresponding to the deflection and rotation jumps, respectively. In the following we report the results for different discretization sizes of the interface \(h_\ell = 1/2^k , k=3,\ldots ,7\) and B-spline degrees \(p=2,\ldots ,5\), where \(h_\ell \) denotes the maximum mesh size associated with the interface \(\gamma ^\ell \). The numerical values of \(C_{\text {defl}}^{\text {inf-sup}}\) and \(C_{\text {rot}}^{\text {inf-sup}}\) are summarized in Table 1. In all cases we observe that the inf-sup constants converge to some values bounded away from zero, numerically suggesting that the method is inf-sup stable.

Table 1 Results of the numerical inf-sup test for \(C_{\text {defl}}^{\text {inf-sup}}\) and \(C_{\text {rot}}^{\text {inf-sup}}\), respectively, on different uniformly refined meshes \(h_\ell = 1/2^k , k=3,\ldots ,7\) and spline degrees \(p=2,\ldots ,5\)

3.3.2 Coercivity test

Then, we also assess numerically the behavior of the coercivity constant on an example with four patches \(\Omega ^i, i=1,\ldots ,4\) separated by four straight interfaces meeting at a cross-point. In particular, we want to compute the biggest \(\alpha _0\) such that:

$$\begin{aligned} \alpha _0 \vert \vert v_0 \vert \vert _{H^2(\Omega )}^2 \le a(v_0, v_0) \quad \forall v_0 \in K = \text {ker}(B_1) \cap \text {ker}(B_2) \, , \end{aligned}$$
(27)

where \(B_1\) and \(B_2\) are the linear operators associated with the bilinear forms \(b_1\) and \(b_2\), respectively. The results for different discretization sizes of the interface \(h_\ell = 1/2^k , k=2,\ldots ,5\) and B-spline degrees \(p=2,\ldots ,4\) are presented in Table 2, from which we can numerically infer that the method is coercive on the intersection kernel.

Table 2 Numerical estimation of the coercivity constant \(\alpha _0\) on different uniformly refined meshes \(h_\ell = 1/2^k , k=2,\ldots ,5\) and spline degrees \(p=2,3,4\)

Remark 1

The inf-sup and coercivity tests are performed on a reduced version of the knot vector \(\Xi _\star ^{\ell }\), where also the first and last internal knots of \(\Xi ^{\ell }\) are eliminated. This is justified by our preliminary mathematical analysis, where this choice is required. However, from a numerical standpoint, we retain the optimality of the method without performing such a reduction and in all our examples we directly employ \(\Xi _\star ^{\ell }\) to define the projection spaces.

3.3.3 On the choice of penalty parameters

It is well-known that the penalized problem (26) is variationally consistent only in the limit \(\alpha _{\text {defl}}^\ell = \alpha _{\text {rot}}^\ell \rightarrow \infty \, \, \ell = 1,\ldots ,L\). On the other hand, the well-posedness of this problem is robust with respect to the choice of the parameters \(\alpha _{\text {defl}}^\ell \) and \(\alpha _{\text {rot}}^\ell \). Therefore, the proposed methodology will not suffer from boundary locking for any choice of penalty values. As a consequence, \(\alpha _{\text {defl}}^\ell \) and \(\alpha _{\text {rot}}^\ell \) can be chosen solely to guarantee the optimal accuracy of the method.

Remark 2

A clear trade-off of this choice is the negative impact on the conditioning of the resulting system matrix. A possible remedy based on an ad-hoc preconditioner will be discussed in a later section. Another drawback consists in the loss of significant digits due to the (potentially big) difference in magnitude between the penalty contribution and the internal stiffness. For this reason, and to efficiently compute the projection operators, we advise using this method in combination with splines of degree \(p=2,3\), as these round-off errors occur below a tolerance threshold of significance to most engineering applications.

Inspired by the method proposed in [16] in the context of Kirchhoff–Love shells, we want to develop a fully parameter-free penalty method. To this end, we scale the deflection and rotation penalty parameters by the physical constants, the local mesh size and the geometry as:

$$\begin{aligned} \begin{aligned} \alpha _{\text {defl}}^\ell&= \text {meas}( \gamma ^{\ell } )^{\beta -1} \frac{E t}{(h_\ell )^\beta (1 - \nu ^2)} \\ \alpha _{\text {rot}}^\ell&= \text {meas}( \gamma ^{\ell } )^{\beta -1} \frac{E t^3}{12 (h_\ell )^\beta (1 - \nu ^2)} \, , \end{aligned} \end{aligned}$$
(28)

where meas\((\gamma ^{\ell })\) indicates the length of the coupling interface and the exponent \(\beta \) is chosen to ensure the optimal convergence of the method with respect to the degree p of the underlying discretization. Note that all of these parameters are known and depend only on the problem definition, meaning that no user-defined factor is required. We highlight that our choice is based on the fact that the perturbations introduced in (18) cannot be “big” compared to the accuracy with which we want to solve the original problem and the estimate provided in (19) guides the choice of \(\beta \). Moreover, as we want to recover optimal rates of convergence for the error, the exponent \(\beta \) must be a function of the underlying splines degree p.

From the numerical experiments conducted thus far, the scaling factor \(\beta = p-1\) in (28) is necessary to ensure optimal convergence of the method in the \(H^2\) norm, whereas for a scaling of \(\beta = p\) we observed optimality in the \(H^2\) and \(H^1\) norms. Finally, a factor of \(\beta = p+1\) provides optimality in the \(H^2\), \(H^1\) and \(L^2\) norms. If not stated otherwise, we will use \(\beta = p+1\) in all our numerical examples.

Remark 3

Although a rigorous mathematical proof of the method and the optimal choice of \(\beta \) are currently under development, we believe that this allows for some extra flexibility in the proposed methodology, where the suitable scaling factor can be chosen with respect to the corresponding quantity of interest.

Remark 4

Our choice of penalty factors correspond to the one in [16] if we set \(\beta = 1\) and if we remove any user-defined parameter. Clearly, for generic splines of degree p, this yields a sub-optimal convergence behavior in the asymptotic regime.

3.3.4 Cross-points modification

In the literature of mortar methods, it is well-known that the treatment of cross-points requires extra considerations, see [12] and references therein for a discussion in the context of mortar coupling of isogeometric multi-patches. Analogously, our method also inherits the need for a cross-points modification. Indeed, in order to retain optimality of the method, a linear constraint must be imposed to the control variables meeting at the cross-point to ensure \(C^0\)-continuity. An example with four patches is depicted in Fig. 3, where in Fig. 3a we depict the dofs associated with each coupling interface and in Fig. 3b we visualize the imposition of the constraint. To explain the procedure, let us start from the following unconstrained system of equations:

$$\begin{aligned} {\mathcal {A}} \varvec{u}_h = \varvec{f} \, . \end{aligned}$$
(29)

Now, the constraint can be incorporated easily into the standard linear system in a fully algebraic fashion, where a possible implementation is presented in Algorithm 1.

Fig. 3
figure 3

Example of the dofs involved in the computation of the coupling integrals and cross-point modification in a four patches setup. For a correct interpretation of the colors, the reader is referred to the web version of this manuscript

figure a

The construction of the rectangular matrix \({\mathcal {C}}\) is best explained with an example. Let us assume that the dofs at the cross-point are numbered as \(\varvec{u}_{\text {cp}} = [{u}_{\text {cp} 1} \, {u}_{\text {cp} 2} \, {u}_{\text {cp} 3} \, {u}_{\text {cp} 4}]\). Now, without loss of generality, we pick \({u}_{\text {cp} 1}\) as the active control point and the rest as inactive nodes. Then, the constraint can be expressed via the matrix \({\mathcal {C}}\) as follows:

(30)

where ndof denotes the total number of degrees-of-freedom in the system. This procedure eliminates the unknowns associated with the inactive nodes from the system.

Remark 5

Note that, as we only require \(C^0\)-continuity at the cross-point, the valence of the point does not pose any additional conceptual challenge to the method.

4 A nested preconditioner based on the Schur complement reduction

In this section, following the notation introduced in [35] and building upon the work presented in [27, 28] in the context of elastodynamics and hemodynamics, we present an efficient way to mitigate the detrimental effects on the condition number stemming from our choice of super-penalty parameters. This preconditioner is based on the approximate solution of the block factorization of the system matrix known as Schur complement reduction (SCR). We remind the reader that before performing the algorithm described in the following, we apply a symmetric diagonal scaling to the system matrix.

4.1 The Schur complement reduction

We begin by reordering the matrix \({\mathcal {A}} \in {\mathbb {R}}^{\text {ndof} \times \text {ndof}}\) stemming from (26) in blocks as follows:

$$\begin{aligned} {\mathcal {A}} = \begin{bmatrix} \mathbf{A }_{i,i} &{} \mathbf{B }_{i,\Gamma } \\ \mathbf{B }_{i,\Gamma }^\top &{} \mathbf{C }_{\Gamma ,\Gamma } \\ \end{bmatrix} \, , \end{aligned}$$
(31)

where the subscripts i and \(\Gamma \) refer to internal and interface dofs, respectively, where an example is depicted in Fig. 4. Let us remark that \(\mathbf{A }_{i,i}\) is a block-diagonal matrix where every block is the matrix associated to an homogeneous Dirichlet problem (fully clamped) on the corresponding patch \(\Omega ^i\). Moreover, with a slight abuse of notation, we assume that, if needed, \({\mathcal {A}}\) has already been modified to account for the constraints related to the cross-points introduced in the previous section.

Fig. 4
figure 4

Example of reordering of the dofs in a two patches setup, discretized by B-splines of degree \(p=2\), associated to the block system matrix \({\mathcal {A}}\)

Now, we can perform the following block factorization of \({\mathcal {A}}\):

$$\begin{aligned} {\mathcal {A}} = {\mathcal {L}} {\mathcal {D}} {\mathcal {U}} = \begin{bmatrix} {\mathbb {I}} &{} \mathbf{0 } \\ \mathbf{B }_{i,\Gamma }^\top \mathbf{A }_{i,i}^{-1} &{} {\mathbb {I}} \\ \end{bmatrix} \begin{bmatrix} \mathbf{A }_{i,i} &{} \mathbf{0 } \\ \mathbf{0 } &{} \mathbf{S }_{\Gamma ,\Gamma } \\ \end{bmatrix} \begin{bmatrix} {\mathbb {I}} &{} \mathbf{A }_{i,i}^{-1} \mathbf{B }_{i,\Gamma } \\ \mathbf{0 } &{} {\mathbb {I}} \\ \end{bmatrix} \, , \end{aligned}$$
(32)

where we have introduced the Schur complement \(\mathbf{S }_{\Gamma ,\Gamma } := \mathbf{C }_{\Gamma ,\Gamma } - \mathbf{B }_{i,\Gamma }^\top \mathbf{A }_{i,i}^{-1} \mathbf{B }_{i,\Gamma }\). Multiplying by \({\mathcal {L}}\) on both sides we get:

$$\begin{aligned}&\begin{bmatrix} &{}\mathbf{A }_{i,i} &{} \mathbf{B }_{i,\Gamma } \\ \mathbf{0 } &{} \mathbf{S }_{\Gamma ,\Gamma } \\ \end{bmatrix} \begin{bmatrix} \mathbf{x }_i \\ \mathbf{x }_\Gamma \\ \end{bmatrix} = \begin{bmatrix} {\mathbb {I}} &{} \mathbf{0 } \\ \mathbf{B }_{i,\Gamma }^\top \mathbf{A }_{i,i}^{-1} &{} {\mathbb {I}} \\ \end{bmatrix}^{-1} \begin{bmatrix} \mathbf{r }_i \\ \mathbf{r }_\Gamma \\ \end{bmatrix}\nonumber \\&\quad = \begin{bmatrix} {\mathbb {I}} &{} \mathbf{0 } \\ - \mathbf{B }_{i,\Gamma }^\top \mathbf{A }_{i,i}^{-1} &{} {\mathbb {I}} \\ \end{bmatrix} \begin{bmatrix} \mathbf{r }_i \\ \mathbf{r }_\Gamma \\ \end{bmatrix} = \begin{bmatrix} \mathbf{r }_i \\ \mathbf{r }_\Gamma - \mathbf{B }_{i,\Gamma }^\top \mathbf{A }_{i,i}^{-1} \mathbf{r }_i \\ \end{bmatrix} \, . \end{aligned}$$
(33)

We highlight that, up to this point, this factorization is performed in exact algebra. Then, from (33), we can solve for \(\mathbf{x }\) in a segregated fashion by exploiting Algorithm 2.

figure b

Clearly, the Schur complement \(\mathbf{S }_{\Gamma ,\Gamma }\) is in practice expensive and often infeasible to compute explicitly. A way around this issue is given in Algorithm 3, where we summarize a matrix-free procedure to apply the Schur complement to a vector.

figure c

Remark 6

As noted in [27], the cost of the preconditioner is often dominated by the solution of the Schur system (35). To reduce the computational burden of this step, we use as preconditioner a coarse approximation of the Schur complement obtained by applying only a few iterations of GMRES to \(\mathbf{A }_{i,i}\) for assembling \(\tilde{\mathbf{S }}_{\Gamma ,\Gamma } = \mathbf{C }_{\Gamma ,\Gamma } - \mathbf{B }_{i,\Gamma }^\top \tilde{\mathbf{A }}_{i,i}^{-1} \mathbf{B }_{i,\Gamma }\). Although this choice works reasonably well for our numerical examples, we remark that more research is needed to find a robust (both in h and p) and scalable preconditioner for the Schur complement and, more in general, for fourth-order PDEs.

4.2 Nested block preconditioner strategy based on SCR

The main idea presented in [27] is to combine the robustness of the SCR factorization with the ease of application of a block preconditioners (such as SIMPLE or variants thereof [35]). Indeed, we can build a preconditioner \({\mathcal {P}}_{\text {SCR}}\) based on an approximate factorization of (33), where Eqs. (34)–(36) are solved within a prescribed tolerance. Given that \({\mathcal {P}}_{\text {SCR}}\) changes its algebraic definition at every iteration, following [27], we employ a flexible GMRES algorithm (FGMRES) as the iterative method for the most outer solve \({\mathcal {A}} \mathbf{x } = \mathbf{r }\). At each iteration of FGMRES, we can apply the preconditioner \({\mathcal {P}}_{\text {SCR}}\) via Algorithm 2, where this entails the solution of the blocks \(\mathbf{A }_{i,i}\) and \(\mathbf{S }_{\Gamma ,\Gamma }\). This part of the algorithm is denoted as intermediate solver. Last, since we do not assemble the Schur complement explicitly, but we apply its action on a vector through Algorithm 3, we perform a final solve for \(\mathbf{A }_{i,i}\) in (37), denoted as inner solver. The final performance of the preconditioner is therefore determined by the prescribed tolerances for the outer, intermediate and inner layers, respectively, where the objective is finding a good balance between the computational cost and the robustness of the method. In the following, we denote the aforementioned tolerances by \(\eta _o, \eta _t\) and \(\eta _n\) for the outer, intermediate and inner layers, respectively.

4.2.1 A preconditioner based of the fast diagonalization (FD) algorithm

Since each outer iteration of the nested preconditioner is based on the solution of three systems involving the block \(\mathbf{A }_{i,i}\), an efficient and robust preconditioner for this block is required. In this work we extend the isogeometric preconditioner studied in [31, 37], based on the Fast Diagonalization algorithm, to the Kirchhoff plate problem. In the following, we focus our derivation on the single-patch case. The extension to the multi-patch case is straightforward by construction since the block \(\mathbf{A }_{i,i}\) is formed by disjoint sub-blocks associated to each patch \(\Omega ^i\).

Now, exploiting the tensor product structure of the B-spline basis at the patch level, let us introduce the preconditioner \({\mathcal {P}}_{\text {FD}}\) in Kronecker form as:

$$\begin{aligned} {\mathcal {P}}_{\text {FD}} = M_1 \otimes K_2 + K_1 \otimes M_2 \, , \end{aligned}$$
(38)

where \(M_k\) and \(K_k\) with \(k=1,2\) refer to the one-dimensional, parametric mass and hessian matrices associated to the k-th parametric dimension, respectively. They can be expanded as follows:

$$\begin{aligned} \left[ M_k \right] _{i,j}&= \int _0^1 b_{i,p} (\eta _k) \, b_{j,p} (\eta _k) \text { d}\eta _k \nonumber \\ \left[ K_k \right] _{i,j}&= \int _0^1 b_{i,p}^{\prime \prime } (\eta _k) \, b_{j,p}^{\prime \prime } (\eta _k) \text { d}\eta _k \, , \end{aligned}$$
(39)

where b indicates the univariate B-spline basis functions introduced in Sect. 2. Then, analogously to [32], we partially include the geometry and physical coefficients inside the preconditioner. In particular, let us denote by \({\mathfrak {C}}\) the following function:

$$\begin{aligned} {\mathfrak {C}}(\varvec{\eta }) = D \left( \big | \big | J_{\mathbf{F }}^{-1} \big | \big |_2 \right) ^4 | \text {det }(J_{\mathbf{F }}) | \, , \end{aligned}$$
(40)

where we recall that \(J_{\mathbf{F }}\) represents the jacobian of the B-spline parametrization \(\mathbf{F }\) and D is the flexural stiffness of the plate. Now, as explained in [32, Appendix A.3], we perform a separation of variables on \({\mathfrak {C}}\) such that we can write:

$$\begin{aligned} {\mathfrak {C}}(\varvec{\eta }) \approx \widetilde{{\mathfrak {C}}}(\varvec{\eta }) = \begin{bmatrix} \omega _1(\eta _1) \tau _2(\eta _2) &{} 0 \\ 0 &{} \tau _1(\eta _1) \omega _2(\eta _2) \end{bmatrix} \, , \end{aligned}$$
(41)

where this matrix is evaluated at each quadrature point. With this, we can modify the preconditioner given in (38) to partially account for the geometry and coefficients information as follows:

$$\begin{aligned} {\mathcal {P}}_{\text {FD}}^\mathbf{F } = {\widetilde{M}}_1 \otimes {\widetilde{K}}_2 + {\widetilde{K}}_1 \otimes {\widetilde{M}}_2 \, , \end{aligned}$$
(42)

where

$$\begin{aligned} \begin{aligned} \left[ {\widetilde{M}}_k \right] _{i,j}&= \int _0^1 \omega _k(\eta _k) b_{i,p} (\eta _k) \, b_{j,p} (\eta _k) \text { d}\eta _k \\ \left[ {\widetilde{K}}_k \right] _{i,j}&= \int _0^1 \tau _k(\eta _k) b_{i,p}^{\prime \prime } (\eta _k) \, b_{j,p}^{\prime \prime } (\eta _k) \text { d}\eta _k \, . \end{aligned} \end{aligned}$$
(43)

Finally, each iteration of the iterative solver requires the solution of the following system:

$$\begin{aligned} {\mathcal {P}}_{\text {FD}}^\mathbf{F } s = r \, , \end{aligned}$$
(44)

where r denotes the current residual. Due to the tensor structure of the preconditioner, we can rewrite (44) as a Sylvester matrix Eq. [39]:

$$\begin{aligned} {\widetilde{M}}_2 S {\widetilde{K}}_1 + {\widetilde{K}}_2 S {\widetilde{M}}_1 = R \, , \end{aligned}$$
(45)

where \(s = \text {vec}(S)\) and \(r = \text {vec}(R)\).

Remark 7

Let us recall that for any matrix \(Z \in {\mathbb {R}}^{r \times c}\) the operator \(vec (Z)\) gives as output the vector \(z \in {\mathbb {R}}^{r c}\) formed by stacking the columns of Z.

Let us now consider the generalized eigendecomposition of the matrix pencils \(({\widetilde{K}}_1, {\widetilde{M}}_1)\) and \(({\widetilde{K}}_2, {\widetilde{M}}_2)\), respectively, as:

$$\begin{aligned} \begin{aligned} {\widetilde{K}}_1 U_1&= {\widetilde{M}}_1 U_1 D_1 \\ {\widetilde{K}}_2 U_2&= {\widetilde{M}}_2 U_2 D_2 \, . \end{aligned} \end{aligned}$$
(46)

Here, \(D_1\) and \(D_2\) are diagonal matrices containing the eigenvalues of \({\widetilde{M}}_1^{-1} {\widetilde{K}}_1\) and \({\widetilde{M}}_2^{-1} {\widetilde{K}}_2\), respectively. Further, \(U_1\) and \(U_2\) are defined as:

$$\begin{aligned} \begin{aligned} U_1^\top {\widetilde{M}}_1 U_1&= {\mathbb {I}} \\ U_2^\top {\widetilde{M}}_2 U_2&= {\mathbb {I}} \, . \end{aligned} \end{aligned}$$
(47)

With these definitions at hand, we can rewrite (42) in Kronecker form as:

$$\begin{aligned} \left( U_1 \otimes U_2 \right) ^{-\top } \left( D_1 \otimes {\mathbb {I}} + {\mathbb {I}} \otimes D_2 \right) \left( U_1 \otimes U_2 \right) ^{-1} s = r \, , \end{aligned}$$
(48)

where the preconditioner can be efficiently applied via Algorithm 4.

figure d

Remark 8

We remark that the application of the nested preconditioner \({\mathcal {P}}_{\text {SCR}}\) combined with \({\mathcal {P}}_{\text {FD}}^\mathbf{F }\) can be implemented in a fully matrix-free framework. Furthermore, although not investigated in this work, the patch-wise block structure of \(\mathbf{A }_{i,i}\) could be further exploited for parallelization.

For the sake of conciseness, we do not provide here further details of the FD algorithm, but we refer to [31, 37] for a thorough theoretical and numerical investigation of the method in the scope of isogeometric analysis.

5 Numerical examples

In this section we assess the performance of the proposed coupling method with several numerical examples defined on non-conforming, multi-patch geometries. All the numerical experiments presented in the following have been implemented in the open-source and free Octave/Matlab package GeoPDEs [41], a software designed for the solution of partial differential equations in the context of isogeometric analysis.

5.1 A four-patches plate example

In this example we consider the computational domain \(\Omega = [0,2] \times [0,2]\) depicted in Fig. 5, split into four subdomains \(\Omega ^i\). We remark that all meshes are non-conforming at every coupling interface, as the irrational factor \(\sqrt{2}/100\) has been used to shift the interface knots. The body load and boundary data are computed such that the exact solution is smooth and it reads:

$$\begin{aligned} u^{\text {ex}} = \sin (\pi x) \cos (\pi y) \, . \end{aligned}$$
(49)

This setup is used to test the robustness of our method in the case of severe non-matching discretizations and with respect to the problem parameters. To this end, we present the convergence results for all combinations of Young’s moduli \(E = [10^4, 10^8] \, [Pa]\) and thickness of the plate \(t = [0.05, 0.01, 0.005] \, [m]\), where we set the Poisson’s ratio \(\nu = 0 \, [-]\). We compare our method to a classical penalty approach, where we set \(\alpha _{\text {defl}}^\ell = \alpha _{\text {rot}}^\ell = 10^4 E, \ell = 1,\ldots ,L\), and to a choice of penalty parameters scaled with respect to the physical parameters as proposed in [16]. In particular, they read:

$$\begin{aligned} \begin{aligned} \alpha _{\text {defl}}^\ell&= \delta \frac{E t}{h_\ell (1 - \nu ^2)} \\ \alpha _{\text {rot}}^\ell&= \delta \frac{E t^3}{12 h_\ell (1 - \nu ^2)} \, , \end{aligned} \end{aligned}$$
(50)

where the user-defined parameter \(\delta = 10^3\) is chosen. From the results in Fig. 6, we observe that the projection strategy shows robustness with respect to the input parameters and allows for an easy treatment of locking phenomena, where optimal convergence rates are also attained for very coarse meshes.

Fig. 5
figure 5

Problem setup and initial non-conforming, multi-patch discretization for the curved four patches example

Table 3 Condition number of \({\mathcal {A}}\) and number of iterations needed by different iterative methods, \(p=2,3\), as a function of the elements (el.)
Table 4 Condition number of \({\mathcal {A}}\) and number of iterations needed by different iterative methods, \(p=2,3\), as a function of the elements (el.) for the parameters proposed in [16]
Fig. 6
figure 6

Convergence study of the error measured in the \(H^2\) norm in the non-matching case for four patches with curved interface example for different Young moduli and values of the thickness, B-splines of degree \(p=2,3\). Comparison of a classic penalty method, the scaled version with respect to the problem parameters proposed in [16] (scaled) and our projection approach (proj)

Fig. 7
figure 7

Convergence study of the error in the \(H^2\) norm in the non-matching case for the curved four patches example. Influence of imposing a \(C^0\) constraint at the cross-point

Fig. 8
figure 8

Element-wise plot of the error in the \(H^2\) norm in the non-matching case for the curved four patches example, B-splines of degree \(p=4\). Influence of imposing a \(C^0\) constraint at the cross-point, notice the difference of one order of magnitude used in the two colorbars

Table 5 Influence of the intermediate and inner tolerances \(\eta _t\) and \(\eta _n\) (where we always set \(\eta _t = \eta _n\)) on the number of outer iterations needed by the FGMRES solver, \(p=2,3\), on a fixed mesh with 4096 elements
Fig. 9
figure 9

Problem setup and initial non-conforming, multi-patch discretization for the nine patches example

Fig. 10
figure 10

Convergence study of the error measured in the \(L^2\), \(H^1\) and \(H^2\) norms in the non-matching case for nine patches example for different B-splines of degree \(p=2,3\). Comparison of a classic penalty method, the scaled version with respect to the problem parameters proposed in [16] (scaled) and our projection approach (proj)

Fig. 11
figure 11

Initial configuration and non-conforming discretization for the three patches example

Fig. 12
figure 12

Convergence study of the error measured in the \(L^2\), \(H^1\) and \(H^2\) norms in the non-matching case for the three patches example, B-splines of degree \(p=2,3\). Comparison of a classic penalty method, the scaled version with respect to the problem parameters proposed in [16] (scaled) and our projection approach (proj)

Fig. 13
figure 13

Geometry setup and non-conforming discretization for the flat L-bracket example

In Fig. 7 the convergence behavior of the error measured in the \(H^2\) norm with and without the imposition of the \(C^0\) constraint at the cross-point is plotted. We observe that the loss of accuracy hinders the convergence for \(p=3,4\), whereas the expected optimal rates of convergence are recovered in all cases when the linear constraint is imposed to the system. This is further highlighted in Fig. 8, where the element-wise \(H^2\) error is depicted for a discretization of degree \(p=4\), without and with the constraint, respectively. On one hand, we remark how the error is concentrated and much higher in the elements around the cross-point, spoiling the optimal convergence when the constraint is not imposed. On the other hand, with the linear constraint, we recover optimal convergence properties of the method.

Finally, for this example we also analyze the performance of the nested preconditioner. In Table 3 we report the iterations needed by the external solver and in brackets the average number of intermediate iterations, for several degrees of the discretization \(p=2,3\), and we compare it with a classical diagonally preconditioned conjugate gradient (PCG), a PCG where an incomplete LU (ILU) is used as preconditioner and a GMRES preconditioned with ILU. All the results refer to a global tolerance \(\eta _o\) of \(10^{-10}\) and, for the nested SCR-FGMRES strategy, the intermediate and inner tolerances \(\eta _t\) and \(\eta _n\) are set to \(10^{-6}\). Further, the Schur complement is preconditioned by an approximation \(\tilde{\mathbf{S }}_{\Gamma ,\Gamma }\) obtained with a maximum of 6 iterations of GMRES. For the sake of completeness, we perform the same test with the choice of penalty parameters studied in [16]. The results are summarized in Table 4, where we observe no substantial difference regarding the iterations needed to solve the system compared to the case where our choice of parameters is employed. This suggests that the proposed preconditioner is robust with respect to the penalty factors and it is also suitable to precondition systems stemming from other penalty approaches.

In Table 5 we study the influence of the intermediate and inner tolerances on the number of outer iterations required by the FGMRES solver, on a fixed mesh of 4096 elements, for B-splines of degree \(p=2,3\). We note that as the chosen tolerances become smaller and smaller, we recover the algebraically exact SCR method, where in the limit the algorithm converges in one iteration. We also remark that finding an optimal choice for these parameters is, to the best of the authors’ knowledge, still an open question in the community.

5.2 A nine-patches plate geometry

In this example we consider the computational domain \(\Omega = [0,3] \times [0,3]\) depicted in Fig. 9, divided into nine subdomains \(\Omega ^i\). Similarly to the previous example, all meshes are non-conforming at every coupling interface, where again an irrational factor of \(\sqrt{2}/100\) has been used to shift the interface knots. The body load and boundary data are derived from the following analytical exact solution:

$$\begin{aligned} u^{\text {ex}} = \sin (\pi x) \cos (\pi y). \end{aligned}$$
(51)

Further, we set the Young’s modulus to \(E = 10^6 \, [Pa]\), the thickness of the plate to \(t = 0.01 \, [m]\) and the Poisson’s ratio to \(\nu = 0 \, [-]\).

Fig. 14
figure 14

Solution contour for the flat L-bracket example, B-splines of degree \(p=2,3\)

Fig. 15
figure 15

Components of the bending stress tensor \(\mathbf{m }\) for the flat L-bracket example, B-splines of degree \(p=2,3\)

The convergence results of the error measured in the \(L^2\), \(H^1\) and \(H^2\) are presented in Fig. 10, for splines of degree \(p=2,3\). In this example we test the robustness of the method with respect to:

  • Floating patches;

  • The presence of multiple cross-points where a constraint must be applied.

We again observe the expected asymptotic convergence rates of the error for all norms, where we remark that the method behaves optimally, particularly for very coarse meshes, where locking phenomena are avoided. Indeed, on one hand, we again notice that a classical “vanilla” choice of the penalty parameters yield a severe overconstraint of the solution space, resulting in a loss of accuracy of several order of magnitudes compared to the projection method. On the other hand, the scaling studied in [16] leads to better results especially in the energy norm. However, for coarse meshes, we note that the method still suffers from locking, thus hindering the accuracy achievable by B-splines.

5.3 A three-patches plate example

In this example we consider the computational domain \(\Omega = [0,2] \times [0,2]\), split into three subdomains \(\Omega ^i\), see Fig. 11a. The initial non-conforming discretization used in the following is depicted in Fig. 11b, where the interface knots are again shifted by a factor of \(\sqrt{2}/100\) to induce the non-conformity. The peculiarity of this example is the presence of a geometrically non-conforming interface between the patches, which is further used to assess the robustness of our method.

Remark 9

Similarly to [7], we define an interface as geometrically conforming if the pull-back with respect to both active and inactive domains is an entire edge of each parametric domain \({\widehat{\Omega }}^i\).

Similarly to the previous examples, the exact solution reads:

$$\begin{aligned} u^{\text {ex}} = \sin (\pi x) \cos (\pi y), \end{aligned}$$
(52)

from which the applied body load and imposed boundary conditions are derived. Regarding the problem parameters, we set the Young’s modulus to \(E = 10^6 \, [Pa]\), the thickness of the plate to \(t = 0.01 \, [m]\) and the Poisson’s ratio to \(\nu = 0 \, [-]\).

The convergence results of the error measured in the \(L^2\), \(H^1\) and \(H^2\) are presented in Fig. 12, for splines of degree \(p=2,3\). Analogously to our previous results, our method attains optimal rates of convergence, even in the presence of a geometrically non-conforming interface. Once again, this numerical experiment confirms that our method is insensitive to boundary locking, starting from very coarse discretizations, where a substantial gain in accuracy per degree-of-freedom is observed.

5.4 A flat L-bracket

The last example we present is meant to show the applicability of the method to more complex multi-patch geometries. Analogously to the example studied in [5], we modeled a flat L-bracket with 28 patches coupled along 34 interfaces, as depicted in Fig. 13. We apply a constant line load of \(100 \, [N/m]\) in the negative z-direction on the upper right edge and we impose clamped boundary conditions on the entire boundary of the upper left and lower left holes, respectively. Further, we set the Young’s modulus to \(E = 200 \times 10^9 \, [Pa]\), the thickness of the plate to \(t = 0.01 \, [m]\) and the Poisson’s ratio to \(\nu = 0 \, [-]\). The solution field obtained with B-splines of degree \(p=2,3\) is depicted in Fig. 14, where we remark the smoothness of the obtained solution, especially across the coupling interfaces. In Fig. 15 we also plot the bending stress tensor \(\mathbf{m }\), where its components are defined as:

$$\begin{aligned} m_{ij} = D \left( \nu \delta _{ij} u_{kk} + (1 - \nu ) u_{ij} \right) \, , \end{aligned}$$
(53)

and where \(\delta _{ij}\) denotes the standard Kronecker delta. We again obtain a smooth stress field, where no visible spurious oscillations are introduced by the proposed coupling strategy. Finally, in Fig. 16, we plot the convergence results of the stress component \(m_{11}\), evaluated at point A marked in Fig. 13a, as a function of the number of dofs on a series of uniformly refined meshes. We note that for the classical penalty approach, and only for this example, we have tuned the penalty parameters to converge towards the reference value, where we have set \(\alpha _{\text {defl}}^\ell = 10^4 E \, , \alpha _{\text {rot}}^\ell = E, \ell = 1,\ldots ,L\). This example highlights once again the gain in accuracy achieved on coarse meshes by the proposed method, also for point-wise quantities of interest.

6 Conclusions

In this work we have introduced a simple methodology for the \(C^1\)-coupling of isogeometric patches based on the \(L^2\)-projection of suitable super-penalty terms in the context of Kirchhoff plates. The method does not suffer from locking phenomena even in the case of severe non-matching discretization, where optimal rates of convergence of the error measured in the \(L^2\), \(H^1\) and \(H^2\) norms have also been attained on very coarse meshes and a substantial gain in accuracy per degree-of-freedom has been observed compared to a classical penalty approach and to the scaled choice of parameters presented in [16] in the scope of Kirchhoff–Love shells. The method turns out to be particularly effective for moderate spline degrees \(p=2,3\). Our choice of parameters is completely determined by the problem definition and is based upon the underlying perturbed saddle point formulation associated with the plate, from which the two Lagrange multipliers are eliminated and the magnitude of the corresponding perturbations gives us insights on how to appropriately select the penalty factors. Then, to mitigate the detrimental effects of this choice on the condition number of the system matrix, we have combined the nested block preconditioner introduced in [27] with a preconditioner based on the Fast Diagonalization algorithm tailored for isogeometric Kirchhoff plates, inspired by the strategy in [37].

Fig. 16
figure 16

Convergence study of the stress component \(m_{11}\), evaluated at point A in Fig. 11a, for the flat L-bracket example for different B-splines of degree \(p=2,3\). Comparison of a classic penalty method, the scaled version with respect to the problem parameters proposed in [16] (scaled) and our projection approach (proj)

To conclude, we have numerically demonstrated the applicability and robustness of the proposed projected super-penalty approach for coupling Kirchhoff plates discretized by non-conforming isogeometric patches, where the method does not show any boundary locking also on very coarse meshes.