2.5.5. global{ }

Calling sequence

global{ }

Properties
  • using: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • 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
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
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
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
Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: \(\mathrm{vector\;of\;3\;integers}\)

  • values: \(\mathrm{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: \(\mathrm{no\;constraints}\)

  • unit: \(\mathrm{-}\)

Dependencies
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: \(\mathrm{no\;constraints}\)

  • unit: \(\mathrm{-}\)

Dependencies
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: \(\mathrm{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: \(\mathrm{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: \(\mathrm{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}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{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}}\)

  • 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}}\)

  • 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}}\)

  • 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
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}}\)

  • 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}}\)

  • type: \(\mathrm{real\;number}\)

  • values: \([10^{-6}, \ldots)\)

  • 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}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{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}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{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
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: \(\mathrm{no\;constraints}\)

  • default 1D: \([1.0,\;0.0,\;0.0]\)

  • default 2D: \([0.0,\;0.0,\;1.0]\)

  • unit: \(\mathrm{-}\)

Dependencies
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}}\)

  • type: \(\mathrm{real\;number}\)

  • values: \(\mathrm{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
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}}\)

  • type: \(\mathrm{choice}\)

  • choices: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{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: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Dependencies
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: \(\mathrm{yes\;/\;no}\)

  • default: \(\mathrm{no}\)

Dependencies
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
    }
    ...
}