In this paper, we focus on the numerical simulation of light scattering of particle monolayers that consist of non-spherical and inhomogeneous particles. Furthermore, the haze factor is used to characterize the design of such thin films (Preston et al. 2013). It should be noted that experiments show (see Bley et al. 2018) that design motifs corresponding to a low or high haze factor of a particulate monolayer can be transferred to the design of a transparent and conductive thin film. Such films play an important role in many photonic applications, such as OLEDs (Hecht et al. 2011), touch screens (Layani et al. 2014) and solar panels (Atwater and Polman 2010).

In terms of numerical simulation, the challenge is that the haze factor is calculated by evaluating the scattered electromagnetic field on a hemisphere that is larger than the wavelength of the visible light by several orders of magnitude. Hence, a classical numerical scheme based, e.g., on the finite element method (FEM) (Monk 2003), would result in a huge demand on computational resources or may even be out of reach. Alternative numerical approaches, including the T-matrix method (Waterman 1971; Mackowski 1994), are based on fundamental solutions of the time-harmonic Maxwell’s equation. Here, the electromagnetic field is expressed as a series of the so-called vector spherical wave function (VSWF). These so-called spectral methods are very efficient if the particle has a spherical shape and consists of homogeneous material. In contrast, the FEM can handle complex shapes and inhomogeneous material distributions, but—as pointed out above—is strongly limited with respect to the size of the computational domain.

In this article we suggest a computational scheme which allows both, the efficient and accurate evaluation of far field properties as well as the treatment of arbitrarily composed or shaped individual particles. Moreover, the scheme we propose is intended to be used in an optimization framework. As a consequence of the latter, the electromagnetic field has to be computed multiple times for an alternating order, orientation or choice of the individual particles in the particulate film. To keep the computational burden in an acceptable range, it is thus highly desirable to calculate as much information as possible in a precomputation step, giving rise to an offline-online approach. Apart from the T-matrix method, which shares these desired properties as long as the shape and composition of the individual particles is sufficiently simple, a first attempt to handle arbitrarily shaped particles has been made in Cui et al. (2011, 2012). The authors of these articles suggest to use the finite element method to approximate the solution of the vector wave equation inside each particle. The coupling of these equations is then realized by linear operators based on a convolution of Green’s function on the surface of each particle. These operators are used to assemble a boundary integral matrix via specialized boundary elements. This way a flexible scheme is obtained, which allows to simulate optical properties of particulate systems with arbitrarily distributed inhomogeneous particles.

The method we suggest in this paper shows not only some similarities to this approach but also some differences, which are of particular importance in the optimization context. The main differences are in the approximation of the exterior electric fields and in the way, the exterior fields are coupled with the interior fields. The hybrid method in this manuscript uses vector spherical wave functions to describe the electric field scattered by each particle (exterior fields) combined with appropriate finite element approximations of the electric field inside (a spherical neighborhood of) the particles. The coupling is then performed by imposing the tangential continuity of the electric and magnetic fields as a boundary equation. After using a standard Galerkin ansatz, also in the approach suggested in this article a boundary integral matrix is obtained.

Now, the first key feature of our method is that the size of the boundary integral matrix is fully determined by the number of particles in the system multiplied by the number of vector spherical wave functions used to approximate the exterior field. To give the reader an impression, typically less than 100 external degrees of freedom per particle are required for a pretty accurate approximation. Thus, a matrix of less than 10,000 × 10,000 in size is obtained for a system of 100 particles. Having this said, we would like to emphasize that this size of the boundary integral matrix is entirely independent from the level of discretization used for the finite element approximations of the interior fields.

Of course, the finite element discretization still plays a role in the assembling of the boundary element matrix. This is where the second key feature of our method is coming into play, which is the decomposition of the computation into on online and an offline phase. In our article we will show that all finite element computations can be done in the offline phase.

Combining these two key features, the assembly of the boundary integral matrix and the solution of the corresponding system of linear equations in the online phase takes only a fraction of a minute for systems with approximately 100 particles on a standard desktop computer. As our primary purpose is the optimization of particulate films, we consider this property of utmost importance. Although we are suggesting a gradient-based optimization method, typically in the order of 100 iterations are required for the solution of each optimization problem, which means 100 applications of the online part of the computations for one and the same offline phase. Beyond this, the offline properties for each individual particle type can be stored in an offline “catalogue,” enabling their reusage for other parameter studies or optimization problems, combining, e.g., different particle types or using a different number of particles in the overall system.

Also it is important to understand that all this is true not only for the haze factor, which is used as an example in our paper, but also for other properties, which merely depend on the far field.

Finally we would like to stress that the design problems considered in this article are, in general, non convex. As the emphasis in this article is on fast solvers and fast calculation of gradients, we do not consider global optimization approaches, which would guarantee technically optimal solutions. However, in the numerical section of this article, we resort to using random initial conditions to test the dependence on the initial design as well as to probe the design space to find reasonably good designs.

The next section begins with the description of the geometrical setting, governing equations and the mathematical formulation of the haze factor. After discretization of the equations involved, the spectral method and the finite element method are combined to form a hybrid method. Moreover, the efficient assembly and solution of the corresponding hybrid system is discussed. In the third section, the resulting numerical scheme is used to design particulate monolayers. In this context, positions, orientations and material types of the particles are optimized in order to maximize or minimize the haze factor.

Throughout this paper, we denote the imaginary unit by \(\iota \sqrt {-1}\). Furthermore, A is the complex conjugate of the complex-valued variable \(\boldsymbol {A}\in \mathbb {C}^{n\times m}\) and AH = (A)T. For two vectors \(\boldsymbol {u},\boldsymbol {v}\in \mathbb {C}^{n}\), we define the scalar product by \(\boldsymbol {u}\cdot \boldsymbol {v}^{*} = {\sum }_{i=1}^{n} \boldsymbol {u}_{i} \boldsymbol {v}_{i}^{*}\), in contrast to the standard scalar product for complex-valued vectors. For a function \(f\colon X_{1}\times \dotsm \times X_{n} \to Z\), we denote by \(\boldsymbol {D}_{i} f(x_{1},\dotsc ,x_{n})[h]\) the directional derivative with respect to the i th argument in a direction hXi. Unless otherwise stated, the differentials dx and \(\text {d}\boldsymbol {{\mathscr{H}}}^{2}\) indicate the integration over a volume and surface, respectively.

Simulation of the haze factor for particulate films

We consider particulate films composed of non-spherical particles. To simulate the optical properties of such films, we describe a hybrid approach. This approach combines the advantage of the spectral method, in which the exterior field is expressed by superposition of the vector spherical wave functions, with the advantage of the finite element method, which enables complex geometries and variable relative permittivities to be treated. To do this, each particle is embedded in a spherical domain, the so-called ghost particle, in which the shape of the original particle is described by a varying, piecewise constant relative permittivity (see Fig. 1). The introduction of ghost particles in the treatment of non-spherical particles can already be found in Gimbutas and Greengard (2013). There the interior fields are calculated based on scalar and vector potential theory, resulting in integral equations (e.g., Jackson 1999). In an alternative approach, we describe the interior field with finite element shape functions and derive a formulation that is suitable to be used in a gradient-based design optimization framework (see Section 4). In the remainder of this article, all ghost particles are assumed to be non-overlapping with a positive (but possibly small) distance between them.

Fig. 1
figure 1

Particles and their surrounding ghost particles used by the hybrid FEM

It should be noted that the concept of a hybrid formulation in the sense of coupled analytical or potential functions and finite element shape functions is also used in other fields. A fundamental introduction can be found in Zienkiewicz et al. (1977). Applications of this concept can be seen, e.g., in Gilbert et al. (1996) for linear and non-linear elastic structures, in Kufner et al. (2018) for linear Timoshenko beam theory, in Yohannes et al. (2012) for fracture analysis and in Rodri̇guez and Valli (2009) for eddy current problems.

Governing equations and objective functional

We denote a given number of particles in the monolayer by \(N_{p} \in \mathbb {N}\) and define the index set \(\boldsymbol {\mathcal {I}}_{p} = \{1,\dotsc ,N_{p}\}\). Moreover, let \(\varOmega ^{(k)}\subset \mathbb {R}^{3}\) be a spherical domain with center point \(\boldsymbol {\xi }^{(k)}\in \mathbb {R}^{3}\) and radius r(k) > 0 for all \(k\in \boldsymbol {\mathcal {I}}_{p}\). On each Ω(k) a particle is defined through a relative permittivity \(\varepsilon ^{(k)}\colon \varOmega ^{(k)}\to \mathbb {C}\), which is a complex-valued function of space. Furthermore, we assume that the subdomains Ω(k) are disjoint, i.e., Ω(k)Ω(l) = for all 1 ≤ k < lNp. The assembly of particles \(\varOmega =\varOmega ^{(1)}\cup \dotsb \cup \varOmega ^{(N_{p})}\) is embedded in a vacuum and is illuminated by an incident wave \(\boldsymbol {E_{I}}\colon \mathbb {R}^{3} \to \mathbb {C}^{3}\) with the wave number ω > 0. The wave number ω > 0 is related to the vacuum wavelength λ by \(\omega =\frac {2\pi }{\lambda }\). ν(k) denotes the outward normal unit vector of the boundary Γ(k) = Ω(k) of each subdomain Ω(k). With this, we state the governing equations based on the time-harmonic Maxwell’s equations for the exterior scattered electric field \(\boldsymbol {E}_{\text {ext}}\colon \mathbb {R}^{3} \setminus \varOmega \to \mathbb {C}^{3}\) and the interior total electric field \(\boldsymbol {E}_{\text {int}}^{(k)}\colon \varOmega ^{(k)}\to \mathbb {C}^{3}\) for all \(k\in \boldsymbol {\mathcal {I}}_{p}\) as follows:

$$ \begin{array}{@{}rcl@{}} \text{curl}~\text{curl} \boldsymbol{E}_{\text{int}}^{(k)} - \omega^{2} \varepsilon^{(k)} \boldsymbol{E}_{\text{int}}^{(k)} & = & 0, \qquad\qquad\qquad\quad \text{in } \varOmega^{(k)},\ k\!\in\!\mathcal{I}_{p} \end{array} $$
$$ \begin{array}{@{}rcl@{}} \boldsymbol{E}_{\text{int}}^{(k)} \times \boldsymbol{\nu}^{(k)} - \boldsymbol{E}_{\text{ext}} \times \boldsymbol{\nu}^{(k)} & = & \boldsymbol{E_{I}} \times \boldsymbol{\nu}^{(k)}, \qquad\quad\quad\text{on } \varGamma^{(k)},\ k\!\in\!\mathcal{I}_{p} \end{array} $$
$$ \begin{array}{@{}rcl@{}} \text{curl} \boldsymbol{E}_{\text{int}}^{(k)} \times \boldsymbol{\nu}^{(k)} - \text{curl} \boldsymbol{E}_{\text{ext}}\times \boldsymbol{\nu}^{(k)} & = & \text{curl}\boldsymbol{E_{I}} \times \boldsymbol{\nu}^{(k)}, \qquad \text{on } \varGamma^{(k)},\ k\!\in\!\mathcal{I}_{p} \end{array} $$
$$ \begin{array}{@{}rcl@{}} \text{curl} ~\text{curl} \boldsymbol{E}_{\text{ext}} - \omega^{2} \boldsymbol{E}_{\text{ext}} & = & 0, \qquad\qquad\qquad\quad \text{in } \mathbb{R}^{3} \setminus \varOmega. \end{array} $$

In addition, we assume that the following radiation condition (Monk 2003) is satisfied by the exterior field:

$$ \begin{array}{@{}rcl@{}} \lim_{\| \boldsymbol{x}\| \to \infty } (\text{curl} \boldsymbol{E}_{\text{ext}} \times \boldsymbol{x} - \iota \omega \|\boldsymbol{x}\| \boldsymbol{E}_{\text{ext}}) & =0. \end{array} $$

Outside the particle assembly Ω, we define the energy flow ST of the total electric field ET = Eext + EI and the energy flow SI of the incident field EI as

$$ \begin{array}{@{}rcl@{}} \boldsymbol{S}_{T} &= \frac1{2\omega} \text{Re} (\iota \boldsymbol{E}_{T} \times \text{curl}\boldsymbol{E}_{T}^{*}) \end{array} $$


$$ \begin{array}{@{}rcl@{}} \boldsymbol{S}_{I} &= \frac1{2\omega} \text{Re} (\iota \boldsymbol{E}_{I} \times \text{curl}\boldsymbol{E}_{I}^{*}), \end{array} $$

respectively, using the Poynting vector (Mishchenko 2014).

The so-called haze factor describes the fraction of light that is scattered when passing through a transparent material. In this article the haze factor will be computed and optimized for various transparent particulate films. With the explanation above one could say that the haze factor expresses, how clear a particulate film is perceived by the human eye. To give some examples, a film with haze factor close to 1 appears like a frosted glass, as the light is merely transmitted through the film in a diffuse manner. In contrast, window glass transmits light merely specular, resulting in a haze factor close to 0. In applications of transparent films often a very low haze factor is desired. In order to simulate the haze of a transparent film in a computational environment, we use the following setup.

Let \(\mathcal {S}^{+} = \{\boldsymbol {x} \in \mathbb {R}^{3} \mid \|\boldsymbol {x}\| = \boldsymbol {R}_{\text {eval}}, 0 \le \boldsymbol {x} \cdot \boldsymbol {e}_{3}\}\) be the upper hemisphere and \(\mathcal {S}^{\alpha } = \{\boldsymbol {x} \in \mathbb {R}^{3} \mid \|\boldsymbol {x}\| = \boldsymbol {R}_{\text {eval}}, 0 \le \boldsymbol {x} \cdot \boldsymbol {e}_{3} \le \boldsymbol {R}_{\text {eval}}\cos \limits (\alpha )\}\) be the punctured hemisphere with opening angle α, centered at the origin and radius Reval > 0 (see Fig. 2). For the evaluation of the haze factor of the sample Ω, we assume that the sample is placed in a circular aperture with a radius wa in the x1-y2 plane and illuminated from the negative x3-direction. Then, the haze factor H is calculated by the ratio (Preston et al. 2013)

$$ \begin{array}{@{}rcl@{}} H & = \frac{T_{4}}{T_{2}} - \frac{T_{3}}{T_{1}}, \end{array} $$

with two transmissions in presence of the sample,

$$ \begin{array}{@{}rcl@{}} T_{4} & = {\int}_{\mathcal{S}^{\alpha}} \boldsymbol{S}_{T} \cdot \boldsymbol{\nu} \text{d}\boldsymbol{\mathcal{H}}^{2} \quad \text{and} \quad T_{2} & = {\int}_{\mathcal{S}^{+}} \boldsymbol{S}_{T} \cdot \boldsymbol{\nu} \text{d}\boldsymbol{\mathcal{H}}^{2}, \end{array} $$

and two calibration measurements (without sample)

$$ \begin{array}{@{}rcl@{}} T_{3} & = {\int}_{\mathcal{S}^{\alpha}} \boldsymbol{S}_{I} \cdot \boldsymbol{\nu} \text{d}\boldsymbol{\mathcal{H}}^{2} \quad \text{and} \quad T_{1} = {\int}_{\mathcal{S}^{+}} \boldsymbol{S}_{I} \cdot \boldsymbol{\nu} \text{d}\boldsymbol{\mathcal{H}}^{2}. \end{array} $$

These four quantities are evaluated when the haze factor is experimentally determined using an UV/VIS Integrating Sphere (International Organization for Standardization 1999). The intention of (4) is to determine the amount of energy of the total electric field that is diffusely scattered from the sample. Since the incident wave is truncated by the aperture, we assume that the incident field vanishes on the punctured hemisphere for a sufficiently large opening angle α, which implies that STSI on \(\mathcal {S}^{\alpha }\) and T3 ≈ 0. As a consequence of this assumption, we neglect the denominator T2, skip the second term in (4) and thus focus on the energy of the scattered electric field, given by the formula

