EmField

EmField

Blocks define the properties of the electromagnetic (EM) fields in the simulation. An EmField can be one of many types, with the most commonly used being the explicitly time-advanced which can be constructed with the emMultiField and the VSimEm.mac, in which the basic components of the field are on the Yee mesh, and these fields are then averaged to cell nodes for use by other objects. The basic setup of the Yee EM field is illustrated below. In this setup, electric fields are located on the edges of grid cells, and magnetic fields are on the faces of the cell surfaces.

This EmField section describes general parameters for use with all EmField kinds, followed by descriptions of each individual EmField kind. Parameters specific to each individual kind are discussed within the description of each kind. InitialConditions and BoundaryConditions, including outGoing and kinds for EM fields only, are discussed in Initial and Boundary Conditions.

Yee Model

Fig. 601 Yee model for placing fields on the grid

Other fields include specified constant or functional fields and electrostatic fields. Multiple EM fields can co-exist in a simulation. Since each field will have a unique name, other objects in the simulation can reference them individually.

Electromagnetic fields are described by EmField blocks. Defining the EM field (EmField) input block involves defining the kind parameter, as well as nested input blocks that describe the electromagnetic boundary conditions.

Vorpal has several different algorithms that can be used to model EmFields. You specify which algorithm you would like Vorpal to use by using the kind parameter. For each different kind, different parameters apply.

All EmField kinds can specify initial and boundary conditions. Periodic boundary conditions are defined in the Decomp input block.

EmField Parameters

EmField:
Electromagnetic field implementation algorithm.
kind

One of the following:

  • constEmField: Works with VSimBase, VSimEM, VSimMD, VSimPA, and VSimPD licenses.

    EM field in which components are held constant throughout the simulation.

  • emMultiField: Works with VSimBase, VSimEM, VSimMD, VSimPA, and VSimPD licenses.

    Electromagnetic field described with the MultiField syntax. To construct standard Yee mesh explicit update use the basicEM macro.

  • funcEmField: Works with VSimBase, VSimEM, VSimMD, VSimPA, and VSimPD licenses.

    Values for this field are set by a space/time function using the STFunc object.

rhojweighting (string)

Option for current/charge deposition when using higher-order particles.

gridBoundary (string, default = sphere)

Defines the boundaries for an EM Field in the simulation. One of:

  • sphere (default)
  • universe
  • pycavity
  • stlfile
  • user-defined boundary

interpolation (string)

Defines the interpolation used with higher-order particles.

  • linearFromNodalFields:
    (default in case in which the interpolating fields are on the nodes)
  • esirk1stOrder (default in case in which the
    Interpolating fields are on the Yee mesh): Corresponds to bilinear or trilinear interpolation from the Yee mesh points. With a VSimPA or VSimPD license up to 7th order interpolation (esirk7thOrderCP) is available.
  • esirk1stOrderCP (default in case in which the
    Interpolating fields are on the Yee mesh): Corresponds to bilinear or trilinear interpolation from the Yee mesh points. With a VSimPA or VSimPD license up to 7th order interpolation (esirk7thOrderCP) is available. This variant is intended for use with coordProd (CP) grids.

interpOrder (string, default = linear)

String used in conjunction with the polynomial interpolation algorithm only. interpOrder describes the order of the interpolation from the Yee mesh. Interpolation options include:

  • linear (default)
  • quadratic
  • cubic
  • quartic

Note

Most of the time, rhojweighting and interpolation parameters for EmField will be the same. However, nodal fields use linearFromNodalFields and the Yee field uses esirk1stOrder. That is:

rhojweighting = esirk1stOrder
interpolation = esirk1stOrder

However, in cases in which:

rhojweighting = areaWeighting

then:

interpolation = linearFromNodalFields

which is the default for fields in which:

offset=none

Otherwise the default for fields with any other offset is:

interpolation = esirk1stOrder

In the case in which:

rhojweighting = bilinear

then:

interpolation = linearFromNodalFields

which is the default for fields in which:

offset=none

Otherwise the default for fields with any other offset is:

interpolation = esirk1stOrder

Every gridField object has a default interpolation algorithm.

In the example below, the interpolation is set in a higher-level object and is valid for all gridField objects created by that EmField:

<EmField ...>
   kind = emMultiField
   interpolation=...
   ...
</EmField>

The following code demonstrates how to change the interpolation for each gridField object individually:

<MultiField ...>
  <Field ...>
    kind = gridField
    interpolation=...
  </Field>
  ...
</MultiField>