#LyX 2.4 created this file. For more info see https://www.lyx.org/ \lyxformat 584 \begin_document \begin_header \save_transient_properties true \origin unavailable \textclass article \use_default_options true \maintain_unincluded_children false \language english \language_package default \inputencoding utf8 \fontencoding auto \font_roman "default" "TeX Gyre Pagella" \font_sans "default" "default" \font_typewriter "default" "default" \font_math "auto" "auto" \font_default_family default \use_non_tex_fonts false \font_sc false \font_roman_osf true \font_sans_osf false \font_typewriter_osf false \font_sf_scale 100 100 \font_tt_scale 100 100 \use_microtype false \use_dash_ligatures false \graphics default \default_output_format default \output_sync 0 \bibtex_command default \index_command default \float_placement class \float_alignment class \paperfontsize default \spacing single \use_hyperref true \pdf_author "Marek Nečada" \pdf_bookmarks true \pdf_bookmarksnumbered false \pdf_bookmarksopen false \pdf_bookmarksopenlevel 1 \pdf_breaklinks false \pdf_pdfborder false \pdf_colorlinks false \pdf_backref false \pdf_pdfusetitle true \papersize default \use_geometry false \use_package amsmath 1 \use_package amssymb 1 \use_package cancel 1 \use_package esint 1 \use_package mathdots 1 \use_package mathtools 1 \use_package mhchem 1 \use_package stackrel 1 \use_package stmaryrd 1 \use_package undertilde 1 \cite_engine basic \cite_engine_type default \biblio_style plain \use_bibtopic false \use_indices false \paperorientation portrait \suppress_date false \justification true \use_refstyle 1 \use_minted 0 \use_lineno 0 \index Index \shortcut idx \color #008000 \end_index \secnumdepth 3 \tocdepth 3 \paragraph_separation indent \paragraph_indentation default \is_math_indent 0 \math_numbering_side default \quotes_style english \dynamic_quotes 0 \papercolumns 1 \papersides 1 \paperpagestyle default \tablestyle default \tracking_changes false \output_changes false \html_math_output 0 \html_css_as_file 0 \html_be_strict false \end_header \begin_body \begin_layout Section Introduction \begin_inset CommandInset label LatexCommand label name "sec:Introduction" \end_inset \end_layout \begin_layout Standard The problem of electromagnetic response of a system consisting of many relativel y small, compact scatterers in various geometries, and its numerical solution, is relevant to many branches of nanophotonics. \begin_inset Marginal status open \begin_layout Plain Layout Some refs here? \end_layout \end_inset The most commonly used general approaches used in computational electrodynamics are often unsuitable for simulating systems with larger number of scatterers due to their computational complexity: differential methods such as the finite difference time domain (FDTD) method or the finite element method (FEM) include the field degrees of freedom (DoF) of the background medium (which can have very large volumes), whereas integral approaches such as the boundary element method (BEM) need much less DoF but require working with dense matrices containing couplings between each pair of DoF. Therefore, a common (frequency-domain) approach to get an approximate solution of the scattering problem for many small particles has been the coupled dipole approximation (CDA) where a drastic reduction of the number of DoF is achieved by approximating individual scatterers to electric dipoles (characterised by a polarisability tensor) coupled to each other through Green's functions. \end_layout \begin_layout Standard CDA is easy to implement and demands relatively little computational resources but suffers from at least two fundamental drawbacks. The obvious one is that the dipole approximation is too rough for particles with diameter larger than a small fraction of the wavelength, which results to quantitative errors. The other one, more subtle, manifests itself in photonic crystal-like structure s used in nanophotonics: there are modes in which the particles' electric dipole moments completely vanish due to symmetry, and regardless of how small the particles are, the excitations have quadrupolar or higher-degree multipolar character. These modes typically appear at the band edges where interesting phenomena such as lasing or Bose-Einstein condensation have been observed \begin_inset CommandInset citation LatexCommand cite key "guo_lasing_2019,pourjamal_lasing_2019,hakala_lasing_2017,yang_real-time_2015,hakala_bose-einstein_2017" literal "false" \end_inset – and CDA by definition fails to capture such modes. \end_layout \begin_layout Standard The natural way to overcome both limitations of CDA mentioned above is to include higher multipoles into account. Instead of polarisability tensor, the scattering properties of an individual particle are then described with more general \begin_inset Formula $T$ \end_inset -matrix, and different particles' multipole excitations are coupled together via translation operators, a generalisation of the Green's functions used in CDA. This is the idea behind the \emph on multiple-scattering \begin_inset Formula $T$ \end_inset -matrix method \emph default (MSTMM), a.k.a. \emph on superposition \begin_inset Formula $T$ \end_inset -matrix method \begin_inset Marginal status open \begin_layout Plain Layout a.k.a. something else? \end_layout \end_inset \emph default , and it has been implemented previously for a limited subset of problems \begin_inset Marginal status open \begin_layout Plain Layout Refs; list the limitations of available codes? \end_layout \end_inset . \begin_inset Note Note status open \begin_layout Plain Layout TODO přestože blablaba, moc se to nepoužívalo, protože je težké udělat to správně. \end_layout \end_inset \end_layout \begin_layout Standard Due to the limitations of the existing available codes, we have been developing our own implementation of MSTMM, which has been used in several previous works studying various physical phenomena in plasmonic nanoarrays \begin_inset CommandInset citation LatexCommand cite key "pourjamal_lasing_2019,guo_lasing_2019,hakala_lasing_2017" literal "false" \end_inset . During the process, it became apparent that although the size of the arrays we were able to simulate with MSTMM was far larger than with other methods, sometimes we were unable to match the full size of our physical arrays (typically consisting of tens of thousands of metallic nanoparticles) mainly due to memory constraints. Moreover, to distinguish the effects attributable to the finite size of the arrays, it became desirable to simulate also \emph on infinite periodic systems \emph default with the same method, as choosing a completely different method could introduce differences stemming from the method choice itself. Unlike in differential methods where this can be achieved straightforwardly using periodic boundary conditions, this is not trivial in MSTMM where one has to deal with badly behaving infinite lattice sums. \end_layout \begin_layout Standard Here we address both challenges: we extend the method on infinite periodic systems using Ewald-type summation techniques, and we exploit symmetries of the system to decompose the problem into several substantially smaller ones, which 1) reduces the demands on computational resources, hence speeds up the computations and allows for simulations of larger systems, and 2) provides better understanding of modes, mainly in periodic systems. \end_layout \begin_layout Standard We hereby release our MSTMM implementation, the \emph on QPMS Photonic Multiple Scattering \emph default suite, as free software under the GNU General Public License version 3. \begin_inset Marginal status open \begin_layout Plain Layout TODO refs to the code repositories once it is published. \end_layout \end_inset QPMS allows for linear optics simulations of arbitrary sets of compact scatterers in isotropic media. The features include computations of electromagnetic response to external driving, the related cross sections, and finding resonances of finite structure s. Moreover, it includes the improvements covered in this paper, enabling to simulate even larger systems and also infinite structures with periodicity in one, two or three dimensions, which can be used e.g. for quickly evaluating dispersions of such structures \begin_inset Marginal status open \begin_layout Plain Layout And also their topological invariants (TODO)? \end_layout \end_inset . The QPMS suite contains a core C library, Python bindings and several utilities for routine computations. \begin_inset Marginal status open \begin_layout Plain Layout Such as? \end_layout \end_inset \begin_inset Note Note status open \begin_layout Plain Layout , such as TODO. \end_layout \end_inset It includes extensive Doxygen documentation, together with description of the API, making extending and customising the code easy. \end_layout \begin_layout Standard The current paper is organised as follows: Section \begin_inset CommandInset ref LatexCommand ref reference "sec:Finite" \end_inset provides a review of MSTMM theory for finite systems. In Section \begin_inset CommandInset ref LatexCommand ref reference "sec:Infinite" \end_inset we develop the theory for infinite periodic structures. In Section \begin_inset CommandInset ref LatexCommand ref reference "sec:Symmetries" plural "false" caps "false" noprefix "false" \end_inset we apply group theory on MSTMM to utilise the symmetries of the simulated system. Finally, Section \begin_inset CommandInset ref LatexCommand ref reference "sec:Applications" \end_inset shows some practical results that can be obtained using QPMS and benchmarks with BEM. \begin_inset Note Note status open \begin_layout Plain Layout Finally, in Section \begin_inset CommandInset ref LatexCommand ref reference "sec:Comparison" \end_inset we comment on the computational complexity of MSTMM in comparison to other methods. \end_layout \end_inset \end_layout \end_body \end_document