$$ \begin{array}{@{}rcl@{}} S_{4} = \frac1{2\omega} {\int}_{\mathcal{S}\alpha} \text{Re} (\iota (\boldsymbol{E}_{\text{ext}}) \times \text{curl}(\boldsymbol{E}_{\text{ext}})^{*}) \text{d}\boldsymbol{\mathcal{H}}^{2}. \end{array} $$

We call (5) the numerical haze.

Fig. 2
figure 2

Part of the upper hemisphere used for the evaluation of the haze factor


For \(k\in \boldsymbol {\mathcal {I}}_{p}\), each domain Ω(k) is triangulated with \(N_{t}^{(k)}\) tetrahedral elements and \(N_{v}^{(k)}\) vertices. For ease of notation, Ω(k) henceforth denotes the discretized domain. The interior electric field \(\boldsymbol {E}_{\text {int}}^{(k)}\) is approximated by \(N_{f}^{(k)}\) degrees of freedom with coefficient vector \(\boldsymbol {u}^{(k)} \in \mathbb {C}^{N_{f}^{(k)}}\) and H(curl)-conforming shape functions \(\boldsymbol {\phi }^{(k)}_{i}\colon \varOmega ^{(k)}\to \mathbb {C}^{3}\) for all \(i\in \mathcal {I}_{f}^{(k)}\{1,\dotsc ,N_{f}^{(k)}\}\) (see, e.g., Nėdėlec 1986 or Andersen and Volakis 1998). With this the discretized electric field on Ω(k) is:

$$ \begin{array}{@{}rcl@{}} \boldsymbol{E}_{\text{int}}^{(k)}(\boldsymbol{x}) = \sum\limits_{i\in\mathcal{I}_{f}^{(k)}} (\boldsymbol{u}^{(k)})_{i} \boldsymbol{\phi}^{(k)}_{i}(\boldsymbol{x}). \end{array} $$

In the exterior of Ω, the electric field Eext is approximated by a superposition of truncated series of fundamental solutions of Maxwell’s equation, the so-called vector spherical wave functions (VSWF) (see, e.g., Colton and Kress 2013). In the following we associated such a truncated series with each particle \(k\in \boldsymbol {\mathcal {I}}_{p}\). Furthermore, we denote the order of the truncated series of the k th particle by L(k), which then consists of \(N_{a}^{(k)}= 2(2L^{(k)}+1)\) degrees of freedom with coefficient vector \(\boldsymbol {v}^{(k)}\in \mathbb {C}^{N_{a}}\) and global shape functions \(\boldsymbol {\psi }_{i}^{(k)} \colon \mathbb {R}^{3}\setminus \varOmega ^{(k)}\to \mathbb {C}^{3}\) for all \(i \in \mathcal {I}_{a}^{(k)} =\{1,\dotsc ,N_{a}^{(k)}\}\). Each analytical shape function \(\boldsymbol {\psi }^{(k)}_{i}\) is constructed as a translation of the VSWF

$$ \begin{array}{@{}rcl@{}} \mathcal H_{lm}^{(1)}(\boldsymbol{x}) = h_{l}^{(1)}(\omega\|\boldsymbol{x}\|)\left( \frac{\boldsymbol{x}}{\| \boldsymbol{x}\|} \times \nabla Y_{lm}(\boldsymbol{x})\right) \end{array} $$


$$ \begin{array}{@{}rcl@{}} \mathcal H_{lm}^{(2)}(\boldsymbol{x}) = -\frac1{\omega} \text{curl} \left( \mathcal H_{lm}^{(1)}(\boldsymbol{x})\right), \end{array} $$

by the center point ξ(k). Here, Ylm are the spherical harmonics and \(h_{l}^{(1)}\) are the spherical Hankel functions of the first kind (Colton and Kress 2013). In this way we obtain for all \(i\in \mathcal {I}_{a}^{(k)}\) and 1 ≤ lL(k), − lml the shape functions

$$ \begin{array}{@{}rcl@{}} \boldsymbol{\psi}^{(k)}_{i} (\boldsymbol{x}) = \boldsymbol{\psi}_{i}(\boldsymbol{x}-\boldsymbol{\xi}^{(k)})\\ = \begin{cases} \mathcal H_{lm}^{(1)}(\boldsymbol{x} -\boldsymbol{\xi}^{(k)}) & \text{if } i = m+l-1 + 2l^{2} \\ \mathcal H_{lm}^{(2)}(\boldsymbol{x} -\boldsymbol{\xi}^{(k)}) & \text{if } i = m+3 l + 2l^{2}, \end{cases} \end{array} $$

Using these, the approximate exterior field reads as:

$$ \begin{array}{@{}rcl@{}} \boldsymbol{E}_{\text{ext}}(\boldsymbol{x}) = \sum\limits_{k\in\mathcal{I}_{p}} \sum\limits_{i\in\mathcal{I}_{a}^{(k)}} \boldsymbol{v}_{i}^{(k)} \boldsymbol{\psi}^{(k)}_{i}(\boldsymbol{x}). \end{array} $$

Next, we collect for all \(k\in \boldsymbol {\mathcal {I}}_{p}\) the finite element shape functions \(\boldsymbol {\phi }_{i}^{(k)}\) and the VSWF based shape functions \(\boldsymbol {\psi }_{i}^{(k)}\) in the set \(\mathcal {U}^{(k)}=\{\boldsymbol {\phi }_{i}^{(k)}\mid i\in \mathcal {I}_{f}^{(k)}\}\) and \(\mathcal {V}^{(k)}=\{\boldsymbol {\psi }_{i}^{(k)}\mid i\in \mathcal {I}_{a}^{(k)}\}\), respectively. Note that the vector spherical wave functions \(\mathcal H_{lm}^{(1)}\) and \(\mathcal H_{lm}^{(2)}\) and thus by construction the analytical basis functions \(\boldsymbol {\psi }_{i}^{(k)}\) solve the exterior scattering problem (2d) with radiation condition (3) for all \(i\in \mathcal {I}_{a}^{(k)}\) and \(k\in \boldsymbol {\mathcal {I}}_{p}\) (see Mishchenko 2014).

In the following, we derive from (2a) to (2c), as well as (6) and (7), a linear system of equations which has to be solved to obtain the coefficient vectors u(k) and v(k), \(k\in \boldsymbol {\mathcal {I}}_{p}\). By testing (2a) with some function \(\boldsymbol {\phi }^{(k)} \in \mathcal U^{(k)}\) and using integration by parts we obtain

$$ \begin{array}{@{}rcl@{}} &&{\int}_{\varOmega^{(k)}} \text{curl} \boldsymbol{E}_{\text{int}}^{(k)} \cdot \text{curl} \boldsymbol{\phi}^{(k)} \text{d}\boldsymbol{x}\\ &&- \omega^{2} {\int}_{\varOmega^{(k)}} \boldsymbol{E}_{\text{int}}^{(k)} \cdot \boldsymbol{\phi}^{(k)} \text{d}\boldsymbol{x} \\ &&- {\int}_{\varGamma^{(k)}} (\text{curl} \boldsymbol{E}_{\text{int}}^{(k)} \times \boldsymbol{\nu}) \cdot \boldsymbol{\phi}^{(k)} \text{d}\boldsymbol{\mathcal{H}}^{2} = 0. \end{array} $$

We can now incorporate the interface condition (2c):

$$ \begin{array}{@{}rcl@{}} &&{\int}_{\varOmega^{(k)}} \text{curl} \boldsymbol{E}_{\text{int}}^{(k)} \cdot \text{curl} \boldsymbol{\phi}^{(k)} \text{d}\boldsymbol{x} \\ &&- \omega^{2} {\int}_{\varOmega^{(k)}} \boldsymbol{E}_{\text{int}}^{(k)} \cdot \boldsymbol{\phi}^{(k)} \text{d}\boldsymbol{x} \\ &&- {\int}_{\varGamma^{(k)}} (\text{curl} \boldsymbol{E}_{\text{ext}}^{(k)} \times \boldsymbol{\nu}) \cdot \boldsymbol{\phi}^{(k)} \text{d}\boldsymbol{\mathcal{H}}^{2}\\ &&= {\int}_{\varGamma^{(k)}} (\text{curl} \boldsymbol{E_{I}}^{(k)} \times \boldsymbol{\nu}) \cdot \boldsymbol{\phi}^{(k)} \text{d}\boldsymbol{\mathcal{H}}^{2}. \end{array} $$

The remaining Dirichlet-type interface condition (2b) is transformed to an integral equation by testing on the surface Γ(k) with tangential vector fields given by (ν ×curlψ(k)) ×ν with \(\boldsymbol {\psi }^{(k)}\in \mathcal V^{(k)}\) (and thus also \(\text {curl} \boldsymbol {\psi }^{(k)}\in \mathcal V^{(k)}\)). Thus, (2b) results in

$$ \begin{array}{@{}rcl@{}} {\int}_{\varGamma^{(k)}} (\boldsymbol{E}_{\text{int}}^{(k)} \times \boldsymbol{\nu}) \cdot (\text{curl}\boldsymbol{\psi}^{(k)})^{*} \text{d}\boldsymbol{\mathcal{H}}^{2} \\ - {\int}_{\varGamma^{(k)}} (\boldsymbol{E}_{\text{ext}} \times \boldsymbol{\nu}) \cdot (\text{curl}\boldsymbol{\psi}^{(k)})^{*} \text{d}\boldsymbol{\mathcal{H}}^{2} \\ = {\int}_{\varGamma^{(k)}} (\boldsymbol{E_{I}} \times \boldsymbol{\nu}) \cdot (\text{curl}\boldsymbol{\psi}^{(k)})^{*} \text{d}\boldsymbol{\mathcal{H}}^{2}, \end{array} $$

where we added the normal component of ψ(k) that vanishes again in the product with a tangential field. Now the weak formulation of (2a) reads as

$$ \begin{array}{@{}rcl@{}} {\text{Find } \boldsymbol{E}_{\text{int}}^{(k)},\ k\in\boldsymbol{\mathcal{I}}_{p}, \text{ and } \boldsymbol{E}_{\text{ext}}} \text{s.t.} \\ a(\boldsymbol{\phi}^{(k)},\boldsymbol{E}_{\text{int}}^{(k)};\varOmega^{(k)},\varepsilon^{(k)}) &-& b(\boldsymbol{\phi}^{(k)},\text{curl} \boldsymbol{E}_{\text{ext}};\varGamma^{(k)})\\ &=& b(\boldsymbol{\phi}^{(k)},\text{curl} \boldsymbol{E_{I}};\varGamma^{(k)})\\ b(\text{curl} \boldsymbol{\psi}^{(k)},\boldsymbol{E}_{\text{int}}^{(k)};\varGamma^{(k)}) &-& b(\text{curl}\boldsymbol{\psi}^{(k)},\boldsymbol{E}_{\text{ext}};\varGamma^{(k)})\\ &=& b (\text{curl}\boldsymbol{\psi}^{(k)},\boldsymbol{E_{I}};\varGamma^{(k)})\\ \forall k\in\boldsymbol{\mathcal{I}}_{p}, \boldsymbol{\phi}^{(k)} &\in& \mathcal{U}^{(k)},\ \boldsymbol{\psi}^{(k)} \in \mathcal{V}^{(k)}, \end{array} $$

where we have introduced the bilinear forms

$$ \begin{array}{@{}rcl@{}} a (\boldsymbol{f},\boldsymbol{g};D, \varepsilon^{(D)}) & = {\int}_{D} \text{curl} \boldsymbol{f} \cdot \text{curl}\boldsymbol{g} \text{d}\boldsymbol{x} \\& \qquad - \omega^{2} {\int}_{D} \varepsilon^{(D)} \boldsymbol{f}\cdot \boldsymbol{g}\text{d}\boldsymbol{x} \\ b (\boldsymbol{f},\boldsymbol{g};\partial D) & = {\int}_{\partial D} \boldsymbol{f}^{*} \cdot (\boldsymbol{g} \times \boldsymbol{\nu}) \text{d}\boldsymbol{\mathcal{H}}^{2}, \end{array} $$

for a domain \(D\subset \mathbb {R}^{3}\) with boundary D, functions f,gH(curl;D) and the relative permittivity distribution \(\varepsilon ^{(D)}\colon D\to \mathbb {C}\).

Next, by inserting (6) and (7) into the bilinear form of the weak formulation (8), we obtain the following system of linear equations:

$$ \begin{array}{@{}rcl@{}} &&\begin{pmatrix} \begin{bmatrix} \boldsymbol{A}^{(1)} 0 \\ {\smash{\ddots}} \\ 0 \boldsymbol{A}^{(N_{p})} \end{bmatrix} & \begin{bmatrix} \boldsymbol{C}^{(1,1)} & {\cdots} & \boldsymbol{C}^{(1,N_{p})} \\{\smash{\vdots}} & & {\smash{\vdots}} \\ \boldsymbol{C}^{(N_{p},1)} & {\cdots} & \boldsymbol{C}^{(N_{p},N_{p})} \end{bmatrix} \\ \begin{bmatrix} \boldsymbol{B}^{(1)} && 0 \\ & {\smash{\ddots}} \\ 0 && \boldsymbol{B}^{(N_{p})} \end{bmatrix} & \begin{bmatrix} \boldsymbol{D}^{(1,1)} & {\cdots} & \boldsymbol{D}^{(1,N_{p})} \\ \smash{\vdots} & & {\smash{\vdots}} \\ \boldsymbol{D}^{(N_{p},1)} & {\cdots} & \boldsymbol{D}^{(N_{p},N_{p})} \end{bmatrix} \end{pmatrix} \begin{pmatrix} \begin{bmatrix} \boldsymbol{u}^{(1)} \\ {\smash{\vdots}} \\ \boldsymbol{u}^{(N_{p})} \end{bmatrix} \\ \begin{bmatrix} \boldsymbol{v}^{(1)} \\ {\smash{\vdots}} \\ \boldsymbol{v}^{(N_{p})} \end{bmatrix} \end{pmatrix}\\ &&\quad= \begin{pmatrix} \begin{bmatrix} \boldsymbol{F}^{(1)} \\ {\smash{\vdots}} \\ \boldsymbol{F}^{(N_{p})} \end{bmatrix} \\ \begin{bmatrix} \boldsymbol{G}^{(1)} \\ {\smash{\vdots}} \\ \boldsymbol{G}^{(N_{p})} \end{bmatrix} \end{pmatrix} \end{array} $$

Here, the block matrices \( \boldsymbol {A}^{(k)}\in \mathbb {C}^{N_{f}^{(k)}\times N_{f}^{(k)}}\), \( \boldsymbol {B}^{(k)}\in \mathbb {C}^{N_{a}^{(k)}\times N_{f}^{(k)}}\), \( \boldsymbol {C}^{(k,l)}\in \mathbb {C}^{N_{f}^{(k)}\times N_{a}^{(l)}}\) and \( \boldsymbol {D}^{(k,l)}\in \mathbb {C}^{N_{a}^{(k)}\times N_{a}^{(l)}}\) are defined for \(k,l\in \boldsymbol {\mathcal {I}}_{p}\) as

