fieldFunc

fieldFunc

A UserFunc that returns the value of a <Field> at the given position.

A kind=fieldFunc UserFunc takes a single argument, a spatial position (a vector of floats with as many components as spatial dimensions).

fieldFunc parameters

field (required string)

The name of a <Field> to query for information (It may be necessary to qualify the field name; for example, if <Field yeeE> appears within <MultiField emField>, then field=emField.yeeE should be specified.)

result (string, required)

Specifies what information about the <Field> the function will return; two results are currently available, fieldValue and zeroFieldValue. Depending on the result, different attributes apply.

Following is a list of results, the length and type of the vector returned, and the extra attributes (if any) that pertain to each specific result.

zeroFieldValue

result = zeroFieldValue returns a vector of zeros with the same length as the number of components in the field. This can be useful in anif-statement. For example, it would be useful for a function that does the following–if a cell is interior to a boundary, then return the (vector) field value in that cell, otherwise return all zeros.

fieldValue

result = fieldValue returns the (vector) value of a field at the given point in space. See below for more detail. Returns as many floats as components in the field; or 1 float if component is specified.

component (integer, optional)

The desired component of the field to be returned (if not specified, all components of the field are returned in a vector)

interpolationOrder (non-negative integer, default = 1)

The order of interpolation used to find the field value at a point; e.g., 1 means linear interpolation, which has second-order error in the length of a grid cell. N.B. the higher interpolationOrder is, the more field values from surrounding cells will be needed to perform the interpolation. E.g., when interpolating a field value to a point in cell [5] (in a 1D simulation), interpolationOrder=0 requires only the field value in one cell (probably cell [5]), whereas interpolationOrder = 6 might require field values from cells [2] through [8].

gridBoundary (string, optional)

The name of a <GridBoundary>; the field will be interpolated or extrapolated avoiding cells near the gridBoundary; that is, the gridded field values used to interpolate/extrapolate to the given point will be taken from cells far (enough) away from the boundary.

polation (string)

Required when gridBoundary is specified, with choices fromInOrOutside, fromInside, fromOutside. Whether field values will be interpolated/extrapolated from cells inside or inside the boundary (if fromInOrOutside, cells will be used on the same side of the boundary as the position at which the field value is desired).

boundaryCondition (string, optional)

Choices: none, dirichlet, neumann, electricAtPEC, magneticAtPEC with default = none. Except none, these options are not generally recommended, because they tend not to do exactly what one wishes. This attribute specifies a boundary condition to be used to extrapolate field values (near) to the given gridBoundary surface. The choice none is the same as specifying no boundaryCondition. Choices dirichlet or neumann assume that all field components, or the normal-derivatives of all field components, vanish at the boundary. For 3-vector fields (intended for electric and magnetic fields), the choice electricAtPEC assumes boundary conditions appropriate for an electric field at a perfectly conducting metal boundary (or for a magnetic field at a magnetically-conducting boundary); the choice magneticAtPEC is appropriate for a magnetic field at a perfectly-conducting metal boundary (or for an electric field at perfect magnetic conductor). The latter choices are appropriate for divergenceless fields only.