#LyX 2.4 created this file. For more info see https://www.lyx.org/
\lyxformat 583
\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 compact
 scatterers in various geometries, and its numerical solution, is relevant
 to many branches of nanophotonics (TODO refs).
 The most commonly used general approaches used in computational electrodynamics
, such as the finite difference time domain (FDTD) method or the finite
 element method (FEM), are very often unsuitable for simulating systems
 with larger number of scatterers due to their computational complexity.
 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 individual scatterers are reduced to electric
 dipoles (characterised by a polarisability tensor) and coupled to each
 other through Green's functions.
 
\end_layout

\begin_layout Standard
CDA is easy to implement and has favorable computational complexity 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.
 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, regardless of how small
 the particles are, and 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 – 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 a 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 in
 CDA.
 This is the idea behind the 
\emph on
multiple-scattering 
\begin_inset Formula $T$
\end_inset

-matrix method 
\emph default
(MSTMM) (TODO a.k.a something??), and it has been implemented previously for
 a limited subset of problems (TODO refs and list the limitations of the
 available).
 
\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

 Due to the limitations of the existing available codes, we have been developing
 our own implementation of MSTMM, which we have used in several previous
 works studying various physical phenomena in plasmonic nanoarrays (TODO
 examples with refs).
 
\end_layout

\begin_layout Standard
Hereby we release our MSTMM implementation, the 
\emph on
QPMS Photonic Multiple Scattering
\emph default
 suite, as an open source software under the GNU General Public License
 version 3.
 (TODO refs to the code repositories.) 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, in QPMS we extensively employ group theory to exploit the physical
 symmetries of the system to further reduce the demands on computational
 resources, enabling to simulate even larger systems.
 
\begin_inset Note Note
status open

\begin_layout Plain Layout
(TODO put a specific example here of how large system we are able to simulate?)
\end_layout

\end_inset

 Although systems of large 
\emph on
finite
\emph default
 number of scatterers are the area where MSTMM excels the most—simply because
 other methods fail due to their computational complexity—we also extended
 the method onto infinite periodic systems (photonic crystals); this can
 be used for quickly evaluating dispersions of such structures and also
 their topological invariants (TODO).
 The QPMS suite contains a core C library, Python bindings and several utilities
 for routine computations, such as TODO.
 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

 is devoted to 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.
 Section 
\begin_inset CommandInset ref
LatexCommand ref
reference "sec:Applications"

\end_inset

 demonstrates some basic practical results that can be obtained using QPMS.
 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_body
\end_document
