- setEpsilonUpdater
setEpsilonUpdater
Works with VSimEM and VSimVE 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,
dielectricConstXYis used anddielectricConstYXis ignored.
- dielectricConstYZ (required parameter block)
and
- dielectricConstZY (required parameter block)
Similar to
dielectricConstXYanddielectricConstYX, but describing the \(yz\) component. If both are specified,dielectricConstYZis used anddielectricConstZYis ignored.
- dielectricConstZX (required parameter block)
and
- dielectricConstXZ (required parameter block)
Similar to
dielectricConstXYanddielectricConstYX, but describing the \(zx\) component. If both are specified,dielectricConstZXis used anddielectricConstXZis 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>