Abstract
An optimized Schwarz domain decomposition method (DDM) for solving the local optical response model (LORM) is proposed in this paper. We introduce a hybridizable discontinuous Galerkin (HDG) scheme for the discretization of such a model problem based on a triangular mesh of the computational domain. The discretized linear system of the HDG method on each subdomain is solved by a sparse direct solver. The solution of the interface linear system in the domain decomposition framework is accelerated by a Krylov subspace method. We study the spectral radius of the iteration matrix of the Schwarz method for the LORM problems, and thus propose an optimized parameter for the transmission condition, which is different from that for the classical electromagnetic problems. The numerical results show that the proposed method is effective.
1. Introduction
Nanophotonics or nano-optics [] is the study of the behavior of light on the nanometer scale, and of the interaction of nanometer-scale objects with light. Moreover, such a discipline is reshaping our worldview in many ways with fascinating (potential) applications such as novel biological detection and new storage media []. These applications require fine control of the propagation of light waves. So, it is important to use appropriate mathematical models to describe the behavior of the light–matter interactions []. Light waves are regarded as electromagnetic (EM) waves and modeled by Maxwell’s equations. Classical or semi-classical models can be employed to model the light–matter interactions, such as the Drude model, the hydrodynamic Drude model [], and the nonlocal optical response model []. In this paper, we consider the classical local Drude model which is a fairly simple yet efficient oscillator model for free electrons in metals that performs well when the size of the considered nanostructure increases beyond ≥50 nm [,,,].
For a frequency–domain simulation with the Drude model, we are indeed required to solve the time-harmonic Maxwell’s equations whose closed-form solutions are not available. Thus, various numerical methods, such as the finite element (FE) method, discontinuous Galerkin (DG) method [,,], and hybridizable discontinuous Galerkin (HDG) method, have been developed to solve Maxwell’s equations. Discretization by either an FE method [] or an HDG method [,,] can yield a large sparse discretized linear system. It is still difficult to solve the resulting system of linear algebraic equations by either a direct solver or a standard preconditioned iterative method. On the other hand, the domain decomposition method (DDM) of Schwarz-type is considered to be one of the most efficient solving strategies for Helmholtz-type problems and then has been extended for the time-harmonic Maxwell’s equations in [,,]. Moreover, DDMs should be very suitable for implementing the high-performance parallel computations, because they can decompose the large-scale and complex boundary value problems (BVPs) into a series of small-scale and simple BVPs that can be solved separately. In short, DDMs are usually employed to deal with such large-scale problems []. In [], where the permittivity is a real number, an optimized Schwarz method combined with an HDG method discretization was used for EM problems, and the coupling between the Schwarz method and the HDG method was shown to be natural.
In this paper, the permittivity is a complex number in the Drude model, which adds the complexity to the optimized Schwarz method. We derive an optimized transmission condition and a formulation of the spectral radius of the iteration matrix of the Schwarz method. Furthermore, the parameters for an optimized transmission condition are discussed and tested. The subdomain problems are discretized by an HDG method [] and the resulting linear systems can be solved by a sparse direct solver. The popular Krylov subspace method, namely GMRES [], is considered to accelerate the solution of the interface linear system.
There are five sections in the rest of this paper. First of all, the Drude model and some notations are briefly introduced in Section 2. The discretization of Drude model by an HDG formulation are described in Section 3. In Section 4, we present the formulations of a Schwarz algorithm and study the parameters of an optimized transmission condition in a two subdomains setting. Numerical tests are presented in Section 5 to show the effectiveness of the proposed method. Finally, we draw some concluding remarks in Section 6.
2. Problem and Notations
In this section, we will introduce several concepts and notations which are essential for our present study.
2.1. Maxwell’s Equations with Drude Model
We consider the 2D Maxwell’s equations in the frequency domain with a first-order Silver–Müller absorbing boundary condition (i.e., an artificial absorbing boundary condition) []
where stands for the imaginary unit, refers to the angular frequency of the light wave, , , and represent the relative permittivity, the permittivity of free space, and the permeability of free space, respectively, and denote the electric and magnetic fields, the superscript “” means the incident field, and is the outward unit normal vector. The differential operators in this 2D setting are and . The computational domain is denoted by , and the artificial absorbing boundary is denoted by [].
Note that in the free space. According to the Drude model, accounts for the interactions between the time-varying electric field and the electron gas []. It varies with the angular frequency of the incoming light, i.e.,
where denotes the bulk plasma frequency of the material and is a damping constant. In [], the authors consider the time-domain Maxwell–Drude model with a DG time-domain method.
2.2. Notations
We write here a triangulation of with K denoting an element of discrete mesh. , , and represent the set of all edges of , the set of all the edges of associated with the nanostructure, and the union of all the boundary edges of , respectively. For an element and its adjacent element , is the common edge of and . Let be the traces of on F from the interior of and be the traces of on F from the interior of . and stand for the outward unit normal vectors to and the unit tangent vectors to the boundaries , respectively, so we have and . On the face F, and can be defined as
For each (), refers to the local interpolation order, and () refers to the space of polynomial functions of degree at most p. We define the discontinuous FE spaces , , and a traced FE space as follows
Note that represents the space of a squared integrable functions over , where satisfies , . Note that denotes the boundary. consists of the functions which are not continuous at its ends, but continuous on an edge. For a domain D in , , in and u, v in , where denotes the complex conjugation and stands for the inner product . On an interface F, stands for the inner product . So on the whole domain , we have
3. HDG Formulations
We consider an approximate solution of 2D Maxwell’s equations in the space that satisfies for each element K
Use the Green’s formula for the above equations and replace the boundary terms with the numerical traces , . One can have
A proper choice of numerical trace , affects the correctness and the convergence of the discrete problem (3). According to the ideas in [], we choose a hybrid variable , and set and as follows
where is the local stabilization parameter. Considering the contributions of Equation (3) over all elements, the artificial absorbing boundary condition in the formulation of this conservativity condition and enforcing the continuity of the tangential component of , we have
Using the variable to express and , then we can obtain a global problem with only the unknown
since all the interior faces satisfy the conservativity condition, we have
and inserting into Equation (7), we can obtain
where the superscript and the subscript 1 and 2 denote the values from the two elements coupled by edge. Therefore, the numerical traces can be expressed as
and using a similar method we also can obtain
4. An Optimized Schwarz Method
To introduce the Schwarz method, we divide the domain into and , and note that and are two non-overlapping subdomains. One can easily obtain the case that the domain is divided into many subdomains, because the transmission condition only involves the adjacent subdomains. For the given initial guesses , on the interface between the subdomains, we can compute from with the following Schwarz method [].
The computational domain is displayed in Figure 1, where denotes the interface between the two adjacent subdomains. and denote the artificial absorbing boundary in each subdomain. The transmission condition is defined as , . In the following, we will show that the coupling between the Schwarz method and the HDG method is natural.
Figure 1.
Some parameters on computational domain.
We set to be two elements sharing a common face F between two adjacent subdomains. We denote as the outward unit normal vectors to and impose Dirichlet data on F with , then from Equation (9) we have
and using , so we have
that is
we can reach similar conclusions with
Then one can set
and we have the transmission condition
Remark 1.
Notice when , the transmission condition will be the Silver–Müller condition, where takes the real part of a complex number. We call it the classical transmission condition [].
4.1. Optimized Parameters for Optimized Schwarz Method
In the following, we try to give an analysis of the theoretical spectral radius of the iteration matrix of the Schwarz iteration, which is similar to that in []. Suppose that is the left half plane and is the right half plane . Taking a Fourier transform in the y direction with Equation (1), we obtain
where k is the Fourier coefficient. According to the first equation of Equation (13), replacing with H, we obtain
Because of the radiation condition, the solution of Equation (14) in () is given by
where , are the eigenvalues of the coefficient matrix in Equation (14), , are their corresponding eigenvectors, and the coefficients are uniquely determined by the transmission conditions. Set . Inserting Equations (15) and (16) into the last equation of Equation (11), we have
At the n-th step of the Schwarz algorithm with , the coefficients satisfy the system
then we have the spectral radius in the form
In order to derive an optimized transmission condition, one can set the second-order approximation of the operator , , see Reference [], where denotes the second-order derivative along with the interface and are the parameters to be determined []. With the zeroth order approximation of the operator , i.e., , where are two complex numbers, then
Therefore one can consider the optimization problem [,] as follows to determine the optimized parameters
Unfortunately, it is difficult to solve this optimization problem explicitly because this problem is an open problem. For classic Maxwell’s equations with real permittivity, is often used [,,], where
where and are the highest and lowest possible frequency allowed []. However, this choice does not work well for the Drude model. We present four possible guesses of in Table 1 which lead to different optimized transmission conditions. The term “classical” in Table 1 represents classical transmission condition mentioned in Remark 1. Case3 is the above common choice.
Table 1.
Spectral radius and parameter .
As seen from Table 1, we find that the Schwarz methods with the last two cases do not converge at all. Case1 is theoretically the best choice which can be seen from the spectral radius . In the next sections, numerical results will confirm this theoretical observation.
4.2. HDG Discretization
Let and . Using the optimized transmission conditions on the interface , one can make discrete Equation (11) using the HDG formulation Equation (5) which yields a problem as Equation (21). By finding until convergence, and satisfying for all and , we can obtain the solution
where the quantity is just equal to mentioned in Equation (2). For an element , we rewrite the local solution and hybrid variable like the form in Equation (17) of [], i.e., at this moment, the discretized system is transformed to solve the following problem
where g represents the according degrees of freedom (DOFs) on and i indicates the according DOFs in or . Moreover, this resulting linear system (22) is large, sparse but complex non-Hermitian, so the sparse direct solvers are always very expensive and prohibitive [,]. Thus, in the next section we use the Krylov subspace methods [], which only depend on the information of the coefficient matrix-vector products.
Now we summarize the main steps of solving the Drude model with an optimized Schwarz method discretized by HDG method as follows:
- The model problem is split into some sub-problems with the corresponding subdomains which are discretized using an HDG method;
- Then we solve the resulting system of linear algebraic Equations (6) in each subdomain by a sparse direct solver;
- Finally, for the interface system between the two subdomains, solving the resulting linear systems (22) in the domain is accelerated using a Krylov subspace method.
5. Numerical Tests
In this section, we present two numerical results to show that the optimized Schwarz method is effective. All the numerical simulations are implemented in MATLAB R2012a and performed on a desktop with an AMD A6-6310 APU with AMD Radeon R4 Graphics CPU of 1.80 GHZ and 4.0 GB memory. We only employ the zeroth order approximation of in our tests. We use Gmsh (see https://gmsh.info/ (accessed on 15 September 2022)) to decompose the domains. In the following, “HDG-” denotes the HDG discretization method relying on a nodal Lagrange basis interpolation of order . For the numerical solution, we set the stopping criterion of the iteration process as ; that is, when the relative residual
then we stop the iteration of the Krylov subspace method, namely GMRES (DD-Gmres).
5.1. Cylindrical Nanowire Problem
In this test, we set the radius of the cylinder to 20 nm. The interband transitions are ignored here. The computational domain is a square with . We impose the artificial absorbing boundary condition on the boundary of . In our test, we set []. A typical subdomain decomposition is shown in Figure 2a. Meshes for the cylindrical nanowire problem are shown in Figure 2b.
Figure 2.
Cylindrical nanowire problem. (a) A subdomain decomposition and (b) meshes for the problem.
In Table 2, we divide the domain into 3288 elements with 1645 nodes. In Table 3, we divide the domain into 13,024 elements with 6513 nodes. We chose and since they are closest to the resonance frequency of the material. In fact, the Maxwell’s equations are often considered to be more difficult to solve around the resonance frequency than other frequencies []. The results of different optimized parameters with different subdomains at and are presented in Table 2 and Table 3. The results show that the parameters with case3 do not work well for the Drude model problem. With the same number of subdomains, case1 and case2 converge much faster than the classical Schwarz method, and case3 which is consistent with Table 2 and Table 3. Furthermore, case1 outperforms case2 under the same number of subdomains. For each case, the number of iterations increases with the increasing of number of subdomains.
Table 2.
The number of GMRES iterations for the cylindrical nanowire problem with HDG- (medium size discretization).
Table 3.
The number of GMRES iterations for the cylindrical nanowire problem with HDG- (large-scale discretization).
The domain in the following tests contains 13,024 elements with 6513 nodes. We show how the number of iterations required by the GMRES method varies with the number of subdomains at and in Figure 3. As seen from Figure 3, we can find that the number of iterations for GMRES increases with the number of subdomains. Additionally, case1 increases more slowly than that of the classical Schwarz method. For two subdomains, how the interpolation order p in the HDG formulation affects the convergence at the frequency is shown in Table 4. We observe that the number of iterations increases with the increasing of p for each case. Furthermore, case1 outperforms the classical Schwarz method under the same p. Field distributions at the frequency are presented in Figure 4. Note that in the above tests we set the value of the local stabilization parameter . The local stabilization parameter varies how it affects the number of iterations at ; this is shown in Table 5.
Figure 3.
Number of GMRES iterations vs. number of subdomains. (a) and (b) .
Table 4.
The influence of interpolation order p in the HDG method on the number of GMRES iterations.
Figure 4.
Field distributions of the cylindrical nanowire problem. (a) , (b) , and (c) .
Table 5.
The influence of the local stabilization parameter in the HDG method on the number of DD-gmres iterations.
5.2. Dimer of Cylindrical Nanowires
The computational domain is a rectangle with length and width of 300 nm and 200 nm, respectively. We divide the computational domain into 2226 elements with 1114 nodes. Then we consider the plasmonic dimer structures with small gaps [,]. We use the parameters in []: . The radius of the cylinder is 30 nm. We present a typical subdomain decomposition in Figure 5.
Figure 5.
Dimer of cylindrical nanowires: a typical subdomain decomposition.
Table 6 shows how the number of iterations varies with the number of subdomains at . As we can see from Table 6, case1 converges much faster than the classical Schwarz method with the same number of subdomains. For each case, the number of iterations increases as we increase the number of subdomains; how the number of iterations varies with the number of subdomains is shown in Figure 6. For two subdomains, how the interpolation order p in the HDG formulation affects the convergence is shown in Table 7. As seen from Table 7, we can find that the number of iterations increases as we increase the interpolation order. The field distributions at this particular frequency are displayed in Figure 7.
Table 6.
The number of GMRES iterations for the dimer of cylindrical nanowires with HDG-.
Figure 6.
Number of GMRES iterations vs. number of subdomains.
Table 7.
The influence of interpolation order p in the HDG method on the number of GMRES iterations.
Figure 7.
Field distributions of the dimer of cylindrical nanowires problem. (a) and (b) .
6. Conclusions
In the previous study [], where the permittivity is a real number, the authors have solved the Maxwell’s equations with an optimized Schwarz method discretized by an HDG method, which performs well. In the current paper, the permittivity is a complex number in the Drude model, which adds the complexity to the optimized Schwarz method. We employ an optimized Schwarz method combined with an HDG discretization to solve the local optical response model. The domain is arbitrarily divided into several subdomains. New transmission parameters are proposed and tested. Numerical tests show that the optimized Schwarz method with a proposed parameter works quite well for Drude model problems.
For future work, it is noted that the coefficient matrix of the resulting linear system (22) is complex symmetric, which means that some particular Krylov subspace solvers [,] with suitable preconditioners for such linear systems can be employed to reduce the computational cost. In addition, it will be meaningful to extend the proposed method for solving three-dimensional model problems.
Author Contributions
Methodology, J.-F.C. and L.L.; Software, J.-F.C. and L.L.; Investigation, J.-F.C., X.-M.G., L.L. and P.Z.; Writing—original draft, J.-F.C. and P.Z.; Writing—review & editing, X.-M.G. and L.L.; Visualization, P.Z.; Supervision, X.-M.G. and L.L.; Funding acquisition, X.-M.G. All authors have read and agreed to the published version of the manuscript.
Funding
This research was funded by Sichuan Science and Technology Program, grant number 2022ZYD0006. Guanghua Talent Project of Southwestern University of Finance and Economics, grant number 20170224.
Institutional Review Board Statement
Not applicable.
Data Availability Statement
Data will be made available on request.
Acknowledgments
The authors would like to thank the referees and academic editor for their insightful suggestions and comments that lead to a significant improvement of this article.
Conflicts of Interest
The authors declare no conflict of interest.
References
- Sattler, K.D. Handbook of Nanophysics: Nanoelectronics and Nanophotonics, 1st ed.; CRC Press: Boca Raton, FL, USA, 2010. [Google Scholar]
- Maier, S.A. Plasmonics: Fundamentals and Applications; Springer: New York, NY, USA, 2007. [Google Scholar]
- Li, L.; Lanteri, S.; Mortensen, N.A.; Wubs, M. A hybridizable discontinuous Galerkin method for solving nonlocal optical response models. Comput. Phys. Commun. 2017, 219, 99–107. [Google Scholar] [CrossRef]
- Raza, S.; Bozhevolnyi, S.I.; Wubs, M.; Mortensen, N.A. Nonlocal optical response in metallic nanostructures. J. Phys. Condens. Matter 2015, 27, 183204. [Google Scholar] [CrossRef]
- Mortensen, N.A.; Raza, S.; Wubs, M.; Bozhevolnyi, S.I.; Søndergaard, T. A generalized non-local optical response theory for plasmonic nanostructures. Nature Commun. 2014, 5, 3809. [Google Scholar] [CrossRef]
- Chaumont-Frelet, T.; Lanteri, S.; Vega, P. A posteriori error estimates for finite element discretizations of time-harmonic Maxwell’s equations coupled with a non-local hydrodynamic Drude model. Comput. Methods Appl. Mech. Eng. 2021, 385, 114002. [Google Scholar] [CrossRef]
- Aeschlimann, M.; Brixner, T.; Fischer, A.; Hensen, M.; Huber, B.; Kilbane, D.; Kramer, C.; Pfeiffer, W.; Piecuch, M.; Thielen, P. Determination of local optical response functions of nanostructures with increasing complexity by using single and coupled Lorentzian oscillator models. Appl. Phys. B 2016, 122, 199. [Google Scholar] [CrossRef]
- Sun, B.; Ji, B.; Lang, P.; Qin, Y.; Lin, J. Local near-field optical response of gold nanohole excited by propagating plasmonic excitations. Opt. Commun. 2022, 505, 127498. [Google Scholar] [CrossRef]
- Wen, S.-S.; Tian, M.; Yang, H.; Xie, S.-J.; Wang, X.-Y.; Li, Y.; Liu, J.; Peng, J.-Z.; Deng, K.; Zhao, H.-P.; et al. Effect of spatially nonlocal versus local optical response of a gold nanorod on modification of the spontaneous emission. Chin. Phys. B 2021, 30, 027801. [Google Scholar] [CrossRef]
- Hesthaven, J.S.; Warburton, T. Nodal Discontinuous Galerkin Methods: Algorithms, Analysis, and Applications; Springer Science & Business Media: New York, NY, USA, 2007. [Google Scholar]
- Arnold, D.N.; Brezzi, F.; Cockburn, B.; Marini, L.D. Unified analysis of discontinuous Galerkin methods for elliptic problems. SIAM J. Numer. Anal. 2002, 39, 1749–1779. [Google Scholar] [CrossRef]
- Dolean, V.; Fol, H.; Lanteri, S.; Perrussel, R. Solution of the time-harmonic Maxwell equations using discontinuous Galerkin methods. J. Comput. Appl. Math. 2008, 218, 435–445. [Google Scholar] [CrossRef]
- Monk, P. Finite Elementlement Methods for Maxwell’s Equations, 1st ed.; Clarendon Press: Oxford, UK, 2003. [Google Scholar]
- Cockburn, B.; Gopalakrishnan, J.; Lazarov, R. Unified hybridization of discontinuous Galerkin, mixed, and continuous Galerkin methods for second order elliptic problems. SIAM J. Numer. Anal. 2009, 47, 1319–1365. [Google Scholar] [CrossRef]
- Nguyen, N.C.; Peraire, J.; Cockburn, B. Hybridizable discontinuous Galerkin methods for the time-harmonic Maxwell’s equations. J. Comput. Phys. 2011, 230, 7151–7175. [Google Scholar] [CrossRef]
- Li, L.; Lanteri, S.; Perrussel, R. Numerical investigation of a high order hybridizable discontinuous Galerkin method for 2d time-harmonic Maxwell’s equations. Compel-Int. J. Comp. Math. Electr. Electron. Eng. 2013, 32, 1112–1138. [Google Scholar] [CrossRef]
- He, Y.-X.; Li, L.; Lanteri, S.; Huang, T.-Z. Optimized Schwarz algorithms for solving time-harmonic Maxwell’s equations discretized by a hybridizable discontinuous Galerkin method. Comput. Phys. Commun. 2016, 200, 176–181. [Google Scholar] [CrossRef]
- Bouajaji, M.E.; Dolean, V.; Gander, M.J.; Lanteri, S. Optimized Schwarz methods for the time-harmonic Maxwell equations with damping. SIAM J. Sci. Comput. 2012, 34, 2048–2071. [Google Scholar] [CrossRef]
- Dolean, V.; Lanteri, S.; Perrussel, R. Optimized Schwarz algorithms for solving time-harmonic Maxwell’s equations discretized by a discontinuous Galerkin method. IEEE Trans. Mag. 2008, 44, 954–957. [Google Scholar] [CrossRef]
- Li, L.; Lanteri, S.; Perrussel, R. A hybridizable discontinuous Galerkin method combined to a Schwarz algorithm for the solution of 3d time-harmonic Maxwell’s equation. J. Comput. Phys. 2014, 256, 563–581. [Google Scholar] [CrossRef]
- Saad, Y. Iterative Methods for Sparse Linear Systems, 2nd ed.; SIAM: Philadelphia, PA, USA, 2003. [Google Scholar]
- Kong, J.A. Electromagnetic Wave Theory; Wiley-Interscienc: New York, NY, USA, 1986. [Google Scholar]
- Li, K.; Huang, T.-Z.; Li, L.; Lanteri, S. Simulation of the interaction of light with 3-D metallic nanostructures using a proper orthogonal decomposition-Galerkin reduced-order discontinuous Galerkin time-domain method. Numer. Methods Partial Differ. Equ. 2023, 39, 932–954. [Google Scholar] [CrossRef]
- Dolean, V.; Gander, M.J.; Gerardo-Giorda, L. Optimized Schwarz methods for Maxwell’s equations. SIAM J. Sci. Comput. 2009, 31, 2193–2213. [Google Scholar] [CrossRef]
- Gander, M.J. Optimized Schwarz methods. SIAM J. Numer. Anal. 2006, 44, 699–731. [Google Scholar] [CrossRef]
- Bollhöfer, M.; Schenk, O.; Janalik, R.; Hamm, S.; Gullapalli, K. State-of-the-art sparse direct solvers. In Parallel Algorithms in Computational Science and Engineering; Grama, A., Sameh, A.H., Eds.; Springer International Publishing: Cham, Switzerland, 2020; pp. 3–33. [Google Scholar]
- Gu, X.-M.; Zhao, Y.; Huang, T.-Z.; Zhao, R. Efficient preconditioned iterative linear solvers for 3-D magnetostatic problems using edge elements. Adv. Appl. Math. Mech. 2021, 12, 301–318. [Google Scholar] [CrossRef]
- Hiremath, K.R.; Zschiedrich, L.; Schmidt, F. Numerical solution of nonlocal hydrodynamic drude model for arbitrary shaped nano-plasmonic structures using Nédélec finite elements. J. Comput. Phys. 2012, 231, 5890–5896. [Google Scholar] [CrossRef]
- Toscano, G.; Raza, S.; Jauho, A.-P.; Mortensen, N.A.; Wubs, M. Modified field enhancement and extinction by plasmonic nanowire dimers due to nonlocal response. Opt. Express 2012, 20, 4176–4188. [Google Scholar] [CrossRef] [PubMed]
- Gu, X.-M.; Huang, T.-Z.; Li, L.; Li, H.-B.; Sogabe, T.; Clemens, M. Quasi-minimal residual variants of the COCG and COCR methods for complex symmetric linear systems in electromagnetic simulations. IEEE Trans. Microw. Theory Techn. 2014, 62, 2859–2867. [Google Scholar] [CrossRef]
- Gu, X.-M.; Clemens, M.; Huang, T.-Z.; Li, L. The SCBiCG class of algorithms for complex symmetric linear systems with applications in several electromagnetic model problems. Comput. Phys. Commun. 2015, 191, 52–64. [Google Scholar] [CrossRef]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).