GroupTheory`
If[StringContainsQ[{<|Openers -> <|NotesSection -> Closed, PrimaryExamplesSection -> Closed, ExampleSection -> <|0 -> Closed, 1 -> Closed|>, ExampleSubsection -> <|0 -> Closed, 1 -> Closed, 2 -> Closed|>|>|>}[Metadata][uri], StartOfString~~{A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z}], Unevaluated[Sequence[XMLElement[span, {class -> main-title-top}, {Transmogrify`XMLTransformPrivate`context$1668811}], XMLElement[h1, {class -> main-title}, {Transmogrify`Recurse[]}], XML`RawXML[<div class="iconography" data-src="s= d= m= c= u= l= n= e="></div>], Transmogrify`XMLTransformPrivate`relatedInterpreterCell$1668811]], If[MemberQ[{Embedding Format, File, Front End Object, Interpreter, Entity, MathLink C Function, Method}, Transmogrify`GetParameter[entityType]], XMLElement[div, {class -> main-heading}, {XMLElement[h1, {class -> main-title}, {Transmogrify`Recurse[]}], XML`RawXML[<div class="iconography" data-src="s= d= m= c= u= l= n= e="></div>], Transmogrify`XMLTransformPrivate`relatedInterpreterCell$1668811}], Unevaluated[Sequence[XMLElement[h1, {class -> main-title}, {Transmogrify`Recurse[]}], XML`RawXML[<div class="iconography" data-src="s= d= m= c= u= l= n= e="></div>], Transmogrify`XMLTransformPrivate`relatedInterpreterCell$1668811]]]]

GTPartialDOS[Hamiltonian,structure,parameters]

calculates and plots the partial density of states for a given Hamiltonian.

Details and Options

  • The density of states (DOS) is calculated by a simple Gaussian broadening method.
  • structure defines the Bravais lattice. This information is used to construct the k-mesh in the irreducible part of the Brillouin zone.
  • The vector parameters contains data for the DOS calculation.
  • Note, this works only for tight-binding Hamiltonians with well defined basis functions and orbital characters.
  • parameters = {nt, scaleK, emin, emax, ne, σ, scale}
  • ntrefinement parameter k-mesh (see also GTBZPointMesh).
    scaleKscaling factor k-mesh (see also GTBZPointMesh).
    [emin,emax]energy intervall for DOS calculation.
    nenumber of energy points to calculate the DOS.
    σwidth of the Gaussian (if σ = 0 the energy step width is used).
    scaleThe whole DOS can be scaled by the factor scale. This is sometimes helpful for comperisons.
    {{"p",{2,3,4}}defines the orbitals to be used in the pDOS plot.
  • The following options can be given:
  • FrameLabel{"Energy", "DOS"}Option of ListPlot
    GOFermiEnergy -100000Calculates the Fermi energy
    GOPlotDos "DOS"Plots density of states
    GOStore 0Stores the DOS, if a file name is given
    PlotLabel"Density of states"Option of ListPlot
    PlotRangeAllOption of ListPlot
    PlotStyleRGBColor[0, 0, 1]Option of ListPlot
  • See: W. Hergert, M. Geilhufe, Group Theory in Solid State Physics and Photonics. Problem Solving with Mathematica
  • This is a new command introduced in version 1.0.1. A detailed description does not appear in the book.

Examples

open allclose all

Basic Examples  (1)

First load the package:

As an example, the DOS of Cu is calculated. We import the Hamiltonian and the corresponding parameters from a dataset.

For the partial DOS calculation, we provide a parameter list, where the last item describes which partial densities of states are calculated.

To calculate the pDOS in this example, only a restricted number of k-points is used.

Options  (4)

FrameLabel, PlotLabel, PlotRange, and PlotStyle are options of Mathematicas plot functions and not discussed here.

GOFermiEnergy  (1)

Use the Hamiltonian parametrized above. A starting point for Mathematicas procedure FindRoot is explicitly provided.

The integrated DOS is necessary to find the Fermi energy.

GOPlotDos  (1)

Only the integrated DOS is plotted

The DOS and the integrated DOS as well as the partial DOS are plotted. PlotStyle, FrameLabel, and PlotLabel have to be defined accordingly.

The correct labels have to be defined for both graphs.

The package TwoAxisListPlot.m of Mike Honeychurch is used for the case ALL (see: http://library.wolfram.com/infocenter/MathSource/7507) and TwoAxisListPlot

GOStore  (1)