Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

Isogeometric Analysis (IgA), which was introduced by Hughes, Cottrell and Bazilevs in 2005, is a new discretization technology which uses the same class of basis functions for both representing the geometry of the computational domain and approximating the solution of problems modeled by Partial Differential Equations (PDEs), [23]. IgA uses the exact geometry in the class of Computer Aided Design (CAD) geometries, and thus geometrical errors introduced by approximation of the physical domain are eliminated. This feature is especially important in technical applications where the CAD geometry description is directly used in the production process. Usually, IgA uses basis functions like B-Splines and Non-Uniform Rational B-Splines (NURBS), which are standard in CAD, and have several advantages which make them suitable for efficient and accurate simulation, see [8]. The mathematical analysis of approximation properties, stability and discretization error estimates of NURBS spaces have been well studied in [5]. Furthermore, approximation error estimates due to mesh, polynomial degree and smoothness refinement have been obtained in [6], and likewise a hybrid method that combines a globally C 1−continuous, piecewise polynomial finite element basis with rational NURBS-mappings have also been considered in [27].

In practical applications, the computational domain \(\varOmega \subset \mathbb{R}^{d}\) (d = 2, 3) is usually represented by multiple patches leading to non-matching meshes and thus to patch-wise non-conforming approximation spaces. In order to handle non-matching meshes and polynomial degrees across the patch interfaces, the discontinuous Galerkin (dG) technique that is now well established in the Finite Element Analysis (FEA) of different field problems is employed. Indeed, dG methods have been developed and analyzed for many applications including elliptic, parabolic and hyperbolic PDEs. The standard dG finite element methods use approximations that are discontinuous across the boundaries of every finite element of the triangulation. To achieve consistent, stable and accurate schemes, some conditions are prescribed on the inter-element boundaries, see, e.g., Rivière’s monograph [35].

In this paper, we present and analyze multipatch dG IgA methods for solving elliptic PDEs in volumetric 2d or 3d computational domains as well as on open and closed surfaces. As model problems, we first consider diffusion problems of the form

$$\displaystyle{ -\nabla \cdot (\alpha \nabla u) = f\ \text{in}\ \varOmega,\ \text{and}\ u = u_{D}\ \mbox{ on $\partial \varOmega $}, }$$
(1)

where Ω is a bounded Lipschitz domain in \(\mathbb{R}^{d},\ d = 2,3\), with the boundary ∂ Ω, f is a given source term, and u D are given Dirichlet data. Neumann, Robin and mixed boundary conditions can easily be treated in the same dG IgA framework which we are going to analyze in this paper. The same is true for including a reaction term into the PDE (1). The diffusion coefficient α is assumed to be bounded from above and below by strictly positive constants. We allow α to be discontinuous across the inter-patch boundaries with possible large jumps across these interfaces. More precisely, the computational domain Ω is subdivided into a collection \(\mathcal{T}_{H}(\varOmega ):=\{\varOmega _{i}\}_{i=1}^{N}\) of non-overlapping subdomains (patches) \(\varOmega _{1},\ldots,\varOmega _{N}\), where the patches Ω i are obtained by some NURBS mapping Φ i from the parameter domain \(\hat{\varOmega }= (0,1)^{d} \subset \mathbb{R}^{d}\). In every subdomain, the problem is discretized under the IgA methodology. The dG IgA method is considered in a general case without imposing any matching grid conditions and without any continuity requirements for the discrete solution across the interfaces \(F_{ij} = \partial \varOmega _{i} \cap \partial \varOmega _{j}\). Thus, on the interfaces, the dG technique ensures the communication of the solution between the adjacent subdomains. For simplicity, we assume that the coefficients are piecewise constant with respect to the decomposition \(\mathcal{T}_{H}(\varOmega _{i})_{i=1}^{N}\). It is well known that solutions of elliptic problems with discontinuous coefficients are generally not smooth [20, 26], Thus, we cannot expect that the dG IgA provides convergence rates like in the smooth case. Here, the reduced regularity of the solution is of primary concern. Following the techniques developed by Di Pietro and Ern [12, 13] for dG FEA, we present an error analysis for diffusion problems in 2d and 3d computational domains with solutions belonging to \(W^{l,p}(\varOmega _{i}),\,l \geq 2,\ p \in (\max \{1,2d/(d + 2(l - 1))\},2],\,i = 1,\ldots,N\). In correspondence with this regularity, we show optimal convergence rates of the discretization error in the classical “broken” dG – norm. Due to the peculiarities of the dG IgA, the proofs are quite technical and can be found in the paper [30] written by two of the co-authors. Solutions of elliptic problems with low regularity can also appear in other cases. For example, geometric singular boundary points (re-entrant corners), points with change of the boundary conditions, and singular source terms can cause low-regularity solutions as well, see, e.g., [20]. Especially, in the IgA, we want to use the potential of the approximation properties of NURBS based on high-order polynomials. In this connection, the error estimates obtained for the low-regularity case can be very useful. Indeed, via mesh grading, that has been used in the FEA for a long time [3, 33], we can recover the full convergence rate corresponding to the underlying polynomial degree. We mention that in the literature other techniques have been proposed for solving two dimensional problems with singularities. For example, in [34] and [24], the original B-Spline finite dimensional space has been enriched by generating singular functions which resemble the types of the singularities of the problem. Also in [7], by studying the anisotropic character of the singularities of the problem, the one dimensional approximation properties of the B-Splines are generalized in order to produce anisotropic refined meshes in the regions of the singular points. Our error analysis is accompanied by a series of numerical tests which fully confirm our convergence rate estimates for the multipatch dG IgA in both the full and the low regularity cases as well as the recovering of the full rate by means of mesh grading techniques. We mention that the detailed proofs of the main theoretical results can be found in [30] and [28], whereas all numerical results are new. It is very clear that our analysis can easily be generalized to more general classes of elliptic boundary value problems like plane strain or stress linear elasticity problems or linear elasticity problems in 3d volumetric computational domains.

We will also consider multipatch dG IgA of diffusion problems of the form (1) on sufficiently smooth, open and closed surfaces Ω in \(\mathbb{R}^{3}\), where the gradient ∇ must now be replaced by the surface gradient ∇ Ω , see, e.g., [18], and the patches Ω i , into which Ω is decomposed, are now images of the parameter domain \(\hat{\varOmega }= (0,1)^{2}\) by the mapping \(\varPhi _{i}:\hat{\varOmega }\subset \mathbb{R}^{2} \rightarrow \varOmega _{i} \subset \mathbb{R}^{3}\). The case of matching meshes was considered and analyzed in [29] by two of the co-authors, see also [36] for a similar work. It is clear that the results for non-matching spaces and for mesh grading presented here for the volumetric (2d and 3d) case can be generalized to diffusion problems on open and closed surfaces. Until now, the most popular numerical method for solving PDEs on surfaces is the surface Finite Element Method (FEM). The surface FEM was first applied to compute approximate solutions of the Laplace-Beltrami problem, where the finite element solution is constructed from the variational formulation of the surface PDEs in the finite element space that is living on the triangulated surface approximating the real surface [15]. This method has been extended to the parabolic equations fixed surfaces by Dziuk and Elliot [17]. To treat conservation laws on moving surfaces, Dziuk and Elliot proposed the evolving surface finite element methods, see [16]. Recently, Dziuk and Elliot have published the survey paper [18] which provides a comprehensive presentation of different finite element approaches to the solution of PDEs on surfaces with several applications. The first dG finite element scheme, which extends Dziuk’s approach, was proposed by Dedner et al. [11] and has very recently been extended to adaptive dG surface FEM [10] and high-order dG finite element approximations on surfaces [2]. However, since all these approaches rely on the triangulated surface, they have an inherent geometrical error which becomes more complicated when approximating problems with complicated geometries. This drawback of the surface FEM can be overcome by the IgA technology, at least, in the class of CAD surfaces which can be represented exactly by splines or NURBS. Dede and Quateroni have introduced the surface IgA for fixed surfaces which can be represented by one patch [9]. They presented convincing numerical results for several PDE problems on open and closed surfaces. However, in many practical applications, it is not possible to represent the surface Ω with one patch. The surface multipatch dG IgA that allows us to use patch-wise different approximations spaces on non-matching meshes is then the natural choice.

The new paradigm of IgA brings challenges regarding the implementation. Even though the computational domain is partitioned into subdomains (patches) and elements (parts of the domain delimited by images of knot-lines or knot-planes), the information that is accessible by the data structure (parametric B-spline patches) is quite different than that of a classical finite element mesh (collection of triangles or simplices providing the triangulation of the domain). In this realm, existing finite element software libraries cannot easily be adapted to the isogeometric setting. Apart from the data structures used, another issue is the fact that FEA codes are focused on treating nodal shape function spaces, contrary to isogeometric function spaces. To provide a unified solution to the above (and many other) issues, we present the G+SMO Footnote 1C++ library, which provides a unified, object-oriented development framework suitable to implement advanced isogeometric techniques, such as dG methods see [25].

The rest of the paper is organized as follows. In Sect. 2, we present and analyze the multipatch dG IgA for diffusion problems in volumetric 2d and 3d computational domains including the case of low-regularity solutions. We also study the mesh grading technology which allows us to recover the full convergence rates defined by the degree k of the underlying polynomials. The numerical analysis is accompanied by numerical experiments fully confirming the theoretical results. Section 3 is devoted to multipatch dG IgA of diffusion problems on open and closed surfaces. We present and discuss new numerical results including the case of jumping coefficients and non-matching meshes. The concept and the main features of the G+SMO library is presented in Sect. 4. All numerical experiments presented in this paper have been performed in G+SMO.

