sisl.io.siesta.eigSileSiesta
- class sisl.io.siesta.eigSileSiesta(filename, *args, **kwargs)
Bases:
SileSiesta
Eigenvalues as calculated in the SCF loop, easy plots using sdata
The .EIG file from Siesta contains the eigenvalues for k-points used during the SCF. Using the command-line utility sdata one may plot the eigenvalue spectrum to visualize the spread of eigenvalues.
# Plot the eigenspectrum sdata siesta.EIG --plot # or to save to png file sdata siesta.EIG --plot eig_spread.png
One may also extract/plot the DOS using the eigenvalues and the k-point weights:
# plot the DOS using default values sdata siesta.EIG --dos --plot # change the energy spacing and plot it sdata siesta.EIG --dos dE=1meV --plot # change the energy spacing; # plot two different temperatures sdata siesta.EIG --dos dE=1meV kT=5K --dos kT=25K --plot # store the data in a dos.dat (3 columns, E, kT=5, kT=25K) sdata siesta.EIG --dos dE=1meV kT=5K --dos kT=25K --out dos.dat
This will default to plot the DOS using these parameters: dE = 5 meV, kT = 300 K (25 meV), Gaussian distribution and in the full energy-range of the eigenvalue spectrum. By default the k-point weights will be read in the
*.KP
file, however if the file does not exist one may use the option--kp-file FILE
to read in the weights fromFILE
.To limit the shown energy region, simply use:
sdata siesta.EIG -E -10:10 --dos
to reduce to the -10 eV to 10 eV energy range.
One may optionally choose the temperature smearing and the used distribution function:
# position dependent values sdata siesta.EIG -E -10:10 --dos 0.01 0.1 lorentzian # key based values sdata siesta.EIG -E -10:10 --dos dE=0.01 kT=0.1 dist=lorentzian
which will calculate the DOS in steps of 10 meV, the temperature smearing is 0.1 eV and the used distribution is a Lorentzian. Several invocations of
--dos
will collect the data until either a--plot
or--out
is found on the command line.Methods
base_directory
([relative_to])Retrieve the base directory of the file, relative to the path relative_to
close
()dir_file
([filename, filename_base])File of the current Sile
read
(*args, **kwargs)Generic read method which should be overloaded in child-classes
Read eigenvalues, as calculated and written by Siesta
Query the Fermi-level contained in the file
write
(*args, **kwargs)Generic write method which should be overloaded in child-classes
Attributes
File of the current Sile
File of the current Sile
- base_directory(relative_to='.')
Retrieve the base directory of the file, relative to the path relative_to
- close()
- dir_file(filename=None, filename_base='')
File of the current Sile
- read(*args, **kwargs)
Generic read method which should be overloaded in child-classes
- Parameters:
kwargs – keyword arguments will try and search for the attribute
read_<>
and call it with the remaining**kwargs
as arguments.
- read_data() ndarray [source]
Read eigenvalues, as calculated and written by Siesta
- Returns:
numpy.ndarray (
all eigenvalues
,shifted
to \(E_F = 0\),shape ``(ns
,nk
,nb)``
) – wherens
number of spin-components,nk
number of k-points andnb
number of bands.
- read_fermi_level() float [source]
Query the Fermi-level contained in the file
- Returns:
Ef (
fermi-level
ofthe system
)
- write(*args, **kwargs)
Generic write method which should be overloaded in child-classes
- Parameters:
**kwargs – keyword arguments will try and search for the attribute write_ and call it with the remaining
**kwargs
as arguments.
- property base_file
File of the current Sile
- property file
File of the current Sile