EPW files
WannierIO.Ukk
— TypeStruct for the EPW .ukk
file.
Similar to the W90 .chk
file.
struct Ukk{T<:Real}
Fields
ibndstart
: index of the first bandibndend
: index of the last bandn_kpts
: number of kpointsn_bands
: number of bandsn_wann
: number of wannier functionsU
: gauge matrices, length-n_kpts
vector, each element is an_bands * n_wann
matrixfrozen_bands
: flag for frozen bands, length-n_kpts
vector, each element is a length-n_bands
vectorexcluded_bands
: flag for excluded bands, length-n_bands + n_excl_bands
vector, wheren_excl_bands
is the number of excluded bandscenters
: centers of WFs, length-n_wann
vector ofVec3
. Note that EPW uses Cartesian coordinates w.r.t the QEalat
, so it is dimensionless.
WannierIO.Ukk
— MethodUkk(chk, alat)
Construct a EPW Ukk
from a W90 Chk
.
Arguments
chk
: theChk
structalat
: the QEalat
in Å unit. Note that thealat
from QE stdout file is in Bohr unit, you need to do the conversion by multiplying it withBohr_QE
.
Examples
Convert a W90 .chk
file to a EPW .ukk
file:
using WannierIO
chk = read_chk("BN.chk")
# Note we need QE `alat` for ukk. You can get it
# - either by inspecting the QE stdout file, from line like
# lattice parameter (alat) = 6.8330 a.u.
# where the 6.8330 is the alat in Bohr unit. However, the Bohr constant
# in W90 and QE are slightly different, to be exact we need to do the unit
# conversion using QE constant:
alat = 6.8330 * WannierIO.Bohr_QE
# - or better by parsing the QE xml file, and the unit conversion is done automatically
alat = read_qe_xml("BN.xml").alat
ukk = Ukk(chk, alat)
WannierIO.write_epw_ukk("BN.ukk", ukk)
Base.isapprox
— Methodisapprox(a, b)
Compare two Ukk
structs.
WannierIO.read_epw_mmn
— Methodread_epw_mmn(filename; n_kpts, n_bvecs, n_bands)
Read the EPW mmn file.
The EPW mmn format is different from that of W90. It does not contain the number of kpoints/bvectors/bands, so they need to be provided as keyword arguments.
Arguments
filename
: the mmn file name
Keyword arguments
n_kpts
: number of kpointsn_bvecs
: number of bvectorsn_bands
: number of bands
Return
M
: length-n_kpts
vector of length-n_bvecs
vector ofn_bands * n_bands
matrices
WannierIO.read_epw_ukk
— Methodread_epw_ukk(filename)
Read the EPW .ukk
file.
Arguments
filename
: the output file name
Return
ukk
: theUkk
struct
WannierIO.write_epw_ukk
— Methodwrite_epw_ukk(filename, ukk)
Write the EPW .ukk
file.
Arguments
filename
: the output file nameukk
: theUkk
struct
Examples
See Ukk(chk::Chk, alat::Real)
for how to construct a Ukk
from a Chk
.