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()
directBandGap()
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()
metatext()
Returns:The metatext of the object or None if no metatext is present.
Return type:str | unicode | 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 | unicode | None) – The metatext string that should be set. A value of “None” can be given to remove the current metatext.
valenceBandEdge()

Usage Examples

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

# -------------------------------------------------------------
# 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

[lSW85]F. H. Stillinger and T. A. Weber. Computer simulation of local order in condensed phases of silicon. Phys. Rev. B, 31:5262–5271, Apr 1985. doi:10.1103/PhysRevB.31.5262.