Computing the photonic local density of states with scuff-ldos
scuff-ldos is a tool for computing the electromagnetic local density of states (LDOS) at points inside or outside compact or extended material bodies.
The inputs you supply to scuff-ldos calculation are
-
A
.scuffgeo
file describing your geometry. -
A list of evaluation points at which you want to know the LDOS.
-
One or more angular frequencies at which to perform calculations.
-
Optionally, for periodic geometries, you may additionally specify a list of Bloch wavevectors at which to evaluate wavevector-resolved contributions to the LDOS. If you do not specify such a list, scuff-ldos will evaluate an integral over the Brillouin zone to compute the total LDOS at each point.
The outputs you get back from a scuff-ldos calculation may include
-
The LDOS at each point.
-
For periodic geometries, the contributions of individual Bloch wavevectors to the LDOS. If you supplied a list of Bloch vectors as an input, you will get wavevector-resolved information for each point in your list; otherwise, you will get wavevector-resolved information for each point chosen automatically by scuff-ldos in its numerical-cubature evaluation of the Brillouin-zone integral.
-
Optionally, the full Cartesian components of the scattering parts of the dyadic Green's functions (DGFs) [the electric / magnetic LDOS is proportional to the imaginary part of the trace of the electric / magnetic DGFs].
For testing purposes, scuff-ldos also includes built-in functionality to compute the LDOS for some geometries that may be handled analytically (specifically, infinite-area PEC ground planes and infinite-area dielectric half-spaces).
1. What scuff-ldos actually computes
Some technical details on the calculation performed by scuff-ldos may be found in this memo. The long story short is as follows:
What scuff-ldos actually computes is the scattering part of the dyadic Green's functions (DGFs) of the geometry in question. For a given (angular frequency, evaluation point) pair , these are matrices giving the scattered fields at due to point sources at , with all fields and sources having time dependence . (The full definition may be found in the memo above). The LDOS is obtained from the imaginary part of the traces of the DGFs.
For non-periodic geometries, scuff-ldos does 6 scattering
calculations for each point---specifically,
scattering calculations in which the incident field is the
field of an electric or magnetic point source oriented in
each of the 3 cartesian directions. (Because these calculations
involve the same scattering geometry at the same frequency,
just with different incident fields, they are fast in a
BEM solver like scuff-em because the BEM matrix need
not be recomputed anew for each new incident field.) The
results for the LDOS at each point are
reported in the .LDOS
output file.
For periodic geometries, scuff-ldos does many scattering
calculations for each point.
Indeed, the DGFs at are defined as the response of
the system to a single point source at ; however, in
in scuff-em calculations for periodic geometries,
all currents and fields, including incident fields,
must be Bloch-periodic, a condition which is not satisfied
by the fields of a single point source at . Instead,
what scuff-em can compute is the response of the system
to a phased array of point sources---that is, an infinite
collection of point sources located at points
with phases ; here ranges over all
lattice vectors in a 1D or 2D lattice, and is
a 1D or 2D Bloch wavevector that ranges over the
Brillouin zone (BZ) of the reciprocal lattice. By performing
these calculations at all possible Bloch vectors
and adding up the results---that is, by
performing an integration over the BZ, effectively an
inverse Fourier transform---we recover
the fields of just the single point source at .
For periodic geometries, scuff-ldos performs this
BZ integration by numerical cubature for
each point. This involves sampling
the integrand (that is, computing Bloch-periodic DGFs)
at large numbers of points; these samples,
which provide Bloch-vector-resolved information on the
LDOS and DGFs of the system, are reported by scuff-ldos
in the.byOmegakBloch
output file, while results
for the full (BZ-integrated) LDOS are written to the
.LDOS
output file.
2. scuff-ldos command-line options
Common options
scuff-ldos recognizes the following subset of the [list of commonly accepted options to scuff-em command-line codes][CommonOptions].
--geometry--EPFile--Omega--OmegaFile--OmegakBlochFile--AbsTol--RelTol--FileBase--Cache--ReadCache--WriteCache
Of these options, --geometry
and --EPFile
are
always mandatory, while one of
--Omega
, --OmegaFile
, or --OmegakBlochFile
must also be specified. All
other command-line arguments are optional.
If you specify --Omega
or --OmegaFile
in
a calculation involving a periodic geometry,
then scuff-ldos will perform a numerical
cubature over the Brillouin zone for each
value. (The options --BZSymmetry
,
--AbsTol
, and --RelTol
control the
parameters of this cubature.) Samples
of the integrand at the cubature points
will be written to the .byOmegakBloch
file, while the full integrated resuts
will be written to the .LDOS
file.
Alternatively, if you use --OmegakBlochFile
to specify a list of ()
points, then scuff-ldos will skip the
numerical BZ cubature and instead perform
computations at just the points you
specified. In this case you wil get back a
.byOmegakBloch
file, but not an
.LDOS
file.
Options requesting analytical LDOS calculations
```` --GroundPlane
--HalfSpace PEC --HalfSpace Aluminum
--SkipBZIntegration ````
As noted above, for testing purposes scuff-ldos incorporates
The first option here instructs scuff-ldos to
bypass the usual LDOS calculation it would otherwise
perform and instead to compute the LDOS of an
auxiliary geometry in which the half-space
region lying below the plane (the region
) is filled with a homogeneous material
described by the given
scuff-em material designation.
If this material is PEC
, then the calculation
is performed using the image-source method.
Otherwise, the calculation is performed using the
analytical plane-wave decomposition
outlined in the
scuff-ldos memo.
As illustrated by this example,
the --HalfSpace
option is intended to be
tacked on to an otherwise complete scuff-ldos
command-line containing options such as
--geometry
and --EPFile.
With --HalfSpace
,
scuff-ldos performs the same calculation that
it would do without that option---using the same
evaluation points and the same frequency options---but
just does the calculation a different way. (Although
the surface meshes specified in the .scuffgeo
file are not referenced in this case, a
valid .scuffgeo
file must still be supplied;
the LATTICE...ENDLATTICE
section of this
file is used to define the lattice used
for the analytical calculation.)
3. scuff-ldos output files
The .log
file
Like all command-line codes in the scuff-em suite,
scuff-ldos produces a text output file named
FileBase.log
that you can follow to monitor the
status of your calculation.
The .LDOS
file
This file reports values of the electric and magnetic
LDOS for each angular frequency and each evaluation
point you requested. This file is always produced
for calculations on non-periodic geometries. For
calculation on periodic geometries, this file is
produced only if you specified the
--Omega
and/or --OmegaFile
command-line options.
The .byOmegakBloch
file
This file reports Bloch-vector resolved versions
of the information reported by the .LDOS
file.
This file is only produced for calculations on
periodic geometries.