M. T. Homer Reid MIT Home Page
Physics Problems Research My Music About Me Miscellany


Codes





scuff-em: Free, open-source software for boundary-element analysis of problems in computational physics and engineering

scuff-em is a free, open-source software package for analysis of electromagnetic scattering problems using the boundary-element method (BEM). (The BEM is also known as the "method of moments.")

The scuff-em suite consists of two components: a core library that implements the essential algorithms of the boundary-element method, and a set of application programs built atop the core library for solving specific problems in various fields of physics and engineering.

The core library, libscuff, is written in C++ but may also be accessed from python. Extensive documentation of the programming interfaces is available from the links below.

The application programs, implemented as console-based command-line utilities, include tools for (1) general electromagnetic scattering of arbitrary incident fields from compact or periodically extended scatterers; (2) computation of Casimir forces and Casimir-Polder potentials in complex geometric and material configurations; and (3) modeling of RF and microwave devices, including computation of multiport network parameters and radiated fields for antennas, lumped elements, and other RF devices.

The entire scuff-em suite is free software distributed under the GNU GPL.

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.

scuff-em
Examples
Installation
Core Library
Applications
Reference

What scuff-em can do


Main page: A compendium of scuff-em Examples

To give you a taste of the kinds of things you can do with scuff-em, here's a smattering of example calculations. All of these calculations run on a standard desktop workstation in a few minutes.

Downloading and installing scuff-em


Main page: scuff-em Installation

The latest release of scuff-em is version 0.95, which you may download here:

Complete installation instructions, release notes, etc. are available on the scuff-em installation page.

The scuff-em core library


Main page: The scuff-em core library

The core library in scuff-em is written in c++ and may be accessed from programs written in c++ or python. The main features of the library include:

  • Implementation of the EFIE and PMCHW formulations of the boundary-element approach to electromagnetic scattering problems.

  • Support for object surfaces discretized using RWG basis functions (for compact 3D bodies) or 2D rooftop functions (for z-invariant geometries).

  • Support for bodies of arbitrary frequency-dependent (linear, passive, isotropic, spatially homogeneous) dielectric permittivity and magnetic permeability: perfect metals, lossy dielectrics, linear magnetic materials.

  • Nested surfaces (one body fully contained inside another body).

  • Bloch-periodic boundary conditions for finite and infinite 1D and 2D arrays of scatterers.

  • Support for calculations at complex or purely imaginary frequencies (ω=iξ), as required for Casimir computations.

  • Optimizations to accelerate computations on the same structure at many different frequencies.

scuff-em Applications


The scuff-em suite includes standalone programs for solving specific problems in a variety of fields of computational physics and engineering.

  • Electromagnetic Scattering Applications
  • scuff-scatter is a comprehensive command-line application for solving problems involving various types of electromagnetic radiation (plane waves, gaussian beams, etc.) scattering off of compact objects of arbitrary shapes and material properties.
    scuff-transmission is a command-line application for computing the transmission and reflection coefficients of thin films, metamaterial sheets, nanoparticle arrays, and similar geometries.
    scuff-tmatrix is a command-line application for computing the T-matrix of an arbitrary compact object.

  • Casimir Applications
  • scuff-cas3d computes Casimir forces, energies, and torques between compact 3D objects of arbitrary shapes and material properties.
    scuff-cas2d computes Casimir forces, energies, and torques between 2D objects (z-invariant objects) of arbitrary shapes and material properties.
    scuff-caspol computes Casimir-Polder potentials for molecules of arbitrary polarizability in the vicinity of surfaces of arbitrary shapes and material properties.

  • RF/Microwave Applications
  • scuff-rf computes multiport network parameters (S- and impedance parameters), as well as radiated fields, for passive RF and microwave structures.

scuff-em Reference





scuff-em
Examples
Installation
Core Library
Applications
Reference


scuff-EM: Free, open-source boundary-element software for nanophotonics, Casimir forces, RF/Microwave devices, and more, by Homer Reid
Last Modified: 02/09/13