$$ \begin{array}{@{}rcl@{}} (\boldsymbol{A}^{(k)})_{ij} & = a (\boldsymbol{\phi}^{(k)}_{i},\boldsymbol{\phi}^{(k)}_{j};\varOmega^{(k)},\varepsilon^{(k)}) & \forall i,j\in\mathcal{I}_{f}^{(k)} \\ (\boldsymbol{B}^{(k)})_{pj} & = b(\text{curl} \boldsymbol{\psi}^{(k)}_{p}, \boldsymbol{\phi}^{(k)}_{j};\varGamma^{(k)}) & \forall p \in\mathcal{I}_{a}^{(k)},j\in\mathcal{I}_{f}^{(k)} \\ (\boldsymbol{C}^{(k,l)})_{iq} & = - b(\boldsymbol{\phi}^{(k)}_{i},\text{curl} \boldsymbol{\psi}^{(l)}_{q};\varGamma^{(k)}) & \forall i\in\mathcal{I}_{f}^{(k)}, q \in\mathcal{I}_{a}^{(l)}\\ (\boldsymbol{D}^{(k,l)})_{pq} & = - b(\text{curl} \boldsymbol{\psi}^{(k)}_{p},\boldsymbol{\psi}^{(l)}_{q};\varGamma^{(k)}) & \forall p \in\mathcal{I}_{a}^{(k)},q\in\mathcal{I}_{a}^{(l)}. \end{array} $$

Similarly, the right-hand side vectors \(\boldsymbol {F}^{(k)}\in \mathbb {C}^{N_{f}^{(k)}}\) and \(\boldsymbol {G}^{(k)}\in \mathbb {C}^{N_{a}^{(k)}}\) are given by

$$ \begin{array}{@{}rcl@{}} (\boldsymbol{F}^{(k)})_{i} & = b(\boldsymbol{\phi}^{(k)}_{i},\text{curl} \boldsymbol{E_{I}};\varGamma^{(k)}) & \forall i\in\mathcal{I}_{f}^{(k)} \\ (\boldsymbol{G}^{(k)})_{p} & = b(\text{curl}\boldsymbol{\psi}^{(k)}_{p}, \boldsymbol{E_{I}} ;\varGamma^{(k)}) & \forall p\in\mathcal{I}_{a}^{(k)}. \end{array} $$

Finally, combining the corresponding blocks to the matrices A, B, C and D and vectors u, v, F and G, respectively, we acquire the linear system of equations

$$ \begin{array}{@{}rcl@{}} K_{f} \begin{pmatrix} \boldsymbol{u} \\ \boldsymbol{v} \end{pmatrix} = \begin{pmatrix} \boldsymbol{A} & \boldsymbol{C} \\ \boldsymbol{B} & \boldsymbol{D} \end{pmatrix}\begin{pmatrix} \boldsymbol{u} \\\boldsymbol{v} \end{pmatrix} = \begin{pmatrix} \boldsymbol{F} \\\boldsymbol{G} \end{pmatrix}, \end{array} $$

where we have the short hand Kf for the full system matrix. To compute the numerical haze (5), which depends only on the exterior field Eext, we can use the Schur complement trick to reduce (10) to Kv = L, with the reduced system matrix K and right-hand side vector L defined as

$$ \begin{array}{@{}rcl@{}} \boldsymbol{K} = \boldsymbol{D} - \boldsymbol{B} \boldsymbol{A}^{-1} \boldsymbol{C} \qquad\qquad \boldsymbol{L} = \boldsymbol{G} - \boldsymbol{B} \boldsymbol{A}^{-1} \boldsymbol{F}. \end{array} $$

Based on the solution of this, the numerical haze (5) is calculated by the algebraic equation

$$ \begin{array}{@{}rcl@{}} S_{4} = \text{Re} (\boldsymbol{v}^{H} \boldsymbol{H} \boldsymbol{v} ) = \frac{1}{2} \boldsymbol{v}^{H}(\boldsymbol{H} + \boldsymbol{H}^{H}) \boldsymbol{v}, \end{array} $$

with the matrix H constructed in the same way as D from block matrices \( \boldsymbol {H}^{(k,l)}\in \mathbb {C}^{N_{a}^{(k)}\times N_{a}^{(l)}}\) for \(k,l\in \boldsymbol {\mathcal {I}}_{p}\). These are given entry-wise by

$$ \begin{array}{@{}rcl@{}} (H^{(k,l)})_{pq} = -\frac\iota{2\omega} b(\boldsymbol{\psi}_{p}^{(k)},\text{curl} \boldsymbol{\psi}_{q}^{(l)};\mathcal{S}^{\alpha}) \\ \forall p \in\mathcal{I}_{a}^{(k)}, q\in\mathcal{I}_{a}^{(l)}. \end{array} $$

Parametrization via rigid body transformations

Bearing in mind that the size of the reduced linear system for the VSWF coefficients v is given as \({\sum }_{k\in \mathcal {I}_{p}} N_{a}^{(k)}\) and the number of degrees of freedom \(N_{a}^{(k)}\) for the approximation of the exterior field is small compared to the finite element degrees of freedom, the solution of the linear reduced system does not impose a major challenge for particle systems of reasonable size, even on a standard computer. However, looking at (11), the assembly of the reduced system matrix and right-hand side still requires with A− 1C and A− 1F the solution of the finite element system for multiple right-hand sides. Taking into account a desired number of 100-1000 particles and, in particular, the large number of finite element degrees of freedom per particle required for a sufficiently fine resolution of the interior field, the assembly would still pose a computational challenge, even in a state-of-the-art high performance computing environment.

This is our motivation to further reduce the computational complexity by several orders of magnitude. As we will see, this will be possible without a significant loss of accuracy compared to a direct solution of (9). The reduction will be based on a consistent exploitation of the structure of the VSWF. To achieve this, all matrices and vectors in (11) will be expressed by quantities that depend either solely on the relative permittivity, or solely on the position and orientation of the individual particles.

To ensure this is possible, we assume that each particle is the result of a rigid transformation, i.e., rotation and translation, of a reference domain \(\hat \varOmega ^{(k)}\) centered at the origin with boundary \(\hat \varGamma ^{(k)}\). Moreover, since Ω(k) is polyhedral after discretization, the reference domain is also assumed to be polyhedral and triangulated. In anticipation of the optimization tasks formulated later in this paper, it is interesting to note that the rigid transformation assumption is not restrictive as long as the arrangement or choice of given particles, rather than the shape or topology of the individual particles, is subject to optimization.

To put this into practice, we introduce orientations \(\boldsymbol {\varTheta } = (\boldsymbol {\varTheta }^{(1)},\dotsc ,\boldsymbol {\varTheta }^{(N_{p})})\) parametrized by rotation matrices Θ(k)SO(3) for all \(k\in \boldsymbol {\mathcal {I}}_{p}\), as well as spatial positions \(\boldsymbol {\xi }=(\boldsymbol {\xi }^{(1)},\dotsc ,\boldsymbol {\xi }^{(N_{p})})\in \mathbb {R}^{3\times N_{p}}\) to each particle Ω(k). Then, a rigid body transformation \(\mathcal {T}^{(k)}\) based on the translation vector ξ(k) and the rotation Θ(k)SO(3) is defined as

$$ \mathcal{T}^{(k)}\colon\hat\varOmega^{(k)} \to \varOmega^{(k)}, \hat{\boldsymbol{x}} \mapsto \boldsymbol{\varTheta}^{(k)} \hat{\boldsymbol{x}} + \boldsymbol{\xi}^{(k)}. $$

Based on this, the subdomain Ω(k) is given as

$$ \varOmega^{(k)} = \boldsymbol{\mathcal{T}}^{(k)}(\hat\varOmega^{(k)}) = \{ \boldsymbol{\varTheta}^{(k)} \hat{\boldsymbol{x}} + \boldsymbol{\xi}^{(k)} \mid \hat{\boldsymbol{x}} \in \hat\varOmega^{(k)}\}. $$

Moreover, the relative permittivity ε(k) on Ω(k) is related to the reference relative permittivity \(\hat \varepsilon ^{(k)}:\hat \varOmega ^{(k)}\to \mathbb {C}\) via \(\varepsilon ^{(k)}\circ \boldsymbol {T}^{(k)} = \hat \varepsilon ^{(k)}\) for all \(\hat {\boldsymbol {x}}\in \hat \varOmega ^{(k)}\) and \(k\in \boldsymbol {\mathcal {I}}_{p}\). To illustrate this, Fig. 3 depicts an assembly of particles, which are identical in shape and material properties, and thus can be transformed from the same reference domain \(\hat \varOmega \).

Fig. 3
figure 3

Transformation of a common reference domain \(\hat \varOmega \) to individual particles Ω(k) by rigid body transformation T(k) to form an assembly of three particles

At this point, the block matrices and vectors contributing to the reduced system matrix and right-hand side (11) have the following explicit dependency on reference domain \(\hat \varOmega ^{(k)}\) and its boundary \(\hat \varGamma ^{(k)}\), the reference relative permittivity \(\hat \varepsilon ^{(k)}\), the position ξ(k) and the orientation Θ(k):

$$ \begin{array}{@{}rcl@{}} \begin{array}{ll} \boldsymbol{A}^{(k)}\longleftrightarrow \boldsymbol{A}^{(k)}(\hat\varOmega^{(k)},\hat\varepsilon^{(k)}) &\forall k\in \boldsymbol{\mathcal{I}}_{p}, \\ \boldsymbol{B}^{(k)} \longleftrightarrow \boldsymbol{B}^{(k)}(\hat\varGamma^{(k)},\boldsymbol{\varTheta}^{(k)}) &\forall k\in \boldsymbol{\mathcal{I}}_{p}, \\ \boldsymbol{C}^{(k,l)} \longleftrightarrow \boldsymbol{C}^{(k,l)}(\hat\varGamma^{(k)},\boldsymbol{\xi}^{(k)},\boldsymbol{\xi}^{(l)},\boldsymbol{\varTheta}^{(k)}) &\forall k,l\in \boldsymbol{\mathcal{I}}_{p},\\ \boldsymbol{D}^{(k,l)} \longleftrightarrow \boldsymbol{D}^{(k,l)}(\hat\varGamma^{(k)},\boldsymbol{\xi}^{(k)},\boldsymbol{\xi}^{(l)},\boldsymbol{\varTheta}^{(k)}) &\forall k,l\in \boldsymbol{\mathcal{I}}_{p}, \end{array} \end{array} $$
$$ \begin{array}{@{}rcl@{}} \begin{array}{ll} \boldsymbol{F}^{(k)} \longleftrightarrow \boldsymbol{F}^{(k)} (\hat\varGamma^{(k)},\boldsymbol{\xi}^{(k)},\boldsymbol{\varTheta}^{(k)}) & \forall k\in \boldsymbol{\mathcal{I}}_{p}, \\ \boldsymbol{G}^{(k)} \longleftrightarrow \boldsymbol{G}^{(k)} (\hat\varGamma^{(k)},\boldsymbol{\xi}^{(k)},\boldsymbol{\varTheta}^{(k)}) & \forall k\in \boldsymbol{\mathcal{I}}_{p}. \end{array} \end{array} $$

We see that the block matrix A(k) depends on the relative permittivities of the particles and depends on neither the orientation nor the translation; this will be explained a little later. By construction, all the other expressions do not explicitly depend on the material properties. The fact that B(k) does not depend on translations is explained by the observation that only one particle is involved and by its independence of the incident field. As C(k,l) and D(k,l) both depend on two particles k and l, an explicit dependency on their relative translation (and thus on the translations ξ(k),ξ(l)) of both particles occurs. The expressions F(k) and G(k) again involve only one particle, but here the translational dependence is explained through the influence of the incidence field. Finally, all objects but A(k) depend on the orientation Θ(k). We note that this dependency is solely due to the polyhedral shape of the ghost particles, and thus a consequence of discretization.

In the following, we investigate each of the block matrices and vectors above in detail. For an efficient assembly of the system matrix K and right-hand side vector L, we try to express all matrices and vectors above in terms of objects depending either solely on their spatial positions, on their orientation or on the finite element discretization including their relative permittivity. It should be noted that this will not be possible without introducing further approximations leading to additional geometrical and truncation errors. We will discuss the nature of these later in this article, but already note here that the large gain in computational complexity and the fact that these errors can be controlled by an appropriate choice of discretization parameters provides a good justification for this strategy.

We start with the matrices \(\boldsymbol {A}^{(k)}(\hat \varOmega ^{(k)},\hat \varepsilon ^{(k)})\). At first glance, it is not apparent that these matrices do not dependent on translations and rotations. However, this can be explained as follows. Using H(curl)-conforming transformations (see Monk 2003) we obtain the following relations for the finite element shape functions \(\hat {\boldsymbol {\phi }}_{i}^{(k)}\) associated with the reference domain and the shape function \(\boldsymbol {\phi }_{i}^{(k)}\):

$$ \begin{array}{@{}rcl@{}} &&\boldsymbol{\phi}^{(k)} \circ \mathcal{T}^{(k)} = \boldsymbol{\varTheta}^{(k)} \hat{\boldsymbol{\phi}}^{(k)} \quad \text{and} \\ &&\text{curl} \boldsymbol{\phi}^{(k)} \circ \mathcal{T}^{(k)} = \boldsymbol{\varTheta}^{(k)} \widehat{\text{curl}} \hat{\boldsymbol{\phi}}^{(k)}. \end{array} $$

Here, we used the fact that \(\det \boldsymbol {\varTheta }^{(k)}=1\) and the orthogonality property , since Θ(k)SO(3). Then, using integration by substitution we observe:

$$ \begin{array}{@{}rcl@{}} (\boldsymbol{A}^{(k)})_{ij} &=& {\int}_{\varOmega^{(k)}} \text{curl} \boldsymbol{\phi}^{(k)}_{i} \cdot \text{curl}\boldsymbol{\phi}^{(k)}_{j} \text{d}\boldsymbol{x} \\ \qquad &-& \omega^{2} {\int}_{\varOmega^{(k)}} \varepsilon^{(k)}\boldsymbol{\phi}^{(k)}_{i} \cdot \boldsymbol{\phi}^{(k)}_{j} \text{d}\boldsymbol{x} \\ &=& {\int}_{\hat\varOmega^{(k)}} \text{curl} \boldsymbol{\phi}^{(k)}_{i}\circ \boldsymbol{T}^{(k)} \cdot \text{curl}\boldsymbol{\phi}^{(k)}_{j} \circ \mathcal{T}^{(k)} \hat{\boldsymbol{x}} \\ \qquad &-& \omega^{2} {\int}_{\hat\varOmega^{(k)}} (\varepsilon^{(k)} \boldsymbol{\phi}^{(k)}_{i} \cdot \boldsymbol{\phi}^{(k)}_{j}) \circ \boldsymbol{T}^{(k)} \hat{\boldsymbol{x}}\\ &=& {\int}_{\hat\varOmega^{(k)}} \widehat{\text{curl}} \hat{\boldsymbol{\phi}}^{(k)}_{i} \cdot \widehat{\text{curl}}\hat{\boldsymbol{\phi}}^{(k)}_{j} \hat{\boldsymbol{x}}\\ \qquad &-& \omega^{2} {\int}_{\hat\varOmega^{(k)}} \hat\varepsilon^{(k)} \hat{\boldsymbol{\phi}}^{(k)}_{i} \cdot \hat{\boldsymbol{\phi}}^{(k)}_{j} \hat{\boldsymbol{x}} \\ &=& a(\hat{\boldsymbol{\phi}}^{(k)}_{i},\hat{\boldsymbol{\phi}}^{(k)}_{j};\hat\varOmega^{(k)},\hat\varepsilon^{(k)}). \end{array} $$

Thus, the block matrices A(k) are indeed independent of the rigid body transformations. The major advantage of this is that the block matrices A(k) can be computed for different particle types (defined through their relative permittivity distribution) before the actual translations and rotations are chosen. This is particularly interesting in an optimization framework in which the rigid body transformations serve as optimization variables (see, e.g., Section 4). In this case all finite element calculations can be performed in an offline phase, which is carried out prior to optimization. Furthermore, if the domains Ω(k) are transformed from a common reference domain \(\hat \varOmega \) with different rigid body transformations T(k) as in Fig. 3, then the block matrices A(k) are identical and must be treated only once. Of course, this argument holds, if only a small number of particles types is used to construct a particulate film (see again Section 4.3).