2 Multipatch dG IgA for PDEs in 3d Computational Domains

2.1 Multipatch dG IgA Discretization

The weak formulation of (1) reads as follows: find a function u from the Sobolev space W 1, 2(Ω) such that u = u D on ∂ Ω and satisfies the variational formulation

$$\displaystyle{ a(u,v) = l(v),\ \forall v \in W_{0}^{1,2}(\varOmega ):=\{ v \in W^{1,2}(\varOmega ):\, v = 0\;\mbox{ on}\;\partial \varOmega \}, }$$
(2)

where the bilinear form a(⋅ , ⋅ ) and the linear form l(⋅ ) are defined by the relations

$$\displaystyle{ a(u,v) =\int _{\varOmega }\alpha \nabla u \cdot \nabla v\,dx\quad \text{and}\quad l(v) =\int _{\varOmega }fv\,dx, }$$

respectively. Beside Sobolev’s Hilbert spaces \(H^{l}(\varOmega ) = W^{l,2}(\varOmega )\), we later also need Sobolev’s Banach spaces W l, p(Ω), \(p \in [1,\infty )\), see, e.g., [1]. The existence and uniqueness of the solution u of problem (2) can be derived by Lax-Milgram’s Lemma [19]. In order to apply the dG IgA methodology to problem (1), the domain Ω is subdivided into a union of subdomains \(\mathcal{T}_{H}(\varOmega ):=\{\varOmega _{i}\}_{i=1}^{N}\) such that

$$\displaystyle{ \bar{\varOmega }=\bigcup _{ i=1}^{N}\bar{\varOmega }_{ i},\quad \text{with}\quad \varOmega _{i} \cap \varOmega _{j} =\emptyset,\ \text{if}\ j\neq i. }$$
(3)

As we mentioned in the introduction, the subdivision of Ω is assumed to be compatible with the discontinuities of α, i.e. they are constant in the interior of Ω i , that is \(\alpha \vert _{\varOmega _{i}}:=\alpha ^{(i)}\), and their discontinuities appear only across the interfaces \(F_{ij} = \partial \varOmega _{i} \cap \partial \varOmega _{j}\), cf., e.g., [1214]. Throughout the paper, we will use the notation \(a \sim b\) meaning that there are positive constants c and C such that ca ≤ b ≤ Ca.

As it is common in IgA, we assume a parametric domain \(\hat{\varOmega }\) of unit length, e.g., \(\hat{\varOmega }= (0,1)^{d}\). For any Ω i , we associate d knot vectors \(\varXi _{n}^{(i)}\), n = 1, , d, on \(\hat{\varOmega }\), which create a mesh \(T_{h_{i},\hat{\varOmega }}^{(i)} =\{\hat{ E}_{m}\}_{m=1}^{M_{i}}\), where \(\hat{E}_{m}\) are the micro-elements, see details in [23]. We refer to \(T_{h_{i},\hat{\varOmega }}^{(i)}\) as the parametric mesh of Ω i . For every \(\hat{E}_{m} \in T_{h_{i},\hat{\varOmega }}^{(i)}\), we denote by \(h_{\hat{E}_{m}}\) its diameter and by \(h_{i} =\max \{ h_{\hat{E}_{m}}\}\) the mesh size of \(T_{h_{i},\hat{\varOmega }}^{(i)}\). We assume the following properties for every \(T_{h_{i},\hat{\varOmega }}^{(i)}\):

  • quasi-uniformity: for every \(\hat{E}_{m} \in T_{h_{i},\hat{\varOmega }}^{(i)}\) holds \(h_{i} \sim h_{\hat{E}_{m}}\),

  • for the micro-element edges \(e_{\hat{E}_{m}} \subset \partial \hat{E}_{m}\) holds \(h_{\hat{E}_{m}} \sim e_{\hat{E}_{m}}\).

On every \(T_{h_{i},\hat{\varOmega }}^{(i)}\), we construct the finite dimensional space \(\hat{\mathbb{B}}_{h_{i}}^{(i)}\) spanned by B-spline basis functions of degree k, see [23],

$$\displaystyle{ \hat{\mathbb{B}}_{h_{i}}^{(i)} = span\{\hat{B}_{ j}^{(i)}(\hat{x})\}_{ j=0}^{dim(\hat{\mathbb{B}}_{h_{i}}^{(i)}) }, }$$
(4)

where every basis function \(\hat{B}_{j}^{(i)}(\hat{x})\) in (4) is derived by means of tensor products of one-dimensional B-spline basis functions, e.g.,

$$\displaystyle{ \hat{B}_{j}^{(i)}(\hat{x}) =\hat{ B}_{ j_{1}}^{(i)}(\hat{x}_{ 1}) \cdot \cdot \cdot \hat{ B}_{j_{d}}^{(i)}(\hat{x}_{ d}). }$$
(5)

For simplicity, we assume that the basis functions of every \(\hat{\mathbb{B}}_{h_{i}}^{(i)},i = 1,\ldots,N\), are of the same degree k.

Every subdomain \(\varOmega _{i} \in \mathcal{T}_{H}(\varOmega )\), i = 1, , N, is exactly represented through a parametrization (one-to-one mapping), cf. [23], having the form

$$\displaystyle{ \varPhi _{i}:\hat{\varOmega }\rightarrow \varOmega _{i},\quad \varPhi _{i}(\hat{x}) =\sum _{j}C_{j}^{(i)}\hat{B}_{ j}^{(i)}(\hat{x}):= x \in \varOmega _{ i}, }$$
(6)

where C j (i) are the control points and \(\hat{x} = \varPsi _{i}(x):=\varPhi _{ i}^{-1}(x)\). Using Φ i , we construct a mesh \(T_{h_{i},\varOmega _{i}}^{(i)} =\{ E_{m}\}_{m=1}^{M_{i}}\) for every Ω i , whose vertices are the images of the vertices of the corresponding mesh \(T_{h_{i},\hat{\varOmega }}^{(i)}\) through Φ i . If \(h_{\varOmega _{i}} =\max \{ h_{E_{m}}: \ E_{m} \in T_{h_{i},\varOmega _{i}}^{(i)}\}\) is the subdomain Ω i mesh size, then, based on definition (6) of Φ i , we have the equivalence relation \(h_{i} \sim h_{\varOmega _{i}}.\)

The mesh of Ω is considered to be \(T_{h}(\varOmega ) =\bigcup _{ i=1}^{N}T_{h_{i},\varOmega _{i}}^{(i)}\), where we note that there are no matching mesh requirements on the interior interfaces \(F_{ij} = \partial \varOmega _{i} \cap \partial \varOmega _{j},i\neq j\). For the sake of brevity in our notations, the interior faces of the boundary of the subdomains are denoted by \(\mathcal{F}_{I}\) and the collection of the faces that belong to ∂ Ω by \(\mathcal{F}_{B}\), e.g. \(F \in \mathcal{F}_{B}\) if there is a Ω i such that \(F = \partial \varOmega _{i} \cap \partial \varOmega\). We denote the set of all subdomain faces by \(\mathcal{F}.\)

Lastly, we define the B-spline space \(\mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega )) = \mathbb{B}_{h_{1}}^{(1)} \times \ldots \times \mathbb{B}_{h_{N}}^{(N)}\) on Ω, where every \(\mathbb{B}_{h_{i}}^{(i)}\) is defined on \(T_{h_{i},\varOmega _{i}}^{(i)}\) as follows

$$\displaystyle{ \mathbb{B}_{h_{i}}^{(i)}:=\{ B_{ h_{i}}^{(i)}\vert _{\varOmega _{ i}}: B_{h}^{(i)}(x) =\hat{ B}_{ h}^{(i)} \circ \varPsi _{ i}(x),\ \forall \hat{B}_{h}^{(i)} \in \hat{ \mathbb{B}}_{ h_{i}}^{(i)}\}. }$$
(7)

We assume that the mappings Φ i are regular in the sense that there exist positive constants c m and c M such that

$$\displaystyle{ c_{m} \leq \vert det(J_{i}(\hat{x}))\vert \leq c_{M},\ \text{for}\ i = 1,\ldots,N,\ \text{for all}\ \hat{x} \in \hat{\varOmega }, }$$
(8)

where \(J_{i}(\hat{x})\) denotes the Jacobian \(\partial \varPhi _{i}(\hat{x})/\partial (\hat{x})\) of the mapping Φ i .

Now, for any \(\hat{u} \in W^{m,p}(\hat{\varOmega }),m \geq 0,p> 1\), we define the function

$$\displaystyle{ \mathcal{U}(x) =\hat{ u}(\varPsi _{i}(x)),\ x \in \varOmega _{i}, }$$
(9)

and the following relation holds true, see [30],

$$\displaystyle{ C_{m}\|\hat{u}\|_{W^{m,p}(\hat{\varOmega })} \leq \|\mathcal{U}\|_{W^{m,p}(\varOmega _{i})} \leq C_{M}\|\hat{u}\|_{W^{m,p}(\hat{\varOmega })}, }$$
(10)

where the constants C m and C M depending on \(C_{m}:= C_{m}(\max _{m_{0}\leq m}(\|D^{m_{0}}\varPhi _{i}\|_{\infty }),\) \(\|det(\varPsi _{i}^{'})\|_{\infty })\) and \(C_{M}:= C_{M}(\max _{m_{0}\leq m}(\|D^{m_{0}}\varPsi _{i}\|_{\infty }),\|det(\varPhi _{i}^{'})\|_{\infty }).\) The usefulness of inequalities (10) in the analysis is the following: every required relation can be proved in the parametric domain and then using (10) we can directly have the expression on the physical subdomain.

