Up
| | This is the old documentation.
Here's the link to the new documentation.
output{}
Specification of options for the visualization of the data
with certain programs like
output{
directory = "../output/quantum_well_1D"
#
path for output files
mandatory_path = no #
(default = no )
=
yes #
If mandatory_path is set to yes , the (relative or absolute) output directory specified in output{
directory = ... }
is used,
#
and any directory specified in the command line (as e.g. done by nextnanomat) is ignored.
#
If is set to no , the directory specified in the command line (as e.g. done by
nextnanomat) is used as base path,
#
to which a relative path specified in directory then is
appended. On the other hand, an absolute path specified in directory
is ignored.
#
In all cases, a subdirectory named as the input file is further appended to the output path,
#
unless -n or --noautooutdir is set as
command line option (nextnanomat sets this option automatically).
#
Also note that the location of the log (*.log ) file is not affected by these settings.
#
Warning: Please make sure that a mandatory output directory is set such that no important files (or the input directory) are overwritten.
#
Be especially careful when accepting input files from others, and do not run simulations using administrative privileges.
Output file format for 2D and 3D simulations
format2D = Origin #
Origin file format (Origin steering files *.plt ,
data files *.dat )
=
VTKAscii #
VTK XML ASCII format (.vtr, r
= rectilinear grid)
=
VTKAscii_AVSBinary #
VTK XML ASCII format (.vtr, r
= rectilinear grid) +
AvsBinary
=
VTKAscii_AVSAscii #
VTK XML ASCII format (.vtr, r
= rectilinear grid) +
AvsAscii
=
AvsBinary
#
AVS/Express file format (AVS steering files
*.v , *.fld , *.coord ,
data files
*.dat ) - data files in binary format
=
AvsAscii
#
AVS/Express file format (AVS steering files
*.v , *.fld , *.coord ,
data files
*.dat ) - data files in ASCII format
=
AvsBinary_one_file
#
AVS/Express file format - header (ASCII), coordinates and variables (both
binary) are written into a single file (default)
=
AvsAscii_one_file
#
AVS/Express file format - header, coordinates and variables are written
into a single file
format3D = VTKAscii #
see above (same as format2D )
=
VTKAscii_AVSBinary #
see above (same as format2D )
=
VTKAscii_AVSAscii #
see above (same as format2D )
= AvsBinary #
see above (same as format2D )
=
AvsAscii #
see above (same as format2D )
=
AvsBinary_one_file
#
see above (same as format2D )
=
AvsAscii_one_file
#
see above (same as format2D )
==>
More details on VTK format
==>
More details on AVS format
Output options for 2D and 3D simulations
Ranges in sections may contain only one grid point.
If no point is found inside the range interval, as e.g. for zero-length intervals such as [50.1, 50.1] ,
the closest grid point is used.
section{
# output a smaller section of the simulation area (zoom)
name = "part"
#
name of section enters file name
range_x = [0, 20]
# range in x direction [nm]
range_y = [-5, 5]
# range in y direction [nm] (2D or 3D only)
range_z = [2, 10]
# range in z direction [nm] (3D only)
}
section1D{
# output a 1D section of the simulation area (1D slice) (2D or 3D only)
name = "x" #
name of section enters file name
x = 10.0
# 1D slice at x = 10 nm
y = 10.0
# 1D slice at y = 10 nm
z = 10.0
# 1D slice at z = 10 nm (3D only)
range_x = [0, 20]
# (optional) range in x direction [nm]
range_y = [-5, 5]
# (optional) range in y direction [nm]
range_z = [2, 10]
# (optional) range in z direction [nm] (3D only)
}
2D usage:
- x , range_y or
# 1D slice at x = ... nm within the range from y = ... nm to
y = ... nm.
- y , range_x # 1D slice at
y = ... nm within the range from x = ... nm to x = ... nm.
3D usage:
- x , y , range_z or # 1D slice at
x = ... nm and y = ... nm within the range from z = ... nm to z =
... nm.
- x , z , range_y or # 1D slice at
x = ... nm and z = ... nm within the range from y = ... nm to y =
... nm.
- y , z , range_x
# 1D slice at y = ... nm and z = ... nm within the
range from x = ... nm to x = ... nm.
# Note: If range
is left out, the section extends over the whole simulation area
section2D{
# output a 2D section of the simulation area (2D slice) (3D only)
name = "center"
#
name of section enters file
name
x = 10.0
# 2D slice at x = 10 nm
y = 20.0
# 2D slice at y = 20 nm
z = 10.0
# 2D slice at z = 10 nm
range_x = [0, 20]
# (optional) range in x direction [nm]
range_y = [-5, 5]
# (optional) range in y direction [nm]
range_z = [2, 10]
# (optional) range in z direction [nm]
}
3D usage:
- x , range_y , range_z or #
2D slice at x = ... nm within the range from y = ... nm to y = ... nm and from z
= ... nm to z = ... nm.
- y , range_x , range_z or #
2D slice at y = ... nm within the range from x = ... nm to x = ... nm and from z
= ... nm to z = ... nm.
- z , range_x , range_y or #
2D slice at z = ... nm within the range from x = ... nm to x = ... nm and from y
= ... nm to y = ... nm.
only_sections = yes/no
#
if set to
no ,
print additional warnings concerning output (default is:
no )
# Currently, for fields living on the position grid, the entire field is always output in addition to its
sections defined by output{} .
# However, if only_sections is set to yes , the entire field will
not be output anymore but only its
sections defined by output{} . Thus, if no sections are defined, also no fields will be output.
# These files can be used to restrict field output to the actual regions of interest, or also to
suppress most file I/O (if no sections are defined).
# This setting has no effect on RAM usage or on the fields used in the calculation, it just affects what
is written into files.
# Also note that quantities living on e.g. an energy grid, integrative quantities like I-V curves, or
files needed for resuming operation are not influenced by this setting.
silent = yes/no
#
if set to
no ,
print additional warnings concerning output (default is: yes )
material_parameters{
kp_parameters{
# output k.p parameters of materials in quantum regions
where 6-band or 8-band k.p Hamiltonian was solved.
# The Dresselhaus-Kip-Kittel (DKK) parameters (L, M, N), which are used
internally in the code, are printed out.
# Also the Luttinger (gamma1, gamma2, gamma3,
kappa) (for zinc blende) or Rashba-Sheka-Pikus (A1,A2,...,A6)
parameters (for wurtzite) are printed out, respectively.
# Additionally for 8-band k.p calculations the S, EP,
P and B parameters are printed out.
# For further information consult chapter 3 of the
PhD thesis of S. Birner.
boxes =
yes/no
# (optional) For each grid point, in 1D two points are printed out to
mimic
# abrupt discontinuities at material interfaces (in 2D four points, in 3D
eight points)
}
charge_carrier_masses{
# output effective masses of all energy bands used in the simulatios in
units of [m0]
boxes =
yes/no
# (optional) For each grid point, in 1D two points are printed out to
mimic
# abrupt discontinuities at material interfaces (in 2D four points, in 3D
eight points)
}
spin_orbit_coupling_energies{ # output spin-orbit coupling
energy for zinc blende (1 parameter) or crystal field splitting and spin-orbit
coupling energies for wurtzite (3 parameters) in units of [eV]
boxes =
yes/no # (optional) For each grid point, in 1D two points are printed out to
mimic
# abrupt discontinuities at material interfaces (in 2D four points, in 3D
eight points)
}
static_dielectric_constants{ # output static relative
dielectric constants for zinc blende (1 parameter) and wurtzite (3 parameters)
(unitless)
boxes =
yes/no # (optional) For each grid point, in 1D two points are printed out to
mimic
# abrupt discontinuities at material interfaces (in 2D four points, in 3D
eight points)
}
deformation_potentials{ #
output the deformation potentials for zinc blende and wurtzite
boxes =
yes/no #
(optional) For each grid point, in 1D two points are printed out to
mimic
# abrupt discontinuities at material interfaces (in 2D four points, in 3D
eight points)
}
}
}
Examples
output{
directory = "../output/mosfet_3D"
section1D{ name =
"x"
y
= 10
z
= 10 }
section2D{ name =
"y"
y
= 10
# 2D slice at y = 10 nm
range_x = [-20, 220.5] #
range in x direction from -20 nm to 220.5 nm
range_z = [-20, 220.5] }
# range in z direction from -20 nm to
220.5 nm
}
output{
directory = "../output/mosfet_2D"
section{ name
= "zoom"
range_x
= [0,20]
# range in x direction from 0 nm to
20 nm
range_y = [-5,5] }
# range in y direction from -5 nm to
5 nm
section1D{ name =
"y"
y
= 10
# 1D slice at y = 10 nm
range_x = [-20, 220.5] }
# range in x direction from -20 nm to
220.5 nm
}
VTK format for rectilinear grid
==> VTK - The
Visualization Toolkit
The .vtr format can be read by the following software:
AVS format for rectilinear grid
The .fld format can be read by the following software:
The main file of AVS format has .fld extention. Here's an
example:
# AVS/Express field file
# necessary header
#
ndim = 3
# number of dimensions
dim1 = 6
# number of nodes along 1st dimension
dim2 = 6
# number of nodes along 2nd dimension
dim3 = 6
# number of nodes along 3rd dimension
# number of dim* entry must be consistent to number of
dimensions ndim
nspace = 3
# must be equal to ndim
veclen = 1
# number of components of vector field, 1
= scalar field
data = double
# data type. Currently only double
and integer are supported.
field = rectilinear
# type of mapping. Only rectilinear field is supported.
label = bandedge_Gamma_1
# label for each vector field component
unit = eV
# unit of each vector field component (internally in tool not used at the
moment)
variable 1 file=3D_import.dat
filetype=ascii skip=0
offset=0 stride=1
# defines where 1st component of vector field is saved. Numbering
must be ascending, starting with 1
# and number of variable i
lines must be equal to veclen . Supported file types are
ascii and binary .
# skip defines how many lines in file have to be skipped
before data item appears.
# offset defines how many columns in line have to be skipped before
searched data items appear.
# stride defines how many steps have to be made before next data item
appears.
coord 1 file=3D_import.coord
filetype=ascii skip=0
offset=0 stride=1
# contains information about where and how nodes of 1st
coordinate are stored
coord 2 file=3D_import.coord
filetype=ascii skip=6
(=7) offset=0 stride=1
# contains information about where and how nodes of 2nd
coordinate are stored
coord 3 file=3D_import.coord
filetype=ascii skip=12
(=14)
offset=0 stride=1
# contains information about where and how nodes of 3rd
coordinate are stored
# numbering must be ascending, starting with
1 and number of coord i
lines must be equal to ndim
(The red lines (=7)
and (=14) take into account one empty
line each that we use to separate the coordinates.)
The following shows an example of a file that can be imported using
import{}.
This example shows how to import i,j,k, fn(i,j,k),fm(i,j,k)
ordered data via AVS format into nextnano++:
*.fld file:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# AVS/Express field file
#
ndim = 3
dim1 = 3
dim2 = 3
dim3 = 3
nspace = 3
veclen = 2
data = double
field = rectilinear
label = data_1
label = data_2
variable 1 file=3D_origin-format.dat
filetype=ascii skip=0
offset=3 stride=5
variable 2 file=3D_origin-format.dat
filetype=ascii skip=0
offset=4 stride=5
coord 1 file=3D_origin-format.dat
filetype=ascii skip=24
offset=0 stride=5
coord 2 file=3D_origin-format.dat
filetype=ascii skip=18
offset=1 stride=15
coord 3 file=3D_origin-format.dat
filetype=ascii skip=8
offset=2 stride=45
*.dat file:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
0 0 0 1 -1
# The columns correspond to coordinates x,y,z and data
values f1(x,y,z) and f2(x,y,z)
5 0 0 2 -2
10 0 0 3 -3
0 5 0 4 -4
5 5 0 5 -5
10 5 0 6 -6
0 10 0 7 -7
5 10 0 8 -8
10 10 0 9 -9
0 0 5 10 -10
5 0 5 11 -11
10 0 5 12 -12
0 5 5 13 -13
5 5 5 14 -14
10 5 5 15 -15
0 10 5 16 -16
5 10 5 17 -17
10 10 5 18 -18
0 0 10 19 -19
5 0 10 20 -20
10 0 10 21 -21
0 5 10 22 -22
5 5 10 23 -23
10 5 10 24 -24
0 10 10 25 -25
5 10 10 26 -26
10 10 10 27 -27
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Note that the order of the values matters.
|