Next, we investigate the matrices \(\boldsymbol {B}^{(k)}(\hat \varGamma ^{(k)}, \boldsymbol {\varTheta }^{(k)})\). We approximate these by a rectangular matrix denoted by \(\hat {\boldsymbol {B}}^{(k)}(\hat \varGamma ^{(k)})\in \mathbb {C}^{N_{f}^{(k)}\times N_{a}^{(k)}}\) and a square matrix denoted by \(\boldsymbol {R}^{(k)}(\boldsymbol {\varTheta }^{(k)}) \in \mathbb {C}^{N_{a}^{(k)}\times N_{a}^{(k)}}\). The matrix \(\hat {\boldsymbol {B}}^{(k)}(\hat \varGamma ^{(k)})\) has the entries

$$ \begin{array}{@{}rcl@{}} (\hat{\boldsymbol{B}}^{(k)})_{jp} & = b(\hat{\boldsymbol{\phi}}^{(k)}_{j} , \text{curl}\boldsymbol{\psi}_{q}; \hat\varGamma^{(k)})\forall j\in \mathcal{I}_{f}^{(k)}, q\in\mathcal{I}_{a}^{(k)}, \end{array} $$

with the finite element shape function on the reference domain and VSWF ψq, \(q\in \mathcal {I}_{a}^{(k)}\), centered at the origin. The latter are independent of the relevant particle and thus denoted without superscript. Note that by construction \(\hat {\boldsymbol {B}}^{(k)}\) is independent of the orientation of the k th particle. Next, let \(S_{r^{(k)}}\) be a sphere with radius r(k) centered at the origin, then the p th column of the matrix R(k) is obtained by solving the projection problem

$$ \begin{array}{@{}rcl@{}} \boldsymbol{R}^{(k)}_{\cdot,p} = \arg\!\!\!\!\min_{\boldsymbol{r}\in \mathbb{C}^{N_{a}^{(k)}}} \left\| \sum\limits_{q\in \mathcal{I}_{a}^{(k)}} (\boldsymbol{r})_{q}\text{curl} \boldsymbol{\psi}_{q} \times \boldsymbol{\nu}\right.\\ - \left.(\boldsymbol{\varTheta}^{(k)})^{T} \text{curl} \boldsymbol{\psi}_{p} (\boldsymbol{\varTheta}^{(k)}\boldsymbol{x}) \times \boldsymbol{\nu}\vphantom{\sum\limits_{q\in \mathcal{I}_{a}^{(k)}}}\right\|^{2}_{S_{r^{(k)}}}, \end{array} $$

with the outer normal unit vector ν of \(S_{r^{(k)}}\). Obviously, R(k)(Θ(k)) does not depend on the finite element mesh rather on the orientation Θ(k). In general, the matrix R(k) can be written as the solution of a linear system of equations for \(p\in \mathcal {I}_{a}^{(k)}\) and all \(q' \in \mathcal {I}_{a}^{(k)}\)

$$ \begin{array}{@{}rcl@{}} \sum\limits_{q\in \mathcal{I}_{a}^{(k)}} b(\boldsymbol{\psi}_{q^{\prime}},\text{curl} \boldsymbol{\psi}_{q};S_{r^{(k)}}) \boldsymbol{R}^{(k,l)}_{q,p} =\\ b(\boldsymbol{\psi}_{q^{\prime}},(\boldsymbol{\varTheta}^{(k)})^{T} \text{curl} \boldsymbol{\psi}_{p} (\boldsymbol{\varTheta}^{(k)}\bullet) ;S_{r^{(k)}}). \end{array} $$

Here, we have utilized the properties of the VSWF on the surface of a sphere to proceed to the bilinear form. Moreover the expression \(\text {curl} \boldsymbol {\psi }_{p} (\boldsymbol {\varTheta }^{(k)}\bullet )\) denotes the composition of the function curlψp with a function xΘ(k)x. We will use the same notation later in the paper to denote rigid transformations in a compact form.

To get deeper insight into the structure of \(\boldsymbol {R}^{(k)}_{\cdot ,p}\) we can write the rotation matrix Θ in terms of the three Euler angles α, β and γ such that

$$ \boldsymbol{\varTheta} = \boldsymbol{\varTheta}_{z}(\gamma) \boldsymbol{\varTheta}_{x}(\beta) \boldsymbol{\varTheta}_{z}(\alpha). $$

Here, Θz and Θx denote rotations around the z-axis and the x-axis, respectively. Furthermore, a rotation around the x-axis by an angle β can be carried out by a rotation by an angle of \(\frac \pi 2\) around the y-axis, followed by a rotation around the z-axis by β, i.e.,

$$ \boldsymbol{\varTheta}_{x}(\beta) = \boldsymbol{\varTheta}_{y}(\tfrac\pi2)^{T} \boldsymbol{\varTheta}_{z}(\beta) \boldsymbol{\varTheta}_{y}(\tfrac\pi2). $$

Thus, we obtain

$$ \boldsymbol{\varTheta} = \boldsymbol{\varTheta}_{z}(\gamma) \boldsymbol{\varTheta}_{y}(\tfrac\pi2)^{T} \boldsymbol{\varTheta}_{z}(\beta) \boldsymbol{\varTheta}_{y}(\tfrac\pi2) \boldsymbol{\varTheta}_{z}(\alpha). $$

By repeatedly projecting the basis functions on a rotated coordinate frame using (15), we obtain the R(k) in terms of the Euler angles α(k), β(k) and γ(k) of the k th particle by

$$ \boldsymbol{R}^{(k)} = \boldsymbol{R}_{z}(\alpha^{(k)}) \boldsymbol{R}_{y}(\tfrac\pi2) \boldsymbol{R}_{z}(\beta^{(k)}) \boldsymbol{R}_{y}(\tfrac\pi2)^{H} \boldsymbol{R}_{z}(\gamma^{(k)}), $$

where Rz maps \(\delta \mapsto \boldsymbol {R}^{(k)}(\boldsymbol {\varTheta }_{z}(\delta ))\) and Ry maps \(\delta \mapsto \boldsymbol {R}^{(k)}(\boldsymbol {\varTheta }_{y}(\delta ))\). We shall later see that rotations around the z-axis result in a diagonal matrix \( \boldsymbol {R}^{(k)}_{z}\). Due to the structure of the VSWF, the entry (Ry)pq resulting from a rotation around the y-axis is only nonzero if p and q correspond to the same type of VSWF, i.e., \({\mathscr{H}}^{(1)}_{lm}\) or \({\mathscr{H}}^{(2)}_{lm}\), with the same l and m. In ?[ ()Proof of Thm. 2.9]Colton2013, this is attributed to the fact that an orthogonal matrix transforms a homogeneous harmonic polynomial of order l, here the associated Legendre polynomial, into a linear combination of again homogeneous harmonic polynomials of order l. Consequently, the projection onto a rotated coordinate frame is exact, assuming exact integration. Furthermore, R(k) is independent of the choice of r(k), which can be proven by inserting the definition of the VSWF into (15) and straightforward calculus.

Returning to the definition of the matrix B(k), we use the transformation of the shape functions \(\hat {\boldsymbol {\phi }}_{i}^{(k)}\) and on the reference boundary \(\hat \varGamma ^{(k)}\) obtain the expression:

$$ \begin{array}{@{}rcl@{}} (\boldsymbol{B}^{(k)})_{pj} &=& b(\text{curl} \boldsymbol{\psi}^{(k)}_{p},\boldsymbol{\phi}^{(k)}_{j}; \varGamma^{(k)})\\ &=& b((\boldsymbol{\varTheta}^{(k)} )^{T} \text{curl}\boldsymbol{\psi}_{p} (\boldsymbol{\varTheta}^{(k)}\bullet) , \boldsymbol{\phi}^{(k)}_{j}; \hat \varGamma^{(k)}). \end{array} $$

Swapping the arguments leads to

$$ \begin{array}{@{}rcl@{}} &&(\boldsymbol{B}^{(k)})_{pj}\\ &&= - b(\hat{\boldsymbol{\phi}}^{(k)}_{j}, (\boldsymbol{\varTheta}^{(k)})^{T}\text{curl} \boldsymbol{\psi}_{p} (\boldsymbol{\varTheta}^{(k)}\bullet); \hat\varGamma^{(k)})^{*}. \end{array} $$

Now, with the matrix R(k), we express the VSWF in the rotated coordinate frame in terms of the VSWF in the reference coordinate frame and obtain

$$ \begin{array}{@{}rcl@{}} (\boldsymbol{\varTheta}^{(k)})^{T}\text{curl} \boldsymbol{\psi}_{p} (\boldsymbol{\varTheta}^{(k)}\bullet)\times \hat{\boldsymbol{\nu}} \\ \approx \sum\limits_{q\in \mathcal{I}_{a}^{(k)}} (\boldsymbol{R}^{(k)})_{qp} \text{curl} \boldsymbol{\psi}_{q} (\bullet) \times \hat{\boldsymbol{\nu}}, \end{array} $$

where \(\hat {\boldsymbol {\nu }}\) is the outer normal vector of \(\hat \varGamma ^{(k)}\). Here, we accept a geometrical error depending on the approximation of the polyhedral surface \(\hat \varGamma ^{(k)}\) by the sphere \(S_{r^{(k)}}\). Inserting (21) into (20), the block matrix B(k) is approximated by the product of \(\hat {\boldsymbol {B}}^{(k)}\) and R(k) such that

$$ \begin{array}{@{}rcl@{}} \boldsymbol{B}^{(k)}(\hat\varGamma^{(k)},\boldsymbol{\varTheta}^{(k)}) \approx - \left( \hat{\boldsymbol{B}}^{(k)}(\hat\varGamma^{(k)}) \boldsymbol{R}^{(k)}(\boldsymbol{\varTheta}^{(k)})\right)^{H}. \end{array} $$

Note that the accuracy of this approximation depends on the error introduced by the application of a quadrature rule used for the minimization problem (15) and the geometrical error of the finite element boundary.

Next, the block matrix C(k,l) is approximated in such a way that the dependency on the finite element mesh, the orientation and the position of the k th particle together with the position of the l th particle is separated. First of all, we define for all \(q\in \mathcal {I}_{a}^{(k)}\) the function \(\text {curl}\boldsymbol {\psi }_{q}^{(k,l)} \colon \boldsymbol {x} \mapsto \text {curl} \boldsymbol {\psi }_{q} (\boldsymbol {x} - (\boldsymbol {\xi }^{(l)} -\boldsymbol {\xi }^{(k)}))\) and introduce the rectangular matrix \( T^{(k,l)}(\boldsymbol {\xi }^{(k)} -\boldsymbol {\xi }^{(l)}) \in \mathbb {C}^{N_{a}^{(k)}\times N_{a}^{(l)}}\). In this, the q th column of T(k,l) is the solution of the minimization problem

$$ \begin{array}{@{}rcl@{}} T^{(k,l)}_{\cdot,q} \arg\!\!\!\min_{\boldsymbol{t} \in \mathbb{C}^{\mathcal{I}_{a}^{(k)}} }~ \left\| \sum\limits_{r\in \mathcal{I}_{a}^{(k)}} (\boldsymbol{t})_{r} \text{curl} \boldsymbol{\psi}_{p}\times \boldsymbol{\nu} \right.\\ -\left.\text{curl}\boldsymbol{\psi}_{q}^{(k,l)} \times \boldsymbol{\nu} \vphantom{\sum\limits_{r\in \mathcal{I}_{a}^{(k)}}}\right\|^{2}_{S_{r^{(k)}}}. \end{array} $$

An interpretation of this is as follows: we try to express the shifted VSWF ψ(k.l) by a linear combination of VSWF centered at the origin with coefficients t. This is a common problem used in VSWF based methods. For instance, in Gumerov and Duraiswami (2007), the translation of the VSWF is performed by a series expansion, which has to be truncated for numerical application. The formulation as a minimization problem poses the translation as a projection on a given finite-dimensional space. Similarly to the computation of R(k), a solution of this problem can be computed by solving a linear system of equations for \(q\in \mathcal {I}_{a}^{(l)}\):

$$ \begin{array}{@{}rcl@{}} &&\sum\limits_{r\in \mathcal{I}_{a}^{(k)}} b(\boldsymbol{\psi}_{r^{\prime}},\text{curl} \boldsymbol{\psi}_{r};S_{r^{(k)}}) T^{(k,l)}_{r,q} \\ &&= b(\boldsymbol{\psi}_{r^{\prime}},\text{curl}\boldsymbol{\psi}_{q}^{(k,l)} ;S_{r^{(k)}}) \quad \forall r^{\prime} \in \mathcal{I}_{a}^{(k)} . \end{array} $$

Again, we have utilized the properties of the VSWF on the surface of a sphere to proceed to the bilinear form.

Using the matrix T(k,l), the analytical shape functions shifted by the vector ξ(l)ξ(k) can now be expressed approximately in terms of the shape function located at the origin as follows:

$$ (\boldsymbol{C}^{(k,l)})_{iq} \approx - \sum\limits_{r\in \mathcal{I}_{a}^{(k)}} \boldsymbol{T}^{(k,l)}_{r,q} b(\boldsymbol{\phi}^{(k)}_{i}, \text{curl}\boldsymbol{\psi}_{r},\varGamma^{(k)}). $$

Here, we again accept the geometric error between the boundary Γ(k) and the sphere \(S_{r^{(k)}}\). In a second step, we use the matrices \(\hat {\boldsymbol {B}}^{(k)}\) and R(k) to apply the transformation to the reference domain and obtain

$$ \begin{array}{@{}rcl@{}} &&\boldsymbol{C}^{(k,l)}(\hat\varGamma^{(k)},\boldsymbol{\xi}^{(k)},\boldsymbol{\xi}^{(l)},\boldsymbol{\varTheta}^{(k)}) \\ &&\approx - \hat{\boldsymbol{B}}^{(k)}(\hat\varGamma^{(k)}) \boldsymbol{R}^{(k)}(\boldsymbol{\varTheta}^{(k)}) T^{(k,l)}(\boldsymbol{\xi}^{(l)}-\boldsymbol{\xi}^{(k)}) . \end{array} $$

The accuracy of the approximation depends on the approximation error of \(S_{r^{(k)}}\) by the geometrical approximation and the truncation error of the analytical series expansion. It is possible to increase the accuracy by projecting the rotated basis function to a larger space, i.e., using a rectangular matrix \( T^{(k)}\in \mathbb {C}^{\tilde {N}^{(k)}_{a}\times N_{a}^{(k)}}\) with \(\tilde {N}^{(k)}_{a}>N_{a}^{(k)}\). Of course, in this case, the matrices R(k) and \(\hat {\boldsymbol {B}}^{(k)}\) must be appropriately extended.

So far, we have derived an approximated version of BA− 1C using the approximations (22) and (25), which is entry-wise defined as

$$ \begin{array}{@{}rcl@{}} &&\boldsymbol{B}^{(k)} (\boldsymbol{A}^{(k)})^{-1} \boldsymbol{C}^{(k,l)} \\ &&\approx (\boldsymbol{R}^{(k)})^{H}(\hat{\boldsymbol{B}}^{(k)})^{H} (\boldsymbol{A}^{(k)})^{-1} \hat{\boldsymbol{B}}^{(k)} T^{(k,l)}. \end{array} $$

We observe that by construction in this expression only the matrix

$$ \boldsymbol{N}^{(k)}(\hat\varepsilon^{(k)}) (\hat{\boldsymbol{B}}^{(k)})^{H} (\boldsymbol{A}^{(k)})^{-1} \hat{\boldsymbol{B}}^{(k)} \in \mathbb{C}^{N_{a}^{(k)}\times N_{a}^{(k)}} $$

depends on the finite element discretization and the relative permittivity of the k th particle. Thus, all block matrices N(k) can be precomputed for each particle type and then translated and rotated to their final positions by carrying out the relatively cheap translation and rotation operations. The latter are both given as matrix multiplications in a relatively low dimensional space, as the size of the matrices is defined by the number of DOFs of the analytical shape functions.

To complete the assembling process of the system matrix K, the block matrix D(k,l) is approximated by a matrix \(\hat {\boldsymbol {D}}^{(k,l)} \in \mathbb {C}^{N_{a}^{(k)}\times N_{a}^{(l)}}\). This matrix only depends on the positions of the k th and l th particles, which is specified as follows:

$$ \begin{array}{@{}rcl@{}} &&(\hat{\boldsymbol{D}}^{(k,l)})_{pq} \\ &&= - b(\text{curl}\boldsymbol{\psi}_{p},\boldsymbol{\psi}_{q} (\bullet - (\boldsymbol{\xi}^{(l)} -\boldsymbol{\xi}^{(k)}));S_{r^{(k)}}) \\ &&\forall p\in\mathcal{I}_{a}^{(k)} ,q\in\mathcal{I}_{a}^{(l)} . \end{array} $$

Now, the approximation of D(k,l) is

$$ \boldsymbol{D}^{(k,l)}(\hat\varGamma^{(k)},\boldsymbol{\xi}^{(k)},\boldsymbol{\xi}^{(l)},\boldsymbol{\varTheta}^{(k)}) \approx \hat{\boldsymbol{D}}^{(k,l)}(\boldsymbol{\xi}^{(l)}-\boldsymbol{\xi}^{(k)}). $$

Similar to the matrix \(\hat {C}^{(k,l)}\), we define the complex-valued vector \(\hat {\boldsymbol {F}}^{(k)}(\boldsymbol {\xi }^{(k)})\in \mathbb {C}^{N_{a}^{(k)}}\) as the projection of curlEI on the sphere \(S_{r^{(k)}}\) in terms of the VSWF:

$$ \begin{array}{@{}rcl@{}} \hat{\boldsymbol{F}}^{(k)} = - \arg\!\!\!\!\min_{\boldsymbol{f} \in \mathbb{C}^{\mathcal{I}_{a}^{(k)}} }~ \left\| {\sum}_{r\in \mathcal{I}_{a}^{(k)}} (\boldsymbol{f})_{r} \text{curl} \boldsymbol{\psi}_{r}\times\boldsymbol{\nu} \right.\\ - \left.\left( \text{curl} \boldsymbol{E_{I}}(\bullet + \boldsymbol{\xi}^{(k)})\right) \times \boldsymbol{\nu} \vphantom{{\sum}_{r\in \mathcal{I}_{a}^{(k)}}}\right\|^{2}_{S_{r^{(k)}}}. \end{array} $$

The entries of \(\hat {\boldsymbol {F}}\) can be computed as a solution of the following linear system of equations:

$$ \begin{array}{@{}rcl@{}} &&\sum\limits_{r\in \mathcal{I}_{a}^{(k)}} b(\boldsymbol{\psi}_{r^{\prime}},\text{curl} \boldsymbol{\psi}_{r};S_{r^{(k)}}) \hat{\boldsymbol{F}}^{(k)}_{r} \\ &&= -b(\boldsymbol{\psi}_{r^{\prime}},\text{curl} \boldsymbol{E_{I}}(\bullet + \boldsymbol{\xi}^{(k)});S_{r^{(k)}}) \\ &&\forall r^{\prime}\in\mathcal{I}_{a}^{(k)}. \end{array} $$

With this and the transformation to the reference domain, we finally get the approximation:

$$ \begin{array}{@{}rcl@{}} &&\boldsymbol{F}^{(k)} (\hat \varGamma^{(k)},\boldsymbol{\xi}^{(k)},\boldsymbol{\varTheta}^{(k)}) \\ &&\approx -\hat{\boldsymbol{B}}^{(k)}(\hat\varGamma^{(k)}) \boldsymbol{R}^{(k)}(\boldsymbol{\varTheta}^{(k)}) \hat{\boldsymbol{F}}^{(k)}(\boldsymbol{\xi}^{(k)}). \end{array} $$

In addition to the geometric error, we introduce here a truncation error due to the finite-dimensional projection.

Similarly, the right-hand side vector G(k) is approximated using a vector \(\hat {\boldsymbol {G}}^{(k)}(\boldsymbol {\xi }^{(k)})\in \mathbb {C}^{N_{a}^{(k)}}\) depending on the incident field EI shifted by the spatial position ξ(k) of the k th particle:

$$ \begin{array}{@{}rcl@{}} \hat{\boldsymbol{G}}^{(k)}(\boldsymbol{\xi}^{(k)})_{p} = b(\text{curl}\boldsymbol{\psi}_{p},\boldsymbol{E_{I}}(\bullet + \boldsymbol{\xi}^{(k)});S_{r^{(k)}}) \\ \forall p\in\mathcal{I}_{a}^{(k)}. \end{array} $$

We obtain the approximation

$$ \boldsymbol{G}^{(k)} (\hat \varGamma^{(k)},\boldsymbol{\xi}^{(k)},\boldsymbol{\varTheta}^{(k)}) \approx \hat{\boldsymbol{G}}^{(k)}(\boldsymbol{\xi}^{(k)}), $$

where the approximation error is of the same nature as for \(\hat {\boldsymbol {F}}\).

Before we summarize our calculations, we note that the linear systems of equations required for the computation of R, T and \(\hat {\boldsymbol {F}}\) possess a unique solution, provided that ωr(k) is neither a root of ψq nor of curlψq.

To conclude, the system matrix K is approximated by matrices depending either on the particle positions \(\boldsymbol {\xi }=(\boldsymbol {\xi }^{(1)},\dotsc ,\boldsymbol {\xi }^{(N_{p})})\), on the particle orientations \(\boldsymbol {\varTheta }=(\boldsymbol {\varTheta }^{(1)},\dotsc ,\boldsymbol {\varTheta }^{(N_{p})})\) or on the relative permittivities \(\boldsymbol {\varepsilon }=(\varepsilon ^{(1)},\dotsc ,\varepsilon ^{(N_{p})})\) as follows:

$$ \begin{array}{@{}rcl@{}} &&\boldsymbol{K} (\boldsymbol{\xi},\boldsymbol{\varTheta},\boldsymbol{\varepsilon}) \approx \hat{\boldsymbol{K}} (\boldsymbol{\xi},\boldsymbol{\varTheta},\boldsymbol{\varepsilon}) \\ && \hat{\boldsymbol{D}}(\boldsymbol{\xi}) - R(\boldsymbol{\varTheta})^{H} \hat{\boldsymbol{N}}(\boldsymbol{\varepsilon}) \boldsymbol{R}(\boldsymbol{\varTheta}) \boldsymbol{T}(\boldsymbol{\xi}). \end{array} $$

Here, \(\hat {\boldsymbol {D}}\) and T are composed like D, and R and \(\hat {\boldsymbol {N}}\) are diagonal block matrices like B. Analogously, the right-hand side vector L is approximated by the formula

$$ \begin{array}{@{}rcl@{}} &&\boldsymbol{L} (\boldsymbol{\xi},\boldsymbol{\varTheta},\boldsymbol{\varepsilon}) \approx \hat{\boldsymbol{L}} (\boldsymbol{\xi},\boldsymbol{\varTheta},\boldsymbol{\varepsilon}) \\ && \hat{\boldsymbol{G}}(\boldsymbol{\xi}) - \boldsymbol{R}(\boldsymbol{\varTheta})^{H} \hat{\boldsymbol{N}}(\boldsymbol{\varepsilon}) \boldsymbol{R}(\boldsymbol{\varTheta}) \hat{\boldsymbol{F}}(\boldsymbol{\xi}). \end{array} $$

Up to this point we have successfully simplified the assembly of the reduced system (11). Next we discuss the remaining complexity assuming that the system defined by (29) and (30) is to be solved multiple times, due to changes in the arrangement of the particulate film. In this case the most expensive operations turn out to be the assembly of the right-hand side matrix of system (23), required for the computation of the block matrices \( T^{(k,l)}, \ k,l \in \boldsymbol {\mathcal {I}}_{p}\), as well as the assembly of \(\hat {\boldsymbol {D}}^{(k,l)}, \ k, l\in \boldsymbol {\mathcal {I}}_{p}\) (see (26)). Generally, all these matrices are fully populated. Moreover, each (k,l)-block depends explicitly on the relative position of particle k and l through the bilinear form b. Thus, the corresponding forms have to be re-evaluated by numerical integration, whenever the relative position ξ(l)ξ(k) of the corresponding pair of particles changes. In the following, we suggest a strategy by which the major part of this task can again be performed in a pre-processing step. We describe our strategy or the assembly of the matrices \(\hat {\boldsymbol {D}}^{(k,l)}, \ k, l\in \boldsymbol {\mathcal {I}}_{p}\) only, as the same idea can be applied to the computations of \( T^{(k,l)}, \ k,l \in \boldsymbol {\mathcal {I}}_{p}\).

To do this, we exploit the assumption that all particles are placed in a monolayer, defined by the x1-x2-plane. As a consequence, the x3-component of the particle positions can w. l. o. g. be set to zero, i.e., (ξ(k))3 = 0. Accordingly, we define the planar spatial position \(\boldsymbol {\Upsilon }^{(k)} =((\boldsymbol {\xi }^{(k)})_{1},(\boldsymbol {\xi }^{(k)})_{2})\) for the k th particle. Now, we can—without loss of accuracy—split the matrices \(\hat {\boldsymbol {D}}^{(k,l)}\) (and analogously T(k,l)) into products of matrices depending either on the polar angle or the length of the vector Υ(l)Υ(k). To demonstrate this, we define for all \(k\in \mathcal {I}_{a}^{(k)}\) the diagonal matrix function

$$ \boldsymbol{M}^{(k)}: \mathbb{R} \to \mathbb{C}^{N_{a}^{(k)}\times N_{a}^{(k)}}, $$


$$ (\boldsymbol{M}^{(k)}(a))_{pp} = \exp(\iota \boldsymbol{m}^{(k)}_{p} a) \quad \forall p\in \mathcal{I}_{a}^{(k)}, $$

and \(a\in \mathbb {R}\). Here the index vector has the entries

$$ \boldsymbol{m}^{(k)}_{p}= \sum\limits_{l=1}^{L^{(k)}} \sum\limits_{m=-l}^{l}\begin{cases} m & \text{if } \begin{aligned}[t]p & = m+l-1 + 2l^{2}\ \vee \\p &= m+3 l + 2l^{2} \end{aligned}\\ 0 & \text{otherwise.} \end{cases} $$

Furthermore, we introduce the matrix function

$$ \hat{\boldsymbol{D}}^{(k,l)}_{\rho}: \mathbb{R} \to \mathbb{C}^{N_{a}^{(k)}\times N_{a}^{(l)}}, $$

with \(b \in \mathbb {R}\), defined entry-wise by

$$ \begin{array}{@{}rcl@{}} \left( \hat{\boldsymbol{D}}_{\rho}^{(k,l)}(b))\right)_{pq} = b(\boldsymbol{\psi}_{p},\text{curl}\boldsymbol{\psi}_{q} (\bullet - b\boldsymbol{e}_{1}),S_{r^{(k)}}) \\ \forall p\in\mathcal{I}_{a}^{(k)} ,q\in\mathcal{I}_{a}^{(l)}, \end{array} $$

