setEpsilonUpdater

setEpsilonUpdater

Works with VSimEM and VSimMD licenses.

Fills the symmetric inverseEpsilon field (6 components, xx, yy, zz, xy=yx, yz=zy, zx=xz) from the given dielectric functions.

When a cell is partially filled (as determined by subsampling the functions over the cell), the dielectric is averaged appropriately over the cell. The number of samples per cell should increase as the simulation resolution increases, to maintain accuracy.

The setEpsilonUpdater requires one writeFields (the invEpsilon field with six (6) components) and no (0) readFields.

To define the dielectric constant, use STFunc blocks with the name dielectricConstNM where N and M represent the components [X Y Z]. A total of 6 blocks (components) are needed. Vorpal will first look for XY, YZ, and ZX, and use these values if they are present. However, if, XY is missing, Vorpal will use YX instead. If both XY and YX are present, Vorpal will use XY and ignore YX.

To define the surface normals (the vector normal to the dielectric interface at any location (x,y,z) that is within a cell length of the interface), use an STFunc block with a name surfNormalN where N represents the component [X Y Z].

setEpsilonUpdater Parameters

The setEpsilonUpdater takes the lowerBounds and upperBounds parameters of FieldUpdater, as well as the following parameters:

writeFields (required string vector)

A single element, the name of the 6-component inverse permittivity tensor field to update.

samplesPerCell (optional integer vector, default = [1 1 1])

Number of locations (in each direction, \(x\), \(y\), and \(z\)) at which the dielectric is sampled in each cell. Although the default is [1 1 1], usually [7 7 7] or higher would be a better choice.

dielectricConstXX (required parameter block)

This parameter block, which must be of type STFunc, specifies a function describing the \(xx\) component of the relative permittivity.

dielectricConstYY (required parameter block)

Similar to dielectricConstXX, but describing the \(yy\) component.

dielectricConstZZ (required parameter block)

Similar to dielectricConstXX, but describing the \(zz\) component.

dielectricConstXY (required parameter block)

and

dielectricConstYX (required parameter block)

This parameter block, which must be of type STFunc, specifies a function describing the \(xy\) component of the relative permittivity. At least one of these parameter blocks must be specified; if both are, dielectricConstXY is used and dielectricConstYX is ignored.

dielectricConstYZ (required parameter block)

and

dielectricConstZY (required parameter block)

Similar to dielectricConstXY and dielectricConstYX, but describing the \(yz\) component. If both are specified, dielectricConstYZ is used and dielectricConstZY is ignored.

dielectricConstZX (required parameter block)

and

dielectricConstXZ (required parameter block)

Similar to dielectricConstXY and dielectricConstYX, but describing the \(zx\) component. If both are specified, dielectricConstZX is used and dielectricConstXZ is ignored.

surfNormalX (required parameter block)

This parameter block, which must be of type STFunc, specifies a function describing the \(x\) component of the unit vector normal to the dielectric interface at the point on the interface closest to the position of the function argument. This value must be valid for any position argument within one grid cell of the interface.

surfNormalY (required parameter block)

Similar to surfNormalX, but describing the \(y\) component of the surface normal unit vector.

surfNormalZ (required parameter block)

Similar to surfNormalX, but describing the \(z\) component of the surface normal unit vector.

Example dielectricConst STFunc Block

<STFunc dielectricConstXZ>
    kind = expression
    expression = 1.+H(R^2-(x-X0)^2-(y-Y0)^2-(z-Z0)^2)*(REL_EPS_ZZ-1)
</STFunc>

Example surfNormal STFunc Block

<STFunc surfNormalX>
    kind = expression
    expression = x-X_SPHERE
</STFunc>