We use the B-spline spaces \(\mathbb{B}_{h}^{(i)}\) defined in (7) for approximating the solution of (2) in every subdomain Ω i . Continuity requirements for \(\mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega ))\) are not imposed on the interfaces F ij of the subdomains, clearly \(\mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega )) \subset L^{2}(\varOmega )\) but \(\mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega )) \not\subseteq W^{1,2}(\varOmega )\). Thus, problem (2) is discretized by discontinuous Galerkin techniques on F ij , see, e.g., [14]. Using the notation \(v_{h}^{(i)}:= v_{h}\vert _{\varOmega _{i}}\), we define the average and the jump of v h on \(F_{ij} \in \mathcal{F}_{I}\), respectively, by

$$\displaystyle{ \{v_{h}\}:= \frac{1} {2}(v_{h}^{(i)} + v_{ h}^{(j)}),\quad \text{and}\quad [\![v_{ h}]\!]:= v_{h}^{(i)} - v_{ h}^{(j)}, }$$
(11)

and for \(F_{i} \in \mathcal{F}_{B}\)

$$\displaystyle{ \{v_{h}\}:= v_{h}^{(i)},\quad \text{and}\quad [\![v_{ h}]\!]:= v_{h}^{(i)}. }$$
(12)

The dG-IgA scheme reads as follows: find \(u_{h} \in \mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega ))\) such that

$$\displaystyle{ a_{h}(u_{h},v_{h}) = l(v_{h}) + p_{D}(u_{D},v_{h}),\ \forall v_{h} \in \mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega )), }$$
(13)

where

$$\displaystyle{ a_{h}(u_{h},v_{h}) =\sum _{ i=1}^{N}a_{ i}(u_{h},v_{h}) -\sum _{i=1}^{N}\Big(\frac{1} {2}s_{i}(u_{h},v_{h}) - p_{i}(u_{h},v_{h})\Big), }$$
(14)

with the bilinear forms

$$\displaystyle\begin{array}{rcl} a_{i}(u_{h},v_{h})& =& \int _{\varOmega _{i}}\alpha \nabla u_{h}\nabla v_{h}\,dx, {}\\ s_{i}(u_{h},v_{h})& =& \sum _{F_{ij}\subset \partial \varOmega _{i}}\int _{F_{ij}}\{\alpha \nabla u_{h}\} \cdot \mathbf{n}_{F_{ij}}[\![v_{h}]\!] +\{\alpha \nabla v_{h}\} \cdot \mathbf{n}_{F_{ij}}[\![u_{h}]\!]\,ds, {}\\ p_{i}(u_{h},v_{h})& =& \left \{\begin{array}{@{}l@{\quad }l@{}} \sum _{F_{ij}\subset \partial \varOmega _{i}}\int _{F_{ij}}\mu \Big(\frac{\alpha ^{(j)}} {h_{j}} + \frac{\alpha ^{(i)}} {h_{i}} \Big)[\![u_{h}]\!][\![v_{h}]\!]\,ds,\quad &\text{if}\ F_{ij} \in \mathcal{F}_{I} \\ \sum _{F_{i}\subset \partial \varOmega _{i}}\int _{F_{i}}\mu \frac{\alpha ^{(i)}} {h_{i}} [\![u_{h}]\!][\![v_{h}]\!]\,ds, \quad &\text{if}\ F_{i} \in \mathcal{F}_{B} \end{array} \right. {}\\ p_{D}(u_{D},v_{h})& =& \sum _{F_{i}\subset \partial \varOmega _{i}}\int _{F_{i}}\mu \frac{\alpha ^{(i)}} {h_{i}}u_{D}v_{h}\,ds,\ \ F_{i} \in \mathcal{F}_{B} {}\\ \end{array}$$

where \(\alpha ^{(i)}:=\alpha \vert _{\varOmega _{i}}\) and the unit normal vector \(\mathbf{n}_{F_{ij}}\) is oriented from Ω i towards the interior of Ω j and the parameter μ > 0 will be specified later in the error analysis, cf. [14].

For notation convenience in what follows, we will use the following expression

$$\displaystyle{\int _{F_{ij}}\mu \big(\frac{\alpha ^{(j)}} {h_{j}} + \frac{\alpha ^{(i)}} {h_{i}}\big)[\![u_{h}]\!][\![v_{h}]\!]\,ds,}$$

for both cases, \(F_{ij} \in \mathcal{F}_{I}\) and \(F_{i} \in \mathcal{F}_{B}\). In the latter case, we will assume that α (j) = 0.

2.2 Auxiliary Results

We will use the following auxiliary results which have been shown in [30].

Lemma 1

Let \(u \in W^{l,p}(\mathcal{T}_{H}(\varOmega ))\) with l ≥ 2 and p > 1. Then there is a constant C ≥ 0 determined according to the C m and C M of (10) , such that for \(F_{ij} \subset \partial \varOmega _{i}\) holds

$$\displaystyle{ \int _{F_{ij}}\vert u\vert ^{p}\,ds \leq C\Big(h_{ i}^{-1}\int _{ \varOmega _{i}}\vert u\vert ^{p}\,dx + h_{ i}^{p-1}\int _{ \varOmega _{i}}\vert \nabla u\vert ^{p}\,dx\Big). }$$
(15)

Lemma 2

For all \(v_{h} \in \mathbb{B}_{h_{i}}^{(i)}\) defined on \(T_{h_{i},\varOmega _{i}}^{(i)}\) , there is a positive constant C, depending on the mesh quasi-uniformity parameters and C m and C M of (10) but not on h i , such that

$$\displaystyle{ \|\nabla v_{h}\|_{L^{p}(\varOmega _{i})}^{p} \leq Ch_{ i}^{-p}\|v_{ h}\|_{L^{p}(\varOmega _{i})}^{p}. }$$
(16)

Lemma 3

For all \(v_{h} \in \mathbb{B}_{h_{i}}^{(i)}\) defined on \(T_{h_{i},\varOmega _{i}}^{(i)}\) and for all \(F_{ij} \subset \partial \varOmega _{i}\) , there is a positive constant C, which depends on the mesh quasi-uniformity parameters C m and C M of (10) but not on h i , such that

$$\displaystyle{ \|v_{h}\|_{L^{p}(F_{ij})}^{p} \leq Ch_{ i}^{-1}\|v_{ h}\|_{L^{p}(\varOmega _{i})}^{p}. }$$
(17)

Lemma 4

Let \(v_{h} \in \mathbb{B}_{h_{i}}^{(i)}\) such that \(v_{h} \in W^{l,p}(E) \cap W^{m,q}(E),\ E \in T_{h_{i},\varOmega _{i}}^{(i)}\) , and \(0 \leq m \leq l,\ 1 \leq p,q \leq \infty\) . Then there is a positive constant C, depended on the mesh quasi-uniformity parameters C m and C M of (10) but not on h i , such that

$$\displaystyle{ \vert v_{h}\vert _{W^{l,p}(E)} \leq Ch_{i}^{m-l-\frac{d} {q}+\frac{d} {p} }\vert v_{h}\vert _{W^{m,q }(E)}. }$$
(18)

2.3 Analysis of the dG IgA Discretization

Next, we study the convergence estimates of the method (13) under the following regularity assumption for the weak solution \(u \in W^{1,2}(\varOmega ) \cap W^{l,p}(\mathcal{T}_{H}(\varOmega ))\) with l ≥ 2 and \(p \in (\max \{1, \frac{2d} {d+2(l-1)}\},2]\). For simplicity of the presentation, we assume that l ≤ k + 1. Nevertheless, for the case of highly smooth solutions, the estimates given below, see Lemma 5, can be expressed in terms of the underlying polynomial degree k. More precisely, the estimate \(\delta (l,p,d) = l + (d/2 - d/p - 1)\), must be replaced by \(\delta (l,p,d) =\min \{ l + (d/2 - d/p - 1),k\}\). We use the enlarged space \(W_{h}^{l,p}:= W^{1,2}(\varOmega ) \cap W^{l,p}(\mathcal{T}_{H}(\varOmega )) + \mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega ))\), and will show that the dG IgA method converges in optimal rate with respect to \(\|.\|_{dG}\) norm

$$\displaystyle{ \|u\|_{dG}^{2} =\sum _{ i=1}^{N}\Big(\alpha ^{(i)}\|\nabla u^{(i)}\|_{ L^{2}(\varOmega _{i})}^{2} + p_{ i}(u^{(i)},u^{(i)})\Big),\ u \in W_{ h}^{l,2}. }$$
(19)

For the error analysis, it is necessary to show the continuity and coercivity properties of the bilinear form a h (. , . ) of (14) and interpolation estimates in \(\|.\|_{dG}\) norm. We start by providing estimates on how well the quasi-interpolant Π h u approximates u ∈ W l, p(Ω i ), see proof in [30].

Lemma 5

Let u ∈ W l,p i ) with l ≥ 2 and \(p \in (\max \{1, \frac{2d} {d+2(l-1)}\},2]\) and let \(E = \varPhi _{i}(E),E \in T_{h_{i},\varOmega }^{(i)}\) . Then for 0 ≤ m ≤ l ≤ k + 1, there exist constants \(C_{i}:= C_{i}\big(\max _{l_{0}\leq l}(\|D^{l_{0}}\varPhi _{i}\|_{L^{\infty }(\varOmega _{i})}),\|u\|_{W^{l,p}(\varOmega _{i})}\big)\) , such that

$$\displaystyle{ \sum _{E\in T_{h_{ i},\varOmega _{i}}^{(i)}}\vert u -\varPi _{h}u\vert _{W^{m,p}(E)}^{p} \leq C_{ i}h_{i}^{p(l-m)}. }$$
(20)

