2.10.12. bulk_dispersion{ }

Calling sequence

classical{ bulk_dispersion{ } }

Properties

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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{}
}

X{ }

Calling sequence

classical{ bulk_dispersion{ X{ } } }

Properties

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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 \(X\).


Delta{ }

Calling sequence

classical{ bulk_dispersion{ Delta{ } } }

Properties

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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 \(\Delta\).


L{ }

Calling sequence

classical{ bulk_dispersion{ L{ } } }

Properties

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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 \(L\).


HH{ }

Calling sequence

classical{ bulk_dispersion{ HH{ } } }

Properties

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: choice

  • values: yes or no

  • default: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: choice

  • values: yes or no

  • default: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: choice

  • values: yes or no

  • default: 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

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: choice

  • values: yes or no

  • default: 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

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: choice

  • values: yes or no

  • default: 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: - usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\) - type: real number - values: no constraints - default: \(r=0.0\) - unit: \(\mathrm{-}\)

Properties for Wurtzite: - usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\) - type: vector of 2 real numbers: \((r_1, r_2)\) - values: no constraints - default: \(r_1=0.0\), \(r_2=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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: choice

  • values: yes or no

  • default: 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{...}
}

KP8{ electron_far_band }

Calling sequence

classical{ bulk_dispersion{ KP8{ electron_far_band = ... } } }

Properties

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: real number

  • values: no constraints

  • default: \(r=0.0\)

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

Dependencies

Functionality

Far-band contribution to electrons \(S = 1.0 + r\). The default results in rescaling such that \(S = 1.0\).

Note

It can be useful to set this value to r = -1.0 which then corresponds to setting \(S = 0.0\).


KP8{ correct_electron_gfactor }

Calling sequence

classical{ bulk_dispersion{ KP8{ correct_electron_gfactor = ... } } }

Properties

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: real number

  • values: [0.0, ...)

  • default: \(r=-1.0\)

Dependencies

Functionality

When \(r<0\) then the g-factor is set to 2.
When \(r=0\) then the g-factor is computed.
When \(r>0\) then the g-factor is computed assuming energy gap equal \(r\).
See more details in Zeeman Term.

KP8{ rescale_kp_everywhere }

Calling sequence

classical{ bulk_dispersion{ KP8{ rescale_kp_everywhere } } }

Properties

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: choice

  • values: yes or no

  • default: yes

Dependencies

Functionality

If set to yes then \(N, M\), and \(P\) parameters are rescaled. See more details in Zeeman Term.


KP8{ avoid_spurious }

Calling sequence

classical{ bulk_dispersion{ KP8{ avoid_spurious } } }

Properties

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: choice

  • values: yes or no

  • default: no

Dependencies

Functionality

If set to yes then algorithm avoiding spurious solutions is used.


KP14{ }

Calling sequence

classical{ bulk_dispersion{ KP14{ } } }

Properties

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: choice

  • values: yes or no

  • default: 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

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: choice

  • values: yes or no

  • default: 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

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: choice

  • values: yes or no

  • default: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: real number

  • values: no constraints

  • default: \(r=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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: real number

  • values: no constraints

  • default: \(r=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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: real number

  • values: no constraints

  • default: \(r=0.0\)

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

usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\) - full{ position{ z } } is required if global{ simulate1D{ } } is specified in the input file. - full{ position{ z } } is not allowed if any global{ simulate1D{ } } or global{ simulate2D{ } } is specified in the input file.

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

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: choice

  • values: yes or no

  • default: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: real number

  • values: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: real number

  • values: [1e-6, ...)

  • 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: real number

  • values: no constraints

  • default: \(r=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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: real number

  • values: no constraints

  • default: \(r=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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: real number

  • values: no constraints

  • default: \(r=0.0\)

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

usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\) - path{ position{ z } } is required if global{ simulate1D{ } } is specified in the input file. - path{ position{ z } } is not allowed if any global{ simulate1D{ } } or global{ simulate2D{ } } is specified in the input file.

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

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: choice

  • values: yes or no

  • default: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: vector of 3 real numbers: \((r_1, r_2, r_3)\)

  • values: no constraints

  • default: \(r_1=0.0\), \(r_2=0.0\), \(r_3=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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: real number

  • values: [1e-6, ...)

  • 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: integer

  • values: \(z \geq 2\)

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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: character string

Dependencies

Name 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: real number

  • values: no constraints

  • default: \(r=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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: real number

  • values: no constraints

  • default: \(r=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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • type: real number

  • values: no constraints

  • default: \(r=0.0\)

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

usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\) - lines{ position{ z } } is required if global{ simulate1D{ } } is specified in the input file. - lines{ position{ z } } is not allowed if any global{ simulate1D{ } } or global{ simulate2D{ } } is specified in the input file.

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

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • type: choice

  • values: yes or no

  • default: 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: real number

  • values: [1e-6, ...)

  • 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

  • usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)

  • type: real number

  • values: [1e-6, ...)

  • 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)

  • items: 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

  • usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)

  • items: maximum 1

Functionality

Outputs k-vectors for which the dispersions are computed.

Example

classical{
    bulk_dispersion{
        output_k_vectors{}

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


Last update: 27/05/2025