TL;DR
Bembel is a C++ library that implements high-order isogeometric boundary element methods for solving Laplace, Helmholtz, and Maxwell problems efficiently using fast multipole and parallel assembly techniques.
Contribution
It introduces a fast, efficient C++ library integrating isogeometric boundary element methods with advanced computational techniques.
Findings
Achieves high computational efficiency for boundary element problems
Supports complex geometries via compatibility with NURBS
Utilizes fast multipole method for scalable performance
Abstract
In this article, we present Bembel, the C++ library featuring higher order isogeometric Galerkin boundary element methods for Laplace, Helmholtz, and Maxwell problems. Bembel is compatible with geometries from the Octave NURBS package and provides an interface to the Eigen template library for linear algebra operations. For computational efficiency, it applies an embedded fast multipole method tailored to the isogeometric analysis framework and a parallel matrix assembly based on OpenMP.
| Nr. | Code metadata description | Please fill in this column |
|---|---|---|
| C1 | Current code version | v0.9 |
| C2 | Permanent link to code/repository used for this code version | http://www.bembel.eu, cf. [13] |
| C3 | Legal Code License | GPL3 |
| C4 | Code versioning system used | Git |
| C5 | Software code languages, tools, and services used | C, C++, OpenMP |
| C6 | Compilation requirements, operating environments & dependencies | CMake, C++11, Eigen Linear Algebra Library |
| C7 | If available Link to developer documentation/manual | http://www.bembel.eu/ Documentation |
| C8 | Support email for questions | [email protected] |
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Bembel: The Fast Isogeometric Boundary Element C++ Library for Laplace, Helmholtz, and Electric Wave Equation
J. Dölz
H. Harbrecht
S. Kurz
M. Multerer
S. Schöps
F. Wolf
TU Darmstadt, Department of Mathematics
Universität Basel, Department of Mathematics and Computer Science
TU Darmstadt, Institute TEMF & Centre for Computational Engineering
Università della Svizzera italiana, Institute of Computational Science
Abstract
In this article, we present Bembel, the C++ library featuring higher order isogeometric Galerkin boundary element methods for Laplace, Helmholtz, and Maxwell problems. Bembel is compatible with geometries from the Octave NURBS package, and provides an interface to the Eigen template library for linear algebra operations. For computational efficiency, it applies an embedded fast multipole method tailored to the isogeometric analysis framework and a parallel matrix assembly based on OpenMP.
keywords:
BEM, IGA, Laplace, Helmholtz, Maxwell, C++, FMM, -matrix.
††journal: arXiv
1 Introduction
The boundary element method (BEM) or method of moments (MoM) is a widely used tool for the solution of partial differential equations (PDEs) in engineering applications such as acoustic and electromagnetic scattering problems in homogeneous media. It is accepted in industry and implementations are available as software packages. Prominent examples are BEM++ [1] which is accessible open source and BETL [2] which is freely available for academic use. A commonality of these codes is that they are relying on mesh generators to create triangulation-based surface meshes consisting of flat triangles or lower order parametric elements. Thus, the order of convergence of (higher-order) boundary element methods is limited by the approximation error of the underlying mesh.
With the emergence of isogeometric analysis, see [3], boundary element methods have received increased attention by the community, since computer aided design (CAD) tools directly provide parametric representations of surfaces in terms of non-uniform rational B-splines (NURBS). This has recently led to a flourishing development of software concerning NURBS, see, e.g., [4, 5]. Since the extraction of volume mappings from surface descriptions is an active research area with unsolved open problems, the use of isogeometric finite element methods is quite challenging in practice. Boundary element methods are the methods of choice in this setting, see also [6, 7, 8, 9, 10, 11, 12]. However, their implementation usually requires a significant amount of expert knowledge, which can lead non-experts to refrain from their usage.
The software library Bembel, Boundary Element Method Based Engineering Library, is written in C and C++ [13]. It solves boundary value problems governed by the Laplace, Helmholtz or electric wave equation within the isogeometric framework. The development of the software started in the context of wavelet Galerkin methods on parametric surfaces, see [14], where the integration routines for the Green’s function of the Laplacian have been developed and implemented. It was then extended to hierarchical matrices (-matrices) in [15] and to -matrices and higher-order B-splines in [16]. With support of B-splines and NURBS for the geometry mappings, the Laplace and Helmholtz code became isogeometric in [7]. Finally, in [17], it has been extended to the electric field integral equation.
The publication of this software package aims at making isogeometric boundary element methods available for a broader audience. Therefore, we aim at an easy to use C++ API, which streamlines the access to the underlying routines, with compatibility to the Eigen template library for linear algebra, see [18]. This is achieved, while still providing black-box -compression of the boundary element system matrices and OpenMP parallelized matrix assembly. The -compression yields an almost linear complexities in the number of unknowns for assembly, storage requirements and matrix-vector multiplication for the system matrix. For the representation of geometries, Bembel features arbitrary parametric mappings, most prominently given as NURBS-mappings and can directly be imported from files generated by the Octave NURBS package [4].
The structure of this document is as follows. Section 2 shortly recalls the main concepts of isogeometric boundary element methods. Section 3 is concerned with design considerations for the library, whereas Section 4 deals with the implementation. Afterwards, in Section 5, we discuss an example program, whereas Section 6 discusses the significance of the code. Finally, in Section 7, we will conclude our review.
2 Isogeometric Boundary Element Methods
Bembel is able to treat potential, acoustic scattering, and electromagnetic scattering problems governed by the well-known Laplace, Helmholtz, and electric wave equations as stated in A. For the Helmholtz and the electric wave equation, Bembel assumes non-resonant wave-numbers.
The boundary value problems can be solved by single layer potential ansatzes, see B, which require the solution of boundary integral equations by means of a numerical discretization. This and similar approaches are commonly known as boundary element methods. Bembel implements these through the use of a conforming Galerkin scheme.
One of the inherent advantages of boundary element methods over classical finite element techniques in the volume is that they can act directly on surface descriptions by NURBS from CAD programs, see C. This, in connection with corresponding spline spaces, leads to so-called isogeometric boundary element methods. Bembel implements this and assumes that these surface descriptions fulfill the requirements stated in D. The spline spaces for the Galerkin method are constructed as isogeometric multi-patch B-spline spaces, see E.
It is well known that in all cases solvability and uniquenes of the solution, both of the continuous problem as well as of its discrete counterpart, can be guaranteed by imposing reasonable assumptions on the boundary values, essentially guaranteeing “physicality” of the input data, see e.g. [19, 20].
The computation of the system matrix requires the evaluation of singular integrals, see [20]. For the numerical quadrature of these integrals, we employ regularization techniques as described in [21]. The compression of the resulting densely populated system matrices is based on the embedded fast multipole method (FMM), which is tailored to the framework of isogeometric analysis, see [16, 17], and fits into the framework of -matrices. Its particular advantage is that the matrix compression is directly applied on the reference geometry, that is, the unit square. Hence, the employed compression scheme profits from the inherently two-dimensional structure of the problem. The complexity for assembly, storage requirement and matrix-vector multiplication for the system matrix are almost linear in the number of unknowns, see [16, 17]. Moreover, this compression technique provably maintains the convergence behaviour for increasingly finer discretizations, cf. [16]. An in-depth mathematical analysis of the implemented approach together with numerical studies based on previous versions of Bembel is available in [7, 16, 17].
3 Design Considerations
Most modern three-dimensional boundary element codes with built-in matrix compression are written in C or C++, which are proven to lead to efficient implementations. One of the central aims of Bembel is to provide a computationally efficient isogeometric boundary element code with a plain and simple user interface. Therefore, the API of Bembel is designed in modern C++ and provides an interface for the Eigen template library for numerical linear algebra. This allows the user for a programming experience similar to Matlab and Octave and for the use of all matrix-free algorithms from the Eigen library. Particularly, all iterative solvers provided by Eigen can be employed without further modifications. In contrast, the low-level routines of Bembel are written in optimized C code which is tuned towards efficiency. Shared memory parallelism by the use of OpenMP is provided and hence aims at multicore machines.
4 Implementation
4.1 Geometry
With Bembel, geometry representations can directly be imported from files generated by the Octave NURBS package [4]. However, we should mention that the implementation of the Geometry class is rather flexible such that the NURBS mappings may be replaced by arbitrary smooth parametric mappings defined by the user.
4.2 PDE
The PDE to solve and the potential ansatz to use are defined by a derivation of the base class PDEproblem. The currently available derivations are LaplaceSingle, HelmholtzSingle, and MaxwellSingle, which implement the boundary integral equations (BIE) for Laplace, Helmholtz and Maxwell problems listed in B. The derived classes contain all necessary information for the PDE and the boundary integral equation under consideration, see A and B. Note that, for HelmholtzSingle and MaxwellSingle, the construction of a class instance requires a wave number described as std::complex<double>.
4.3 Discretization
Given a Geometry object and a class inheriting from PDEproblem, e.g. LaplaceSingle, an object of the template class Discretization<LaplaceSingle> describes a conforming boundary element space on refinement level L and polynomial degree P. The type of the B-spline boundary element space is automatically defined through the class inheriting from PDEproblem, e.g. LaplaceSingle.
4.4 Boundary Values
The load vectors of the Galerkin systems can be obtained via quadrature from a std::function object describing the boundary values. For the Laplace case, computeRhs takes a Discretization and a std::function<double(Eigen::Vector3d)>) object and returns the load vector as an Eigen::VectorXd. For the Helmholtz and Maxwell case, the return value is an Eigen::VectorXcd. Note that in this case the std::function object has to be modified accordingly, i.e. it must accept arguments of type Eigen::Vector3cd. Bembel provides exemplary functions. They can be wrapped into this framework, e.g, via C++ lambdas.
4.5 System Matrix
Given a specialized Discretization, e.g. Discretization<LaplaceSingle>, and a polynomial degree for the -compression, a corresponding specialization of the template class HierarchicalMatrix, e.g. HierarchicalMatrix<LaplaceSingle>, may be used to assemble the compressed system matrix of the Galerkin system. Note that the type of the PDE and the geometry are directly encoded into the discretization, such that no further information is required here.
The template class HierarchicalMatrix<T> inherits from the corresponding specialization of the EigenBase class, i.e. EigenBase<HierarchicalMatrix<T>>. Therefore, a HierarchicalMatrix object may use the Eigen interface and can be passed to all functions which accept EigenBase<Derived> objects as parameters.
The Eigen methods rows() and cols() are specialized in order to return the dimensions. Moreover, to facilitate the multiplication of Eigen::VectorX objects, the specialization Product<HierarchicalMatrix, Rhs, AliasFreeProduct> of the Eigen Product class is provided. In particular, the operator * is overloaded to support expressions like H * x, where H is a HierarchicalMatrix<PDEproblem> object, and x an Eigen::VectorX object, with a fitting Scalar type.
4.6 Solution of the System of Linear Equations
The solution of linear systems within Bembel can be performed by the matrix-free solvers from Eigen. To that end, the template class HierarchicalMatrixinherits the Eigen::internal::traits of an Eigen::SparseMatrix with the same Scalar type as in the corresponding example from the Eigen documentation on matrix-free solvers. We opted for the Eigen::SparseMatrix traits, since they seem to impose the least requirements. Hence, in view of the implemented general matrix-vector (GEMV) product H * x, all Eigen iterative solvers which solely rely on this operation may be used.
4.7 Evaluation of the Solution
Having the density vector rho from the iterative solver, the solution to the PDE in either the exterior or the interior domain can be evaluated by the function Sol::evalSolution(gridpoints, rho, myDisc). In here, gridpoints should be an Eigen::Matrix<double, Eigen::Dynamic, 3> matrix of n three-dimensional points in the domain of interest. Depending on the PDE, sol is either an Eigen::VectorXd, Eigen::VectorXcd or Eigen::Matrix<std::complex<double>, Eigen::Dynamic, 3> object, where each row contains the solution at the corresponding gridpoint.
4.8 Visualization
The Bembel::Vis::plotDiscretizationToVTK functions can be used to visualize rho and the geometry in vtk-format. Their functionality is explained extensively in the src/examples/example_Visualization.cpp file.
5 Example Program
We discuss a full example for the solution of an electromagnetic scattering problem, which is located in src/examples/example_MaxwellSingle.cpp.
1int main() {
2 using namespace Bembel;
3 using namespace Eigen;
4
5 const int multipoleDegree = 16;
6 const int knotRepetition = 1;
7 const std::complex<double> wavenumber(3, 0);
8
9 Geometry geom("geometry.dat");
10 MaxwellSingle pde(wavenumber);
11 MatrixXd gridpoints = Util::makeSphereGrid(6, 10);
12
13 const std::function<Vector3cd(Vector3d, std::complex<double>)>
14 fun = ... ; // Define incident wave
15
16 for (int P = 1 ; P < 10 ; ++P)) {
17 for (int L = 0 ; L < 6 ; ++L) {
18 Discretization<MaxwellSingle> disc(geom, pde, P, knotRepetition, L);
19 VectorXcd rhs = Rhs::computeRhs(disc, fun);
20 HierarchicalMatrix<MaxwellSingle> hmat(disc, multipoleDegree);
21 GMRES<HierarchicalMatrix<MaxwellSingle>, IdentityPreconditioner> gmres;
22 gmres.compute(hmat);
23 VectorXcd rho = gmres.solve(rhs);
24 MatrixXcd pot = Sol::evalSolution(gridpoints, rho, disc);
25 }
26 }
27 return (0);
28}
At the beginning of the program, the polynomial degree for the -compression, the knot repetition of the B-spline spaces, and the wave number are defined. The Geometry object is loaded from the file "geometry.dat", and the PDE is defined for a given wave number. Util::makeSphereGrid(6,10) generates ten evaluation points on ten lines of latitude for the scattered field on a sphere around the origin with radius 6. Afterwards, an incident wave for the scattering problem is defined in fun.
The rest of the example program loops over different polynomial degrees P and refinement levels L. In the loop, the discrete space is defined as a Discretization object, the load vector and the system matrix are assembled and solved with the GMRES solver from the Eigen (unsupported) package. Finally, the scattered field is evaluated at the previously defined points.
Note that the program is straightforwardly adapted to the Laplace and Helmholtz cases as indicated by the example files in the src/examples folder. These examples also provide error measurements of the solution to the underlying PDE and output of these errors into log-files. These were not included to the above example for a better understanding of the main functionality of the code. LaTeX-files creating error plots such as illustrated in Figure 1 can be found in the LaTeX folder. The routines can visualize the intermediate quantity rho as illustrated in Figure 1.
6 Impact
The implementation of boundary element methods in three spatial dimensions is a non-trivial task due to the necessary numerical evaluation of singular integrals and the required matrix compression to achieve computational efficiency. While this is already true for lowest-order implementations for the Laplace equation on boundary triangulations with flat elements, difficulties increase on isogeometric (or parametric) surfaces, isogeometric B-spline (or higher-order) boundary element spaces, and more involved electromagnetic problems. These implementation-related issues lead many people to refrain from the use of boundary element methods, even when a specific engineering problem is known to be solved best therewith. Our software package aims to provide a state-of-the-art boundary element toolbox for engineers who would like to apply competitive isogeometric boundary element methods in a black-box fashion. This allows users to freely employ boundary element methods as a tool in involved engineering applications. To the best of our knowledge, the functionality of higher-order B-spline boundary element spaces is the first open source implementation available for three dimensions.
A major strongpoint of Bembel is the direct integration into the Eigen Linear Algebra Library. This allows the user for a straightforward pre or post processing of data with a clean user interface. The matrix-free algorithms of Eigen provide different kinds of iterative solvers for the Galerkin systems or eigenvalue problems.
7 Conclusion
Bembel is an open-source library enabling users to apply isogometric boundary element methods for potential, acoustic, electromagnetic, and many other problems in a black-box fashion. This is achieved through an easy-to-use API and compatibility with the Eigen template library for linear algebra. Moreover, it encorporates state-of-the-art compression techniques for large problems, as well as OpenMP parallelization.
Acknowledgement
This work is supported by DFG Grants SCHO1562/3-1 and KU1553/4-1 within the project Simulation of superconducting cavities with isogeometric boundary elements (IGA-BEM). The work of Jürgen Dölz was partially supported by SNSF Grants 156101 and 174987, as well as the Graduate School of Computational Engineering at TU Darmstadt and the Excellence Initiative of the German Federal and State Governments and the Graduate School of Computational Engineering at TU Darmstadt. Michael Multerer was partially supported by SNSF Grant 137669. The work of Felix Wolf is supported by the Excellence Initiative of the German Federal and State Governments and the Graduate School of Computational Engineering at TU Darmstadt.
References
- [1]
W. Śmigaj, T. Betcke, S. Arridge, J. Phillips, M. Schweiger, Solving boundary integral problems with BEM++, ACM Transactions on Mathematical Software 41 (2) (2015) 6:1–6:40.
- [2]
H. Hiptmair, L. Kielhorn, BETL — A generic boundary element template library, Tech. rep., ETH Zurich (2012).
- [3]
T. J. R. Hughes, J. A. Cottrell, Y. Bazilevs, Isogeometric analysis: CAD, finite elements, NURBS, exact geometry and mesh refinement, Computer Methods in Applied Mechanics and Engineering 194 (39) (2005) 4135–4195.
- [4]
M. Spink, D. Claxton, C. de Falco, R. Vázquez, The NURBS toolbox, http://octave.sourceforge.net/nurbs/index.html.
- [5]
O. R. Bingol, A. Krishnamurthy, NURBS-Python: An open-source object-oriented NURBS modeling framework in Python, SoftwareX 9 (2019) 85 – 94.
- [6]
A. Aimi, F. Calabrò, M. Diligenti, M. Sampoli, G. Sangalli, A. Sestini, Efficient assembly based on B-spline tailored quadrature rules for the IgA-SGBEM, Computer Methods in Applied Mechanics and Engineering 331 (Supplement C) (2018) 327–342.
- [7]
J. Dölz, H. Harbrecht, S. Kurz, S. Schöps, F. Wolf, A fast isogeometric BEM for the three dimensional Laplace- and Helmholtz problems, Computer Methods in Applied Mechanics and Engineering 330 (Supplement C) (2018) 83 – 101.
- [8]
M. Feischl, G. Gantner, A. Haberl, D. Praetorius, Optimal convergence for adaptive IGA boundary element methods for weakly-singular integral equations, Numerische Mathematik 136 (2017) 147–182.
- [9]
B. Marussig, J. Zechner, G. Beer, T. Fries, Fast isogeometric boundary element method based on independent field approximation, Computer Methods in Applied Mechanics and Engineering 284 (0) (2015) 458–488.
- [10]
R. N. Simpson, S. Bordas, J. Trevelyan, T. Rabczuk, A two-dimensional isogeometric boundary element method for elastostatic analysis 209–212 (2012) 87–100.
- [11]
M. Taus, Isogeometric analysis for boundary integral equations, Ph.D. thesis, University of Texas at Austin (2015).
- [12]
T. Takahashi, T. Matsumoto, An application of fast multipole method to isogeometric boundary element method for Laplace equation in two dimensions, Engineering Analysis with Boundary Elements 36 (12) (2012) 1766–1775.
- [13]
J. Dölz, H. Harbrecht, S. Kurz, M. Multerer, S. Schöps, F. Wolf, Bembel, http://www.bembel.eu (May 2019).
- [14]
H. Harbrecht, Wavelet Galerkin schemes for the boundary element method in three dimensions, Ph.D. thesis, Technische Universität Chemnitz (2001).
- [15]
H. Harbrecht, M. Peters, Comparison of fast boundary element methods on parametric surfaces, Computer Methods in Applied Mechanics and Engineering 261–262 (2013) 39–55.
- [16]
J. Dölz, H. Harbrecht, M. Peters, An interpolation-based fast multipole method for higher-order boundary elements on parametric surfaces, International Journal for Numerical Methods in Engineering 108 (13) (2016) 1705–1728.
- [17]
J. Dölz, S. Kurz, S. Schöps, F. Wolf, Isogeometric Boundary Elements in Electromagnetism: Rigorous Analysis, Fast Methods, and Examples, arXiv e-prints (2018) arXiv:1807.03097.
- [18]
G. Guennebaud, B. Jacob, et al., Eigen v3, http://eigen.tuxfamily.org (2010).
- [19]
A. Buffa, R. Hiptmair, Galerkin boundary element methods for electromagnetic scattering, in: M. Ainsworth, P. Davies, D. Duncan, B. Rynne, P. Martin (Eds.), Topics in computational wave propagation, Springer, 2003, pp. 83–124.
- [20]
O. Steinbach, Numerical Approximation Methods for Elliptic Boundary Value Problems, Springer Science & Business, New York, 2008.
- [21]
S. A. Sauter, C. Schwab, Quadrature for -Galerkin BEM in , Numerische Mathematik 78 (2) (1997) 211–258.
- [22]
L. Piegl, W. Tiller, The NURBS Book, 2nd Edition, Springer, 1997.
- [23]
A. Buffa, J. Dölz, S. Kurz, S. Schöps, R. Vázquez, F. Wolf, Multipatch approximation of the de Rham sequence and its traces in isogeometric analysis, arXiv e-prints (2018) arXiv:1806.01062.
Appendix A Partial Differential Equations
In the following, let be a bounded domain with Lipschitz boundary . Moreover, we define the exterior domain . Bembel can treat the Laplace equation
[TABLE]
and the Helmholtz equation
[TABLE]
with Sommerfeld radiation conditions towards infinity. In both cases, the boundary values have to be understood in the usual sense of traces, see, e.g. [20]. In addition, Bembel can treat the electric wave equation
[TABLE]
with Silver-Müller radiation conditions towards infinity, which can be derived from Maxwell’s equations. Again, the boundary values have to be understood in the sense of traces, see [19].
Appendix B Boundary Integral Equations
The three boundary value problems (LP), (HP), and (MP) can each be solved by means of a single layer potential ansatz, i.e., setting
[TABLE]
It can be shown that (LS), (HS), and (MS) solve the boundary value problems (LP), (HP), and (MP) for appropriate density functions , , and , see [19, 20]. Taking the proper trace operators one arrives at the three boundary integral equations
[TABLE]
on to determine the unknown density functions in (LS), (HS), and (MS). We note that and are isomorphisms from to , whereas is an isomorphism on , see [19, 20] for details. Thus, in view of a conforming Galerkin method, piecewise polynomial boundary element spaces are sufficient for the boundary element based solution of (LP) and (HP), whereas (MP) requires divergence conforming boundary element spaces. Unique solvability of the corresponding linear systems can be proven, see [19, 20].
Remark B.1**.**
In fact, the described single layer potential approaches solve the interior and the exterior problems of (LP), (HP), and (MP) simultaneously. Thus, and satisfy (HP) and (MP) also in , whereas satisfies (LP) also in , with additional radiation conditions |u_{\mathrm{L}}(\mathbf{x})|=\mathcal{O}\big{(}\|\mathbf{x}\|_{2}^{-1}\big{)} and \|\operatorname{{\boldsymbol{\nabla}}}u_{\mathrm{L}}(\mathbf{x})\|_{2}=\mathcal{O}\big{(}\|\mathbf{x}\|_{2}^{-2}\big{)} towards infinity, see [19, 20].
Appendix C B-Splines and NURBS
Let and be two fixed integers such that and let be a locally quasi uniform knot vector with knots in , see [22]. The B-spline basis is then defined by recursion as
[TABLE]
where denotes the indicator function for the set . Having the B-spline basis at our disposal, we define the spline space .
A NURBS mapping on the unit square is given by
[TABLE]
and described by its control points and weights For further concepts and algorithmic realization of the NURBS, we refer to [22].
Appendix D Boundary Representation
Bembel assumes that the boundary representations are the union of several patches , i.e.,
[TABLE]
where is given by a NURBS mapping with outward pointing normal. The boundary itself is then the collection of all patches
[TABLE]
where the intersection consists at most of a common vertex or a common edge for .
In order to ensure conforming meshes, Bembel also imposes the following matching condition on the parametrizations: For each on a common edge of and , there has to exist a bijective and affine mapping such that there holds . This means that the parameterizations and coincide on the common edge except for orientation.
Appendix E B-Spline Boundary Element Spaces
The boundary element spaces for the Galerkin method are constructed as isogeometric multi-patch B-spline spaces, see [23]. Bembel uses equidistant knot vectors with elements and the same polynomial degrees in each direction, i.e., , on the unit square. The corresponding spline spaces are thus given by
[TABLE]
for and . Herein, , for , denotes the truncated knot vector, i.e., the knot vector without its first and last element.
Due to the representation of the computational geometry by patches, the spaces constructed on the unit square can easily be lifted to the patches on the boundary by the Piola transform. Enforcing continuity conditions across patch boundaries yields conforming discretizations
[TABLE]
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1] W. Śmigaj, T. Betcke, S. Arridge, J. Phillips, M. Schweiger, Solving boundary integral problems with BEM++, ACM Transactions on Mathematical Software 41 (2) (2015) 6:1–6:40.
- 2[2] H. Hiptmair, L. Kielhorn, BETL — A generic boundary element template library, Tech. rep., ETH Zurich (2012).
- 3[3] T. J. R. Hughes, J. A. Cottrell, Y. Bazilevs, Isogeometric analysis: CAD, finite elements, NURBS, exact geometry and mesh refinement, Computer Methods in Applied Mechanics and Engineering 194 (39) (2005) 4135–4195.
- 4[4] M. Spink, D. Claxton, C. de Falco, R. Vázquez, The NURBS toolbox, http://octave.sourceforge.net/nurbs/index.html .
- 5[5] O. R. Bingol, A. Krishnamurthy, NURBS-Python: An open-source object-oriented NURBS modeling framework in Python, Software X 9 (2019) 85 – 94.
- 6[6] A. Aimi, F. Calabrò, M. Diligenti, M. Sampoli, G. Sangalli, A. Sestini, Efficient assembly based on B-spline tailored quadrature rules for the Ig A-SGBEM, Computer Methods in Applied Mechanics and Engineering 331 (Supplement C) (2018) 327–342.
- 7[7] J. Dölz, H. Harbrecht, S. Kurz, S. Schöps, F. Wolf, A fast isogeometric BEM for the three dimensional Laplace- and Helmholtz problems, Computer Methods in Applied Mechanics and Engineering 330 (Supplement C) (2018) 83 – 101.
- 8[8] M. Feischl, G. Gantner, A. Haberl, D. Praetorius, Optimal convergence for adaptive IGA boundary element methods for weakly-singular integral equations, Numerische Mathematik 136 (2017) 147–182.
