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_kptsvector, each element is an_bands * n_wannmatrixfrozen_bands: flag for frozen bands, length-n_kptsvector, each element is a length-n_bandsvectorexcluded_bands: flag for excluded bands, length-n_bands + n_excl_bandsvector, wheren_excl_bandsis the number of excluded bandscenters: centers of WFs, length-n_wannvector 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: theChkstructalat: the QEalatin Å unit. Note that thealatfrom 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_kptsvector of length-n_bvecsvector ofn_bands * n_bandsmatrices
WannierIO.read_epw_ukk — Methodread_epw_ukk(filename)
Read the EPW .ukk file.
Arguments
filename: the output file name
Return
ukk: theUkkstruct
WannierIO.write_epw_ukk — Methodwrite_epw_ukk(filename, ukk)
Write the EPW .ukk file.
Arguments
filename: the output file nameukk: theUkkstruct
Examples
See Ukk(chk::Chk, alat::Real) for how to construct a Ukk from a Chk.