where e1 = (1,0,0)T and \(b\in \mathbb {R}\). Using these definitions, setting s = Υ(l)Υ(k) and denoting the polar angle of s by \(\arg (\boldsymbol {s})\), it can be shown using straightforward calculus that

$$ \begin{array}{@{}rcl@{}} \hat{\boldsymbol{D}}^{(k,l)}(\boldsymbol{\xi}^{(l)}-\boldsymbol{\xi}^{(k)}) \\ = \boldsymbol{M}^{(k)} (\arg(\boldsymbol{s}))^{H} \hat{\boldsymbol{D}}_{\rho}^{(k,l)}(\|\boldsymbol{s}\|) M^{(l)}(\arg(\boldsymbol{s})) \\ \hat{\boldsymbol{D}}_{\square}^{(k,l)}(\boldsymbol{s}). \end{array} $$

We have explicitly noted the dependency of \(\hat {\boldsymbol {D}}^{(k,l)}\)on the particle positions by adding the argument ξ(l)ξ(k) and the left-hand side, and we have introduced the abbreviation \(\hat {\boldsymbol {D}}_{\square }^{(k,l)}\) for the right-hand side. In the latter, the square symbol is used to emphasize the planar assumption.

Based on this, we can now again split the calculation into a pre-processing step (independent of the particular particle positions) and a position dependent step. For this, we approximate the matrix function \(\hat {\boldsymbol {D}}_{\rho }^{(k,l)}\) which depends only on a scalar variable by an interpolation formula. More precisely, we pre-evaluate \(\hat {\boldsymbol {D}}_{\rho }^{(k,l)}\) on a one-dimensional grid using Ng appropriately chosen grid points \(0 < \rho _{1} < \rho _{2} \dotsc ,\rho _{N_{g}}\). The values of \(\hat {\boldsymbol {D}}_{\rho }^{(k,l)}\) on the grid are denoted by \(\hat {\boldsymbol {D}}_{\rho }^{(k,l)}(\rho _{1}),\dotsc ,\hat {\boldsymbol {D}}_{\rho }^{(k,l)}(\rho _{N_{g}})\). Then, by \(\varPi \hat {\boldsymbol {D}}_{\rho }^{(k,l)}\) we denote a corresponding piecewise cubic Hermite interpolant (Fritsch and Carlson 1980), which is defined such that

$$ \varPi \hat{\boldsymbol{D}}_{\rho}^{(k,l)}(\rho_{g}) = \hat{\boldsymbol{D}}_{\rho}^{(k,l)}(\rho_{g}) \qquad \forall 1\le g\le N_{g}, $$

and finally obtain the formula

$$ \begin{array}{@{}rcl@{}} &&\hat{\boldsymbol{D}}_{\square}^{(k,l)}(\boldsymbol{s}) \\ &&\approx \boldsymbol{M}^{(k)} (\arg(\boldsymbol{s}))^{H} \varPi \hat{\boldsymbol{D}}_{\rho}^{(k,l)}(\|\boldsymbol{s}\|) M^{(l)}(\arg(\boldsymbol{s})) . \end{array} $$

The latter can be efficiently evaluated for each planar configuration defined by the relative distance s = Υ(l)Υ(k). Although we have introduced an interpolation error, this strategy ultimately enables the efficient assembly of all matrices \(\hat {\boldsymbol {D}}^{(k,l)}\) in a two-stage numerical scheme. In the first stage (offline stage), evaluation takes place at grid points and in the second (online stage), the evaluation is made according to the formula (34). As the evaluation of the grid points is done once and forever, a small interpolation error does not impose a major challenge.

We finally observe that the interpolation basis can be reused when geometric arrangements are studied in multiple instances of the simulations or in the framework of optimization tasks. As indicated at the beginning of this paragraph, the same holds true for the computation of the matrices T(k,l) if we introduce matrices \( \boldsymbol {T}_{\rho }^{(k,l)}\) and apply the interpolation scheme to those. Furthermore, it is interesting to note that the piecewise cubic Hermite interpolation formulas also enables the computation of derivatives of \(\hat {\boldsymbol {D}}^{(k,l)}\) and T(k,l) with respect to the spatial positions of particles. This is essential for the gradient-based optimization approach considered in Section 4.

Complexity analysis

To compare the hybrid FEM (defined by (11)) and the two-stage hybrid FEM ((29) and (30) including the interpolation formula (34)), we estimate the computational complexity of the assembling process for the system matrices K and \(\hat {\boldsymbol {K}}\). For simplicity, we consider a particle system with Np1 ghost particles with identical radius r. Furthermore, the interior field and the exterior electric field of each ghost particle are expressed by f finite element degrees of freedom and a VSWF, respectively. We assume that the relative permittivity of each particle is related to one of t particle types by rigid body transformation and that the spatial positions give rise to \(d\le \frac {p(p+1)}{2}\) relative distances. Moreover, we assume that the Hermite interpolation is based on g grid points.

