#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 several branches of nanophotonics. In practice, the scatterers often form some ordered structure, such as metalic or dielectric nanoparticle arrays \begin_inset CommandInset citation LatexCommand cite key "zou_silver_2004,garcia_de_abajo_colloquium:_2007,wang_rich_2018,kravets_plasmonic_2018" literal "false" \end_inset that offer many degrees of tunability, with applications including structural color, ultra-thin lenses \begin_inset CommandInset citation LatexCommand cite key "khorasaninejad_metalenses_2017" literal "false" \end_inset , strong coupling between light and quantum emitters \begin_inset CommandInset citation LatexCommand cite key "vakevainen_plasmonic_2014,ramezani_strong_2019,torma_strong_2015" literal "false" \end_inset , weak and strong coupling lasing and Bose-Einstein condensation \begin_inset CommandInset citation LatexCommand cite key "zhou_lasing_2013,hakala_lasing_2017,guo_lasing_2019,hakala_boseeinstein_2018,yang_real-time_2015,ramezani_plasmon-exciton-polariton_2017,vakevainen_sub-picosecond_2020,wang_structural_2018" literal "false" \end_inset , magneto-optical effects \begin_inset CommandInset citation LatexCommand cite key "kataja_surface_2015" literal "false" \end_inset , or sensing \begin_inset CommandInset citation LatexCommand cite key "kuttner_plasmonics_2018" literal "false" \end_inset . The number of scatterers tends to be rather large; unfortunately, the most common 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, \begin_inset CommandInset citation LatexCommand cite key "sullivan_electromagnetic_2013" literal "false" \end_inset ) method or the finite element method (FEM, \begin_inset CommandInset citation LatexCommand cite key "raiyan_kabir_finite_2017" literal "false" \end_inset \begin_inset Note Note status open \begin_layout Plain Layout zkontroluj reference, přidej referenci na frequency domain fem \end_layout \end_inset ) 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, a.k.a the method of moments, MOM \begin_inset CommandInset citation LatexCommand cite key "harrington_field_1993,medgyesi-mitschang_generalized_1994,reid_efficient_2015" literal "false" \end_inset ) 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 (CD) \begin_inset CommandInset citation LatexCommand cite key "zhao_extinction_2003" literal "false" \end_inset 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 CD 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, belonging to a category that is sometimes called \emph on optical bound states in the continuum (BIC) \emph default \begin_inset CommandInset citation LatexCommand cite key "hsu_bound_2016" literal "false" \end_inset , 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_boseeinstein_2018" literal "false" \end_inset – and CD by definition fails to capture such modes. \end_layout \begin_layout Standard The natural way to overcome both limitations of CD mentioned above is to take higher multipoles into account. Instead of a polarisability tensor, the scattering properties of an individual particle are then described with more general \emph on transition matrix \emph default (commonly known as \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 \emph default \begin_inset CommandInset citation LatexCommand cite key "litvinov_rigorous_2008" literal "false" \end_inset \begin_inset Note Note status open \begin_layout Plain Layout \emph on \begin_inset Marginal status open \begin_layout Plain Layout a.k.a. something else? \end_layout \end_inset \end_layout \end_inset , and it has been implemented many times in the context of electromagnetics \begin_inset CommandInset citation LatexCommand cite key "scattport_multiple_nodate" literal "false" \end_inset , but usually only as specific codes for limited subsets of problems, such as scattering by clusters of spheres, circular cylinders, or Chebyshev particles \begin_inset CommandInset citation LatexCommand cite key "mackowski_multiple_2011,mackowski_mstm_2013,xu_fortran_2003" literal "false" \end_inset . Perhaps the most general MSTMM software with respect to the system geometry has been FaSTMM \begin_inset CommandInset citation LatexCommand cite key "markkanen_fast_2017,markkanen_fastmm_2017" literal "false" \end_inset , which also a rare example is in this field of a publicly available code with a clear licence. \end_layout \begin_layout Standard However, the potential of MSTMM reaches far beyond its past implementations. Here we present several enhancements to the method, which are especially useful in metamaterial and nanophotonics simulations. We extend the method on infinite periodic systems using Ewald-type summation techniques. This enables, among other things, to use MSTMM for fast solving of the lattice modes of such periodic systems, and comparing them to their finite counterparts with respect to electromagnetic response, which is useful to isolate the bulk and finite-size phenomena of photonic lattices. Moreover, we exploit symmetries of the system to decompose the problem into several substantially smaller ones, which provides better understanding of modes, mainly in periodic systems, and substantially reduces the demands on computational resources, hence speeding up the computations and allowing for finite size simulations of systems with particle numbers practically impossible to reliably simulate with any other method. Furthemore, the method can be combined with other integral methods, which removes the limitation to systems with compact scatterers only, and enables e.g. including a substrate \begin_inset CommandInset citation LatexCommand cite key "czajkowski_multipole_2020" literal "false" \end_inset . \begin_inset Note Note status open \begin_layout Plain Layout 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 \end_inset \end_layout \begin_layout Standard The power of the method has been already demonstrated by several works where we used it to explain experimental observations: the finite lattice size effects on dipole patterns and phase profiles of the nanoparticle lattice modes in \begin_inset CommandInset citation LatexCommand cite key "hakala_lasing_2017" literal "false" \end_inset , symmetry and polarisation analysis of the modes at the \begin_inset Formula $K$ \end_inset -point of a honeycomb nanopatricle lattice in \begin_inset CommandInset citation LatexCommand cite key "guo_lasing_2019" literal "false" \end_inset , the structure of lasing modes in a Ni nanoparticle array \begin_inset CommandInset citation LatexCommand cite key "pourjamal_lasing_2019" literal "false" \end_inset and energy spacing between the \begin_inset Formula $\Gamma$ \end_inset -point modes in a finite lattice \begin_inset CommandInset citation LatexCommand cite key "vakevainen_sub-picosecond_2020" literal "false" \end_inset . \end_layout \begin_layout Standard We hereby release our MSTMM implementation, the \emph on QPMS Photonic Multiple Scattering \emph default suite \begin_inset CommandInset citation LatexCommand cite key "necada_qpms_2019" literal "false" \end_inset , as free software under the GNU General Public License version 3. \begin_inset Note Note status open \begin_layout Plain Layout \begin_inset Marginal status open \begin_layout Plain Layout (remember to clean / update the repos before submitting) \end_layout \end_inset \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 article, 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 evaluating dispersions of such structures. The QPMS suite contains a core C library, Python bindings and several utilities for routine computations, such as scattering cross sections under plane wave irradiation or lattice modes of two-dimensional periodic arrays. \begin_inset Note Note status open \begin_layout Plain Layout TODO před odesláním zkontrolovat, co všechno to v danou chvíli umí. \end_layout \end_inset It includes Doxygen documentation together with description of the API. It has been written with customisability and extendibility in mind, so that including e.g. alternative methods of \begin_inset Formula $T$ \end_inset -matrix calculations of a single particle's matrix are as easy as possible. \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. \begin_inset Note Note status open \begin_layout Plain Layout and benchmarks with BEM. \end_layout \end_inset \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