bulk_dispersion{ }

Calling sequence

classical{ bulk_dispersion{ } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

This group allows calculating bulk band structures of the materials at specific positions in the simulation domain within 1-band approximations or \(\mathbf{k} \cdot \mathbf{p}\) models. The computation is performed just after initialization of the structure. Related outputs are located in the root output directory of the simulation.

Example
classical{
    bulk_dispersion{
        Gamma{}
        KP8{}
        KP30{}

        path{
            name = "name_1"
            ...
        }
        path{
            name = "name_2"
            ...
        }
        full{
            name = "name_3"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

Nested keywords


Gamma{ }

Calling sequence

classical{ bulk_dispersion{ Gamma{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

When this group is defined, the bulk electronic band structure is computed within 1-band parabolic model using effective mass tensor for the conduction band at \(\Gamma\).

Example
classical{
    bulk_dispersion{
        Gamma{}

        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

HH{ }

Calling sequence

classical{ bulk_dispersion{ HH{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

When this group is defined, the bulk electronic band structure is computed within 1-band parabolic model using effective mass tensor for the heavy-hole valence band.

Example
classical{
    bulk_dispersion{
        HH{}

        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

LH{ }

Calling sequence

classical{ bulk_dispersion{ LH{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

When this group is defined, the bulk electronic band structure is computed within 1-band parabolic model using effective mass tensor for the light-hole valence band.

Example
classical{
    bulk_dispersion{
        LH{}

        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

SO{ }

Calling sequence

classical{ bulk_dispersion{ SO{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

When this group is defined, the bulk electronic band structure is computed within 1-band parabolic model using effective mass tensor for the split-off valence band.

Example
classical{
    bulk_dispersion{
        SO{}

        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

KP6{ }

Calling sequence

classical{ bulk_dispersion{ KP6{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

When this group is defined, 6-band \(\mathbf{k} \cdot \mathbf{p}\) model is applied to compute the bulk electronic band structure.

Example
classical{
    bulk_dispersion{
        KP6{}

        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

KP6{ use_Luttinger_parameters }

Calling sequence

classical{ bulk_dispersion{ KP6{ use_Luttinger_parameters } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

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

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

Dependencies
Functionality

By default the solver uses the DKK (Dresselhaus-Kip-Kittel) parameters (L, M, N). If enabled then it uses Luttinger parameters (\(\gamma_1\), \(\gamma_2\), \(\gamma_3\)) instead.

Example
classical{
    bulk_dispersion{
        KP6{
            use_Luttinger_parameters = yes
        }

        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

KP6{ approximate_kappa }

Calling sequence

classical{ bulk_dispersion{ KP6{ approximate_kappa } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

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

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

Dependencies
Functionality

By default the \(\kappa\) for zinc blende crystal structure is taken from the database or input file. If this is enabled then the solver is forced to approximate kappa through others 6-band \(\mathbf{k} \cdot \mathbf{p}\) parameters, even though kappa is given in database or input file.

Example
classical{
    bulk_dispersion{
        KP6{
            approximate_kappa = yes
        }
        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

KP8{ }

Calling sequence

classical{ bulk_dispersion{ KP8{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

When this group is defined, 8-band \(\mathbf{k} \cdot \mathbf{p}\) model is applied to compute the bulk electronic band structure.

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

KP8{ use_Luttinger_parameters }

Calling sequence

classical{ bulk_dispersion{ KP8{ use_Luttinger_parameters } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

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

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

Dependencies
Functionality

By default the solver uses the DKK (Dresselhaus-Kip-Kittel) parameters (L, M, N). If enabled then it uses Luttinger parameters (\(\gamma_1\), \(\gamma_2\), \(\gamma_3\)) instead.

Example
classical{
    bulk_dispersion{
        KP8{
            use_Luttinger_parameters = yes
        }
        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

KP8{ from_6band_parameters }

Calling sequence

classical{ bulk_dispersion{ KP8{ from_6band_parameters } } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

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

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

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

Functionality

By default the 8-band \(\mathbf{k} \cdot \mathbf{p}\) parameters are taken from database or input file. If enabled then it evaluates the 8-band \(\mathbf{k} \cdot \mathbf{p}\) parameters from 6-band \(\mathbf{k} \cdot \mathbf{p}\) parameters, Kane parameter \(E_P\) and temperature dependent band gap \(E_g\).

Example
classical{
    bulk_dispersion{
        KP8{
            from_6band_parameters = yes
        }
        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

KP8{ evaluate_S }

Calling sequence

classical{ bulk_dispersion{ KP8{ evaluate_S } } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

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

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

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

Functionality

By default \(S\) (\(S_1\), \(S_2\) for wurtzite) \(\mathbf{k} \cdot \mathbf{p}\) parameter(s) is (are) taken from database or input file. If enabled it evaluates \(S\) (\(S_1\), \(S_2\) for wurtzite) \(\mathbf{k} \cdot \mathbf{p}\) parameter(s) from effective mass \(m_e\) (\(m_{e,par}\), \(m_{e,perp}\) for wurtzite), Kane parameter(s), spin-orbit coupling(s) and temperature dependent band gap.

Example
classical{
    bulk_dispersion{
        KP8{
            evaluate_S = yes
        }
        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

KP8{ rescale_S_to }

Calling sequence

classical{ bulk_dispersion{ KP8{ rescale_S_to } } }

Properties for Zincblende:
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \(0.0\)

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

Properties for Wurtzite:
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: \(\mathrm{vector\;of\;2\;real\;numbers}\)

  • values: \(\mathrm{no\;constraints}\)

  • default: \([0.0,\;0.0]\)

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

Functionality

Sets \(S\) for zinc blende crystal structure to specified value and rescale \(E_P\), \(L'\), \(N^{+}\) in order to preserve electron’s effective mass.

Sets \(S_1\), \(S_2\) for wurtzite crystal structure to specified values respectively and rescale \(E_{P1}\), \(E_{P2}\), \(L_{1}'\), \(L_{2}'\), \(N^+_1\), \(N^+_2\) in order to preserve electron’s effective masses.

Examples
classical{
    bulk_dispersion{
        KP8{
            rescale_S_to = 1.0
        }
        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}
classical{
    bulk_dispersion{
        KP8{
            rescale_S_to = [ 1.0, 1.0 ]
        }
        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_wz{...}
}

KP8{ approximate_kappa }

Calling sequence

classical{ bulk_dispersion{ KP8{ approximate_kappa } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

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

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

Dependencies
Functionality

By default, the \(\kappa\) for zincblende crystal structure is taken from the database or input file. If this is enabled then the solver is forced to approximate kappa through others 8-band \(\mathbf{k} \cdot \mathbf{p}\) parameters, even though kappa is given in database or input file.

Example
classical{
    bulk_dispersion{
        KP8{
            approximate_kappa = yes
        }
        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

KP14{ }

Calling sequence

classical{ bulk_dispersion{ KP14{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

When this group is defined, 30-band \(\mathbf{k} \cdot \mathbf{p}\) model is applied to compute the bulk electronic band structure.

Example
classical{
    bulk_dispersion{
        KP14{}

        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

KP14{ use_Luttinger_parameters }

Calling sequence

classical{ bulk_dispersion{ KP14{ use_Luttinger_parameters } } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

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

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

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

Functionality

By default the solver uses the DKK (Dresselhaus-Kip-Kittel) parameters (L, M, N). If enabled then it uses Luttinger parameters (\(\gamma_1\), \(\gamma_2\), \(\gamma_3\)) instead.

Example
classical{
    bulk_dispersion{
        KP14{
            use_Luttinger_parameters = yes
        }
        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

KP14{ from_6band_parameters }

Calling sequence

classical{ bulk_dispersion{ KP14{ from_6band_parameters } } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

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

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

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

Functionality

By default the 14-band \(\mathbf{k} \cdot \mathbf{p}\) parameters are taken from database or input file. If enabled then it evaluates the 14-band \(\mathbf{k} \cdot \mathbf{p}\) parameters from 6-band \(\mathbf{k} \cdot \mathbf{p}\) parameters, Kane parameter \(E_P\) and temperature dependent band gap \(E_g\).

Example
classical{
    bulk_dispersion{
        KP14{
            from_6band_parameters = yes
        }
        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

KP14{ evaluate_S }

Calling sequence

classical{ bulk_dispersion{ KP14{ evaluate_S } } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

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

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

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

Functionality

By default \(S\) \(\mathbf{k} \cdot \mathbf{p}\) parameter(s) is (are) taken from database or input file. If enabled it evaluates \(S\) \(\mathbf{k} \cdot \mathbf{p}\) parameter(s) from effective mass \(m_e\) (\(m_{e,par}\), \(m_{e,perp}\) for wurtzite), Kane parameter(s), spin-orbit coupling(s) and temperature dependent band gap.

Example
classical{
    bulk_dispersion{
        KP14{
            evaluate_S = yes
        }
        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

KP30{ }

Calling sequence

classical{ bulk_dispersion{ KP30{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

When this group is defined, 30-band \(\mathbf{k} \cdot \mathbf{p}\) model [RideauPRB2006] is applied to compute the bulk electronic band structure.

Example
classical{
    bulk_dispersion{
        KP30{}

        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   crystal_zb{...}
}

full{ }

Calling sequence

classical{ bulk_dispersion{ full{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{no\;constraints}\)

Dependencies
Functionality

Calculates bulk \(\mathbf{k} \cdot \mathbf{p}\) dispersion in 3D k-space. Multiple instances are allowed.

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            name = "name_1"
            ...
        }
        full{
            name = "name_2"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

full{ name }

Calling sequence

classical{ bulk_dispersion{ full{ name } } }

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

  • type: \(\mathrm{character\;string}\)

Functionality

Name of the dispersion which also defines the names of the output files.

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

full{ position{ } }

Calling sequence

classical{ bulk_dispersion{ full{ position{ } } } }

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

  • items: \(\mathrm{exactly\;1}\)

Functionality

Specifies the point (x,y,z) in the simulation domain, where the dispersion has to be calculated.

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            name = "name"
            position{...}
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

full{ position{ x } }

Calling sequence

classical{ bulk_dispersion{ full{ position{ x } } } }

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

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \(0.0\)

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

Functionality

\(x\)-coordinate of interest

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            name = "name"
            position{
                x = 10.5
            }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   simulate1D{}
}

full{ position{ y } }

Calling sequence

classical{ bulk_dispersion{ full{ position{ y } } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \(0.0\)

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

Dependencies
Functionality

\(y\)-coordinate of interest

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            name = "name"
            position{
                x = 10.5
                y = 35.0
            }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   simulate2D{}
}

full{ position{ z } }

Calling sequence

classical{ bulk_dispersion{ full{ position{ z } } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \(0.0\)

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

using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
Functionality

\(z\)-coordinate of interest

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            name = "name"
            position{
                x = 10.5
                y = 35.0
                z = 12.3
            }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   simulate3D{}
}

full{ shift_holes_to_zero }

Calling sequence

classical{ bulk_dispersion{ full{ shift_holes_to_zero } } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

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

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

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

Functionality

If enabled shifts the whole dispersion, so that the energy for the Gamma point for the highest hole band is equal to 0.0 [eV].

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            shift_holes_to_zero = yes
            name = "name"
            position{...}
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

full{ kxgrid{ } }

Calling sequence

classical{ bulk_dispersion{ full{ kxgrid{ } } } }

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

  • items: \(\mathrm{no\;constraints}\)

Functionality

Specifies a grid along \(k_x\) for a 1D/2D/3D plot of the energy dispersion \(E(k_x, k_y, k_z)\).

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            shift_holes_to_zero = yes
            name = "name"
            position{...}
            kxgrid{...}
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

full{ kxgrid{ line{ } } }

Calling sequence

classical{ bulk_dispersion{ full{ kxgrid{ line{ } } } } }

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

  • items: \(\mathrm{minimum\;2}\)

Functionality

Setting options defining the grid in k-space.

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            shift_holes_to_zero = yes
            name = "name"
            position{...}
            kxgrid{
                line{...}
                line{...}
                line{...}
            }
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

full{ kxgrid{ line{ pos } } }

Calling sequence

classical{ bulk_dispersion{ full{ kxgrid{ line{ pos } } } } }

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

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

  • values: \(\mathrm{no\;constraints}\)

  • unit: \(\mathrm{nm^{-1}}\)

Functionality

Position of defined k-grid spacing along kx direction.

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            shift_holes_to_zero = yes
            name = "name"
            position{...}
            kxgrid{
                line{ pos =-1.0   spacing = 0.2 }
                line{ pos = 0.0   spacing = 0.2 }
                line{ pos = 1.0   spacing = 0.2 }
            }
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

full{ kxgrid{ line{ spacing } } }

Calling sequence

classical{ bulk_dispersion{ full{ kxgrid{ line{ spacing } } } } }

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

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

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

  • unit: \(\mathrm{nm^{-1}}\)

Functionality

k-grid spacing at defined positions

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            shift_holes_to_zero = yes
            name = "name"
            position{...}
            kxgrid{
                line{ pos =-1.0   spacing = 0.2 }
                line{ pos = 0.0   spacing = 0.2 }
                line{ pos = 1.0   spacing = 0.2 }
            }
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

full{ kygrid{ } }

Calling sequence

classical{ bulk_dispersion{ full{ kygrid{ } } } }

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

  • items: \(\mathrm{no\;constraints}\)

Functionality

Specifies a grid along \(k_y\) for a 1D/2D/3D plot of the energy dispersion \(E(k_x, k_y, k_z)\). The keywords allowed within this group are analogous to full{ kxgrid{ } }.

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            shift_holes_to_zero = yes
            name = "name"
            position{...}
            kxgrid{...}
            kygrid{
                line{ pos =-1.0   spacing = 0.2 }
                line{ pos = 0.0   spacing = 0.2 }
                line{ pos = 1.0   spacing = 0.2 }
            }
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

full{ kzgrid{ } }

Calling sequence

classical{ bulk_dispersion{ full{ kzgrid{ } } } }

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

  • items: \(\mathrm{no\;constraints}\)

Functionality

Specifies a grid along \(k_z\) for a 1D/2D/3D plot of the energy dispersion \(E(k_x, k_y, k_z)\). The keywords allowed within this group are analogous to full{ kxgrid{ } }.

Example
classical{
    bulk_dispersion{
        KP8{}

        full{
            shift_holes_to_zero = yes
            name = "name"
            position{...}
            kxgrid{...}
            kygrid{...}
            kzgrid{
                line{ pos =-1.0   spacing = 0.2 }
                line{ pos = 0.0   spacing = 0.2 }
                line{ pos = 1.0   spacing = 0.2 }
            }
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   simulate3D{}
}

path{ }

Calling sequence

classical{ bulk_dispersion{ path{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{no\;constraints}\)

Dependencies
Functionality

Calculate bulk \(\mathbf{k} \cdot \mathbf{p}\) dispersion along custom path in k-space. Multiple instances are allowed.

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name_1"
            spacing = 0.2
            ...
        }
        path{
            name = "name_2"
            num_points = 10
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

path{ name }

Calling sequence

classical{ bulk_dispersion{ path{ name } } }

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

  • type: \(\mathrm{character\;string}\)

Dependencies

name of the dispersions which also defines the names of the output files.

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

path{ position{ } }

Calling sequence

classical{ bulk_dispersion{ path{ position{ } } } }

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

  • items: \(\mathrm{exactly\;1}\)

Functionality

Specifies the point (x,y,z) in the simulation domain, where the dispersion has to be calculated.

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name"
            position{ }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

path{ position{ x } }

Calling sequence

classical{ bulk_dispersion{ path{ position{ x } } } }

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

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \(0.0\)

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

Functionality

\(x\)-coordinate of interest

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name"
            position{
                x = 10.5
            }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   simulate1D{}
}

path{ position{ y } }

Calling sequence

classical{ bulk_dispersion{ path{ position{ y } } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \(0.0\)

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

Dependencies
Functionality

\(y\)-coordinate of interest

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name"
            position{
                x = 10.5
                y = 35.0
            }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   simulate2D{}
}

path{ position{ z } }

Calling sequence

classical{ bulk_dispersion{ path{ position{ z } } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \(0.0\)

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

using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
Functionality

\(z\)-coordinate of interest

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name"
            position{
                x = 10.5
                y = 35.0
                z = 12.3
            }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   simulate3D{}
}

path{ shift_holes_to_zero }

Calling sequence

classical{ bulk_dispersion{ path{ shift_holes_to_zero } } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

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

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

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

Functionality

If enabled shifts the whole dispersion, so that the energy for the Gamma point for the highest hole band is equal to 0.0 [eV].

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            shift_holes_to_zero = yes
            name = "name"
            position{...}
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

path{ point{ } }

Calling sequence

classical{ bulk_dispersion{ path{ point{ } } } }

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

  • items: \(\mathrm{minimum\;2}\)

Functionality

Specifies points in the path through k-space. At least two k points have to be defined. Line between two such points is called segment.

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name"
            position{...}
            point{...}
            point{...}
            point{...}
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

path{ point{ k } }

Calling sequence

classical{ bulk_dispersion{ path{ point{ k } } } }

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

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \([0.0,\;0.0,\;0.0]\)

  • unit: \(\mathrm{nm^{-1}}\)

Functionality

k-point represented by vector \([k_x, k_y, k_z]\).

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name"
            position{...}
            point{ k = [-0.1,-0.1,-0.1 ] }
            point{ k = [ 0.0, 0.0, 0.0 ] }
            point{ k = [ 0.1, 0.0, 0.0 ] }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

path{ spacing }

Calling sequence

classical{ bulk_dispersion{ path{ spacing } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

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

  • unit: \(\mathrm{nm^{-1}}\)

Dependencies
Functionality

It specifies approximate spacing for intermediate points in the path segments.

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name"
            position{...}
            point{ k = [-0.1,-0.1,-0.1 ] }
            point{ k = [ 0.0, 0.0, 0.0 ] }
            point{ k = [ 0.1, 0.0, 0.0 ] }
            spacing = 0.2
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

path{ num_points }

Calling sequence

classical{ bulk_dispersion{ path{ num_points } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

  • values: \(\{2,3,4,5,\ldots\}\)

  • unit: \(\mathrm{nm^{-1}}\)

Dependencies
Functionality

It specifies number of points (intermediate + two corner-points) for each single path segment.

Example
classical{
    bulk_dispersion{
        KP8{}

        path{
            name = "name"
            position{...}
            point{ k = [-0.1,-0.1,-0.1 ] }
            point{ k = [ 0.0, 0.0, 0.0 ] }
            point{ k = [ 0.1, 0.0, 0.0 ] }
            num_points = 20
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

lines{ }

Calling sequence

classical{ bulk_dispersion{ lines{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{no\;constraints}\)

Dependencies
Functionality

Calculates dispersions along some predefined paths of high symmetry in k-space, e.g. [100], [110], [111] and their equivalents (13 in total).

Example
classical{
    bulk_dispersion{
        KP8{}

        lines{
            name = "name_1"
            ...
        }
        lines{
            name = "name_2"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

lines{ name }

Calling sequence

classical{ bulk_dispersion{ lines{ name } } }

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

  • type: \(\mathrm{character\;string}\)

Dependencies

Nname of the dispersions which also defines the names of the output files.

Example
classical{
    bulk_dispersion{
        KP8{}

        lines{
            name = "name"
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

lines{ position{ } }

Calling sequence

classical{ bulk_dispersion{ lines{ position{ } } } }

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

  • items: \(\mathrm{exactly\;1}\)

Functionality

Specifies the point (x,y,z) in the simulation domain, where the dispersion has to be calculated.

Example
classical{
    bulk_dispersion{
        KP8{}

        lines{
            name = "name"
            position{ }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

lines{ position{ x } }

Calling sequence

classical{ bulk_dispersion{ lines{ position{ x } } } }

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

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \(0.0\)

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

Functionality

\(x\)-coordinate of interest

Example
classical{
    bulk_dispersion{
        KP8{}

        lines{
            name = "name"
            position{
                x = 10.5
            }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   simulate1D{}
}

lines{ position{ y } }

Calling sequence

classical{ bulk_dispersion{ lines{ position{ y } } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \(0.0\)

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

Dependencies
Functionality

\(y\)-coordinate of interest

Example
classical{
    bulk_dispersion{
        KP8{}

        lines{
            name = "name"
            position{
                x = 10.5
                y = 35.0
            }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   simulate2D{}
}

lines{ position{ z } }

Calling sequence

classical{ bulk_dispersion{ lines{ position{ z } } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

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

  • values: \(\mathrm{no\;constraints}\)

  • default: \(0.0\)

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

using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
Functionality

\(z\)-coordinate of interest

Example
classical{
    bulk_dispersion{
        KP8{}

        lines{
            name = "name"
            position{
                x = 10.5
                y = 35.0
                z = 12.3
            }
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

global{
   ...
   simulate3D{}
}

lines{ shift_holes_to_zero }

Calling sequence

classical{ bulk_dispersion{ lines{ shift_holes_to_zero } } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

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

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

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

Functionality

If enabled shifts the whole dispersion, so that the energy for the Gamma point for the highest hole band is equal to 0.0 [eV].

Example
classical{
    bulk_dispersion{
        KP8{}

        lines{
            shift_holes_to_zero = yes
            name = "name"
            position{...}
            ...
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

lines{ k_max }

Calling sequence

classical{ bulk_dispersion{ lines{ k_max } } }

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

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

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

  • unit: \(\mathrm{nm^{-1}}\)

Functionality

Specifies a maximum absolute value (radius) for the k-vector in \(nm^{-1}\)

Example
classical{
    bulk_dispersion{
        KP8{}

        lines{
            name = "name"
            position{...}
            k_max = 1.0
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

lines{ spacing }

Calling sequence

classical{ bulk_dispersion{ lines{ spacing } } }

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

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

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

  • unit: \(\mathrm{nm^{-1}}\)

Functionality

Specifies approximate spacing for intermediate points in the path segments in \(nm^{-1}\).

Example
classical{
    bulk_dispersion{
        KP8{}

        lines{
            name = "name"
            position{...}
            k_max = 1.0
            spacing = 0.2
        }
        output_bulk_dispersions{}
    }
    Gamma{}
    HH{}
}

output_bulk_dispersions{ }

Calling sequence

classical{ bulk_dispersion{ output_bulk_dispersions{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

Outputs all defined bulk \(\mathbf{k} \cdot \mathbf{p}\) dispersions.

Example
classical{
    bulk_dispersion{
        output_bulk_dispersions{}

        KP8{}
        path{...}
    }
    Gamma{}
    HH{}
}

output_masses{ }

Calling sequence

classical{ bulk_dispersion{ output_masses{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

Outputs effective masses calculated from the dispersions.

Example
classical{
    bulk_dispersion{
        output_masses{}

        KP8{}
        path{...}
    }
    Gamma{}
    HH{}
}

output_inverse_masses{ }

Calling sequence

classical{ bulk_dispersion{ output_inverse_masses{ } } }

Properties
  • using: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: \(\mathrm{maximum\;1}\)

Dependencies
Functionality

Outputs inverse of effective masses calculated from the dispersions.

Example
classical{
    bulk_dispersion{
        output_inverse_masses{}

        KP8{}
        path{...}
    }
    Gamma{}
    HH{}
}

output_k_vectors{ }

Calling sequence

classical{ bulk_dispersion{ output_k_vectors{ } } }

Properties
  • using: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: \(\mathrm{maximum\;1}\)

Functionality

Outputs k-vectors for which the dispersions are computed.

Example
classical{
    bulk_dispersion{
        output_k_vectors{}

        KP8{}
        path{...}
    }
    Gamma{}
    HH{}
}