# Top-level overview of scuff-em

scuff-em is a free, open-source software implementation of the boundary-element method (BEM) (or the "method of moments") of electromagnetic scattering. (More specifically, scuff-em implements the EFIE and PMCHWT formulations of the BEM using RWG basis functions.)

scuff-em originated as a specialized tool for using BEM techniques to model fluctuation-induced electromagnetic phenomena---such as Casimir forces and radiative heat transfer---and subsequently expanded into a general-purpose BEM solver targeting a variety of applications in nanophotonics.

scuff-em consists of a core library, implementing the basic BEM functionality, plus a large number of specialized application modules designed for specific problems in science and engineering.

scuff-em stands for Surface CUrrent/Field Formulation of ElectroMagnetism. This is a reference to the underlying solution methodology used by scuff-em and other BEM solvers, in which we solve first for surface currents [including both electric (K) and magnetic (N) currents, as cartooned in the scuff-em logo], then use these currents to compute the scattered fields or other quantities of interest.

The entire scuff-em suite is free software distributed under the GNU GPL. The source code for scuff-em may be downloaded from the scuff-em GitHub page. The GitHub page is also the right place for questions, bug reports, feature requests, and other discussion of scuff-em.

# Interfaces to scuff-em

The command-line interface consists of a large number of command-line applications for running various types of standard calculations in computational physics. Using scuff-em in this way requires only that you learn the basic command-line options

The application programming interface consists of C++ and python APIs that allow access to internal scuff-em data structures and methods for maximal flexibility in implementing your own custom-designed physics codes.

# Inputs to scuff-em calculations

Typical inputs to scuff-em calculations include

• A geometry file describing the scattering geometry

• An optional list of geometric transformations to be applied to the geometry, with calculations generally repeated at each transformation

• Specification of the frequencies (and, for extended geometries, the Bloch vectors) at which you want to perform calculations

• For scattering codes: a specification of the [incident fields][IncidentFields.md].

• Specifications of the output quantities you wish to get back: field components at individual points in space, power/force/torque information, Casimir quantities, heat-transfer rates, impedance parameters, capacitances, polarizabilities, etc.

# Outputs from scuff-em calculations

Typical outputs from scuff-em calculations include

• text-based data files reporting output quantities

• Visualization files written in GMSH post-processing format.

# Command-line Applications

## Nanophotonics / electromagnetic scattering

A general-purpose solver for problems involving scattering of known user-specified incident fields from material geometries. Available outputs include: scattered and total fields at arbitrary points in space; visualization of fields and surface currents; absorbed and scattered power; force and torque (radiation pressure); induced dipole or spherical multipole moments; and more.

• scuff-transmission

A specialized solver for computing plane-wave transmission in 2D extended geometries: thin films, perforated screens, nanoparticle arrays, etc.

• scuff-tmatrix

A specialized code for computing the T-matrices of arbitrary compact scatterers.

## Fluctuation-induced interactions

• scuff-cas3D

An implementation of the [fluctuating-surface-current approach to equilibrium Casimir forces][FSCPaper] in compact or extended geometries.

• scuff-caspol

A tool for computing Casimir-Polder potentials for polarizable molecules in the vicinity of compact or extended material bodies.

• scuff-neq

An implementation of the fluctuating-surface-current approach to non-equilibrium fluctuation-induced interactions among compact objects. Available outputs include: frequency-resolved or frequency-integrated rates of heat radiation or radiative heat transfer; non-equilibrium Casimir forces; self-propulsion and self-rotation of isolated bodies.

## RF / microwave engineering

• scuff-rf

A tool for modeling the electromagnetic properties of passive RF devices such as antennas and inductors. Available outputs include: frequency-dependent S-parameters for arbitrarily-shaped objects; radiated field patterns for antennas or other objects driven by user-specified currents.

## Electrostatics

• scuff-static

An electrostatic solver. Available outputs include: self- and mutual-capacitances of arbitrarily-shaped conductors ; DC polarizabilities of conducting and dielectric bodies; electrostatic fields (at user-specified evaluation points) in the presence of conducting surfaces held at user-specified potentials.

# Citing scuff-em

If you find scuff-em useful for generating results included in publications, please consider citing both (a) one of the papers discussing the implementation of scuff-em, and (b) the URL for the code. For example, if you are writing in LaTeX, you might write something like this:

Numerical computations were performed using {\sc scuff-em}, a free,
open-source software implementation of the boundary-element
method~\cite{SCUFF1, SCUFF2}.


Here the SCUFF1 and SCUFF2 references refer to the following .bibtex entries:

@ARTICLE{SCUFF1,
author = {{Homer Reid}, M.~T. and {Johnson}, S.~G.},
title = "{Efficient Computation of Power, Force, and Torque in
BEM Scattering Calculations}",
journal = {ArXiv e-prints},
archivePrefix = "arXiv",
eprint = {1307.2966},
primaryClass = "physics.comp-ph",
keywords = {Physics - Computational Physics, Physics - Classical Physics},
year = 2013,
month = jul,
}

@ARTICLE{SCUFF2,
note="\texttt{http://github.com/homerreid/scuff-EM}"
}