Table 1 lists the computational complexities for individual steps of the assembly process for both numerical schemes investigated. The first column (VSWF) shows the numerical cost of tasks, which involve the evaluation of VSWF. In column FEM, the computational complexity for tasks related to the pure finite element analysis are listed. Lastly, the complexity of tasks, which mainly involve numerical linear algebra operations, are collected in column FLOP.

Table 1 Estimation of computational complexity to assemble the system matrices K and \(\hat {\boldsymbol {K}}\) of the hybrid FEM and the two-stage hybrid FEM

Starting with the hybrid FEM, the assembly of the matrices D, B and C requires the evaluation of the VSWF for each nonzero entry of the respective matrix, which results in the complexities O(p2a2), O(pfa) and O(p2fa). Note that the matrix B is block diagonal and thus the assembly is linear with respect to the number of particles. Exploiting the block diagonal structure of the matrix A, it is observed that the finite element matrices can be assembled and factorized independently for each particle, leading to the complexities O(pf) and O(pf3). The assembly of K is completed by the multiplication of A− 1 with C, which is executed through the solution of a linear system with multiple right-hand side (exploiting the block structure of A− 1), and the multiplication with B.

In contrast to this, the two-stage hybrid FEM requires more intermediate steps to obtain the system matrix \(\hat {\boldsymbol {K}}\). However, most of the steps are carried out in the offline stage. First, we prepare the Hermite interpolants \(\varPi \hat {\boldsymbol {D}}_{\rho }\) and πTρ, whereby the assembly of the matrices \(\hat {\boldsymbol {D}}_{\rho }\) and Tρ for each grid point of the interpolation requires O(ga2) operations involving VSWF. The generation of the interpolation functions itself requires O(ga2) arithmetic operations. In comparison to the hybrid FEM, the assembly of \(\hat {\boldsymbol {B}}\), A, factorization of A and the computation of the matrix \(\hat {\boldsymbol {N}}\) must be performed for each particle type only. Furthermore, the complexity of each of these tasks is linear with respect to the number of particle types due to the block diagonal structure of \(\hat {\boldsymbol {B}}\) and A. This explains the corresponding complexity estimates. The offline stage is concluded by the assembly of the matrix \( \boldsymbol {R}_{y}(\frac \pi 2)\), which realizes the rotation by \(\frac \pi 2\) around the y-axis and is performed only once for all particles types.

During the online stage, the interpolation functions \(\varPi \hat {\boldsymbol {D}}_{\rho }\) and πTρ are evaluated at the unique relative distances of the particle and the matrices \(\hat {\boldsymbol {D}}\) and T are computed by taking the polar angle between two particles into account. Like \(\hat {\boldsymbol {N}}\), the matrix R has a block diagonal structure, resulting in a linear complexity with respect to the number of particles (O(pa3)). After multiplication with T, we obtain the system matrix \(\hat {\boldsymbol {K}}\) of the two-stage hybrid FEM.

We see that if the number of particles types t is small, the offline stage of the two-stage hybrid FEM is already more efficient than the original hybrid FEM. Moreover, it is worth noting that the number of particles p never occurs in combination with the potentially very large number of finite element degrees of freedom f. Finally, bearing in mind that the number of VSWF a is typically much smaller than f, it is clear that the online stage of the two-stage hybrid FEM is likely to outperform the original hybrid FEM scheme by several orders of magnitude. Consequently we use the two-stage hybrid FEM for all optimization tasks presented in the next section.

Tests and comparisons

In this section, we provide two simple test scenarios to check the implementation of the hybrid FEM and two-stage hybrid FEM discussed in the manuscript.

Assuming a normalized x-polarized plane incident wave \(\boldsymbol {E}_{I}(x,y,z) = \sqrt {2}\boldsymbol {e}_{x} \exp (\iota \omega z)\) in vacuum with wave number ω, the scattering cross section (Mishchenko 2002) is calculated on a sphere BR with radius R via the expression:

$$ \begin{array}{@{}rcl@{}} C_{\text{sca}} & = \frac12 {\int}_{B_{R}} \text{Re} \left (\boldsymbol{E}_{S} \times \boldsymbol{H}_{S}^{*}\right)\cdot \boldsymbol{\nu} \text{d}\boldsymbol{\mathcal{H}}^{2}. \end{array} $$

Here, ES denotes the electric scattered field and \(\boldsymbol {H}_{S} = -\frac \iota \omega \text {curl} \boldsymbol {E}_{S}\) the magnetic scattered field.

Single spherical particle

The first test compares scattering cross sections of a single spherical particle with various radii r, relative permittivity εr = (1.2)2 and wave length λ based on

  • A direct solution of the hybrid system (9),

  • The two-stage hybrid formulation elaborated in Section 2.3,

  • An analytical solution via Mie theory (Mie 1908).

The mesh for the FEM approximations in the first two approaches is generated by projecting a regular mesh defined on a cube surface to a sphere. Based on this, a triangulation using TETGEN (Si 2015) is computed. Using various levels of refinement for the surface mesh, a hierarchy of meshes ranging from coarse to fine are generated. As the volume of the approximated sphere generated in this way, does in general not coincide with the volume of the perfect sphere, the radius of the perfect sphere used in the Mie calculation is adapted to match the volume of the meshed sphere.

Two spherical particles

In the second test scenario, the scattering cross sections of an assembly of two spherical particle is calculated with the hybrid FEM and two-stage hybrid FEM. Furthermore, the scattering cross section is calculated with the software ADDA (Yurkin and Hoekstra 2011) based on the Discrete Dipole Approximation (DDA). We use particle radii of 0.05λ and 0.1λ and a distances of 0.5λ. The relative permittivity (for both particles) is the same as in the first scenario, i.e., εr = (1.2)2. Although DDA is also an approximative method, it is known to generate very accurate results for refractive indices close to 1 and sufficiently small particles, which allow for the discretization by a large number of dipoles. Therefore the DDA results can serve as reference solutions. In DDA we use a dipole spacing of 0.02r and the so-called filtered coupled dipole polarizability.

Besides the finite element mesh used to approximate the interior fields, also the number of analytical basis functions, controlled by the index L (compare Section 2.2), is varied for both scenarios. The results are depicted in Fig. 4. In Fig. 4a, the relative errors between the scattering cross sections of a single particle resulting from the corresponding numerical schemes (solid: hybrid FEM, dashed: two-stage hybrid FEM) and an online Mie scattering calculator (Prahl 2018) for r = 0.6λ are shown. We can see the impact of the choice of L on the convergence of relative error over different mesh sizes ranging from coarse to fine. It is observed that there is almost no difference in the error curves for L = 6 and L = 8, which indicates that already for L = 6 a high accuracy approximation is obtained provided the finite element approximation for the interior fields is good enough. In a similar manner, the results for the two particle scenario with a chosen radius of r = 0.1λ for both spheres is displayed in Fig. 4b. As outlined before, in this case, the reference solutions are calculated using the DDA software package ADDA. Due to the small particle radius (necessary for a high precision of the DDA reference solution) already an approximation order of L = 2 generates good results. Nevertheless, we choose L = 8 for the remaining experiments presented in this section.

Fig. 4
figure 4

Relative errors for the scattering cross sections obtained from the direct hybrid FEM approach (hybrid) and the two-stage hybrid FEM approach (two-stage) are shown. The reference solutions are computed based on Mie theory in the single particle example (a) and by the DDA method in the two particle case (b). The size of the spherical particles is chosen as r = 0.6λ (a) and as r = 0.1λ (b). The errors are computed for different orders of approximation L for the exterior field L and different mesh resolutions used to approximate the interior fields

In Fig. 5a, further error curves for the single particle scenario resulting are shown. Again errors are computed for both numerical schemes (solid: hybrid FEM, dashed: two-stage hybrid FEM) and the reference solution is provided by the online Mie scattering calculator (Prahl 2018). This time instead of the parameter L, the radius of the sphere is varied. The corresponding results for the two particle scenario are shown in Fig. 5b.

Fig. 5
figure 5

Relative errors of the scattering cross sections obtained from the hybrid FEM approach (hybrid) and the two-stage hybrid FEM approach (two-stage) are shown for different particle radii and varying resolutions of the finite element mesh used to approximate the interior fields. On a, the result for the single particle scenario (comparison against Mie results) and on b the results for the two particle scenario (comparison against DDA results) are displayed. The order of approximation for the exterior field is chosen as L = 8 in all computations

Both these tests demonstrate how the error convergences if the finite element mesh used to approximate the interior fields is refined. We can see that the errors are typically lower for smaller particles. We can also see that the error is consistently larger in the two-stage hybrid FEM approach compared to the error obtained using the direct solution of (9). This is a consequence of a number of simplifications as, e.g., the decoupling of the interior and exterior field or the geometrical error outlined in Section 2.3. Nevertheless, also in the case of the two-stage hybrid FEM approach the error goes consistently down, when we refine the finite element resolution and use an approximation order of L ≥ 6 for the exterior field. It is finally noted that the precision which is obtained for the two-stage hybrid FEM approach (approximately two correct digits) is sufficient for the optimization examples presented in this article. On the other hand, thanks to the two-stage scheme, a further refinement of the finite element approximation would be possible. As the online phase is independent of the finite element resolution, this would not effect the computational efficiency reported for the optimization results presented in Section 4.

Design optimization of particulate thin films

Spatial position of particles

The first optimization problem addresses the minimization of the numerical haze (12) by changing the spatial position of spherical particles in the x1-x2-plane, i.e., a particle monolayer. We assume that the particle centers \(\boldsymbol {\xi }^{(k)} = ({\Upsilon }^{(k)}_{1},{\Upsilon }^{(k)}_{2},0)\in \mathbb {R}^{3}\) for all \(k\in \boldsymbol {\mathcal {I}}_{p}\) are parametrized by the design variables \(\boldsymbol {\Upsilon }=(\boldsymbol {\Upsilon }^{(1)},\dotsc ,\boldsymbol {\Upsilon }^{(N_{p})})\), where \(\boldsymbol {\Upsilon }^{(k)}=({\Upsilon }^{(k)}_{1},{\Upsilon }^{(k)}_{2})\in \mathbb {R}^{2}\) for all \(k\in \boldsymbol {\mathcal {I}}_{p}\). Furthermore, we assume that all particles have the same constant relative permittivity distribution, i.e., \(\varepsilon ^{(k)}(\boldsymbol {x}) = \varepsilon \in \mathbb {C}\) for all xΩ(k) and identical radius \(r^{(k)}=r\in \mathbb {R}_{>0}\) for all \(k\in \boldsymbol {\mathcal {I}}_{p}\).

To express the dependency of all involved matrices and vectors on the design variables, we define the expressions , \(\tilde {H}(\boldsymbol {\Upsilon }) H(\boldsymbol {\xi })\) and \(\tilde {\boldsymbol {L}}(\boldsymbol {\Upsilon })\) . With these, we state the optimization problem

$$ \begin{array}{@{}rcl@{}} \min_{\boldsymbol{\Upsilon}}J(\boldsymbol{v} , \boldsymbol{\Upsilon}) \frac{1}{2} \boldsymbol{v}^{H} (\tilde{\boldsymbol{H}}(\boldsymbol{\Upsilon}) + \tilde{\boldsymbol{H}}(\boldsymbol{\Upsilon})^{H})\boldsymbol{v} \\ \begin{array}{ll} \text{s.t.}\quad\|\boldsymbol{\Upsilon}^{(k)} - \boldsymbol{\Upsilon}^{(l)}\|_{2} > r & \forall k,l \in \boldsymbol{\mathcal{I}}_{p},k\neq l \\ \|\boldsymbol{\Upsilon}^{(k)} \|_{\infty} \le C_{\infty} & \forall k \in \boldsymbol{\mathcal{I}}_{p} \\ \tilde{\boldsymbol{K}}(\boldsymbol{\Upsilon}) \boldsymbol{v} = \tilde{\boldsymbol{L}}(\boldsymbol{\Upsilon}), \end{array} \end{array} $$

with pairwise constraints on the particle positions to guarantee disjoint particles, and box constraints with \(C_{\infty }<2w_{\text {ap}}\) to ensure that the particles stay inside the aperture with size wap. Since the coefficient vector \(\boldsymbol {v} = \tilde {\boldsymbol {K}}(\boldsymbol {\Upsilon })^{-1} \tilde {\boldsymbol {L}}(\boldsymbol {\Upsilon }) = \mathcal {S}(\boldsymbol {\Upsilon }) \) is uniquely determined by the parameters Υ, we can define the so-called reduced objective functional by \({\Phi }(\boldsymbol {\Upsilon }) J(\mathcal S(\boldsymbol {\Upsilon }),\boldsymbol {\Upsilon })\). To use a gradient-based optimization algorithm, we have to provide the derivative of the reduced objective function Φ(Υ) with respect to the parameters Υ in a direction \(\boldsymbol {h}_{1} \in \mathbb {R}^{2\times N_{p}}\). For this, we obtain the formula

$$ \begin{array}{@{}rcl@{}} D {\Phi}(\boldsymbol{\Upsilon}) [\boldsymbol{h}_{1}] = \boldsymbol{D}_{1} J(\mathcal S(\boldsymbol{\Upsilon}),\boldsymbol{\Upsilon}) [\boldsymbol{D}_{1}\mathcal S(\boldsymbol{\Upsilon})[\boldsymbol{h}_{1}]] \\ + \boldsymbol{D}_{2} J(\mathcal S(\boldsymbol{\Upsilon}),\boldsymbol{\Upsilon}) [\boldsymbol{h}_{1}]. \end{array} $$

Now, with \(\boldsymbol {v} = \mathcal {S}(\boldsymbol {\Upsilon })\) and the adjoint variable \(\boldsymbol {w} = \tilde {\boldsymbol {K}}(\boldsymbol {\Upsilon })^{-H} (\tilde {\boldsymbol {H}}(\boldsymbol {\Upsilon }) + \tilde {\boldsymbol {H}}(\boldsymbol {\Upsilon })^{H})\boldsymbol {v}\), the first term can be rewritten as

$$ \begin{array}{@{}rcl@{}} &&\boldsymbol{D}_{1} J(\mathcal S(\boldsymbol{\Upsilon}),\boldsymbol{\Upsilon}) [\boldsymbol{D}_{1}\mathcal S(\boldsymbol{\Upsilon})[\boldsymbol{h}_{1}]] \\ &&= -\boldsymbol{w}^{H} \left (\boldsymbol{D}_{1}\tilde{\boldsymbol{K}}(\boldsymbol{\Upsilon})[\boldsymbol{h}_{1}]\boldsymbol{v} - \boldsymbol{D}_{1}\tilde{\boldsymbol{L}}(\boldsymbol{\Upsilon})[\boldsymbol{h}_{1}] \right). \end{array} $$

Moreover, the second term results in

$$ \begin{array}{@{}rcl@{}} \boldsymbol{D}_{2} J(\mathcal S(\boldsymbol{\Upsilon}),\boldsymbol{\Upsilon}) [\boldsymbol{h}_{1}] \\ = \frac12 \boldsymbol{v}^{H} (\boldsymbol{D}_{1}\tilde{\boldsymbol{H}}(\boldsymbol{\Upsilon})[\boldsymbol{h}_{1}] + \boldsymbol{D}_{1}\tilde{\boldsymbol{H}}(\boldsymbol{\Upsilon})[\boldsymbol{h}_{1}]^{H})\boldsymbol{v}. \end{array} $$

In these expressions, the directional derivative of the system matrix \(\tilde {\boldsymbol {K}}\) with respect to the planar spatial positions Υ in direction h1 is obtained by

