ConductorShape:
Works with VSimPD license.
The block describes the shape of an electrical conductor. It is used inside a cutCellPoisson Updater (or inside a Conductor Block inside a cutCellPoisson Updater).
There are currently two ways to specify a Conductor shape: for a grid-conforming slab, use
kind=slabCndctrShape
. For an arbitrary shape described by a GridBoundary, usekind=gridBndryCndctrShape
.
ConductorShape kind = slabCndctrShape
A slabCndctrShape is a conductor that fills a slab a cells with metal.
Detailed descriptions of attributes are below. Most cases, however, will be covered by a couple examples. For these examples, consider a simulation with [NX, NY, NZ] cells.
Example 1 (most common case).
To surround the simulation box with metal walls,
use lowerBounds
= [0,0,0], upperBounds
= [NX+1, NY+1, NZ+1],
and cellsInBoundsAreMetal=false
.
Example 2. To surround the simulation with metal walls, except in the y-direction
(one might want to do this, e.g., if the simulation is periodic in y)
use lowerBounds
= [0,-1,0], upperBounds
= [NX+1, NY+2, NZ+1],
and cellsInBoundsAreMetal=false
.
Example 3. To put a metal box into the simulation, filling cells from
[4,3,2] through [10,11,12] with metal – i.e., including cell [10,11,12],
use lowerBounds
= [4,3,2], upperBounds
= [11,12,13],
and cellsInBoundsAreMetal=true
.
lowerBounds (required vector of integers, length NDIM)
The lowerBounds
(in cell indices) of the cells in the slab.
E.g., if lowerBounds
= [0, 0, 0], then grid cell node [0, 0, 0]
will be in metal; if cellsInBoundsAreMetal=true
then cell
[0, 0, 0]
will be metal-filled, and if false, cell [0, 0, 0] will be
vacuum/dielectric.
Note: with periodic boundary conditions, it is sometimes desirable
to avoid setting the lower boundary to be in metal. This can be
accomplished by setting the lowerBound to -1; e.g., if the simulation
is periodic in x, setting lowerBounds
= [-1, 0, 0] will ensure that
the lower x boundary is not in metal (assuming
cellsInBoundsAreMetal=false
).
Note: a line conductor (e.g., a thin wire) can be set with a zero-volume
slab, e.g., lowerBounds
= [0, 0, 0] and upperBounds
= [NX, 0, 0],
with cellsInBoundsAreMetal=true
.
upperBounds (required vector of integers, length NDIM)
The upperBounds
(in cell indices) of the cells in the slab.
Grid cell nodes on the boundary are always metal.
E.g., if upperBounds
= [10, 11, 12], then grid cell node [10, 11, 12]
is in metal; if ‘cellsInBoundsAreMetal=true’ then node [9, 10, 11]
will be in metal but node [11, 12, 13] will not, and if false, then
node [11, 12, 13] will be in metal but [9, 10, 11] will not.
(That’s assuming the lowerBounds
are much lower, e.g., [4, 3, 2].)
Note: with periodic boundary conditions, it is sometimes desirable
to avoid setting the upper boundary to be in metal. This can be
accomplished by setting the upperBound one above the global domain
upper boundary (assuming cellsInBoundsAreMetal=false
).
cellsInBoundsAreMetal (optional boolean, default false)
If true, the cells within the bounds are metal-filled. If false, the cells outside the bounds are metal-filled.
ConductorShape kind = gridBndryCndctrShape
gridBoundary (required string)
The name of a GridBoundary object that describes the conductor.
insideIsMetal (optional boolean, default false)
If false, then metal conductor is outside the gridBoundary (the standard definition for deymittra electromagnetics); if true, the metal conductor is inside the gridBoundary.
deymittraConforming (optional boolean, default false)
If true, a grid cell edge that is cut by the gridBoundary surface
(hence is partly in vacuum and partly in metal)
will be considered to be entirely in metal if the Dey-Mittra
electromagnetic algorithm neglects the edge because it borders a
cut cell face that is too small. Cf. the dmFrac
option of
GridBoundary.
This should usually be false unless it’s critical that the electrostatic field be a static solution of the electromagnetic time-advance.
ConductorShape
Examples<ConductorShape block>
kind = slabCndctrShape
lowerBounds = [0 0 0]
upperBounds = [10 11 12]
cellsInBoundsAreMetal = false
</Conductor Shape>
# N.B.: it is best not to give the ConductorShape the same
# name as the gridBoundary -- it tends to make it confusing
# to look up the object "sphere" if both the <GridBoundary>
# and the <ConductorShape> are named "sphere".
<ConductorShape sphereC>
kind = gridBndryCndctrShape
gridBoundary = sphere
insideIsMetal = false
deymittraConforming = false
</Conductor Shape>