Grid specification
!------------------------------------------------!
$grid-specification
required !
grid-type
integer_array
optional ! 1 1 1
for xyz-grid, 1 0 1
for xz-grid, 1 1 0
for xy-grid ..., 1 0 0
for x-grid
! redundant: $simulation-dimension, orientation = ...
is now used.
x-grid-lines
double_array
optional ! specification of
gridlines required
x-nodes
integer_array
optional ! subregions, specified
by gridlines above must be on a grid line of the final grid
x-grid-factors double_array
optional ! grid coarsening
factors in subregions
y-grid-lines
double_array
optional ! specification of
gridlines required
y-nodes
integer_array
optional ! subregions, specified
by gridlines above must be on a grid line of the final grid
y-grid-factors double_array
optional ! grid coarsening
factors in subregions
z-grid-lines
double_array
optional ! specification of
gridlines required
z-nodes
integer_array
optional ! subregions, specified
by gridlines above must be on a grid line of the final grid
z-grid-factors double_array
optional ! grid coarsening
factors in subregions
$end_grid-specification
required !
!------------------------------------------------!
Grid type
grid-type = 1 1 1 for xyz-grid
=
1 0 1 for xz-grid
=
1 1 0 for xy-grid
= ...
=
1 0 0 for x-grid
Grid type selects by an integer array the coordinate axis relevant for the
present simulation. It must be identical to the array orientation specified
under the keyword $simulation-dimension. The input for the grid
type is required and mainly used for consistency checks.
Grid lines
x-grid-lines = double1 double2 double3 ...
y-grid-lines = double1 double2 double3 ...
z-grid-lines = double1 double2 double3
...
Explicit specification of grid lines for the coordinate directions of the
simulation domain. For each coordinate specified under keyword
$regions there must exist a grid line. In
addition to these, one is allowed to specify extra grid lines. At material
boundaries there must be a grid line.
Grid lines (nodes) between explicitly defined grid lines
x-nodes = int1 int2 ...
y-nodes = int1 int2 ...
z-nodes = int1 int2 ...
Between each grid line there are a certain number of nodes. One node is a
kind of grid line.
(The final grid which is called physical grid, consisting of grid lines and
nodes is being transformed to the material grid (volume grid). A material grid
point is placed exactly in between two physical grid points. The physical grid is
being discretized to solve for
instance the Poisson equation.
More
information on grids ...)
Subregions, specified by grid lines above,
must be on a grid line of the final grid.
Add int1, int2, ... grid lines between two explicitly specified grid lines
above. Between any explicitly defined pair of gridlines, the number of
additional nodes must be specified, even if zero grid lines (nodes) have to be
added.
For a distance of 1 nm, 2 nodes should be a maximum (upper limit).
Grid factors (inhomogeneous grid)
x-grid-factors = double1 double2 ...
y-grid-factors = double1 double2 ...
z-grid-factors = double1 double2 ...
Grid coarsening factors in subregions.
The nodes specified above are distributed according to a geometric series
between the explicitly defined grid lines. The spacing between successive
additional grid lines increases (factor > 1.0) or decreases
(factor <1.0) in the corresponding coordinate axis direction.
(Comment: The term "inhomogeneous" refers to grid lines (=nodes)
between two adjacent grid lines (=x/y/z-grid-lines). However, the
total grid of the whole device is likely to be inhomogeneous in general even if
the grid factor is always 1.0d0.)
1D Example
$grid-specification
grid-type = 0 0 1
z-grid-lines = 0d0 50d0 100d0 108d0 116d0 196d0
246d0 296d0
z-nodes = 5
20 15 15 25
20 5
z-grid-factors = 1d0 2d0 1d0 1d0 1d0 1d0 1d0
$end_grid-specification
For a distance of 1 nm, 2 nodes should be a maximum (upper
limit).
2D Example
This picture resembles the Double Gate MOSFET in
2D Tutorial.

This grid was produced by the following lines in the input file:
!---------------------------------------------------------------------------!
$regions
!
region-number = 1
base-geometry = rectangle
region-priority = 1 !
x-coordinates = 19d0 28d0 y-coordinates =
0d0 116d0
! Si
region-number = 2
base-geometry = rectangle
region-priority = 2 !
x-coordinates = 19d0 28d0 y-coordinates =
0d0 8d0
! Source
region-number = 3
base-geometry = rectangle
region-priority = 2 !
x-coordinates = 19d0 28d0 y-coordinates =
108d0 116d0
! Drain
region-number = 4
base-geometry = rectangle
region-priority = 2 !
x-coordinates = 0d0 17d0 y-coordinates
= 39d0 78d0
! Gate
region-number = 5
base-geometry = rectangle
region-priority = 2 !
x-coordinates = 30d0 48d0 y-coordinates =
39d0 78d0
! Backgate
$end_regions
!
!---------------------------------------------------------------------------!
!---------------------------------------------------------------------------!
$grid-specification
!
grid-type = 0 1 1
!
x-grid-lines = 0d0 17d0 19d0 19.5d0 27.5d0
28d0 30d0 48d0
!
x-nodes =
3 5 1 10
1 5 3
!
x-grid-factors = 1d0 1d0 1d0
1d0 1d0 1d0 1d0
!
y-grid-lines = 0d0 8d0 39d0 39.5d0 77.5d0 78d0
108d0 116d0
!
y-nodes =
1 10 1 20
1 10 1
!
y-grid-factors = 1d0 1d0 1d0
1d0 1d0 1d0 1d0
!
$end_grid-specification
!
!---------------------------------------------------------------------------!
Every x or y value under
$regions has to be specified under
$grid-specification. Then a grid line is set. Between
these grid lines additional grid lines are set depending on the value of
nodes.
|