ConductorShape Block
ConductorShape:
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
(first, the cutCellPoisson should
update the potential at cell nodes within bounds
lowerBounds
= [0,0,0], upperBounds
= [NX+1, NY+1, NZ+1])
the slabCndctrShape should use
use lowerBounds
= [0,0,0], upperBounds
= [NX, NY, NZ],
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, NY+1, NZ],
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 (but cell [-1,-1,-1] will be vacuum, though that will likely be irrelevant to the simulation), and if false, cell [0, 0, 0] will be vacuum/dielectric (but cell [-1,-1,-1] will be metal-filled).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 (assumingcellsInBoundsAreMetal=false
).Note: a line conductor (e.g., a thin wire) can be set with a zero-volume slab, e.g.,
lowerBounds
= [0, 0, 0] andupperBounds
= [NX, 0, 0], withcellsInBoundsAreMetal=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 thelowerBounds
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>