Moreover, we have the following estimates for \(F_{ij} = \partial \varOmega _{i} \cap \partial \varOmega _{j}\) :

$$\displaystyle\begin{array}{rcl} (i)& & h_{i}^{\beta }\|\nabla u^{(i)} -\nabla \varPi _{ h}u^{(i)}\|_{ L^{p}(F_{ij})}^{p} \leq C_{ i}C_{d,p}h_{i}^{p(l-1)-1+\beta }, {}\\ (ii)& & \big(\frac{\alpha ^{(j)}} {h_{j}} + \frac{\alpha ^{(i)}} {h_{i}}\big)\|[\![u -\varPi _{h}u]\!]\|_{L^{2}(F_{ij})}^{2} \leq {}\\ & &\quad C_{i}\alpha ^{(j)} \frac{h_{i}} {h_{j}}\Big(h_{i}^{\delta (l,p,d)}\|u\|_{ W^{l,p}(\varOmega _{i})}^{p}\Big)^{2} + C_{ j}\alpha ^{(i)}\frac{h_{j}} {h_{i}} \Big(h_{j}^{\delta (l,p,d)}\|u\|_{ W^{l,p}(\varOmega _{j})}\Big)^{2} + {}\\ & & \qquad C_{j}\Big(h_{j}^{\delta (l,p,d)}\|u\|_{ W^{l,p}(\varOmega _{j})}\Big)^{2} + C_{ i}\Big(h_{i}^{\delta (l,p,d)}\|u\|_{ W^{l,p}(\varOmega _{i})}\Big)^{2}, {}\\ (iii)& & \|u -\varPi _{h}u\|_{dG}^{2} \leq \sum _{ i=1}^{N}C_{ i}\Big(h_{i}^{\delta (l,p,d)}\|u\|_{ W^{l,p}(\varOmega _{i})}\Big)^{2} + {}\\ & & \qquad \qquad \sum _{i=1}^{N}\sum _{ F_{ij}\subset \partial \varOmega _{i}}C_{i}\alpha ^{(j)} \frac{h_{i}} {h_{j}}\Big(h_{i}^{\delta (l,p,d)}\|u\|_{ W^{l,p}(\varOmega _{i})}\Big)^{2}, {}\\ \end{array}$$

where \(\delta (l,p,d) = l + (d/2 - d/p - 1)\) .

We mention that the proof of estimate (iii) in Lemma 5 can be derived by using the estimates (i), (ii) and Lemma 1.

Lemma 6

Suppose \(u_{h} \in \mathbb{B}_{h}(\mathcal{S}(\varOmega ))\) . There exist a positive constant C, independent of α and h i , such that

$$\displaystyle{ a_{h}(u_{h},u_{h}) \geq C\,\|u_{h}\|_{dG}^{2},\ \;\forall \,u_{ h} \in \mathbb{B}_{h}(\mathcal{S}(\varOmega )). }$$
(21)

Proof

By (13), we have that

