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].
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.
<STFunc dielectricConstXZ>
kind = expression
expression = 1.+H(R^2-(x-X0)^2-(y-Y0)^2-(z-Z0)^2)*(REL_EPS_ZZ-1)
</STFunc>
<STFunc surfNormalX>
kind = expression
expression = x-X_SPHERE
</STFunc>