- 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,
dielectricConstXY
is used anddielectricConstYX
is ignored.
- dielectricConstYZ (required parameter block)
and
- dielectricConstZY (required parameter block)
Similar to
dielectricConstXY
anddielectricConstYX
, but describing the \(yz\) component. If both are specified,dielectricConstYZ
is used anddielectricConstZY
is ignored.
- dielectricConstZX (required parameter block)
and
- dielectricConstXZ (required parameter block)
Similar to
dielectricConstXY
anddielectricConstYX
, but describing the \(zx\) component. If both are specified,dielectricConstZX
is used anddielectricConstXZ
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>