$$\displaystyle\begin{array}{rcl} & & a_{h}(u_{h},u_{h}) =\sum _{ i=1}^{N}a_{ i}(u_{h},u_{h}) -\frac{1} {2}\sum _{i=1}^{N}s_{ i}(u_{h},u_{h}) + p_{i}(u_{h},u_{h}) = \\ & & \phantom{a_{h}(u_{h},uh}\sum _{i=1}^{N}\alpha _{ i}\|\nabla u_{h}\|_{L^{2}(\varOmega _{i})}^{2} - 2\sum _{ F_{ij}\in \mathcal{F}}\int _{F_{ij}}\{\alpha \nabla u_{h}\} \cdot \mathbf{n}_{F_{ij}}[\![u_{h}]\!]\,ds \\ & & \phantom{a_{h}(u_{h},u_{h}) =\sum _{ i=1}^{N}a_{ i}(u_{h},k} +\sum _{F_{ij}\in \mathcal{F}}\mu \Big(\frac{\alpha ^{(i)}} {h_{i}} + \frac{\alpha ^{(j)}} {h_{j}}\Big)\|[\![u_{h}]\!]\|_{L^{2}(F_{ij})}^{2}. {}\end{array}$$
(22)

For the second term on the right hand side, Lemma 2 and the trace inequality (17) expressed on \(F_{ij} \in \mathcal{F}\) yield the bound

$$\displaystyle\begin{array}{rcl} & & -\sum _{F_{ij}\in \mathcal{F}}\int _{F_{ij}}\{\alpha \nabla u_{h}\} \cdot \mathbf{n}_{F_{ij}}[\![u_{h}]\!]\,ds \geq \\ & &\phantom{-\sum _{F_{ij}\in \mathcal{F}}}- C_{1,\varepsilon }\sum _{i=1}^{N}\alpha _{ i}\|\nabla u_{h}\|_{L^{2}(\varOmega _{i})}^{2} -\sum _{ F_{ij}\in \mathcal{F}} \frac{1} {C_{2,\varepsilon }}\Big(\frac{\alpha ^{(i)}} {h_{i}} + \frac{\alpha ^{(j)}} {h_{j}}\Big)\|[\![u_{h}]\!]\|_{L^{2}(F_{ij})}^{2}.{}\end{array}$$
(23)

Inserting (23) into (22) and choosing \(C_{1,\varepsilon } <1/2\) and \(\mu> 2/C_{2,\varepsilon }\), we obtain (21). □ 

Note that similar discrete coercivity result has been shown in [30] for numerical fluxes without symmetrized terms. Due to the assumed regularity of the solution, the normal interface fluxes \((\alpha \nabla u)\vert _{\varOmega _{i}} \cdot \mathbf{n}_{F_{ij}}\) belongs (in general) to L p(F ij ). The following bound for the interface fluxes in \(\|.\|_{L^{p}}\) setting has been shown in [30].

Lemma 7

There is a constant C such that the following inequality for \((u,v_{h}) \in W_{h}^{l,p} \times \mathbb{B}_{h}(\mathcal{S}(\varOmega ))\) holds true

$$\displaystyle\begin{array}{rcl} & & \sum _{i=1}^{N}\sum _{ F_{ij}\subset \partial \varOmega _{i}}\int _{F_{ij}}\{\alpha \nabla u\} \cdot \mathbf{n}_{F_{ij}}[\![v_{h}]\!]\,ds \leq \\ & &\ C\Big(\sum _{F_{ij}\in \mathcal{F}}\alpha ^{(i)}h_{ i}^{1+\gamma _{p,d} }\|\nabla u^{(i)}\|_{ L^{p}(F_{ij})}^{p} +\alpha ^{(j)}h_{ j}^{1+\gamma _{p,d} }\|\nabla u^{(j)}\|_{ L^{p}(F_{ij})}^{p}\Big)^{\frac{1} {p} }\|v_{h}\|_{dG},{}\end{array}$$
(24)

where \(\gamma _{p,d} = d(p - 2)/2.\)

Proof

We use Hölder’s inequality and then the results of Lemmas 3 and 4. □ 

Applying similar procedure as this in Lemma 7, we can show for the symmetrizing terms that there is a positive constant independent of grid size such that

$$\displaystyle{ \sum _{i=1}^{N}\sum _{ F_{ij}\subset \partial \varOmega _{i}}\int _{F_{ij}}\{\alpha \nabla v_{h}\} \cdot \mathbf{n}_{F_{ij}}[\![u]\!]\,ds \leq C_{1}\|v_{h}\|_{dG}\|u\|_{dG}. }$$
(25)

Using the results (24) and (25), we can show the boundedness of the bilinear form, see details in [30].

Lemma 8

There is a C independent of h i such that for \((u,v_{h}) \in W_{h}^{l,p} \times \mathbb{B}_{h}(\mathcal{S}(\varOmega ))\)

$$\displaystyle\begin{array}{rcl} a_{h}(u,v_{h}) \leq C(\|u\|_{dG}^{p} +\sum _{ F_{ij}\in \mathcal{F}}h_{i}^{1+\gamma _{p,d} }\alpha ^{(i)}\|\nabla u^{(i)}\|_{ L^{p}(F_{ij})}^{p}+& & \\ h_{j}^{1+\gamma _{p,d} }\alpha ^{(j)}\|\nabla u^{(j)}\|_{ L^{p}(F_{ij})}^{p}\Big)^{\frac{1} {p} }\|v_{h}\|_{dG},\ \text{where}\ \gamma _{p,d} = d(p - 2)/2.& &{}\end{array}$$
(26)

Next, we give the main error estimate for the dG IgA method.

Theorem 1

Let \(u \in W^{1,2}(\varOmega ) \cap W^{l,p}(\mathcal{T}_{H}(\varOmega ))\) , with l ≥ 2 and p ∈ (p(d,l),2] be the solution of (2) . Let \(u_{h} \in \mathbb{B}_{h}(\mathcal{S}(\varOmega ))\) be the dG IgA solution of (13) . Then there are \(C_{i}:= C_{i}\Big(\max _{l_{0}\leq l}\Big(\|D^{l_{0}}\varPhi _{i}\|_{L^{\infty }(E)}\Big),\|u\|_{W^{l,p}(\varOmega _{i})}\Big)\) , such that

$$\displaystyle{ \|u - u_{h}\|_{dG} \leq \sum _{i=1}^{N}\Big(C_{ i}\Big(h_{i}^{\delta (l,p,d)} +\sum _{ F_{ij}\subset \partial \varOmega _{i}}\alpha ^{(j)} \frac{h_{i}} {h_{j}}h_{i}^{\delta (l,p,d)}\Big)\|u\|_{ W^{l,p}(\varOmega _{i})}\Big), }$$
(27)

where \(\delta (l,p,d) = l + (d/2 - d/p - 1)\) and \(p(d,l) =\max \{ 1, \frac{2d} {d+2(l-1)}\}\) .

Proof

First we need to prove the consistency of u, i.e. u satisfies (13). Then, we use a variation of Cea’s Lemma (expressed in the dG framework), the results of Lemmas 6 and 8, as well the quasi-interpolation estimates of Lemma 5. A complete proof can be found in [30]. □ 

2.4 Numerical Examples

In this section, we present a series of numerical examples to validate the theoretical results, which have been presented.

2.4.1 Smooth and Low-Regularity Solutions

We restrict ourselves to a model problem in \(\varOmega = (-1,1)^{3}\), with Γ D  = ∂ Ω. The domain Ω is subdivided into four equal subdomains Ω i , i = 1, , 4, where for simplicity every Ω i is initially partitioned into a mesh \(T_{h_{i},\varOmega _{i}}^{(i)}\), with \(h:= h_{i} = h_{j},i\neq j\), and i, j = 1, , 4. Successive uniform refinements are performed on every \(T_{h_{i},\varOmega _{i}}^{(i)}\) in order to compute numerically the convergence rates. We set the diffusion coefficient equal to one.

In the first test, the data u D and f in (1) are determined such that the exact solution is \(u(\mathbf{x}) =\sin (5\pi x_{1})\sin (5\pi x_{2})\sin (5\pi x_{3})\) (smooth test case). The first three columns of Table 1 display the convergence rates. As it was expected, the convergence rates are optimal. In the second case, the exact solution is \(u(x) = \vert x\vert ^{\lambda }\). The parameter \(\lambda\) is chosen such that u ∈ W l, p = 1. 67(Ω). Specifically, for l = 2, we get \(\lambda = 0.2\) and, for l = 3, \(\lambda = 1.2\). In the last columns of Table 1, we display the convergence rates for degree \(k = 2,k = 3\) and k = 4 in case of having l = 2 and l = 3. We observe that, for each of the two different tests, the error in the dG-norm behaves according to the main error estimate given by (27).

Table 1 The numerical convergence rates of the dG IgA method

2.4.2 Non-matching Meshes

We consider the boundary value problem (1) with exact solution \(u(x,y) =\sin (\pi x)\) \(\sin (\pi y)\). The computational domain consist of two unit square patches, \(\varOmega _{1} = (-1,0) \times (0,1)\) and Ω 2 = (0, 1) × (0, 1), see Fig. 1 (left). The knot vectors representing the geometry are given by \(\varXi _{1}^{(1,2)} =\varXi _{ 2}^{(1,2)} =\{ 0,0,1,1\}\). We refine the mesh of the patches to a ratio R, i.e., the ratio of the grid sizes is \(R = h_{1}/h_{2}\), see Fig. 1 (left). We solved the problem using equal B-spline degree k on all patches. We plot in Fig. 1 (right) the dG IgA solution u h computed with k = 2. In Fig. 2, we present the decay of the L 2 and dG errors for k = 1, 2, 3 and ratios R = 2r with r from 1 up to 5. In Table 2, we display the convergence rates for large ratio R = 40. In both cases, we observe that the rates are the expected ones and are not affected by the different grid sizes of the meshes.

Fig. 1
figure 1

Non-matching meshes: decomposition into 2 patches with underlying grid of ratio R = 2 (left), contours of u h (right)

Fig. 2
figure 2

Error decay in the L 2 (left) and dG (right) norms for polynomial degree k = 1, 2, 3 (top to bottom) and ratio R = 2r with r running from 1 to 5

Table 2 Non-matching meshes: error estimates for degrees k = 1, 2, 3 and R = 40

2.5 Graded Mesh Partitions for the dG IgA Methods

We saw in the previous numerical tests that the presence of singular points reduces the convergence rates. In this section, we will study this subject in a more general form. We will focus on solving the model problem in domains with re-entrant corners on the boundary. Due to these singular corner points, the regularity of the solution (at least in a small vicinity) is reduced in comparison with the solutions in smooth domains [20]. As a result, the numerical methods applied on quasi uniform meshes for solving these problems do not yield the optimal convergence rate and thus a particular treatment must be applied. We will devise the popularly known graded mesh techniques which have widely been applied so far for finite element methods [3, 4].

2.5.1 Regularity Properties of the Solution Around the Boundary Singular Points

Let us assume a domain \(\varOmega \subset \mathbb{R}^{2}\) and let P s  ∈ ∂ Ω be a boundary point with internal angle ω ∈ (π, 2π). We consider the local cylindrical coordinates \((r,\theta )\) with pole P s , and define the cone, see Fig. 3 (left),

$$\displaystyle{ \mathcal{C} =\{ (x,y) \in \varOmega: x = r\cos (\theta ),y = r\sin (\theta ),0 <r <R,0 <\theta <\omega \}. }$$
(28)

Then the solution in \(\mathcal{C}\) can be written, [20],

$$\displaystyle{ u = u_{r} + u_{s}, }$$
(29)

where u r  ∈ W l ≥ 2, 2(Ω) and

$$\displaystyle{ u_{s} =\xi (r)\gamma r^{\lambda }\sin (\lambda \theta ), }$$
(30)

where γ is the stress intensity factor (is a real number depending only on f), and \(\lambda = \pi /\omega \in (0,1)\) is an exponent which determines the strength of the singularity. Since \(\lambda <1\), by an easy computation, we can show that the singular function u s does not belong to W 2, 2(Ω) but u ∈ W 2, p(Ω) with \(p = 2/2-\lambda\). The representation (30) of u s helps us to reduce our study to the examination of the behavior of u in the vicinity of the singular point, since the regularity properties of u are determined by the regularity of u s . The main idea is the following: based on the a priori knowledge of the analytical form of u s in \(\mathcal{C}\), we carefully construct a locally adapted mesh in \(\mathcal{C}\) by introducing a grading control parameter \(\mu:=\mu (\lambda,k)\), such as allows us to prove that the approximation order of the method applied on this adapted mesh for u s is similar with the order of the method applied on the rest of the mesh (maybe quasi uniform) for u r .

Fig. 3
figure 3

Left: 2d domain with corner singularity. Right: zone partition and the subdomians Ω i of \(\mathcal{T}_{H}(\varOmega )\)

2.5.2 The Graded Mesh for \(\mathcal{T}_{H}(\varOmega )\) and Global Approximation Estimates

The area \(U_{s}:=\{ x \in \varOmega: \vert P_{s} - x\vert \leq R,R \geq N_{Z}h,\ N_{Z} \geq 2\}\) is further sub-divided into ring zones \(Z_{\zeta },\ \zeta = 0,..,\zeta _{M} <N_{Z}\), with distance from P s equal to \(D_{(Z_{\zeta },P_{s})}:= C(n_{\zeta }h)^{\frac{1} {\mu } }\), where \(1 \leq n_{\zeta } <N_{Z}\) and \(\frac{1} {2} \leq C \leq 1\). The radius of every zone is defined to be \(R_{Z_{\zeta }}:= D_{(Z_{\zeta +1},P_{s})} - D_{(Z_{\zeta },P_{s})} = C(n_{\zeta +1}h)^{\frac{1} {\mu } } - C(n_{\zeta }h)^{\frac{1} {\mu } }\).

For convenience, we assume that the initial subdivision \(\mathcal{T}_{H}\) fulfill the following conditions, for an illustration see Fig. 3 (right) with ζ M  = 2:

  • The subdomains can be grouped into those which belong (entirely) to the area U s and those that belong (entirely) to \(\varOmega \setminus U_{s}\). This means that there is no Ω i ,  i = 1, , N such that \(U_{s} \cap \varOmega _{i}\neq \emptyset\) and \((\varOmega \setminus U_{s}) \cap \varOmega _{i}\neq \emptyset\).

  • Every ring zone Z ζ is partitioned into “circular” subdomains \(\varOmega _{i_{\zeta }}\) which have radius \(\varOmega _{i_{\zeta }}\) equal to the radius of the zone, that is \(R_{\varOmega _{i_{\zeta }}} = R_{Z_{\zeta }}\). For computational efficiency reasons, we prefer -if its possible- every zone to be only represented by one subdomain.

  • The zone Z 0 is represented by one subdomain, say Ω 0, and the mesh \(T_{h_{0}}^{(0)}(\varOmega _{0})\) includes all E ∈ T h (Ω) such that \(\partial E \cap P_{s}\neq \emptyset\).

The graded meshes \(T_{h_{i_{\zeta }}}^{(i_{\zeta })}(\varOmega _{i_{\zeta }})\) are mainly determined by the grading parameter \(\mu (\lambda,k) \in (0,1]\) and the mesh sizes \(h_{i_{\zeta }}\) are chosen to satisfy the following properties: for \(\varOmega _{i_{\zeta }}\) with distance \(R_{\varOmega _{i_{\zeta }}}\) from P s , the mesh size \(h_{i_{\zeta }}\) is defined to be \(h_{i_{\zeta }} = \mathcal{O}(hR_{\varOmega _{i_{\zeta }}}^{1-\mu })\) and for \(T_{h_{0}}^{(i_{0})}(\varOmega _{0})\) the mesh size is of order \(h_{i_{0}} = \mathcal{O}(h^{\frac{1} {\mu } })\), more details are given in [28]. Based on previous properties of the \(T_{h_{i_{\zeta }}}^{(i_{\zeta })}(\varOmega _{i_{\zeta }})\) meshes, we can conclude the relations

$$\displaystyle{ C_{m}h^{\frac{1} {\mu } } \leq h_{i_{\zeta }} \leq C_{M}h^{\frac{1} {\mu } },\qquad \text{if}\ \overline{\varOmega }_{i_{\zeta }} \cap P_{s}\neq \emptyset, }$$
(31)
$$\displaystyle{ C_{m}hR_{\varOmega _{i_{\zeta }}}^{1-\mu }\leq h_{ i_{\zeta }} \leq C_{M}hD_{(Z_{\zeta },P_{s})}^{1-\mu },\qquad \text{if}\ \overline{\varOmega }_{ i_{\zeta }} \cap P_{s} =\emptyset. }$$
(32)

Using the local interpolation estimate of Lemma 5 in every \(\varOmega _{i_{\zeta }} \subset U_{s}\) and the characteristics of the meshes \(T_{h_{i_{\zeta }}}^{(i_{\zeta })}(\varOmega _{i_{\zeta }})\), we can easily obtain the estimate

$$\displaystyle{ \|u_{s} -\varPi _{h}u_{s}\|_{dG(U_{s})} \leq \sum _{i_{\zeta }}C_{i_{\zeta }}h_{i_{\zeta }}^{\lambda }, }$$
(33)

since \(u_{s} \in W^{l=1+\lambda,2}(\varOmega )\) (and also \(u \in W^{2,p= \frac{2} {2-\lambda }}(\varOmega )\)) and we do not consider non-matching grid interfaces. Using the mesh properties (31) and (32), estimate (33) and Lemma 5, we can prove the following global error estimate of the proposed dG IgA method applied to problems with boundary singularities, see [28].

Theorem 2

Let Z ζ be a partition of \(\varOmega \subset \mathbb{R}^{2}\) into ring zones and let \(\mathcal{T}_{H}\) to be a sub-division to Ω with the properties as listed in the previous paragraphs. Let \(T_{h_{i}}^{(i)}(\varOmega _{i})\) be the meshes of subdomains as described above. Then for the solution u of (2) and the dG IgA solution u h , we have the approximation result

$$\displaystyle{ \|u - u_{h}\|_{dG} \leq Ch^{r},\ \mathit{with}\ r =\min (k,\lambda /\mu ), }$$
(34)

where the constant C > 0 depends on the characteristics of the mesh and on the mappings Φ i (see (6) ) but not on h i .

2.5.3 Numerical Examples

In this section, we present a series of numerical examples in order to validate the theoretical analysis on the graded mesh in Sect. 2.5. The first example concerns a two-dimensional problem with a boundary point singularity (L-shape domain). The second example is the interior point singularity problem of the Sect. 2.4.

  1. 1.

    Boundary Singular Point

    One of the classical test cases is the singularity due to a re-entrant corner. The L-shape domain given by \((-1,1)^{2}\setminus (-1,0)^{2}\). In Fig. 4 (left), the subdivision of Ω into two subdomains is presented. The exact solution is \(u = r^{\frac{\pi }{\omega }}\sin (\theta \pi /\omega ),\) where \(\omega = 3\pi /2\). We set Γ D  = ∂ Ω and the data f, u D of (2) are specified by the given exact solution. The problem has been solved using B-splines of degree k = 1 and k = 2 and the grading parameter is μ = 0. 6 and μ = 0. 3 respectively. In Fig. 4 (middle), the graded mesh for μ = 0. 6 is presented and in Fig. 4 (right) the contours of the numerical solution are plotted. In Table 3, we present the convergence rates of the method without grading (left columns). As we can see, the convergence rates are determined by the regularity of the solution around the singular boundary point. In the right columns, we present the convergence rates corresponding to the graded meshes. We can see that the rates tend to be optimal with respect the B-spline degree.

    Fig. 4
    figure 4

    L-shape test. Left: subdomains, middle: graded mesh with μ = 0. 6, right: contours of u h

    Table 3 The convergence rates for the L-shape test (left) and for the internal singularity test (right)
  2. 2.

    Interior Point Singularity

    The domain is \(\varOmega = (-1,1)^{2}\). We consider a solution u of (1) with a point singularity at the origin given by \(u(x) = \vert x\vert ^{\lambda }\). We set \(\lambda = 0.6\) and is easy to show that u ∈ W l = 1. 6, 2(Ω). We set α = 1 in Ω. In the left columns of Table 3, we display the convergence rates for degrees k = 1 and k = 2 without mesh grading. The convergence rates are suboptimal and follow the approximation estimate (27). The problem has been solved again on graded meshes with μ = 0. 6 for k = 1 and μ = 0. 3 for k = 2, see Fig. 5. We display the convergence rates in the right columns of Table 3. The rates tend to be optimal as it was expected.

    Fig. 5
    figure 5

    Interior singularity test. Left: the subdomains Ω i ,  i = 1, , 4, middle: the graded mesh with μ = 0. 3, right: the contours of u h

3 Multipatch dG IgA for PDEs on Surfaces

3.1 Diffusion Problems on Open and Closed Surfaces

Let us now consider a diffusion problem of the form (1) on a sufficiently smooth, open surface Ω, the weak formulation of which can formally be written in the same form as (2) in Sect. 2: find a function u ∈ W 1, 2(Ω) such that u = u D on the boundary ∂ Ω of the surface Ω and satisfies the variational formulation

$$\displaystyle{ a(u,v) = l(v),\;\forall v \in W_{0}^{1,2}(\varOmega ), }$$
(35)

with the bilinear and linear forms a(⋅ , ⋅ ) and l(⋅ ), but now defined by the relations

$$\displaystyle{ a(u,v) =\int _{\varOmega }\alpha \,\nabla _{\varOmega }u \cdot \nabla _{\varOmega }v\,d\varOmega \quad \mbox{ and}\quad l(v) =\int _{\varOmega }fv\,d\varOmega, }$$

respectively, where ∇ Ω denotes the surface gradient, see, e.g., Definition 2.3 in [18] for its precise description. For simplicity of the presentation, we here assume Dirichlet boundary condition. It is clear that other boundary conditions can be treated in the same framework as it was done in [29] for mixed boundary conditions. In the case of open surfaces with pure Neumann boundary condition and closed surfaces, we look for a solution u ∈ W 1, 2(Ω) satisfying the uniqueness condition \(\int _{\varOmega }u(x)dx = 0\) and the variational equation (2) under the solvability condition l(1) = 0. In Sect. 3.4, we present and discuss the numerical results obtained for different diffusion problems on an open (Car) and on two closed (Sphere, Torus) surfaces.

3.2 Multipatch dG IgA Discretization

Let \(\mathcal{T}_{H}(\varOmega ) =\{\varOmega _{i}\}_{i=1}^{N}\) be again a partition of our physical computational domain Ω, that is now a surface, into non-overlapping patches (sub-domains) Ω i such that (3) holds, and let each patch Ω i be the image of the parameter domain \(\hat{\varOmega }= (0,1)^{2} \subset \mathbb{R}^{2}\) by some NURBS mapping \(\varPhi _{i}:\hat{\varOmega }\rightarrow \varOmega _{i} \subset \mathbb{R}^{3},\;\hat{x} = (\hat{x}_{1},\hat{x}_{2})\mapsto x = (x_{1},x_{2},x_{3}) =\varPhi _{i}(\hat{x})\), which can be represented in the form

$$\displaystyle{ \varPhi _{i}(\hat{x}_{1},\hat{x}_{2}) =\sum _{ k_{1}=1}^{n_{1} }\sum _{k_{2}=1}^{n_{2} }C_{(k_{1},k_{2})}^{(i)}\hat{B}_{ (k_{1},k_{2})}^{(i)}(\hat{x}_{ 1},\hat{x}_{2}) }$$
(36)

where \(\{\hat{B}_{(k_{1},k_{2})}^{(i)}\}\) are the bivariate NURBS basis functions, and \(\{C_{(k_{1},k_{2})}^{(i)}\}\) are the control points, see [8] for a detailed description. We always assume that the mapping Φ i is regular. Therefore, the inverse mapping \(\hat{x} = \varPsi _{i}(x):=\varPhi _{ i}^{-1}(x)\) is well defined for all patches Ω i , i = 1, , N.

Now the dG IgA scheme for solving our surface diffusion problem (35) can formally be written in the form (13) as in Sect. 2: find \(u_{h} \in \mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega ))\) such that

