global{ }¶
- Calling sequence
global{ }
- Properties
using: \(\mathrm{\textcolor{WildStrawberry}{required\;within\;the\;scope}}\)
items: \(\mathrm{exactly\;1}\)
- Functionality
Contains global settings of the simulation domain.
- Example
global{ simulate1D{} crystal_zb{ x_hkl = [1, 0, 0] x_hkl = [0, 1, 0] } substrate{ name = "GaAs" } temperature = 300 }
simulate1D{ }¶
- Calling sequence
global{ simulate1D{ } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: \(\mathrm{maximum\;1}\)
- Dependencies
Exactly one out of simulate1D{ }, simulate2D{ }, and simulate3D{ } must be defined.
- Functionality
Instructs the solver that the simulation will be held in 1D, along the x-direction.
- Example
global{ simulate1D{} ... }
simulate2D{ }¶
- Calling sequence
global{ simulate2D{ } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: \(\mathrm{maximum\;1}\)
- Dependencies
Exactly one out of simulate1D{ }, simulate2D{ }, and simulate3D{ } must be defined.
- Functionality
Instructs the solver that the simulation will be held in 2D, within the (x,y)-plane.
- Example
global{ simulate2D{} ... }
simulate3D{ }¶
- Calling sequence
global{ simulate3D{ } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: \(\mathrm{maximum\;1}\)
- Dependencies
Exactly one out of simulate1D{ }, simulate2D{ }, and simulate3D{ } must be defined.
- Functionality
Instructs the solver that the simulation will be held in 3D, within the (x,y,z)-volume.
- Example
global{ simulate3D{} ... }
crystal_zb{ }¶
- Calling sequence
global{ crystal_zb{ } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: \(\mathrm{maximum\;1}\)
- Functionality
Instructs the tool that models and routines for zincblende (including diamond) materials should be used within the simulation. Organizes keywords to define orientation of the crystal coordinate system with respect to simulation coordinate system.
- Example
global{ crystal_zb{...} ... }
crystal_zb{ x_hkl }¶
- Calling sequence
global{ crystal_zb{ x_hkl } }
- Dependencies
Exactly two out of crystal_zb{ x_hkl }, crystal_zb{ y_hkl }, and crystal_zb{ z_hkl } must be defined.
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{vector\;of\;3\;integers}\)
values: no constraints
unit: \(\mathrm{-}\)
- Functionality
Miller indices specifying a lattice plane that should be set perpendicular to the x-axis of the simulation coordinate system.
Note
See Crystal Coordinate Systems for more details.
- Example
global{ crystal_zb{ x_hkl = [1, 1, 1] y_hkl = [-1, 2, -1] } ... }
crystal_zb{ y_hkl }¶
- Calling sequence
global{ crystal_zb{ y_hkl } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{vector\;of\;3\;integers}\)
values: no constraints
unit: \(\mathrm{-}\)
- Dependencies
Exactly two out of crystal_zb{ x_hkl }, crystal_zb{ y_hkl }, and crystal_zb{ z_hkl } must be defined.
- Functionality
Miller indices specifying a lattice plane that should be set perpendicular to the y-axis of the simulation coordinate system.
Note
See Crystal Coordinate Systems for more details.
- Example
global{ crystal_zb{ x_hkl = [0, -1, 1] y_hkl = [1, 1, 0] } ... }
crystal_zb{ z_hkl }¶
- Calling sequence
global{ crystal_zb{ z_hkl } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{vector\;of\;3\;integers}\)
values: no constraints
unit: \(\mathrm{-}\)
- Dependencies
Exactly two out of crystal_zb{ x_hkl }, crystal_zb{ y_hkl }, and crystal_zb{ z_hkl } must be defined.
- Functionality
Miller indices specifying a lattice plane that should be set perpendicular to the z-axis of the simulation coordinate system.
Note
See Crystal Coordinate Systems for more details.
- Example
global{ crystal_zb{ y_hkl = [1, -1, 0] z_hkl = [0, 1, -1] } ... }
crystal_wz{ }¶
- Calling sequence
global{ crystal_wz{ } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: \(\mathrm{maximum\;1}\)
- Functionality
Instructs the tool that models and routines for wurtzite materials should be used within the simulation. Organizes keywords to define orientation of the crystal coordinate system with respect to simulation coordinate system.
- Example
global{ crystal_wz{...} ... }
crystal_wz{ x_hkl }¶
- Calling sequence
global{ crystal_wz{ x_hkl } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{vector\;of\;3\;integers}\)
values: no constraints
unit: \(\mathrm{-}\)
- Functionality
Miller indices specifying a lattice plane that should be set perpendicular to the x-axis of the simulation coordinate system.
Note
See Crystal Coordinate Systems for more details.
- Example
global{ crystal_wz{ x_hkl = [ 0, 0, 1] y_hkl = [ 1, 0, 0] } ... }
crystal_wz{ y_hkl }¶
- Calling sequence
global{ crystal_wz{ y_hkl } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{vector\;of\;3\;integers}\)
values: no constraints
unit: \(\mathrm{-}\)
- Functionality
Miller indices specifying a lattice plane that should be set perpendicular to the y-axis of the simulation coordinate system.
Note
See Crystal Coordinate Systems for more details.
- Example
global{ crystal_wz{ x_hkl = [ 1, 0, 0] y_hkl = [ -1, 2, 0] } ... }
crystal_wz{ z_hkl }¶
- Calling sequence
global{ crystal_wz{ z_hkl } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{vector\;of\;3\;integers}\)
values: no constraints
unit: \(\mathrm{-}\)
- Functionality
Miller indices specifying a lattice plane that should be set perpendicular to the z-axis of the simulation coordinate system.
Note
See Crystal Coordinate Systems for more details.
- Example
global{ crystal_wz{ x_hkl = [ 0, 0, 1] z_hkl = [ 1, 1, 0] } ... }
crystal_wz{ rotation_c_a_ratio_use_substrate }¶
- Calling sequence
global{ crystal_wz{ rotation_c_a_ratio_use_substrate } }
- Properties
using: \(\mathrm{\textcolor{ForestGreen}{optional\;within\;the\;scope}}\)
type: \(\mathrm{choice}\)
choices:
yes
;no
default:
yes
- Functionality
If
rotation_c_a_ratio_use_substrate = yes
then ratio of lattice constants a and c in wurtzite crystal to perform crystal coordination system rotation is computed based on the lattice constants of the substrate material. Otherwise the ratio crystal_wz{ rotation_c_a_ratio } is used.- Example
global{ crystal_wz{ rotation_c_a_ratio_use_substrate = no ... } ... }
crystal_wz{ rotation_c_a_ratio }¶
- Calling sequence
global{ crystal_wz{ rotation_c_a_ratio } }
- Properties
using: \(\mathrm{\textcolor{ForestGreen}{optional\;within\;the\;scope}}\)
type: \(\mathrm{real\;number}\)
values:
[0.1, 1.0]
default:
sqrt(8.0 / 3.0)
unit: \(\mathrm{-}\)
- Functionality
If the ratio for entering rotation matrix is not computed based on lattice constants of the substrate material
rotation_c_a_ratio_use_substrate = no
, then the default value or value assigned to this keyword is used.- Example
global{ crystal_wz{ rotation_c_a_ratio = 5.185 / 3.189 ... } ... }
substrate{ }¶
- Calling sequence
global{ substrate{ } }
- Properties
using: \(\mathrm{\textcolor{WildStrawberry}{required\;within\;the\;scope}}\)
items: \(\mathrm{exactly\;1}\)
- Functionality
Organizes keywords specifying parameters of the substrate material. The substrate enters the simulation as a reference unstrained material onto which the simulated structure is grown, and strained to, if the strain{ } is triggered. It also strongly impacts the symmetry of the first Brillouin zone, therefore also symmetry properties of all integrals over the space of the wave vector.
- Example
global{ substrate{...} ... }
substrate{ name }¶
- Calling sequence
global{ substrate{ name } }
- Properties
using: \(\mathrm{\textcolor{WildStrawberry}{required\;within\;the\;scope}}\)
type: \(\mathrm{character\;string}\)
- Functionality
The reference name of the material to be used as the substrate. The name must exist either in the linked database (see Material Database) file or in the database{ } group in the input file.
- Example
global{ substrate{ name = "GaAs" } ... }
substrate{ alloy_x }¶
- Calling sequence
global{ substrate{ alloy_x } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{real\;number}\)
values:
[0.0, 1.0]
unit: \(\mathrm{-}\)
- Dependencies
This group is required if any of the groups substrate{ alloy_y } and substrate{ alloy_z } is already present.
- Functionality
If a name of at least two-component alloy is assigned to substrate{ name }, then this parameter defines the mole fraction “x” of the alloy.
- Example
global{ substrate{ name = "Al(x)Ga(1-x)As" alloy_x = 0.3 } ... }
substrate{ alloy_y }¶
- Calling sequence
global{ substrate{ alloy_y } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{real\;number}\)
values:
[0.0, 1.0]
unit: \(\mathrm{-}\)
- Functionality
If a name of at least three-component alloy is assigned to substrate{ name }, then this parameter defines the mole fraction “y” of the alloy.
- Example
global{ substrate{ name = "Al(x)Ga(y)In(1-x-y)As" alloy_x = 0.3 alloy_y = 0.1 } ... }
substrate{ alloy_z }¶
- Calling sequence
global{ substrate{ alloy_z } }
- Properties
using: \(\mathrm{\textcolor{ForestGreen}{optional\;within\;the\;scope}}\)
type: \(\mathrm{real\;number}\)
values:
[0.0, 1.0]
unit: \(\mathrm{-}\)
- Functionality
If a name of at least six-component alloy is assigned to substrate{ name }, then this parameter defines the mole fraction “z” of the alloy.
- Example
global{ substrate{ name = "Al(x)Ga(y)In(1-x-y)As(z)P(1-z)" alloy_x = 0.3 alloy_y = 0.1 alloy_z = 0.9 } ... }
temperature¶
- Calling sequence
global{ temperature }
- Properties
using: \(\mathrm{\textcolor{ForestGreen}{optional\;within\;the\;scope}}\)
type: \(\mathrm{real\;number}\)
values:
[1e-6, ...)
unit: \(\mathrm{K}\)
- Functionality
Specifies temperature of the crystal lattice and electrons.
- Example
global{ temperature = 300 ... }
temperature_dependent_bandgap¶
- Calling sequence
global{ temperature_dependent_bandgap }
- Properties
using: \(\mathrm{\textcolor{ForestGreen}{optional\;within\;the\;scope}}\)
type: \(\mathrm{choice}\)
choices:
yes
;no
default:
yes
- Functionality
If
temperature_dependent_bandgap = yes
then Varshni formula is used to calculate the band gap \(E_{\mathrm{g}}(T)\) at given temperature \(T\)\[E_{\mathrm{g}}\left(T\right) = E_{\mathrm{g}}(0\;\mathrm{K}) + \delta E_{\mathrm{g}}\left(T\right),\]where \(\delta E_{\mathrm{g}}\left(T\right)\) is the correction.
For pure materials, such as GaAs or Si, the correction is given as:
\[\delta E_{\mathrm{g}}\left(T\right) = \frac{-\alpha T^2}{T + \beta}\]In case of alloys, the correction is interpolated consistently with our Interpolation Schemes. For instance, the correction for a two-component alloy with bowing parameters is computed as:
\[\delta E_{\mathrm{g,ABC}}\left(T,x\right) = x \frac{-\alpha_{\mathrm{AC}} \; T^2}{T + \beta_{\mathrm{AC}}} + (1-x) \frac{- \alpha_{\mathrm{BC}} \; T^2}{T + \beta_{\mathrm{BC}}} - x(1-x) \frac{- \alpha_{\mathrm{ABC}} \; T^2}{T + \beta_{\mathrm{ABC}}},\]Where \(\alpha_{\mathrm{AC}}\), \(\alpha_{\mathrm{BC}}\), \(\beta_{\mathrm{AC}}\), and \(\beta_{\mathrm{BC}}\) are Varshni parameters of binary compounds AC and AB, while \(\alpha_{\mathrm{ABC}}\) and \(\beta_{\mathrm{ABC}}\) are related “bowing” parameters, all defined in the database. The latter ones are typically set to zero.
If
temperature_dependent_bandgap = no
then the energy gap from the database is taken without any corrections, assumed to be for 0 K.Note
The temperature dependence impacts only the conduction bands, since the valence bands are used as reference energies for the band offsets.
- Example
global{ temperature_dependent_bandgap = no ... }
temperature_dependent_lattice¶
- Calling sequence
global{ temperature_dependent_lattice }
- Properties
using: \(\mathrm{\textcolor{ForestGreen}{optional\;within\;the\;scope}}\)
type: \(\mathrm{choice}\)
choices:
yes
;no
default:
yes
- Functionality
If
temperature_dependent_lattice = yes
then the linear temperature dependence is included for the lattice constants. Otherwise, the lattice constant defined in the database as for 300 K is used.\[a\left(T\right) = a(300\;\mathrm{K}) + a_\mathrm{exp}\left(T-300\right),\]where \(a_\mathrm{exp}\) is the expansion coefficient defined in the database and properly interpolated for alloys.
- Example
global{ temperature_dependent_lattice = no ... }
magnetic_field{ }¶
- Calling sequence
global{ magnetic_field{ } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: \(\mathrm{maximum\;1}\)
- Dependencies
The groups magnetic_field{ } and periodic{ } cannot be defined simultaneously.
- Functionality
Adds magnetic effects to the quantum solver (see. quantum{ }) for the single-band, the 6-band \(\mathbf{k} \cdot \mathbf{p}\) and the 8-band \(\mathbf{k} \cdot \mathbf{p}\) Hamiltonians, such that effectively the Pauli equation is solved.
Note
The single-band model is assumed to be two-fold spin degenerate without the magnetic field. This assumption is lifted when the magnetic_field{ } is defined.
Attention
The magnetic effects are not yet included directly in the drift-diffusion current equations, therefore the Hall effect is not covered by this model. Please contact us if you need this feature.
Attention
For the magnetic effects are not fully implemented for 1D simulations. While the Zeeman Splitting seem to be captured properly, other quantities, such as carrier densities, may be computed improperly. Please contact us if you need this feature.
- Example
global{ magnetic_field{...} ... }
magnetic_field{ direction }¶
- Calling sequence
global{ magnetic_field{ direction } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{vector\;of\;3\;real\;numbers}\)
values: no constraints
default 1D:
[1.0, 0.0, 0.0]
default 2D:
[0.0, 0.0, 1.0]
unit: \(\mathrm{-}\)
- Dependencies
This group is not allowed if any of the groups simulate1D{ } and simulate2D{ } is already present.
On the other hand, it is required if simulate3D{ } is defined.
- Functionality
Defines orientation of constant homogenous magnetic field (magnetic induction \(\mathbf{B}\)) vector with respect to the simulation coordinate system.
- Example
global{ simulate3D{} magnetic_field{ direction = direction = [3, 1, 1] strength = 5.3 } ... }
magnetic_field{ strength }¶
- Calling sequence
global{ magnetic_field{ strength } }
- Properties
using: \(\mathrm{\textcolor{WildStrawberry}{required\;within\;the\;scope}}\)
type: \(\mathrm{real\;number}\)
values: no constraints
unit: \(\mathrm{T = Vs / m^2}\)
- Functionality
Sets the strength of the constant magnetic field \(\mathbf{B}\).
Hint
It is better to not define the group magnetic_field{ } instead of setting
strength = 0
for 1-band simulations, as including the magnetic effects is extending the 1-band model by spin. This extension results in longer runtime of the quantum solver.- Example
global{ simulate1D{} magnetic_field{ strength = 5.3 } ... }
periodic{ }¶
- Calling sequence
global{ periodic{ } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: \(\mathrm{maximum\;1}\)
- Dependencies
The groups magnetic_field{ } and periodic{ } cannot be defined simultaneously.
- Functionality
When defined, allows triggering periodic boundary conditions for the entire simulation domain along selected directions of the simulation coordinate system. These boundary conditions are applied to strain, electrostatic field (the Poisson equation), and wave functions (the Schrödinger equation) overwriting all the other possible definitions already present in the input file.
Note
The periodic boundary conditions will be imposed on the Schrödinger equation only if related quantum region extends over the entire simulation domain along the relevant direction.
Note
Shapes defining the layout of materials (structure{ region{} } - shape objects) which extends beyond the defined simulation domain are not automatically continued on the opposite side of the simulation domain.
- Example
global{ periodic{...} ... }
periodic{ x }¶
- Calling sequence
global{ periodic{ x } }
- Properties
using: \(\mathrm{\textcolor{WildStrawberry}{required\;within\;the\;scope}}\)
type: \(\mathrm{choice}\)
choices:
yes
;no
default:
no
- Functionality
If
x = yes
then the periodic boundary conditions are applied along the x-axis of the simulation coordinate system to the most outer points of the grid. Otherwise, other default or defined elsewhere boundary conditions apply.- Example
global{ simulate1D{} periodic{ x = yes } ... }
periodic{ y }¶
- Calling sequence
global{ periodic{ y } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{choice}\)
choices:
yes
;no
default:
no
- Dependencies
This group is required if simulate2D{ } or simulate3D{ } is specified.
It is not allowed if simulate1D{ } is defined.
- Functionality
If
y = yes
then the periodic boundary conditions are applied along the y-axis of the simulation coordinate system to the most outer points of the grid. Otherwise, other default or defined elsewhere boundary conditions apply.- Example
global{ simulate2D{} periodic{ x = no y = yes } ... }
periodic{ z }¶
- Calling sequence
global{ periodic{ z } }
- Properties
using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: \(\mathrm{choice}\)
choices:
yes
;no
default:
no
- Dependencies
This group is required if simulate3D{ } is specified.
It is not allowed if simulate1D{ } or simulate2D{ } is defined.
- Functionality
If
z = yes
then the periodic boundary conditions are applied along the z-axis of the simulation coordinate system to the most outer points of the grid. Otherwise, other default or defined elsewhere boundary conditions apply.- Example
global{ simulate3D{} periodic{ x = yes y = no z = yes } ... }