This is the old documentation.
Here's the link to the new documentation.
import{}
Specifications for importing data from a file or generating them from an
analytic function, e.g. electrostatic potential,
alloy profile, strain profile, doping profile, generation rate profile, electron
or hole Fermi level profile.
Once a file has been imported or a function has been defined, it can be used several times, e.g. the same file
could include the alloy concentration of a ternary for different region objects.
Data with dimensionality deviating from the simulation dimension can also be
imported, e.g. an absorption profile for solar cell modeling.
import{
directory =
"D:\import_files\" #
name of directory where files to be imported are located (if data are
imported from files)
file{ #
declare files for import. Multiple files can be imported. Does not need
to be defined if data are generated with an analytic function.
name =
"1D_import"
# name for referencing the imported data in the input file, e.g.
"imported_potential_profile_2D"
filename =
"D:\any_filename.fld" # name of file which is imported.
If an absolute path is included here, the entry in directory
specified above is ignored.
=
"any_filename.fld" # name of file which is imported.
The file should be located here: directory\filename
format = AVS
#
format of the file to be imported. At the moment only
AVS format and a simple .dat
format are supported.
= DAT
#
number_of_dimensions = 1
# explicit specification of the number of dimensions. Can be only used
for .dat files.
=
2
# (optional, default value is given by dimensionality of simulation
defined in global{} )
=
3
#
scale =
1.6022e-19
# imported data is multiplied by this scaling factor (optional, default
value is 1.0 ) . Useful to correct unit
of imported data, e.g. conversion from [Joule] to [eV] .
=
-1
#
}
analytic_function{ #
define analytic functions to be imported here. Does not need to be
defined if data are imported from files.
name =
"Analytic_Potential" #
name for referencing the imported
function in the input file, e.g.
"analytic_function_gaussian"
function =
"1+2*x^2+exp(y)" # string
defining the function in case only one component needs to be defined, otherwise
use component .
# Syntax allowed for functions:
# * white spaces are ignored
# * valid operators are "+",
"-",
"*",
"/" and
"^"
# * multiplication signs always have to be spelled out (i.e.
"5*x" is valid,
"5x" is not)
# * variable names are fixed to
"x", "y" and
"z" (capital letters are also
allowed)
# * additional functions also available (e.g.
"exp" ,
"sqrt",
"sin", see full list below),
have to be followed by brackets ("exp(x)"
is valid, "exp x" is not)
# * global variables are allowed if preceded by
"$" (e.g.
"$PI")
# * exponential notation ("2e-3"
or "4E10") is allowed
label =
"potential_label"
#
label (optional) to be displayed in legend in case only one component is
defined, otherwise see component .
component{
# in case multiple components are needed, define one component group for each component.
function_i =
"1D_import" #
string defining the function for this component.
label =
"component_label" #
label (optional) to be displayed in legend for this component.
}
}
output_imports{}
#
output all imported data including scale factor. The
filenames correspond to the entry given in name =
... . The files will be written to a folder called Imports/ .
}
The following variables, operators, and functions are defined in analytic_function :
sqrt() -
square root
cbrt() - cubic root
exp() - exponential function
log() - natural logarithm
ln() - natural logarithm
log2() - decadic logarithm (base 2)
log10() - decadic logarithm (base 10)
sin() - sine
cos() - cosine
tan() - tangent
asin() - arcsine
acos() - arccosine
atan() - arctangent
sinh() - hyperbolic sine
cosh() - hyperbolic cosine
tanh() - hyperbolic tangent
asinh() - inverse hyperbolic sine
acosh() - inverse hyperbolic cosine
atanh() - inverse hyperbolic tangent
erf() - error function
erfc() - complementary error function
gamma() - Gamma function
fdm3half() - complete Fermi-Dirac integral of
order -3/2 (includes the 1/Gamma(-1/2) prefactor)
fdmhalf() - complete Fermi-Dirac integral of
order -1/2 (includes the 1/Gamma(1/2) prefactor)
fdzero() - complete Fermi-Dirac integral of
order 0 (includes the 1/Gamma(1)=1
prefactor)
fdphalf() - complete Fermi-Dirac integral of
order 1/2 (includes the 1/Gamma(3/2) prefactor)
fdp3half() - complete Fermi-Dirac integral of
order 3/2 (includes the 1/Gamma(5/2) prefactor)
abs() - absolute value
floor() - floor function floor(x) : largest integer less than or equal to x
ceil() - ceiling function ceil(x) : smallest integer greater than or equal to x
round() - rounds the number to the nearest integer
sign() - sign function
heaviside()- Heaviside step function
|