nextnano.com
==> nextnano Documentation (New)

nextnano++ software

     

Up

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