Multipatch Discontinuous Galerkin Isogeometric Analysis
Abstract
Isogeometric Analysis (IgA) uses the same class of basis functions for both representing the geometry of the computational domain and approximating the solution of the boundary value problem under consideration. In practical applications, geometrical patches are used in order to get flexibility in the geometrical representation. This multi-patch representation corresponds to a decomposition of the computational domain into non-overlapping subdomains also called patches in the geometrical framework. We will present discontinuous Galerkin (dG) methods that allow for discontinuities across the subdomain (patch) boundaries. The required interface conditions are weakly imposed by the dG terms associated with the boundary of the subdomains. The construction and the corresponding discretization error analysis of such dG multi-patch IgA schemes is given for heterogeneous diffusion model problems in volumetric 2d and 3d domains as well as on open and closed surfaces. The theoretical results are confirmed by numerous numerical experiments which have been performed in G+SMO. The concept and the main features of the IgA library G +SMO are also described.
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].
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 ^{1}C++ 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
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}}\).
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}.\)
2.2 Auxiliary Results
We will use the following auxiliary results which have been shown in [30].
Lemma 1
Lemma 2
Lemma 3
Lemma 4
2.3 Analysis of the dG IgA Discretization
Lemma 5
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
Proof
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
Lemma 8
Next, we give the main error estimate for the dG IgA method.
Theorem 1
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.
The numerical convergence rates of the dG IgA method
Highly smooth | k = 2 | k = 3 | k = 4 | |||||||
---|---|---|---|---|---|---|---|---|---|---|
\(\frac{h} {2^{s}}\) | k = 2 | k = 3 | k = 4 | l = 2 | l = 3 | l = 2 | l = 3 | l = 2 | l = 3 | |
Convergence rates | ||||||||||
s = 0 | − | − | − | − | − | − | − | − | − | |
s = 1 | 0.445 | 2.916 | 0.083 | 0.510 | 1.425 | 0.406 | 1.124 | 0.369 | 0.926 | |
s = 2 | 2.342 | 2.463 | 3.576 | 0.670 | 1.645 | 0.615 | 1.582 | 0.562 | 1.465 | |
s = 3 | 2.100 | 3.141 | 4.089 | 0.699 | 1.669 | 0.694 | 1.692 | 0.683 | 1.674 | |
s = 4 | 2.031 | 3.041 | 3.989 | 0.700 | 1.680 | 0.700 | 1.700 | 0.700 | 1.700 |
2.4.2 Non-matching Meshes
Non-matching meshes: error estimates for degrees k = 1, 2, 3 and R = 40
Dofs | L_{2} error | Conv. rate | DG error | Conv. rate | |
---|---|---|---|---|---|
Degree k = 1 | |||||
1685 | 0.31667 | 0 | 2.1596 | 0 | |
6570 | 0.0867936 | 1.86732 | 0.97857 | 1.14202 | |
25,946 | 0.0249492 | 1.79859 | 0.49992 | 0.968979 | |
103,122 | 0.00638919 | 1.96529 | 0.251392 | 0.991758 | |
411,170 | 0.00160452 | 1.99349 | 0.125887 | 0.997804 | |
1.64205 × 10^{6} | 0.000401493 | 1.9987 | 0.0629683 | 0.999435 | |
6.56295 × 10^{6} | 0.000100393 | 1.99972 | 0.0314873 | 0.999857 | |
Degree k = 2 | |||||
1773 | 0.0330803 | 0 | 0.117511 | 0 | |
6740 | 0.0237587 | 0.477516 | 0.278058 | −1.2426 | |
26,280 | 0.00186298 | 3.67278 | 0.0555191 | 2.32433 | |
103,784 | 0.000205886 | 3.17769 | 0.0130802 | 2.0856 | |
412,488 | 2.53126 × 10^{−5} | 3.02392 | 0.00321704 | 2.02358 | |
1.64468 × 10^{6} | 3.17795 × 10^{−6} | 2.99369 | 0.000800278 | 2.00716 | |
6.5682 × 10^{6} | 3.99389 × 10^{−7} | 2.99223 | 0.000199727 | 2.00247 | |
Degree k = 3 | |||||
1865 | 0.0196108 | 0 | 0.281761 | 0 | |
6914 | 0.00216825 | 3.17704 | 0.037403 | 2.91324 | |
26,618 | 0.00030589 | 2.82545 | 0.00706104 | 2.4052 | |
104,450 | 1.60210 × 10^{−5} | 4.25498 | 0.000803958 | 3.13469 | |
413,810 | 9.49748 × 10^{−7} | 4.07627 | 9.7687 × 10^{−5} | 3.04088 | |
1.64731 × 10^{6} | 5.85542 × 10^{−8} | 4.0197 | 1.21191 × 10^{−5} | 3.01089 | |
6.57346 × 10^{6} | 3.64710 × 10^{−9} | 4.00495 | 1.51195 × 10^{−6} | 3.00280 |
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
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 } }\).
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\).
Theorem 2
2.5.3 Numerical Examples
- 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.Table 3The convergence rates for the L-shape test (left) and for the internal singularity test (right)
- 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.
3 Multipatch dG IgA for PDEs on Surfaces
3.1 Diffusion Problems on Open and Closed Surfaces
3.2 Multipatch dG IgA Discretization
3.3 Discretization Error Estimates
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
Sphere: comparison of the cG and dG IgA error decay in the L_{2} norm for k = 5
k = 5 | cG-IgA | dG-IgA | |||
---|---|---|---|---|---|
Dofs | L_{2} error | Conv. rate | L_{2} error | Conv. rate | |
216 | 0.168803 | 0 | 0.166582 | 0 | |
294 | 0.0602254 | 1.48689 | 0.0599854 | 1.16908 | |
486 | 0.00900833 | 2.74104 | 0.00898498 | 2.55496 | |
1014 | 8.90909 × 10^{−5} | 6.65984 | 8.90774 × 10^{−5} | 6.537 | |
2646 | 8.64021 × 10^{−7} | 6.68807 | 8.63906 × 10^{−7} | 6.85905 | |
8214 | 1.16592 × 10^{−8} | 6.21152 | 1.16582 × 10^{−8} | 6.27626 | |
28,566 | 1.75119 × 10^{−10} | 6.05699 | 1.75127 × 10^{−10} | 6.06894 |
3.4.2 Torus
Torus: comparison of the cG and dG IgA error decay in the L_{2} norm for k = 5
k = 5 | cG-IgA | dG-IgA | |||
---|---|---|---|---|---|
Dofs | L_{2} error | Conv. rate | L_{2} error | Conv. rate | |
504 | 0.0974255 | 0 | 0.0973029 | 0 | |
700 | 0.0433491 | 1.1683 | 0.043271 | 1.16908 | |
1188 | 0.00736935 | 2.55639 | 0.00736339 | 2.55496 | |
2548 | 7.9296 × 10^{−5} | 6.53814 | 7.92948 × 10^{−5} | 6.537 | |
6804 | 6.83083 × 10^{−7} | 6.85904 | 6.83068 × 10^{−7} | 6.85905 | |
21,460 | 8.8131 × 10^{−9} | 6.27627 | 8.81294 × 10^{−9} | 6.27626 | |
75,348 | 1.3131 × 10^{−10} | 6.0686 | 1.31276 × 10^{−10} | 6.06894 |
Torus: L_{2} and energy norm errors with degree k = 2
Dofs | L_{2} error | Conv. rate | dG error | Conv. rate | |
---|---|---|---|---|---|
108 | 2.04841 × 10^{6} | 0 | 8.56088 × 10^{6} | 0 | |
208 | 1.03579 × 10^{6} | 0.98377 | 4.89856 × 10^{6} | 0.805403 | |
504 | 128,215 | 3.0141 | 1.09244 × 10^{6} | 2.1648 | |
1480 | 15,431.9 | 3.05458 | 258,162 | 2.08121 | |
4968 | 1808.17 | 3.09331 | 64,084.3 | 2.01023 | |
18,088 | 213.252 | 3.0839 | 173,61.8 | 1.88406 | |
268,840 | Reference | Solution | Reference | Solution |
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.
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.
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)
k = 2 | cG IgA | Nitsche-type BCs | dG IgA | ||||
---|---|---|---|---|---|---|---|
DoFs | L_{2} error | Rate | L_{2} error | Rate | L_{2} error | Rate | |
96 | 1.87598 | 1.77144 | 1.77029 | ||||
192 | 1.23006 | 0.608922 | 1.19201 | 0.571527 | 1.19188 | 0.570749 | |
480 | 0.633648 | 0.956971 | 0.623767 | 0.934312 | 0.623764 | 0.934161 | |
1440 | 0.241842 | 1.38962 | 0.239835 | 1.37897 | 0.239835 | 1.37896 | |
4896 | 0.0659275 | 1.87511 | 0.0655902 | 1.87049 | 0.0655902 | 1.87049 | |
17,952 | 0.0115491 | 2.5131 | 0.011502 | 2.5116 | 0.011502 | 2.5116 | |
68,640 | 0.00155178 | 2.89578 | 0.00154625 | 2.89504 | 0.00154624 | 2.89504 | |
\(\sim\) 268 K | 0.00017567 | 3.14298 | 0.000175096 | 3.14256 | 0.000175094 | 3.14257 | |
\(\sim\) 1 M | Reference | Reference | Reference | Reference | Reference | Reference |
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 SuperLU^{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.
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.
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.
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
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
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.
Footnotes
- 1.
Geometry plus Simulation Modules, http://www.gs.jku.at/gismo.
- 2.
Notes
Acknowledgements
This research was supported by the Research Network “Geometry + Simulation” (NFN S117) funded by the Austrian Science Fund (FWF) under the grand S117-03.
References
- 1.R.A. Adams, J.J.F. Fournier, Sobolev Spaces Pure and Applied Mathematics, vol. 140, 2nd edn. (Elsevier/Academic Press, Amsterdam, 2003)Google Scholar
- 2.P. Antonietti, A. Dedner, P. Madhavan, S. Stangalino, B. Stinner, M. Verani, High order discontinuous Galerkin methods on surfaces. SIAM J. Numer. Anal. 53(2), 1145–1171 (2015)MathSciNetCrossRefMATHGoogle Scholar
- 3.T. Apel, F. Milde, Comparison of several mesh refinement strategies near edges. Commun. Numer. Methods Eng. 12, 373–381 (1996)CrossRefMATHGoogle Scholar
- 4.T. Apel, A.-M. Sändig, J.R. Whiteman, Graded mesh refinement and error estimates for finite element solutions of elliptic boundary value problems in non-smooth domains. Math. Methods Appl. Sci. 19(30), 63–85 (1996)MathSciNetCrossRefMATHGoogle Scholar
- 5.Y. Bazilevs, L. Beirão da Veiga, J. Cottrell, T. Hughes, G. Sangalli, Isogeometric analysis: approximation, stability and error estimates for h-refined meshes. Comput. Methods Appl. Mech. Eng. 194, 4135–4195 (2006)MATHGoogle Scholar
- 6.L. Beirão da Veiga, A. Buffa, J. Rivas, G. Sangalli, Some estimates for hpk-refinement in isogeometric analysis. Numerische Mathematik 118(2), 271–305 (2011)MathSciNetCrossRefMATHGoogle Scholar
- 7.L. Beirão da Veiga, D. Cho, G. Sangalli, Anisotropic NURBS approximation in isogeometric analysis. Comput. Methods Appl. Mech. Eng. 209–212(0):1–11 (2012)MathSciNetCrossRefMATHGoogle Scholar
- 8.J. Cottrell, T. Hughes, Y. Bazilevs, Isogeometric Analysis: Toward Integration of CAD and FEA (Wiley, Chichester, 2009)CrossRefGoogle Scholar
- 9.L. Dede, A. Quarteroni, Isogeometric analysis for second order partial differential equations on surfaces. Comput. Methods Appl. Mech. Eng. 284, 807–834 (2015)MathSciNetCrossRefGoogle Scholar
- 10.A. Dedner, P. Madhavan, Adaptive discontinuous Galerkin methods on surfaces. Numerische Mathematik (2015). doi: 10.1007/s00211-015-0719-4 Google Scholar
- 11.A. Dedner, P. Madhavan, B. Stinner, Analysis of the discontinuous Galerkin method for elliptic problems on surfaces. IMA J. Numer. Anal. 33(3), 952–973 (2013)MathSciNetCrossRefMATHGoogle Scholar
- 12.D.A. Di Pietro, A. Ern, Analysis of a discontinuous Galerkin method for heterogeneous diffusion problems with low-regularity solutions. Numer. Methods Partial Differ. Equ. 28(4), 1161–1177 (2012)MathSciNetCrossRefMATHGoogle Scholar
- 13.D.A. Di Pietro, A. Ern, Mathematical Aspects of Discontinuous Galerkin Methods. Mathématiques et Applications, vol. 69 (Springer, Berlin/Heidelberg, 2012)Google Scholar
- 14.M. Dryja, On discontinuous Galerkin methods for elliptic problems with discontinuous coefficients. Comput. Methods Appl. Math. 3, 76–85 (2003)MathSciNetCrossRefMATHGoogle Scholar
- 15.G. Dziuk, Finite elements for the Beltrami operator on arbitrary surfaces, in Partial Differential Equations and Calculus of Variations, ed. by S. Hildebrandt, R. Leis. Lecture Notes in Mathematics, vol. 1357 (Springer, Berlin/Heidelberg, 1988), pp. 142–155Google Scholar
- 16.G. Dziuk, C. Elliott, Finite elements on evolving surfaces. IMA J. Num. Anal. 27(2), 262–292 (2007)MathSciNetCrossRefMATHGoogle Scholar
- 17.G. Dziuk, C. Elliott, Surface finite elements for parabolic equations. J. Comput. Math. 25(4), 385–407 (2007)MathSciNetGoogle Scholar
- 18.G. Dziuk, C. Elliott, Finite element methods for surface PDEs. Acta Numer. 22, 289–396 (2013)MathSciNetCrossRefMATHGoogle Scholar
- 19.L.C. Evans, Partial Differential Equestions. Graduate Studies in Mathematics, vol. 19, 1st edn. (American Mathematical Society, Rhode Island, 1998)Google Scholar
- 20.P. Grisvard, Elliptic Problems in Nonsmooth Domains. Classics in Applied Mathematics, vol. 69 (SIAM, Philadelphia, 2011)Google Scholar
- 21.S. Gross, A. Reusken, Numerical Methods for Two-phase Incompressible Flows. Springer Series in Computational Mathematics, vol. 40 (Springer, Berlin/Heidelberg, 2011)Google Scholar
- 22.G. Guennebaud, B. Jacob et al., Eigen v3. http://eigen.tuxfamily.org (2010)
- 23.T. Hughes, J. Cottrell, Y. Bazilevs, Isogeometric analysis: CAD, finite elements, NURBS, exact geometry and mesh refinement. Comput. Methods Appl. Mech. Eng. 194, 4135–4195 (2005)MathSciNetCrossRefMATHGoogle Scholar
- 24.J.W. Jeong, H.-S. Oh, S. Kang, H. Kim, Mapping techniques for isogeometric analysis of elliptic boundary value problems containing singularities. Comput. Methods Appl. Mech. Eng. 254, 334–352 (2013)MathSciNetCrossRefMATHGoogle Scholar
- 25.B. Jüttler, U. Langer, A. Mantzaflaris, S.E. Moore, W. Zulehner, Geometry + Simulation Modules: Implementing Isogeometric Analysis. PAMM 14(1), 961–962 (2014)CrossRefGoogle Scholar
- 26.R.B. Kellogg, On the Poisson equation with intersecting interfaces. Appl. Anal. 4, 101–129 (1975)MathSciNetCrossRefMATHGoogle Scholar
- 27.S.K. Kleiss, B. Jüttler, W. Zulehner, Enhancing isogeometric analysis by a finite element-based local refinement strategy. Comput. Methods Appl. Mech. Eng. 213–216, 168–182 (2012)MathSciNetCrossRefMATHGoogle Scholar
- 28.U. Langer, A. Mantzaflaris, S.E. Moore, I. Toulopoulos, Mesh Grading in Isogeometric Analysis. Comput. Math. Appl. (2015). http://dx.doi.org/10.1016/j.camwa.2015.03.011
- 29.U. Langer, S. Moore, Discontinuous Galerkin Isogeometric Analysis of elliptic PDEs on surfaces. NFN Technical Report 12, Johannes Kepler University Linz, NFN Geometry and Simulation, Linz, 2014. http://arxiv.org/abs/1402.1185 and accepted for publication in the DD22 proceedings
- 30.U. Langer, I. Toulopoulos, Analysis of multipatch discontinuous Galerkin IgA approximations to elliptic boundary value problems. RICAM Reports 2014-08, Johann Radon Institute for Computational and Applied Mathematics, Austrian Academy of Sciences, Linz, 2014. http://arxiv.org/abs/1408.0182
- 31.A. Mantzaflaris, B. Jüttler, Exploring matrix generation strategies in isogeometric analysis, in Mathematical Methods for Curves and Surfaces, ed. by M. Floater, T. Lyche, M.-L. Mazure, K. Mørken, L. Schumaker. Lecture Notes in Computer Science, vol. 8177 (Springer, Berlin/Heidelberg, 2014), pp. 364–382Google Scholar
- 32.A. Mantzaflaris, B. Jüttler, Integration by interpolation and look-up for Galerkin-based isogeometric analysis. Comput. Methods Appl. Mech. Eng. 284, 373–400 (2015)MathSciNetCrossRefGoogle Scholar
- 33.L. Oganesjan, L. Ruchovetz, Variational Difference Methods for the Solution of Elliptic Equations (Isdatelstvo Akademi Nank Armjanskoj SSR, Erevan, 1979) (in Russian)Google Scholar
- 34.H.-S. Oh, H. Kim, J.W. Jeong, Enriched isogeometric analysis of elliptic boundary value problems in domains with cracks and/or corners. Int. J. Numer. Methods Eng 97(3), 149–180 (2014)MathSciNetCrossRefMATHGoogle Scholar
- 35.B. Rivière, Discontinuous Galerkin Methods for Solving Elliptic and Parabolic Equations: Theory and Implementation (SIAM, Philadelphia, 2008)CrossRefMATHGoogle Scholar
- 36.F. Zhang, Y. Xu, F. Chen, Discontinuous Galerkin methods for isogeometric analysis for elliptic equations on surfaces. http://staff.ustc.edu.cn/~yxu/paper/IGA-DG.pdf (2014)