$$\displaystyle{ a_{h}(u_{h},v_{h}) = l(v_{h}) + p_{D}(u_{D},v_{h}),\;\forall v_{h} \in \mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega )), }$$
(37)

where a h (⋅ , ⋅ ) and p D (⋅ , ⋅ ) are defined by (14) provided that we replace the gradient ∇ by the surface gradient ∇ Ω . Since the dG bilinear form a h (⋅ , ⋅ ) is positive on \(\mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega ))\setminus \{0\}\) for sufficiently large μ, cf. Lemma 6, there exist a unique dG solution \(u_{h} \in \mathbb{B}_{h}(\mathcal{T}_{H}(\varOmega ))\). The dG IgA scheme (37) is equivalent to a system of algebraic equations of the form

$$\displaystyle{ K_{h}\underline{u}_{h} =\underline{ f}_{h}, }$$
(38)

the solution \(\underline{u}_{h}\) of which gives us the coefficients (control points) of u h . In order to generate the entries of the system matrix K h and the right-hand side \(\underline{f}_{h}\), we map the patches Ω i composing the physical domain, i.e., our surface Ω, into the parameter domain \(\hat{\varOmega }= (0,1)^{2}\). For instance, for the broken part \(a_{i}(u_{h},v_{h})\) of the bilinear form \(a_{h}(u_{h},v_{h})\), we obtain

