Postprocessing and Visualization

As described in the section Problem Types, each simulation type writes relevant postprocessed scalar quantities to disk in the directory specified by config["Problem"]["Output"], including but not limited to computed values like eigenfrequencies, scattering parameters, or lumped element parameters. In addition, each simulation type will write a file called domain-E.csv, which includes information about the electric and magnetic field energies, as well as lumped element energies, for each step of the simulation (eigenmode, frequency, or time step, for examples).

Models containing lumped or wave port boundaries or surface current excitations will automatically postprocess quantities related to those boundaries. This is described in Ports and surface currents.

The participation ratios for bulk dielectrics and interface dielectric layers can be computed for simulations involving the electric field. For model boundaries, the integrated surface charge or magnetic flux can also be postprocessed. These features are described in Domain postprocessing and in Boundary postprocessing.

Additionally, the computed fields can be automatically probed for their vector values at one or more points in space. This probe functionality is also described in Domain postprocessing.

Finally, as described further in Visualization, various field quantities on the 3D computational domain as well as 2D domain boundaries and material interfaces are written to disk when requested using the relevant parameters under config["Solver"]. These fields are meant to be visualized with ParaView.

Ports and surface currents

When lumped ports are present in a model, the lumped port voltages and currents computed for each step of the simulation (eigenmode, frequency, or time step) are written to ASCII files named port-V.csv and port-I.csv, respectively. These files also include the excitation voltage and current corresponding to the incident wave on excited port boundaries.

Additionally, when surface current excitations are present, the excitations are written to surface-I.csv.

For frequency domain problems, the values output are the complex-valued peak voltages and currents, computed from the field phasors.

Domain postprocessing

Domain postprocessing capabilities are enabled by including objects under config["Domains"]["Postprocessing"] in the configuration file. These include:

  • config["Domains"]["Postprocessing"]["Energy"] : Postprocessess the electric and magnetic field energy inside of a given domain (associated with the specified domain attributes and indexed by the specified integer "Index"). These are from the electric and magnetic field solutions and written to the same domain-E.csv file in the specified postprocessing output directory used for the global energies (described above).
  • config["Domains"]["Postprocessing"]["Probe"] : Probe the values of the computed electric field and magnetic flux density solutions at specified locations in the computational domain. The availability of the $\bm{E}$ and $\bm{B}$ fields depends on the problem type (for example, for magnetostatic problems, only $\bm{B}$ is output and $\bm{E}$ is not computed, whereas the inverse is true for electrostatics). For each computed field, the postprocessed values are written to probe-E.csv and probe-B.csv in the specified output directory.

Boundary postprocessing

Boundary postprocessing capabilities are enabled by including objects under config["Boundaries"]["Postprocessing"] in the configuration file. These include:

Visualization

When specified in the configuration file, the electric field and magnetic flux density solutions are written to disk for 3D visualization with ParaView. Various other postprocessed fields are also written to the ParaView database as available, including electric and magnetic energy density, surface currents, and charge density. These files are found in the paraview/ directory located in the output directory specified under config["Problem"]["Output"].

All fields are written out as nondimensionalized quantities. The specific quantities available varies by simulation type, but the variable names for various possible postprocessed scalar and vector are:

  • Electric field: E, E_real, and E_imag
  • Magnetic flux density: B, B_real, and B_imag
  • Electric potential: V
  • Magnetic vector potential : A, A_real, and A_imag
  • Electric energy density : U_e
  • Magnetic energy density : U_m
  • Poynting vector: S

Also, at the final step of the simulation the following element-wise quantities are written for visualization:

  • Mesh partitioning (1-based): Rank
  • Error indicator: Indicator

In addition to the full 3D fields, a ParaView data collection for the boundary mesh and fields is also written to disk. The boundary mesh includes all surfaces with prescribed boundary conditions as well as any material interfaces in the computational domain. It is located in the same paraview/ directory, with suffix _boundary.

The boundary data collection includes the 3D field values sampled on the boundary mesh as well as:

  • Surface charge density: Q_s, Q_s_real, Q_s_imag
  • Surface current density: J_s, J_s_real, J_s_imag

Adaptive mesh refinement

At the start of an adaptive mesh refinement (AMR) iteration, if config["Model"]["Refinement"]["SaveAdaptIterations"] is enabled, the postprocessing results from the solve on the previous mesh will be saved off within a subdirectory denoted iterationX, where X is the (1-based) iteration number. The results in the top level directory will always be those from the most recent successful solve.