$$ \begin{array}{@{}rcl@{}} \boldsymbol{D}_{1}\tilde{\boldsymbol{K}}(\boldsymbol{\Upsilon})[\boldsymbol{h}_{1}] = \boldsymbol{D}_{1}\hat{\boldsymbol{D}}(\boldsymbol{\xi})[\boldsymbol{h}_{2}] - \hat{\boldsymbol{N}}(\boldsymbol{\varepsilon}) \boldsymbol{D}_{1} T(\boldsymbol{\xi})[\boldsymbol{h}_{2}], \end{array} $$

where \(\boldsymbol {h}_{2}\in \mathbb {R}^{3\times N_{p}}\) is the result of extending H1 by zero in the third component, i.e., (h2)i,k = (h1)i,k for all i ∈{1,2} and (h2)3,k = 0 for all \(k\in \boldsymbol {\mathcal {I}}_{p}\). The derivatives of the block matrices \(\hat {\boldsymbol {D}}^{(k,l)}\) and T(k,l) depend only on the spatial positions ξ(k) and ξ(l). Thus by application of the product rule for all \(k,l\in \boldsymbol {\mathcal {I}}_{p}\) and with sΥ(l)Υ(k)

$$ \begin{array}{@{}rcl@{}} &&\boldsymbol{D}_{1} \hat{\boldsymbol{D}}_{\square}^{(k,l)}(S_{r^{(k)}},\boldsymbol{s})[\boldsymbol{h}_{1}]\\ &&= \boldsymbol{D}_{1} (\boldsymbol{M}^{(k)}\circ\arg)[\boldsymbol{h}_{1}]^{H} \varPi \boldsymbol{D}_{\rho}^{(k,l)} \boldsymbol{M}^{(l)} \\ && + (\boldsymbol{M}^{(k)})^{H} \varPi \boldsymbol{D}_{\rho}^{(k,l)} \boldsymbol{D}_{1} (\boldsymbol{M}^{(l)}\circ\arg)(\boldsymbol{s})[\boldsymbol{h}_{1}]\\ && +(M^{(k)})^{H} \boldsymbol{D}_{1} (\varPi \boldsymbol{D}_{\rho}^{(k,l)}\circ\rho)(\boldsymbol{s})[\boldsymbol{h}_{1}] \boldsymbol{M}^{(l)}. \end{array} $$

Here the arguments of M(k), M(l) and \(\varPi \boldsymbol {D}_{\rho }^{(k,l)}\) were omitted for the sake of readability. The remaining expressions are obtain with chain rule, with the derivative of the Hermite interpolation function \(\boldsymbol {D}_{1} \varPi \boldsymbol {D}_{\rho }^{(k,l)}\) and the derivative \(\boldsymbol {D}_{1} \boldsymbol {M}^{(k)}\) of the matrix M(k). This is defined for a direction \(h \in \mathbb {R}\) and for all \(p\in \mathcal {I}_{a}^{(k)}\) by

$$ \begin{array}{@{}rcl@{}} \left (\boldsymbol{D}_{1} \boldsymbol{M}^{(k)}(a) [h]) \right)_{pp} = h \iota m^{(k)}_{p} \left( \boldsymbol{M}^{(k)}(a)\right)_{pp}. \end{array} $$

Moreover, the derivatives of the polar angle are given as

$$ \begin{array}{@{}rcl@{}} \boldsymbol{D}_{1}\arg(\boldsymbol{s}) [\boldsymbol{h}_{3}] = \frac{\boldsymbol{e}_{\phi}(\boldsymbol{s}) \cdot \boldsymbol{h}_{3}}{\rho(\boldsymbol{s})} \quad \text{and} \\ \boldsymbol{D}_{1}\rho(\boldsymbol{s}) [\boldsymbol{h}_{3}] = \boldsymbol{e}_{\rho}(\boldsymbol{s}) \cdot \boldsymbol{h}_{3}. \end{array} $$

We note that the same procedure applies to the derivatives D1T and \(\boldsymbol {D}_{1} \hat {\boldsymbol {H}}\). The derivative \(\boldsymbol {D}_{1} \hat {\boldsymbol {L}}^{(k)}\) of the right-hand side vector \(\hat {\boldsymbol {L}}^{(k)}\), which enters \(\boldsymbol {D}_{1} \tilde {\boldsymbol {L}}\), can, in general, be computed in a straightforward manner using the Jacobian of the incident field. However, in the case that the incident field is a plane wave travelling perpendicularly to the planar thin film, this derivative vanishes.

Finally, the derivative of the distance constraint, which is ρ(Υ(l)Υ(k)), with respect to the spatial position holds

$$ \begin{array}{@{}rcl@{}} D \rho(\boldsymbol{\Upsilon}^{(l)}-\boldsymbol{\Upsilon}^{(k)})[\boldsymbol{h}_{3}] & = \boldsymbol{e}_{\rho}(\boldsymbol{\Upsilon}^{(l)}-\boldsymbol{\Upsilon}^{(k)}) \cdot \boldsymbol{h}_{3}. \end{array} $$

In our first numerical example all particles have a radius of r(k) = 123 nm and a relative permittivity ε(k) = 2.5469, which corresponds to the refractive index of polystyrene at a wavelength of 550 nm (Sultanova et al. 2009). The assembly is illuminated by a x1-polarized plane wave propagating in positive x3-direction with a wave length of λ = 550 nm, i.e., \(\boldsymbol {E}_{I} = \boldsymbol {e}_{1} \exp (\iota \omega x_{3})\). Initially, the particles are placed in a hexagonal grid with grid size dhex = 370 nm truncated to a hexagonal shape. Moreover, each particle position is locally perturbed by a realization of a normally distributed random variable with probability distribution \(\mathcal N(0,0.05)\). The optimization procedure is then executed 20 times with randomized initial values. The bounding box for the optimization is set to \(C_{\infty } = {4}~\upmu \text {m}\).

Moreover, the numerical scheme is implemented in MATALB (The MathWorks Inc. 2014) and we use sequential quadratic programming (SQP) for the solution of the geometry optimization problem (35).

Figure 6 illustrates the results of the geometry optimization, where the numerical haze is minimized using 61 particles. From the final objective functional values obtained for each of the randomized initial values, the design with the lowest objective functional value \(J_{\min \limits }\) (Fig. 6a) is compared to the design with the highest objective functional value \(J_{\max \limits }\) (Fig. 6c) and the design corresponding to the objective functional value that is the closest to the average objective functional value Javg (Fig. 6b). We observe that the particles keep a certain distance such that the distance constraint is not active. Furthermore, they form hexagonal patterns, which seems to be a compromise between a global compact design of the sample and a minimal distance between each adjacent pair of particles.

Fig. 6
figure 6

Results of the geometry optimization with 61 particles, where the haze factor is minimized; the designs correspond to the minimal (\(J_{\min \limits }\) (Javg) and the maximal (\(J_{\max \limits }\)) objective functional, where we have started the optimization repeatedly from 20 randomized initial values. a \(J_{\min \limits }\). b Javg. c \(J_{\max \limits }\)

In contrast, the maximization of the haze factor (which is here and in all later examples realized by a multiplication of the objective functional with − 1) leads to chain-like formations that are aligned with the polarization of the incident wave (see Fig. 7). Here, the distance constraint is active for all randomized initial configurations.

Fig. 7
figure 7

Results of the geometry optimization with 61 particles, where the haze factor is maximized; the designs correspond to the minimal (\(J_{\min \limits }\)), an average (Javg) and the maximal (\(J_{\max \limits }\)) objective functional, where we have started the optimization repeatedly from 20 randomized initial values. a \(J_{\min \limits }\). b Javg. c \(J_{\max \limits }\)

Table 2 summarizes the results for minimization and maximization of the haze factor with various total numbers of particles. To compare the results, the objective functional is evaluated before the particles are randomly perturbed (J0, unperturbed), i.e., a perfect hexagonal pattern. Again, \(J_{\min \limits }\), Javg and \(J_{\max \limits }\) denote the minimal, average and maximal objective functional value for 20 randomized configurations, respectively. The minimization with 61 particles yields an average reduction to 79.7% of the unperturbed configuration. If the haze factor is maximized by the geometry optimization then we observe that the haze factor is increased by 553% on average.

Table 2 Results of the geometry optimization for num20 randomized initial values.

Orientation of particles

With the next optimization problem, we aim to study the effect of particle orientations on the haze factor given by (5). Let the reference domain \(\hat {\varOmega }^{(k)}\) for each particle be a spherical domain \(\hat {\varOmega }^{(0)}\) with radius r. We define a nanorod \({\varOmega }_{\text {rod}}\subset \hat {\varOmega }^{(0)}\) with radius rrod and height hrod in the interior of \(\hat {\varOmega }^{(0)}\) by

$$ \begin{array}{@{}rcl@{}} &&{\varOmega}_{\text{rod}} = \left\{(x_{1},x_{2},x_{3}) \in \mathbb{R}^{3} \mid \right.\\ &&{x_{2}^{2}} +{x_{3}^{2}} \le r^{2}_{\text{rod}}, |x_{1}| \le \tfrac12 h_{\text{rod}}\\ &&\vee~ {x_{3}^{2}} +{x_{2}^{2}} + (x_{1}-\tfrac12 h_{\text{rod}})^{2} \le r^{2}_{\text{rod}} \\ &&\left. \vee~ {x_{3}^{2}} +{x_{2}^{2}} + (x_{1}+\tfrac12 h_{\text{rod}})^{2} \le r^{2}_{\text{rod}}\right\}, \end{array} $$

see Fig. 8.

Fig. 8
figure 8

Sketch of a nanorod with height hrod and radius rrod inside a spherical reference domain \(\hat \varOmega ^{(k)}\) with radius r

Furthermore, we denote a constant relative permittivity of the nanorod by \(\varepsilon _{\text {rod}}\in \mathbb {C}\). Thus, the relative permittivity on the reference domain is defined for all \(\hat {\boldsymbol {x}}\in \hat {\varOmega }^{(k)}\) as

$$ \begin{array}{@{}rcl@{}} \hat\varepsilon(\hat{\boldsymbol{x}}) & = \begin{cases} \varepsilon_{\text{rod}}, & \text{if}~ \hat{\boldsymbol{x}} \in {\varOmega}_{\text{rod}} \\ 1, & \text{otherwise}. \end{cases} \end{array} $$

By rotating the reference domain \(\hat {\varOmega }^{(k)}\) with the rotation matrix Θ(k)SO(3), we effectively rotate the nanorods. As in the previous example, the particles are placed in the x1-x2-plane with particle centers \(\boldsymbol {\xi }^{(k)}\in \mathbb {R}^{3}\) and (ξ(k))3 = 0, but this time the position is fixed throughout the optimization. Furthermore, we restrict ourselves to in-plane rotations, i.e., rotations around the positive x3 axis, which are parametrized by the angles \(\boldsymbol {\alpha } =(\alpha ^{(1)},\dotsc ,\alpha ^{(N_{p})})\in [0,2\pi )^{N_{p}}\) such that

$$ \begin{array}{@{}rcl@{}} \boldsymbol{\varTheta}^{(k)} = \begin{pmatrix} \cos(\alpha^{(k)}) & -\sin(\alpha^{(k)}) & 0 \\ \sin(\alpha^{(k)}) & \cos(\alpha^{(k)}) & 0 \\ 0 & 0 & 1 \end{pmatrix}. \end{array} $$

Using this parametrization, the in-plane rotation of the k th particle by the matrix R(k) (15) is related to the matrix M(k) (31) via

$$ \begin{array}{@{}rcl@{}} \boldsymbol{R}^{(k)}(\boldsymbol{\varTheta}^{(k)}(\alpha^{(k)})) = \boldsymbol{M}^{(k)} (\alpha^{(k)}). \end{array} $$

With this, we define \(\tilde {\boldsymbol {K}}(\vec \alpha ) \hat {\boldsymbol {K}}(\boldsymbol {\varTheta }, \boldsymbol {\xi },\boldsymbol {\varepsilon })\), \(\tilde {\boldsymbol {H}} H(\boldsymbol {\xi })\) and \(\tilde {\boldsymbol {L}}(\boldsymbol {\alpha })\hat {\boldsymbol {L}}(\boldsymbol {\varTheta }, \boldsymbol {\xi },\boldsymbol {\varepsilon })\), and obtain the minimization problem:

$$ \begin{array}{@{}rcl@{}} \min_{\boldsymbol{\alpha}\in [0,2\pi)^{N_{p}}} J(\boldsymbol{v}) && \frac{1}{2} \boldsymbol{v}^{H} (\tilde{\boldsymbol{H}} + \tilde{\boldsymbol{H}}^{H}) \boldsymbol{v} \\ \text{s.t.} ~~~\tilde{\boldsymbol{K}}(\boldsymbol{\alpha})\boldsymbol{v} &=& \tilde{\boldsymbol{L}}(\boldsymbol{\alpha}). \end{array} $$

The derivative of the reduced objective functional \({\Phi }(\boldsymbol {\alpha }) = J(\mathcal S(\boldsymbol {\alpha }))\) in a direction \(\boldsymbol {h}_{1}\in \mathbb {R}^{N_{p}}\) with the solution vector \(\boldsymbol {v} = \mathcal S(\boldsymbol {\alpha }) = \tilde {\boldsymbol {K}} (\boldsymbol {\alpha })^{-1} \tilde {\boldsymbol {L}} (\boldsymbol {\alpha })\) and the adjoint solution \(\boldsymbol {w} = \tilde {\boldsymbol {K}}(\boldsymbol {\alpha })^{{-H}} (\tilde {\boldsymbol {H}} + \tilde {\boldsymbol {H}}^{H}) \boldsymbol {v}\) takes the form

$$ \begin{array}{@{}rcl@{}} \boldsymbol{D}_{1} {\Phi}(\boldsymbol{\alpha})[\boldsymbol{h}_{1}] & = -\boldsymbol{w}^{H} \left( \boldsymbol{D}_{1}\tilde{\boldsymbol{K}}(\boldsymbol{\alpha})[\boldsymbol{h}_{1}]\boldsymbol{v} - \boldsymbol{D}_{1}\tilde{\boldsymbol{L}}(\boldsymbol{\alpha})[\boldsymbol{h}_{1}] \right). \end{array} $$

The block \(\tilde {\boldsymbol {K}}^{(k,l)}(\alpha ^{(k)})\) of the system matrix \(\tilde {\boldsymbol {K}}(\boldsymbol {\alpha })\) and the k th block component \(\tilde {\boldsymbol {L}}^{(k)}(\alpha ^{(k)})\) of the right-hand side vector \(\tilde {\boldsymbol {L}}(\boldsymbol {\alpha })\) depend only on the angle α(k). Thus, with (36), their derivatives in direction h2 = (h1)k are

$$ \begin{array}{@{}rcl@{}} \boldsymbol{D}_{1}\tilde{\boldsymbol{K}}^{(k,l)}(\alpha^{(k)})[h_{2}] = Z^{(k)} T^{(k,l)}(\boldsymbol{\xi}^{(l)}-\boldsymbol{\xi}^{(k)}) \\ \text{and} \quad \boldsymbol{D}_{1}\tilde{\boldsymbol{L}}^{(k)}(\alpha^{(k)})[h_{2}] = Z^{(k)} \hat{\boldsymbol{F}}^{(k)}(\boldsymbol{\xi}^{(k)}). \end{array} $$


$$ \begin{array}{@{}rcl@{}} Z^{(k)} \boldsymbol{D}_{1} \boldsymbol{M}^{(k)}(\alpha^{(k)})[h_{2}]^{H} \hat{\boldsymbol{N}}^{(k)}(\hat\varepsilon^{(k)}) \boldsymbol{M}^{(k)}(\alpha^{(k)}) \\ + \boldsymbol{M}^{(k)}\alpha^{(k)})^{H} \hat{\boldsymbol{N}}^{(k)}(\hat\varepsilon^{(k)}) \boldsymbol{D}_{1} \boldsymbol{M}^{(k)}(\alpha^{(k)})[h_{2}]. \end{array} $$

