bulk_dispersion{ }

Calling sequence

classical{ bulk_dispersion{ } }

Properties

  • usage: 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 kp 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: 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 Γ.

Example

classical{
    bulk_dispersion{
        Gamma{}

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

HH{ }

Calling sequence

classical{ bulk_dispersion{ HH{ } } }

Properties

  • usage: 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: 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: 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: conditional

  • items: maximum 1

Dependencies

Functionality

When this group is defined, 6-band kp 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: 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 (γ1, γ2, γ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: conditional

  • type: choice

  • values: yes or no

  • default: no

Dependencies

Functionality

By default the κ 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 kp 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: conditional

  • items: maximum 1

Dependencies

Functionality

When this group is defined, 8-band kp 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: 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 (γ1, γ2, γ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: optional

  • type: choice

  • values: yes or no

  • default: no

Functionality

By default the 8-band kp parameters are taken from database or input file. If enabled then it evaluates the 8-band kp parameters from 6-band kp parameters, Kane parameter EP and temperature dependent band gap Eg.

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: optional

  • type: choice

  • values: yes or no

  • default: no

Functionality

By default S (S1, S2 for wurtzite) kp parameter(s) is (are) taken from database or input file. If enabled it evaluates S (S1, S2 for wurtzite) kp parameter(s) from effective mass me (me,par, me,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: optional - type: real number - values: no constraints - default: r=0.0 - unit:

Properties for Wurtzite: - usage: optional - type: vector of 2 real numbers: (r1,r2) - values: no constraints - default: r1=0.0, r2=0.0 - unit:

Functionality

Sets S for zinc blende crystal structure to specified value and rescale EP, L, N+ in order to preserve electron’s effective mass.

Sets S1, S2 for wurtzite crystal structure to specified values respectively and rescale EP1, EP2, L1, L2, N1+, N2+ 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: conditional

  • type: choice

  • values: yes or no

  • default: no

Dependencies

Functionality

By default, the κ 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 kp 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

  • usage: conditional

  • items: maximum 1

Dependencies

Functionality

When this group is defined, 30-band kp 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: 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 (γ1, γ2, γ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: optional

  • type: choice

  • values: yes or no

  • default: no

Functionality

By default the 14-band kp parameters are taken from database or input file. If enabled then it evaluates the 14-band kp parameters from 6-band kp parameters, Kane parameter EP and temperature dependent band gap Eg.

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: optional

  • type: choice

  • values: yes or no

  • default: no

Functionality

By default S kp parameter(s) is (are) taken from database or input file. If enabled it evaluates S kp parameter(s) from effective mass me (me,par, me,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: conditional

  • items: maximum 1

Dependencies

Functionality

When this group is defined, 30-band kp 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: conditional

  • items: no constraints

Dependencies

Functionality

Calculates bulk kp 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: 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: 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: required

  • type: real number

  • values: no constraints

  • default: r=0.0

  • unit: 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: conditional

  • type: real number

  • values: no constraints

  • default: r=0.0

  • unit: 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: conditional

  • type: real number

  • values: no constraints

  • default: r=0.0

  • unit: nm

usage: 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: 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: required

  • items: no constraints

Functionality

Specifies a grid along kx for a 1D/2D/3D plot of the energy dispersion E(kx,ky,kz).

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: 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: required

  • type: real number

  • values: no constraints

  • unit: nm1

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: required

  • type: real number

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

  • unit: nm1

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: required

  • items: no constraints

Functionality

Specifies a grid along ky for a 1D/2D/3D plot of the energy dispersion E(kx,ky,kz). 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: required

  • items: no constraints

Functionality

Specifies a grid along kz for a 1D/2D/3D plot of the energy dispersion E(kx,ky,kz). 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: conditional

  • items: no constraints

Dependencies

Functionality

Calculate bulk kp 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: 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: 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: required

  • type: real number

  • values: no constraints

  • default: r=0.0

  • unit: 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: conditional

  • type: real number

  • values: no constraints

  • default: r=0.0

  • unit: 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: conditional

  • type: real number

  • values: no constraints

  • default: r=0.0

  • unit: nm

usage: 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: 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: 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: required

  • type: vector of 3 real numbers: (r1,r2,r3)

  • values: no constraints

  • default: r1=0.0, r2=0.0, r3=0.0

  • unit: nm1

Functionality

k-point represented by vector [kx,ky,kz].

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: conditional

  • type: real number

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

  • unit: nm1

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: conditional

  • type: integer

  • values: z2

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: 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: 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: 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: required

  • type: real number

  • values: no constraints

  • default: r=0.0

  • unit: 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: conditional

  • type: real number

  • values: no constraints

  • default: r=0.0

  • unit: 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: conditional

  • type: real number

  • values: no constraints

  • default: r=0.0

  • unit: nm

usage: 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: 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: required

  • type: real number

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

  • unit: nm1

Functionality

Specifies a maximum absolute value (radius) for the k-vector in nm1

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: required

  • type: real number

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

  • unit: nm1

Functionality

Specifies approximate spacing for intermediate points in the path segments in nm1.

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: conditional

  • items: maximum 1

Dependencies

Functionality

Outputs all defined bulk kp dispersions.

Example

classical{
    bulk_dispersion{
        output_bulk_dispersions{}

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

output_masses{ }

Calling sequence

classical{ bulk_dispersion{ output_masses{ } } }

Properties

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