$$\displaystyle\begin{array}{rcl} a_{i}(u_{h},v_{h})& =& \int _{\varOmega _{i}}\alpha ^{(i)}\,\nabla _{\varOmega }u_{ h}(x) \cdot \nabla _{\varOmega }u_{h}(x)\,d\varOmega {}\\ & =& \int _{\hat{\varOmega }_{i}}\alpha ^{(i)}\,[J_{ i}(\hat{x})F_{i}^{-1}(\hat{x})\hat{\nabla }\hat{u}_{ i}(\hat{x})]^{\top }[J_{ i}(\hat{x})F_{i}^{-1}(\hat{x})\hat{\nabla }\hat{v}_{ i}(\hat{x})]g_{i}(\hat{x})\,d\hat{x} {}\\ & =& \int _{\hat{\varOmega }_{i}}\alpha ^{(i)}\,(\hat{\nabla }\hat{u}_{ i}(\hat{x}))^{\top }\,F_{ i}^{-1}(\hat{x})\,\hat{\nabla }\hat{v}_{ i}(\hat{x})\,g_{i}(\hat{x})d\hat{x}\,, {}\\ \end{array}$$

where \(J_{i}(\hat{x}) = \partial \varPhi _{i}(\hat{x})/\partial \hat{x}\), \(F_{i}(\hat{x}) = (J_{i}(\hat{x}))^{\top }(J_{i}(\hat{x}))\) and \(g_{i}(\hat{x}) = (\det F_{i}(\hat{x}))^{1/2}\) denote the Jacobian, the first fundamental form and the square root of the associated determinant, respectively. These terms, coming from the parameterization of the domain, can be exploited for deriving efficient matrix assembly methods, cf. [31, 32]. Furthermore, we use the notations \(\hat{u}_{i}(\hat{x}) = u_{h}(\varPhi _{i}(\hat{x}))\) and \(\hat{\nabla } = ( \frac{\partial } {\partial \hat{x}_{1}}, \frac{\partial } {\partial \hat{x}_{2}} )^{\top }\).

3.3 Discretization Error Estimates

In [29], we derived discretization error estimates of the form

$$\displaystyle{ \|u - u_{h}\|_{dG}^{2} \leq C\sum _{ i=1}^{N}\alpha ^{(i)}h_{ i}^{2t}\|u\|_{ H^{1+t}(\varOmega _{i})}^{2}, }$$
(39)

with \(t:=\min \{ s,k\}\), provided that the solution u of our surface diffusion problem (35) belongs to \(H^{1+s}(\mathcal{T}_{H}(\varOmega )) = W^{1+s,2}(\mathcal{T}_{H}(\varOmega ))\) with some s > 1∕2. In the case t = k, estimate (39) yields the convergence rate \(\mathcal{O}(h^{k})\) with respect to the dG norm, whereas the Aubin-Nitsche trick provides the faster rate \(\mathcal{O}(h^{k+1})\) in the L 2 norm. Here k always denotes the underlying polynomial degree of the NURBS. This convergence behavior is nicely confirmed by our numerical experiments presented in [29] and in the next subsection.

In [29], we assumed matching meshes and some regularity of the solution of (35), namely \(u \in H^{1+s}(\mathcal{T}_{H}(\varOmega ))\). It is clear that the results of Theorem 1, which includes no-matching meshes and low-regularity solutions, can easily be carried over to diffusion problems on open and closed surfaces. The same is true for mesh grading techniques presented in Sect. 2.5.

3.4 Numerical Examples

3.4.1 Sphere

Let us start with a diffusion problem on a closed surface Ω that is given by the sphere \(\varOmega =\{ (x,y,z) \in (-1,1)^{3}:\; x^{2} + y^{2} + z^{2} = 1\}\) with unitary radius. The computational domain Ω is decomposed into 6 patches, see left-hand side of Fig. 6. The knot vectors representing the geometry of each patch are given as \(\varXi _{1,2} = (0,0,0,0,0,1,1,1,1,1)\) in both directions. Since the surface is closed, we impose the uniqueness constraint \(\int _{\varOmega }u\,d\varOmega = 0\) on the solution. The right-hand side \(f(r,\phi,\theta ) = 12u(r,\phi,\theta )\), where the solution \(u(r,\phi,\theta ) = 12\sin (3\phi )\sin ^{3}(\theta )\) is an eigenfunction of the Laplace-Beltrami operator (−Δ Ω ) satisfying the compatibility condition \(\int _{\varOmega }f\,d\varOmega = 0.\) The example can also be found in [21].

Fig. 6
figure 6

Sphere: geometry and decomposition into 6 patches (left) and solution for the Laplace-Beltrami problem (right)

The diagrams displayed in Fig. 7 show the error decay with respect to the L 2 (left) and dG (right) norms for polynomial degrees k = 1, 2, 3, and 4. As expected by our theoretical results, we observe the full convergence rates \(\mathcal{O}(h^{k+1})\) and \(\mathcal{O}(h^{k})\) for the L 2 norm and the dG norm, respectively.

Fig. 7
figure 7

Sphere: error decay in the L 2 (left) and dG (right) norms for polynomial degrees 1 to 4

In Table 4, we compare the L 2 errors of dG IgA solutions with those produced by the corresponding continuous (standard) Galerkin (cG) IgA scheme for the polynomial degree k = 5. In the case of smooth solutions, the dG IgA is as good as the cG counterpart. The same is true for the errors with respect to the dG norm.

Table 4 Sphere: comparison of the cG and dG IgA error decay in the L 2 norm for k = 5

3.4.2 Torus

We now consider the closed surface

$$\displaystyle{\varOmega =\{ (x,y) \in (-3,3)^{2},z \in (-1,1):\; r^{2} = z^{2} + (\sqrt{x^{2 } + y^{2}} - R^{2})\}}$$

that is nothing but a torus that is decomposed into 4 patches, see Fig. 8 left. The knot vectors \(\varXi _{1} =\{ 0,0,0,0.25,0.25,0.50,0.50,0.75,0.75,1,1,1\}\) and \(\varXi _{2} =\{ 0,0,0,1,1,1\}\) describe the NURBS used for the geometrical representation of the patches. We first consider the surface Poisson equation, also called Laplace-Beltrami equation, with the right-hand side

$$\displaystyle\begin{array}{rcl} & & f(\phi,\theta ) = r^{-2}\left [9\sin (3\phi )\cos (3\theta +\phi )\right ] {}\\ & & \phantom{f(\phi,\theta )} -\left [(R + r\cos (\theta ))^{-2}(-10\sin (3\phi )\cos (3\theta +\phi ) - 6\cos (3\phi )\sin (3\theta +\phi ))\right ] {}\\ & & \phantom{f(\phi,\theta )} -\left [(r(R + r\cos (\theta ))^{-1})(3\sin (\theta )\sin (3\phi )\sin (3\theta +\phi ))\right ], {}\\ \end{array}$$

where \(\phi =\arctan (y/x)\), \(\theta =\arctan (z/(\sqrt{x^{2 } + y^{2}} - R))\), R = 2, and r = 1. The exact solution is given by \(u =\sin (3\phi )\cos (3\theta +\phi )\), cf. also [21]. We mention that the functions u and f are chosen such that the zero mean compatibility condition holds. The IgA approximation to this solution is depicted in middle picture of Fig. 8.

Fig. 8
figure 8

Torus: geometry and decomposition into 4 patches (left), solution for the Laplace-Beltrami problem (middle), solution for jumping coefficients (right)

The diagrams displayed in Fig. 9 show the error decay with respect to the L 2 (left) and dG (right) norms for polynomial degrees k = 1, 2, 3, and 4. As expected by our theoretical results, we observe the full convergence rates \(\mathcal{O}(h^{k+1})\) and \(\mathcal{O}(h^{k})\) for the L 2 norm and the dG norm, respectively.

Fig. 9
figure 9

Torus: error decay in the L 2 (left) and dG (right) norms for polynomial degrees 1 to 4

In Table 5, we compare the L 2 errors of dG IgA solutions with those produced by the corresponding cG IgA scheme for the polynomial degree k = 5. In the case of smooth solutions, the dG IgA is as good as the cG counterpart. The same is true for the errors with respect to the dG norm.

Table 5 Torus: comparison of the cG and dG IgA error decay in the L 2 norm for k = 5

Now we consider the case when the diffusion coefficients α have large jumps across the boundaries of the patches in which the torus was decomposed. More precisely, we assume that the diffusion coefficient α = α (i) > 0 in the patch Ω i , i = 1, 2, 3, 4, where \(\alpha ^{(2)} =\alpha ^{(4)} = 1\) and \(\alpha ^{(1)} =\alpha ^{(3)} = 10^{-6}\). The patches are arranged from blue Ω 1 to red Ω 4. The right-hand side f is the same as given above for the case of the Laplace-Beltrami problem, i.e. for α = 1. Now the solution is not known, but we know that the solution is smooth in the patches \(\overline{\varOmega _{i}}\) and has steep gradients towards ∂ Ω 2 and ∂ Ω 4, see also of Fig. 8 right. Due to our theory, we can expect full convergence rates since we have an exact representation of the geometry. Indeed, we realize the full convergence rate by choosing a fine grid as the reference solution and comparing the solutions at each refinement step against this reference solution as shown in Table 6.

Table 6 Torus: L 2 and energy norm errors with degree k = 2

3.4.3 Car

We now consider the diffusion problem on an open, free-form surface. In order to demonstrate the fact that our results are general and not limited to academic examples, we apply our methods to a CAD model representing a car shell.

The surface is composed of eight quadratic B-spline patches, shown in Fig. 10 (left). The model exhibits several small bumps in the interior of the surface and sharp corners on the boundary. In addition, the patches have varying areas and meet along curved one-dimensional (quadratic) B-spline interfaces.