In this numerical example, we consider Np = 61 nanorods with height hrod = 62 nm and radius rrod = 31 nm. The nanorods are arranged in a hexagonal pattern in the x1-x2-plane with grid size dhex = 270 nm and form a hexagonal shape with 5 objects per side. Each nanorod has a relative permittivity εP = (1 + 10i)2 and is embedded in a sphere with radius r(k) = 123 nm. The assembly is illuminated by a plane wave EI with fixed wave length λ = 550nm, polarization in the x1-direction and propagation in the positive x3-direction, i.e., \(\boldsymbol {E_{I}}(\boldsymbol {x}) \boldsymbol {e}_{1} \exp (\iota \omega x_{3})\) with \(\omega =\tfrac {2\pi }{\lambda }\). We choose a discretization for each subdomain \(\hat \varOmega ^{(k)}\), which results in \(N_{f}^{(k)}=394432\) degrees of freedom for the interior electric field, and \(N_{a}^{(k)}=96\) degrees of freedom for the electric fields scattered by each particle. Furthermore, we compare results for the minimization and maximization of the haze factor for different initial out-of-plane rotations, i.e., about the x2-axis, by the angles \(\theta \in \{0,\tfrac \pi 6,\tfrac \pi 4,\tfrac \pi 3\}\) (see Fig. 9). The effect of polarization on the optimization results is also studied by using an unpolarized incident light. This is realized by averaging the solutions of the electric field for x1-polarized and x2-polarized light.

Fig. 9
figure 9

Visualization of a nanorod with different out-of-plane rotations realized by the angle 𝜃. a 𝜃 = 0. b \(\theta =\tfrac \pi 6\). c \(\theta =\tfrac \pi 3\)

The optimization is started from uniform angles given as \(\alpha ^{(k)} = \tfrac {\pi }{4}\) for all \(k\in \boldsymbol {\mathcal {I}}_{p}\) and an SQP algorithm is used again for the solution.

In the case of minimizing the haze factor for polarized incident light, the nanorods align perpendicularly to the incident light polarization for all initial out-of-plane rotations, examples of which are depicted in Fig. 10a and b. There, the in-plane orientation angles α(k) are visualized from top view by a colored hexagonal background for each nanorod and from the perspective view by colored nanorods. If the haze factor is maximized, most of the nanorods align parallel to the incident light polarization (see Fig. 10c). If the nanorod are tilted they form an out-of-plane zig zag bringing the tips of the nanorods closer together (see Fig. 10d).

Fig. 10
figure 10

Results of the particle orientation optimization with polarized light for minimization and maximization of the haze factor and various initial out-of-plane rotations; in-plane rotations are visualized in top view by a colored hexagonal background for each nanorod and in the perspective view by colored nanorods; the colors range from red over yellow, green, cyan, blue and magenta back to red, indicating angles from 0 to 180. a Minimization and 𝜃 = 0. b Minimization and \(\theta =\tfrac \pi 3\). c Maximization and 𝜃 = 0. d Maximization and \(\theta =\tfrac \pi 3\)

Using an unpolarized incident light source, the haze factor is only reduced to 87% of the initial objective function value for 𝜃 = 0 or to 97% of the initial objective function value for \(\theta =\frac \pi 4\) (see Fig. 11a and b). In contrast, the maximization of the haze factor using unpolarized light leads to a gain of 223% relative to the initial objective functional value. Both optimized designs shown in Fig. 11c and d exhibit a ring formation in the central area of the sample.

Fig. 11
figure 11

Results of the particle orientation optimization with unpolarized light for minimization and maximization of the haze factor and various initial out-of-plane rotations; in-plane rotations are visualized in top view by a colored background hexagon for each nanorod and in the perspective view by colored nanorods; the colors range from red over yellow, green, cyan, blue and magenta back to red, indicating angles from 0 to 180. a Minimization and 𝜃 = 0. b Minimization and \(\theta =\tfrac \pi 4\). c Maximization and 𝜃 = 0. d Maximization and \(\theta =\tfrac \pi 4\)

All optimization results are collected in Table 3, where the relative improvement to the initial value of the objective functional is specified. Moreover, we denote the polarized incident wave by x and the unpolarized incident wave by x/y.

Table 3 Result of the particle orientation optimization.

Type of particles

The last optimization problem addresses the minimization of the haze factor by selecting for each scatterer \(\hat \varOmega ^{(k)}\) a particle type from two admissible choices. These choices are characterized by domains \(\hat \varOmega _{1}\) and \(\hat \varOmega _{2}\) with relative permittivities \(\varepsilon _{1}\colon \hat \varOmega _{1}\to \mathbb {C}\) and \(\varepsilon _{2}\colon \hat \varOmega _{2}\to \mathbb {C}\), respectively. This combinatorial problem is relaxed via the pseudo density parameter \(\boldsymbol {\delta } =(\delta ^{(1)},\dotsc ,\delta ^{(N_{p})}) \in [0,1]^{N_{p}}\) and the matrix \(\hat {\boldsymbol {N}}^{(k)}(\varepsilon ^{(k)})\) in (29) is replaced by a convex combination between the matrices \(\hat {\boldsymbol {N}}^{(k)}(\varepsilon _{1})\) and \(\hat {\boldsymbol {N}}^{(k)}(\varepsilon _{2})\) according to the relative permittivities ε1 and ε2, i.e.,

$$ \begin{array}{@{}rcl@{}} &&\varPi \hat{\boldsymbol{N}}^{(k)}\colon [0,1] \to \mathbb{C}^{N_{a}^{(k)}\times N_{a}^{(k)}},\\ &&\delta \mapsto (1-\delta) \hat{\boldsymbol{N}}^{(k)}(\varepsilon_{1}) + \delta \hat{\boldsymbol{N}}^{(k)}(\varepsilon_{2}). \end{array} $$

We keep the spatial positions ξ and orientations Θ of the particles fixed, and define \(\tilde {\boldsymbol {H}} \hat {\boldsymbol {H}}(\boldsymbol {\xi })\), \(\tilde {\boldsymbol {K}}(\boldsymbol {\delta })\) as the system matrix and \(\tilde {\boldsymbol {L}}(\boldsymbol {\delta })\) as right-hand side, including the interpolation \(\varPi \hat {\boldsymbol {N}}^{(k)}\). Furthermore, a penalization term for the intermediate values of δ, the so-called grayness term, is added to the objective functional with penalization parameter γ > 0. Then, the optimization problem reads as

$$ \begin{array}{@{}rcl@{}} \min_{\boldsymbol{\delta}\in [0,1]^{N_{p}}} J(\boldsymbol{v},\boldsymbol{\delta})&& \frac{1}{2} \boldsymbol{v}^{H} (\tilde{\boldsymbol{H}} + \tilde{\boldsymbol{H}}^{H}) \boldsymbol{v} + \gamma\boldsymbol{\delta} \cdot (1-\boldsymbol{\delta}) \\ \text{s.t.} \tilde{\boldsymbol{K}}(\boldsymbol{\delta})\boldsymbol{v} &=& \tilde{\boldsymbol{L}}(\boldsymbol{\delta}) \\ \underline n &\le& \|\delta\|_{1} \le \overline n. \end{array} $$

The inequalities with the two bounds lead to a minimal and maximal number of particles that must be of the second particle type. Thereby, different mixtures of particles can be studied. As in Section 4.2, the evaluation of the numerical haze does not explicitly depend on the parameter δ, and thus, the derivative of the reduced objective functional \({\Phi }(\boldsymbol {\delta })=J(\mathcal S(\boldsymbol {\delta }), \boldsymbol {\delta })\) with \(\boldsymbol {v} = \mathcal S(\boldsymbol {\delta }) = \tilde {\boldsymbol {K}}(\delta )^{-1} \tilde {\boldsymbol {L}}(\boldsymbol {\delta })\) and \(\boldsymbol {w} = \tilde {\boldsymbol {K}}(\boldsymbol {\delta })^{{-H}} (\tilde {\boldsymbol {H}}+ \tilde {\boldsymbol {H}}^{H}) \boldsymbol {v}\) in a direction \(\boldsymbol {h}_{1}\in [0,1]^{N_{p}}\) is given by

$$ \begin{array}{@{}rcl@{}} \boldsymbol{D}_{1} \varPhi(\boldsymbol{\delta}) [\boldsymbol{h}_{1}] =-\boldsymbol{w}^{H} \left( \boldsymbol{D}_{1}\tilde{\boldsymbol{K}}(\boldsymbol{\delta})[\boldsymbol{h}_{1}]\boldsymbol{v} - \boldsymbol{D}_{1}\tilde{\boldsymbol{L}}(\boldsymbol{\delta})[\boldsymbol{h}_{1}] \right) \\ + \gamma (1-2\boldsymbol{\delta}) \cdot \boldsymbol{h}_{1}. \end{array} $$

The derivatives of the block matrices \(\tilde {\boldsymbol {K}}^{(k,l)}\) and block vectors \(\tilde {\boldsymbol {L}}^{(k)}\) satisfy

$$ \begin{array}{@{}rcl@{}} \boldsymbol{D}_{1} \tilde{\boldsymbol{K}}^{(k,l)}(\delta^{(k)})[h_{1}^{(k)}] = Z_{2} T^{(k,l)} (\boldsymbol{\xi}^{(l)}-\boldsymbol{\xi}^{(k)}) \\ \text{and} \quad \boldsymbol{D}_{1} \tilde{\boldsymbol{L}}^{(k,l)}(\delta^{(k)})[h_{1}^{(k)}] = Z_{2}\hat{\boldsymbol{F}}^{(k)} (\boldsymbol{\xi}^{(k)}), \end{array} $$


$$ \begin{array}{@{}rcl@{}} Z_{2} - \boldsymbol{R}^{(k)}(\boldsymbol{\varTheta}^{(k)})^{H} (\hat{\boldsymbol{N}}^{(k)}(\varepsilon_{2}) \\- \hat{\boldsymbol{N}}^{(k)}(\varepsilon_{1})) \boldsymbol{R}^{(k)}(\boldsymbol{\varTheta} ^{(k)}) h_{1}^{(k)}. \end{array} $$

We see that \( \boldsymbol {D}_{1} \tilde {\boldsymbol {K}}^{(k,l)}(\delta ^{(k)})\) and \(\boldsymbol {D}_{1} \tilde {\boldsymbol {L}}^{(k)}(\delta ^{(k)})\) are constant with respect to δ(k) and so they must be computed only once in a pre-processing step.

In the following examples, we solve the optimization problem (37) with Np ∈{7,19,61,217} spherical particles arranged in a hexagonal grid in the x1-x2 plane with particle distance dhex = 368 nm. Here, the admissible domain \(\hat \varOmega _{1}\) is a small sphere with radius r1 = 110 nm and \(\hat \varOmega _{2}\) is a larger sphere with radius r2 = 166 nm (see Fig. 12).

Fig. 12
figure 12

Spherical particles with radius r1 (red) and r2 (blue) arranged in a hexagonal grid with grid size dhex

Both admissible particles types have a relative permittivity ε1 = ε2 = 2.5469 (Sultanova et al. 2009). The sample is illuminated by a x1-polarized plane wave propagating in the positive x3-direction with the wave length λ = 550nm. The bounds for the number of particles are chosen as \(\underline {n} = \lfloor (V-0.05) N_{p}\rfloor \) and \(\overline {n} = \lceil (V+0.05) N_{p}\rceil \), based on a desired volume fraction V of the particle of the second type, here the large particles. The initial value for the parameter δ is chosen to be either uniformly set to V, i.e., δ(k) = V for all \(k\in \boldsymbol {\mathcal {I}}_{p}\), or using realizations of an uniformly distributed random variable with probability distribution \(\mathcal U([V -0.1,V+0.1])\). The grayness penalty parameter is set to γ = 0.01 and is successively increased by a factor of 1.2 within a so-called continuation process (Sigmund and Petersson 1998).

Exemplary results of the optimization for V = 0.4 are depicted in Fig. 13 with a view to showing the influence of the random initialization versus the uniform initialization of the optimization result. In the case of haze factor maximization the uniform initialization lead to highly symmetric designs (see Fig. 13a), in contrast to the random initialization (see Fig. 13b). In both cases, we find that the large particles form chains.

Fig. 13
figure 13

Comparison of optimization results using uniform and randomized initialization. a Maximize, uniform. b Maximize, random. c Minimize, uniform. d Minimize, random

When the haze factor is minimized, we observe that the difference between the resulting design for uniform and randomized initialization is very small or sometimes they are even identical (see in Fig. 13c and d). This suggests that compact, sparse and symmetric designs are beneficial for the haze factor minimization.

For a larger number of particles (Np = 217), the characteristic features described above are maintained for both optimization types. This is illustrated in Fig. 14. The value of the numerical haze, the value of the grayness term and the number of blue particles are printed below the design. Again we observe the chain formation in Fig. 14a and the sparse symmetric structures in Fig. 14b.

Fig. 14
figure 14

Results of the particle type optimization using 217 particles and randomized initial values. a Maximization. b Minimization

In some cases, we do not obtain fully integer solutions due to balancing effects caused by bounds on the number of blue particles and the local reduction of the haze factor. As there is no physical interpretation of these so-called gray designs, we round the design parameter and evaluate these similar black (1) and white (0) designs (see Fig. 15), although they are not directly obtained as solutions of the optimization problem.

Fig. 15
figure 15

Rounding of “gray” designs

Finally, we compare all results for the minimization and maximization of the haze factor by choosing the particle type of 61 particles in Fig. 16. The plot shows the final objective functional value obtained with uniform and randomized initial design parameters against the value “fraction of the blue particles” (solid, dots). Moreover, the objective functional evaluated for the rounded “gray” designs is marked by a square whenever applicable. We see that with an increasing fraction of large particles, the haze also increases, since the large particles scatter more light than the smaller particles.

Fig. 16
figure 16

Comparison of the optimization results for 61 particles

Computation times

All experiments in the previous sections were carried out on an Intel Xeon E5-2687W computer with 20x2 CPUs and 256 GB RAM in MATLAB (The MathWorks Inc. 2014). During the online phase, each optimization iteration took less than 30 s for a system of 61 particles. It was further observed that the computation time per online iteration indeed depends quadratically on the number of particles. On average, the computation of the offline matrices, e.g., Dρ and Tρ, was performed in about 30 seconds s per block matrix at a grid point. In the worst case, this results in about 23 min for each full matrix massively parallelized on 40 cores. In the most expensive case, the offline FE analysis took 130 s.

Replication of results computation times

For the optimization, the SQP solver from the MATLAB optimization toolbox has been used without specifying second-order derivatives. Material parameters and system sizes are described with the individual examples.


In this article, a two-stage hybrid FEM scheme for the simulation of optical properties of complex particle systems was derived. Exploiting the properties of VSWF, it was possible to reduce the computational complexity compared to a standard hybrid FEM scheme by several orders of magnitude. This, combined with the separation of the computations into a design independent offline stage and a design dependent online stage allowed us to efficiently solve optimal arrangement problems of a different kind. Even on a standard computer, it was possible to solve problems including a few hundred particles. Moreover, the derived numerical scheme enables the efficient structural optimization of particle assemblies with respect to position, type and orientation of the particles in a straightforward manner.

Future research directions include an extension of the methodology to fully three dimensional particle arrangements. Moreover, it would also be interesting to develop optimization solvers that can directly exploit the structure of the hybrid FEM system. From a practical point of view, optimization problems with multiple frequencies and (in the full 3D case) multiple illumination directions would be of interest.. Moreover, instead of working with given particle sizes and shapes, it would be more realistic to consider distributions of these quantities. Finally, if one is interested in globally optimal solutions, gradient-based global optimization methods (see, e.g., Noel 2012) could be applied. We think that our approach is attractive to be used with these solvers, as the computational cost for an objective function evaluation in the online phase is comparably low.