Solving electrostatics problems with scuff-static
The calculations that scuff-static can perform include the following:
Compute the capacitance matrix (i.e. the self- and mutual- capacitances) of a collection of conductors.
Compute the DC polarizability of a conducting or dielectric body.
Compute the electrostatic potential and field at arbitrary user-specified points in the vicinity of conducting or dielectric bodies, with the conductors maintained at arbitrary user-specified potentials and (optionally) an arbitrary user-specified external forcing field.
Compute the C-matrix, a sort of electrostatic version of the "T-matrix" used to characterize the scattering properties of bodies at nonzero frequencies. The C-matrix was shown in this paper to be related to quantum-mechanical entanglement entropy.
As a technical detail, we note that the implementation of scuff-static actually differs in some significant ways from the other codes in the scuff-em suite; in particular, as compared to the scuff-em core library, scuff-static uses different basis functions and a different formulation of the boundary-element method, as appropriate for zero-frequency problems. (More specifically, scuff-static expands surface electric charge densities on PEC and dielectric surfaces using ``pulse'' basis functions, which are constant on individual triangles and vanishing everywhere else.) However, from the implementation standpoint, it turns out that the calculations needed to implement the electrostatics calculations in scuff-static are a proper subset of the calculations already implemented in scuff-em. Moreover, from the user's standpoint, the work needed to set up a scuff-static problem (create surface meshes, write geometry files, etc.) is similar to the setup needed for the nonzero-frequency codes in the scuff-em suite. This is why it makes sense to package these codes together.
Here is a brief technical memo discussing the implementation of scuff-static, including both the underlying BEM electrostatics formulation and the execution of the various types of calculation (capacitance, polarizability, etc.) that the code can do.
1. scuff-static command-line options
scuff-static recognizes the following subset of the list of commonly accepted options to scuff-em command-line codes.
Options requesting capacitance-matrix output
If you specify a file name using
will compute the full capacitance matrix for your geometry
and write the data to the specified file. (The file will be
overwritten if it already exists.)
--TransFile option may be used to specify a
to be applied to your geometry. In this case, the full capacitance
matrix will be computed for each specified transformation.
Options requesting polarizability output
If you specify a file name using
will compute the DC polarizability of each object in your
geometry and write the data to the specified file. (The file
will be overwritten if it already exists.)
Options requesting computation of electrostatic fields
If you specify a list of field evaluation points using
--EPFile MyEPFile, then scuff-static will compute
the electrostatic potential and field at each evaluation
point and write the results to a file named
(The file will be overwritten if it already exists.)
The file will contain a header explaining how to interpret
--PlotFile option may be used to request
creation of a gmsh visualization file plotting
the induced charge density on all conducting and
dielectric surfaces in the geometry.
If you say
--PlotFile MyPlotFile.pp, then you
will get a file named
may be opened in gmsh for visualization purposes.
By default, all conductor surfaces will be held
at zero potential. If you wish to set one or more
conductor surfaces to non-zero potential, you may do this
--PotFile MyPotFile (here "pot" is short
MyPotFile should be simply a
list of (surface label, potential value) pairs,
LowerSurface are the
labels you assigned to the surfaces in question
.scuffgeo file. (The label is the string
.scuffgeo file.) This would set the
UpperSurface to a potential of
1.2 volts and the conductor surface
to a potential of -3.4 volts.
By default, the calculation will be performed with
no external electrostatic field. You can say e.g.
--ConstField X to request that the calculation
be performed in the presence of a constant unit-strength
electrostatic field pointing in the positive
Alternatively, you may use the
to specify the name of a file describing a more
complicated (non-constant) external field.