Field Dump

In most applications, the input and output signals at the Ports is sufficient for characterizing a structure, such as its frequency response.

However, some special applications make use of the raw electromagnetic fields, not just the input and output signals. We can do this by creating a “dump box” (a region in space where field values are recorded) to save field samples to disk. For troubleshooting malfunctioning setups, this is especially helpful as one can identify the problematic region through direct visualization.

Several kinds of dump boxes exist.

  1. Time-domain dumps of electric field \(\mathbf{E}\), auxiliary magnetic field \(\mathbf{H}\), electric conduction current \(\mathbf{J}\), total current density \(\mathrm{\nabla} \times \mathbf{H}\), electric displacement field \(\mathbf{D}\), and magnetic field (flux density) \(\mathbf{B}\), with their dump_type numbered from 0 to 5.

  2. Frequency-domain dumps of electric field, auxiliary magnetic field, electric conduction current, total current density, electric displacement field, and magnetic field (flux density), numbered from 10 to 15.

  3. Specific Absorption Rate (SAR) for biological EM radiation exposure analysis.

  4. Near-Field to Far-Field Transformation (NF2FF) for antenna analysis (special setup required, via openEMS.openEMS.CreateNF2FFBox() and a separate post-processing tool).

Note

openEMS calculates the total current density via Ampere-Maxwell’s law \(\mathrm{\nabla} \times \mathbf{H}\), which is \(\mathbf{J} + \frac{\partial \mathbf{D}}{\partial t}\) (i.e. the sum of conduction current and displacement current).

Usage

It’s added by the AddDump() method in Matlab/Octave. In Python, use the CSXCAD.ContinuousStructure.AddDump() method (see CSPropDumpBox for a detailed list of parameters).

Important

Like all CSXCAD Properties, field dumps are also “materials” albeit non-physical, so they should be associated with one or more Primitives (i.e. geometric shapes) as well.

Example

Dump the total current density (dump_type=3) on at 2D surface from (-100, -100) to (100, 100) at Z = 8:

% Octave
%TODO

# Python
dump = csx.AddDump("curl_H_upper", dump_type=3)
dump.AddBox(start=[-100, -100, 8], stop=[100, 100, 8])