Computing the photonic local density of states with scuffldos
scuffldos 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 scuffldos 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 wavevectorresolved contributions to the LDOS. If you do not specify such a list, scuffldos will evaluate an integral over the Brillouin zone to compute the total LDOS at each point.
The outputs you get back from a scuffldos 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 wavevectorresolved information for each point in your list; otherwise, you will get wavevectorresolved information for each point chosen automatically by scuffldos in its numericalcubature evaluation of the Brillouinzone 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, scuffldos also includes builtin functionality to compute the LDOS for some geometries that may be handled analytically (specifically, infinitearea PEC ground planes and infinitearea dielectric halfspaces).
1. What scuffldos actually computes
Some technical details on the calculation performed by scuffldos may be found in this memo. The long story short is as follows:
What scuffldos 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 nonperiodic geometries, scuffldos does 6 scattering
calculations for each pointspecifically,
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 scuffem 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, scuffldos 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 scuffem calculations for periodic geometries,
all currents and fields, including incident fields,
must be Blochperiodic, a condition which is not satisfied
by the fields of a single point source at . Instead,
what scuffem can compute is the response of the system
to a phased array of point sourcesthat 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 resultsthat is, by
performing an integration over the BZ, effectively an
inverse Fourier transformwe recover
the fields of just the single point source at .
For periodic geometries, scuffldos performs this
BZ integration by numerical cubature for
each point. This involves sampling
the integrand (that is, computing Blochperiodic DGFs)
at large numbers of points; these samples,
which provide Blochvectorresolved information on the
LDOS and DGFs of the system, are reported by scuffldos
in the.byOmegakBloch
output file, while results
for the full (BZintegrated) LDOS are written to the
.LDOS
output file.
2. scuffldos commandline options
Common options
scuffldos recognizes the following subset of the [list of commonly accepted options to scuffem commandline 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 commandline arguments are optional.
If you specify Omega
or OmegaFile
in
a calculation involving a periodic geometry,
then scuffldos 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 scuffldos 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 scuffldos incorporates
The first option here instructs scuffldos to
bypass the usual LDOS calculation it would otherwise
perform and instead to compute the LDOS of an
auxiliary geometry in which the halfspace
region lying below the plane (the region
) is filled with a homogeneous material
described by the given
scuffem material designation.
If this material is PEC
, then the calculation
is performed using the imagesource method.
Otherwise, the calculation is performed using the
analytical planewave decomposition
outlined in the
scuffldos memo.
As illustrated by this example,
the HalfSpace
option is intended to be
tacked on to an otherwise complete scuffldos
commandline containing options such as
geometry
and EPFile.
With HalfSpace
,
scuffldos performs the same calculation that
it would do without that optionusing the same
evaluation points and the same frequency optionsbut
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. scuffldos output files
The .log
file
Like all commandline codes in the scuffem suite,
scuffldos 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 nonperiodic geometries. For
calculation on periodic geometries, this file is
produced only if you specified the
Omega
and/or OmegaFile
commandline options.
The .byOmegakBloch
file
This file reports Blochvector resolved versions
of the information reported by the .LDOS
file.
This file is only produced for calculations on
periodic geometries.