Fig. 10
figure 10

Car: control points of the geometry (left), IgA solution of the Dirichlet surface diffusion problem (right). Black lines indicate patch interfaces

We choose a constant diffusion coefficient on the whole domain and we prescribe homogeneous Dirichlet conditions along the boundary. For the right-hand side, we used a (globally defined in \(\mathbb{R}^{3}\)) linear function which we restricted on the surface, in order to obtain a smooth solution to our problem.

As suggested by the isogeometric paradigm, we used quadratic B-spline basis functions, forwarded on the surface, as discretization basis. We started with a coarse grid, which was h−refined uniformly several times, in both parametric directions.

An analytic formula for the exact solution is not available. Therefore, we have chosen a fine grid of approximately one million degrees of freedom as the reference solution. Comparing against this solution (obtained by the corresponding cG IgA method), the expected convergence rates have been observed. Table 7 contains the numeric results for the L 2 norm, obtained using either the continuous (with strong or weak imposition of Dirichlet boundaries) or dG IgA method. Apart from the observed order of convergence, the magnitude of the error agrees in all cases as well.

Table 7 Diffusion on a car-shell model. Numerical results for continuous Galerkin IgA with strong imposition of Dirichlet boundary (cG IgA), weak imposition (Nitsche-type) and finally patch-discontinuous Galerkin (dG IgA)

4 The G\(\boldsymbol{+}\) Smo C++ Library

Isogeometric analysis requires seamless integration of Finite Element Analysis (FEA) and Computer-aided design (CAD) software. The existing software libraries, however, cannot be adapted easily to the rising new challenges since they have been designed and developed for different purposes. In particular, FEA codes are traditionally implemented by means of functional programming, and are focused on treating nodal shape function spaces. In CAD packages, on the other hand, the central objects are free-form curves and surfaces, defined by control points, which are realized in an object-oriented programming environment.

G+SMO is an object-oriented, template C++ library, that implements a generic concept for IGA, based on abstract classes for geometry map, discretization basis, assemblers, solvers and so on [25]. It makes use of object polymorphism and inheritance techniques in order to support a variety of different discretization bases, namely B-spline, Bernstein, NURBS bases, hierarchical and truncated hierarchical B-spline bases of arbitrary polynomial order, and so on.

The library is open-source and is licenced under the Mozilla Public License v2.0. The source code, together with a reference manual and wiki pages can be reached at http://www.gs.jku.at/gismo.

Our design allows the treatment of geometric entities such as surfaces or volumes through dimension independent code, realized by means of template meta-programming. Available features include simulations using continuous and discontinuous Galerkin approximation of PDEs, over conforming and non-conforming multi-patch computational domains. PDEs on surfaces as well as integral equations arising from elliptic boundary value problems. Boundary conditions may be imposed both strongly and weakly. In addition to advanced discretization and generation techniques, efficient solvers like multigrid iteration schemes are available. Methods for solving non-linear problems are under development. Finally, we aim to employ existing high-end libraries for large-scale parallelization.

In the following paragraphs we shall provide more details on the design and features of the library.

4.1 Description of the Main Modules

The library is partitioned into smaller entities, called modules. Currently, there are six (6) modules in G+SMO namely Core, Matrix, NURBS, Modeling, Input/Output and Solver modules.

The Core module is the backbone of the library. Here an abstract interface is defined for a basis, that is, a set of real-valued functions living on a parameter domain. At this level, we do not specify how these functions (or its derivatives) should be evaluated. However, a number of virtual member functions define an interface that should be implemented by derived classes of this type. Another abstract class is the geometry class. This object consists of a (still abstract) basis and a coefficient vector, and represents a patch. Note that parameter or physical dimension are not specified at this point. There are four classes directly derived from the geometry class; these are curve, surface, volume and bulk. These are parametric objects with known parameter space dimension 1, 2, 3 and 4 respectively.

Another abstract class is a function class. The interface for this class includes evaluation, derivations and other related operations. The geometry abstract class is actually deriving from the function class, demonstrating the fact that parametric geometries can be simply viewed as (vector) functions. Another interesting object is the multipatch object. CAD models are composed of many patches. Therefore, a multipatch structure is of great importance. It contains two types of information; first, geometric information, essentially a list of geometry patches. Second, topological information between the patches, that is, the adjacency graph between patch boundaries, degenerate points, and so on. Let us also mention the field class, which is the object that typically represents the solution of a PDE. A field is a mathematical scalar or vector field which is defined on a parametric patch, or multipatch object. It may be evaluated either on the parameter or physical space, as the isogeometric paradigm suggests.

The Matrix module contains all the linear algebra related infrastructure. It is based on the third party library Eigen [22]. The main objects are dense and sparse matrices and vectors. Typical matrix decompositions such as LU, QR, SVD, and so on, are available. Furthermore, the user has also access to iterative solvers like conjugate gradient methods with different preconditioners. Finally, one can use popular high-end linear solver packages like SuperLUFootnote 2 through a common interface.

The NURBS module consists of B-Splines, NURBS, Bézier of arbitrary degrees and knot-vectors, tensor-product B-splines of arbitrary spatial dimension.

The Modeling module provides data structures and geometric operations that are needed in order to prepare CAD data for analysis. It contains trimmed surfaces, boundary represented (B-rep) solids and triangle meshes. Regarding modeling operations, B-Spline fitting, smoothing of point clouds, Coon’s patches, and volume segmentation methods are available.

The Input/Output module is responsible for visualization as well as file reading and writing. For visualization, we employ Paraview or Axel (http://axel.inria.fr) and VTK at INRIA, France. An important issue is file formats. Even if NURBS is an industrial standard, a variety of different formats are used in the CAD industry to exchange NURBS data. In G+SMO, we have established I/O with popular CAD formats, which include the 3DM file format of Rhinoceros 3D modeler, the X_T format of Siemens’ NX platform as well as an (exported) format used by the LS-DYNA general-purpose finite element program.

The Assembler module can already treat a number of PDE problems like convection-diffusion problems, linear elasticity, Stokes equations as well as diffusion problems on surfaces by means of continuous or discontinuous Galerkin methods, including divergence preserving discretizations for Stokes equations. Strong or weak imposition Dirichlet boundary conditions and Neumann-type conditions are provided. Boundary element IgA collocation techniques are also available.

Apart from the modules described above, there are several more which are under development. These include a hierarchical bases module, an optimization module and a triangular Bézier module, see Fig. 11.

Fig. 11
figure 11

A diagram of the different parts in the library and their interactions

4.2 Development Framework

The library uses a set of standard C++ tools in order to achieve cross-platform functionality. Some compilers that have been tested includes Microsoft’s Visual C++, Mingw32, GCC, Clang and the Intel compiler.

The main development tools used are:

  • CMake cross-platform build system for configuration of the code. A small set of options are available in order to enable optional parts of the library that require external packages. Furthermore, the user is able to enable debug mode build, that disables code optimization and facilitates development, by attaching debug information in the code.

  • The code is available in an SVN repository. We have chosen the continuous integration as development policy. That is, all developers commit their contributions in a mainline repository.

  • Trac software management system is used for bug reporting. Additionally, we use the integrated wiki for documentation and user guidance.

  • A CDASH software testing server is employed for regular compilation and testing of the mainline code. Nightly builds are executed on different platforms, as well as continuous builds after user commits. This allows to easily correct errors and ensure the quality of the library. Coverage analysis and memory checks are also performed regularly.

  • The in-source documentation system Doxygen is used heavily in the code.

  • A mailing list is available for communication and user support.

Regarding tools that are employed in the library:

  • The C++ Standard Library is employed. This is available by default on C++ modern installations.

  • The Eigen C++ Linear Algebra library is used for linear algebra operations. This library features templated coefficient type, dense and sparse matrices and vectors, typical matrix decompositions (LU, QR, SVD,…) as well as iterative solvers and wrappers for high-end packages (SuperLU, PaStiX, SparseSuite,…).

  • XML reader/writer for input/output of XML files, and other CAD formats (OFF, STL, OBJ, GeoPDEs, 3DM, Parasolid).

  • Mathematical Expression Toolkit Library (ExprTk). This is an expression-tree evaluator for mathematical function expressions that allows input of functions similar to Matlab’s interface.

4.3 Additional Features and Extensions

Apart from the basic set of tools provided in the library, the user has the possibility to enable features that require third-party software. The following connections to external tools is provided:

  • OpenNurbs library used to support Rhino’s 3DM CAD file format. This allows file exchange with standard CAD software.

  • Connection to Parasolid geometric kernel. Enabling this feature allows input and output of the x_t file format. Also, the user can employ advanced modeling operations like intersection, trimming, boolean operations, and so on.

  • Connection to LS-DYNA. The user can output simulation data that can be used by LS-DYNA’s Generalized element module system, for performing for instance simulations on shells.

  • Connection to IPOPT nonlinear optimization library. With this feature one can use powerful interior point constrained optimization algorithms in order to perform, for instance, isogeometric shape optimization.

  • MPFR library for multi-precision floating point arithmetic. With this feature critical geometric operations can be performed with arbitrary precision, therefore guaranteeing a verified result.

  • Graphical interface, interaction and display using Axel modeler.

4.4 Plugins for Third-Party Platforms

Finally, there are currently two plugins under development. The plugins allow third-party software to employ and exchange data with G+SMO.

  • Axel Modeler is an open-source spline modeling package based on Qt and VTK. Our plugin allows to use G+SMO within this graphical interface, and provides user interaction (e.g. control point editing) and display.

  • A Matlab interface is under development. This allows to use operations available in G+SMO within Matlab.