PhononBandstructure

class PhononBandstructure(dynamical_matrix, configuration=None, route=None, points_per_segment=None, qpoints=None, number_of_bands=None, projection_list=None)

Analysis class for calculating the phonon bandstructure for a bulk configuration.

Parameters:
  • dynamical_matrix (DynamicalMatrix) – The DynamicalMatrix to calculate the phonon bandstructure from.

  • configuration (BulkConfiguration) – The configuration for which the vibrational modes should be calculated. If no calculator is attached to the configuration, the calculator from dynamical_matrix is used. Currently, configuration must be the same as the configuration from dynamical_matrix and is therefore not needed.
    Default: The configuration from dynamical_matrix

  • route (list of str) – The route to take through the Brillouin-zone as a list of symmetry points of the unit cell, e.g. ['G', 'X', 'G']. This option is mutually exclusive to qpoints.
    Default: Unit-cell dependent route.

  • points_per_segment (Positive int) – The number of points per segment of the route.
    Default: 20.

  • qpoints (list of lists of floats) – A list of 3-dimensional fractional q-points at which to calculate the energies of the bands e.g. [[0.0, 0.0, 0.0], [0.0, 0.0, 0.1], ...]. The shape is (Q, 3) where Q is the number of q-points. This option is mutually exclusive to route, and points_per_segment.
    Default: Unit-cell dependent route.

  • number_of_bands (Positive int | All) – The number of bands.
    Default: All (All bands are included).

  • projection_list (ProjectionList) – A projection list object defining a projection.
    Default: If no projection list is specified all orbitals will be used.

conductionBandEdge()

Override base method for getting the conduction band edge.

directBandGap()

Override base method for getting the direct band-gap.

evaluate()
Returns:

The eigenvalues for the phonon bandstructure. The shape is (Q, B) where Q is the number of q-points and B is the number of bands.

Return type:

PhysicalQuantity of type energy

indirectBandGap()

Override base method for getting the indirect band-gap.

metatext()
Returns:

The metatext of the object or None if no metatext is present.

Return type:

str | None

nlprint(stream=None)

Print a string containing an ASCII table useful for plotting the AnalysisSpin object.

Parameters:

stream (python stream) – The stream the table should be written to.
Default: NLPrintLogger()

qpoints()
Returns:

The list of q-points at which the energies of the bands are calculated as a list of 3-dimensional fractional q-points. The shape is (Q, 3) where Q is the number of q-points.

Return type:

list of lists of floats

route()
Returns:

The route through the Brillouin-zone as a list of symmetry points of the unit cell.

Return type:

list of str

setMetatext(metatext)

Set a given metatext string on the object.

Parameters:

metatext (str | None) – The metatext string that should be set. A value of “None” can be given to remove the current metatext.

uniqueString()

Return a unique string representing the state of the object.

valenceBandEdge()

Override base method for getting the valence band edge.

Usage Examples

Calculate the PhononBandstructure of silicon using the TremoloXCalculator calculator with the Stillinger-Weber potential [1]:

# -------------------------------------------------------------
# Bulk configuration
# -------------------------------------------------------------

# Set up lattice
lattice = FaceCenteredCubic(5.4306*Angstrom)

# Define elements
elements = [Silicon, Silicon]

# Define coordinates
fractional_coordinates = [[0.0 , 0.0 , 0.0 ],
                          [0.25, 0.25, 0.25]]

# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    fractional_coordinates=fractional_coordinates
    )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
potentialSet = StillingerWeber_Si_1985()
calculator = TremoloXCalculator(parameters=potentialSet)

bulk_configuration.setCalculator(calculator)

# -------------------------------------------------------------
# Dynamical matrix
# -------------------------------------------------------------
dynamical_matrix = DynamicalMatrix(
    configuration=bulk_configuration,
    repetitions=Automatic,
    atomic_displacement=0.01*Angstrom,
    acoustic_sum_rule=False,
    symmetrize=True,
    finite_difference_method=Central,
    )

# -------------------------------------------------------------
# Phonon bandstructure
# -------------------------------------------------------------
phonon_bandstructure = PhononBandstructure(
    configuration=bulk_configuration,
    dynamical_matrix=dynamical_matrix,
    route=['G', 'X', 'W', 'L', 'G', 'K', 'X', 'U', 'W', 'K', 'L'],
    points_per_segment=20,
    number_of_bands=All
    )
nlsave('si_phonon_bandstructure.nc', phonon_bandstructure)

phonon_bandstructure.py

Note

The PhononBandstructure can be visualized by selecting the file si_phonon_bandstructure.nc in the Lab Floor of QuantumATK and opening it using the Bandstructure Analyzer or the 2D Plot tool.

Notes