[Wien] case.almblm along used-defined quantization axis
Peter Blaha
peter.blaha at tuwien.ac.at
Sun Mar 19 18:07:04 CET 2023
Inlined !
> Taking as an example the celebrated family of 2H TMDCs (bulk MoS2, WSe2,
> etc), sgroup will identify the space group 186, and create a case.struct
> with 3 atoms, each having 2 equivalent positions. Total unit cell has 6
> atoms. I understand that each of the 2 equivalent atoms are related by
> inversion. >
> I have 4 questions to make sure I am not doing something completely wrong:
>
> 1. There are 6 atoms in the unit cell, but case.almblm seems to contain
> data for 3 atoms? This suggests that case.almblm contains data for
> inequivalent atoms only. Are the printed wave functions the ones inside
> the LAPW sphere of each first equivalent position (as defined in
> case.struct)?
Of course only for the first of each inequivalent atoms. The rest can be
produced by symmetry, see eg. case.output2 or the case.rotlm file)
> 2. Regarding loc-rot matrices. Actually, I think they are printed by x
> qtl into case.outputqup file. Can I just plug these matrices from
> case.outputqup into case.struct?
Probably it works. I've probably never had a loc.rot. in a hexagonal
system, but I think both matrices (from qtl and locrot) are in
carthesian coordinates. (I'm not sure if you need to transpose the
matrix, but there is a comment in qtlmain.f saying this matrix is
written as in case.struct).
In any case, I' try this also out using simpler transformations in case.inq.
You can test this by comparing the qtl files from x qtl and x lapw2 -qtl
Do you really want the z-axis pointing into the hexagonal 111 direction ??
It seems strange to me: You put the magnetization direction into 001,
but want z in 111 ?
> 3. What are the matrices in the case.rotlm (they don't depend on the
> settings in case.inq)? Can I ignore these?
This is obviously the reciprocal Bravais matrix ( eg. Z: 2 pi/24 ~= 0.25)
and the other matrices transform the equivalent atoms into the first one.
>
> 4. The original loc-rot matrices in case.struct must be related to some
> real or reciprocal space directions. What are these directions for
> hexagonal and rhombohedral lattices? Is this starting coordinate system
> referenced to real space or reciprocal space vectors?
It is obviously real space. The hexagonal real space axis are defined
such that the cart. y and hex. b axis coincide and there is a 120 degree
angle.
PS: Both real and rec. bravais matrices are printed in several output
files ....
>
> Important files for this test case are pasted below.
>
> Best,
> Lukasz
>
>
>
>
>
>
> case.inq
>
> -9.0 3.0 Emin Emax
> 3 number of atoms
> 1 88 0 1 iatom,qsplit,symmetrize,locrot
> 3 0 1 2 nL, l-values
> 1 1 1
> 2 1 0 1 iatom,qsplit,symmetrize,locrot
> 3 0 1 2 nL, l-values
> 1 1 1
> 3 1 0 1 iatom,qsplit,symmetrize,locrot
> 3 0 1 2 nL, l-values
> 1 1 1
>
>
> case.struct
>
> H 3 186
> RELA
> 6.202084 6.202084 24.447397 90.000000 90.000000120.000000
> ATOM -1: X=0.33333333 Y=0.66666666 Z=0.50000000
> MULT= 2 ISPLIT= 4
> -1: X=0.66666667 Y=0.33333334 Z=0.00000000
> Se1 NPT= 781 R0=.000050000 RMT= 2.33000 Z: 34.00000
> LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
> 0.0000000 1.0000000 0.0000000
> 0.0000000 0.0000000 1.0000000
> ATOM -2: X=0.66666666 Y=0.33333333 Z=0.63179000
> MULT= 2 ISPLIT= 4
> -2: X=0.33333334 Y=0.66666667 Z=0.13179000
> W 1 NPT= 781 R0=.000005000 RMT= 2.45000 Z: 74.00000
> LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
> 0.0000000 1.0000000 0.0000000
> 0.0000000 0.0000000 1.0000000
> ATOM -3: X=0.33333333 Y=0.66666666 Z=0.76358100
> MULT= 2 ISPLIT= 4
> -3: X=0.66666667 Y=0.33333334 Z=0.26358100
> Se2 NPT= 781 R0=.000050000 RMT= 2.33000 Z: 34.00000
> LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
> 0.0000000 1.0000000 0.0000000
> 0.0000000 0.0000000 1.0000000
> 12 NUMBER OF SYMMETRY OPERATIONS
> 1 0 0 0.00000000
> 0 1 0 0.00000000
> 0 0 1 0.00000000
> 1 A 1 so. oper. type orig. index
> 0-1 0 0.00000000
> 1-1 0 0.00000000
> 0 0 1 0.00000000
> 2 A 2
> -1 1 0 0.00000000
> -1 0 0 0.00000000
> 0 0 1 0.00000000
> 3 A 3
> -1 0 0 0.00000000
> 0-1 0 0.00000000
> 0 0 1 0.50000000
> 4 A 4
> 0 1 0 0.00000000
> -1 1 0 0.00000000
> 0 0 1 0.50000000
> 5 A 5
> 1-1 0 0.00000000
> 1 0 0 0.00000000
> 0 0 1 0.50000000
> 6 A 6
> 0-1 0 0.00000000
> -1 0 0 0.00000000
> 0 0 1 0.00000000
> 7 B 7
> -1 1 0 0.00000000
> 0 1 0 0.00000000
> 0 0 1 0.00000000
> 8 B 8
> 1 0 0 0.00000000
> 1-1 0 0.00000000
> 0 0 1 0.00000000
> 9 B 9
> 0 1 0 0.00000000
> 1 0 0 0.00000000
> 0 0 1 0.50000000
> 10 B 10
> 1-1 0 0.00000000
> 0-1 0 0.00000000
> 0 0 1 0.50000000
> 11 B 11
> -1 0 0 0.00000000
> -1 1 0 0.00000000
> 0 0 1 0.50000000
> 12 B 12
>
>
>
> case.outputqup produced by x qtl (this quite large file, I only paste
> first lines)
>
> --------------------------------------------------
> S T R U C T U R A L I N F O R M A T
> I O N
> --------------------------------------------------
>
>
> SUBSTANCE = WSe2 s-o calc. M|| 0.00 0.00 1.00
>
> LATTICE = H
> LATTICE CONSTANTS ARE = 6.2020840 6.2020840 24.4473970
> NUMBER OF ATOMS IN UNITCELL = 3
> MODE OF CALCULATION IS = RELA
> BR1, BR2
> 1.16980 0.58490 0.00000 1.16980 0.58490 0.00000
> 0.00000 1.01308 0.00000 0.00000 1.01308 0.00000
> 0.00000 0.00000 0.25701 0.00000 0.00000 0.25701
> IORD= 12
> atom 1; type 1; qsplit= 88; for L= 0 1 2
> Symmetrization over eq. k-points is not performed
> allowed for invariant DOS
> New z axis || 1.0000 1.0000 1.0000
> LATTICE:H
> New local rotation matrix in global orthogonal system
> new x new y new z
> LOCAL ROT MATRIX: -0.5000000-0.8394340 0.2129568
> 0.8660254-0.4846474 0.1229507
> 0.0000000 0.2459014 0.9692949
> Population matrix for TELNES
> Population matrix diagonal in L for L= 0 1 2
> atom 2; type 2; qsplit= 1; for L= 0 1 2
> Symmetrization over eq. k-points is not performed
> allowed for invariant DOS
> New z axis || 1.0000 1.0000 1.0000
> LATTICE:H
> New local rotation matrix in global orthogonal system
> new x new y new z
> LOCAL ROT MATRIX: -0.5000000-0.8394340 0.2129568
> 0.8660254-0.4846474 0.1229507
> 0.0000000 0.2459014 0.9692949
> L= 0. Unitary transformation to Ylm basis
> Real part of unitary matrix
> 1.0000
> Imaginary part of unitary matrix
> 0.0000
> L= 1. Unitary transformation to Ylm basis
> Real part of unitary matrix
> 1.0000 0.0000 0.0000
> 0.0000 1.0000 0.0000
> 0.0000 0.0000 1.0000
> Imaginary part of unitary matrix
> 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000
> L= 2. Unitary transformation to Ylm basis
> Real part of unitary matrix
> 1.0000 0.0000 0.0000 0.0000 0.0000
> 0.0000 1.0000 0.0000 0.0000 0.0000
> 0.0000 0.0000 1.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000 1.0000 0.0000
> 0.0000 0.0000 0.0000 0.0000 1.0000
> Imaginary part of unitary matrix
> 0.0000 0.0000 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000 0.0000 0.0000
> atom 3; type 3; qsplit= 1; for L= 0 1 2
> Symmetrization over eq. k-points is not performed
> allowed for invariant DOS
> New z axis || 1.0000 1.0000 1.0000
> LATTICE:H
> New local rotation matrix in global orthogonal system
> new x new y new z
> LOCAL ROT MATRIX: -0.5000000-0.8394340 0.2129568
> 0.8660254-0.4846474 0.1229507
> 0.0000000 0.2459014 0.9692949
> L= 0. Unitary transformation to Ylm basis
> Real part of unitary matrix
> 1.0000
> Imaginary part of unitary matrix
> 0.0000
> L= 1. Unitary transformation to Ylm basis
> Real part of unitary matrix
> 1.0000 0.0000 0.0000
> 0.0000 1.0000 0.0000
> 0.0000 0.0000 1.0000
> Imaginary part of unitary matrix
> 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000
> L= 2. Unitary transformation to Ylm basis
> Real part of unitary matrix
> 1.0000 0.0000 0.0000 0.0000 0.0000
> 0.0000 1.0000 0.0000 0.0000 0.0000
> 0.0000 0.0000 1.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000 1.0000 0.0000
> 0.0000 0.0000 0.0000 0.0000 1.0000
> Imaginary part of unitary matrix
> 0.0000 0.0000 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000 0.0000 0.0000
> 0.0000 0.0000 0.0000 0.0000 0.0000
> LATTICE:H
>
>
> case.rotlm produced by x qtl
>
> 1.16980 0.00000 0.00000
> 0.58490 1.01308 0.00000
> 0.00000 0.00000 0.25701
> inequivalent atomnumber 1 number 1 total 1
> 1.00000 0.00000 0.00000
> 0.00000 1.00000 0.00000
> 0.00000 0.00000 1.00000
> inequivalent atomnumber 1 number 2 total 2
> -1.00000 0.00000 0.00000
> 0.00000 -1.00000 0.00000
> 0.00000 0.00000 1.00000
> inequivalent atomnumber 2 number 1 total 3
> 1.00000 0.00000 0.00000
> 0.00000 1.00000 0.00000
> 0.00000 0.00000 1.00000
> inequivalent atomnumber 2 number 2 total 4
> -1.00000 0.00000 0.00000
> 0.00000 -1.00000 0.00000
> 0.00000 0.00000 1.00000
> inequivalent atomnumber 3 number 1 total 5
> 1.00000 0.00000 0.00000
> 0.00000 1.00000 0.00000
> 0.00000 0.00000 1.00000
> inequivalent atomnumber 3 number 2 total 6
> -1.00000 0.00000 0.00000
> 0.00000 -1.00000 0.00000
> 0.00000 0.00000 1.00000
>
>
>
>
> On 2023-03-19 07:10, Peter Blaha wrote:
>> For this purpose you can simply redefine the loc.rot. in case.struct
>> in the way you want it and then call lapw2.
>>
>> PS: The lapw2-call in x qtl is only to get a proper EF and weight
>> files.
>>
>> Am 18.03.2023 um 22:15 schrieb pluto via Wien:
>>> Dear All,
>>>
>>> I am again coming back to the Ylm band characters etc...
>>>
>>> This command
>>>
>>> x lapw2 -up -so -alm -qtl -band
>>>
>>> produces case.almblm file. I am guessing that here the quantization
>>> axis (i.e. the direction of pz and dz2, the z-axis) is oriented along
>>> the axis defined by the local-rotation-matrices in case.struct
>>> (actually can be different for each atom).
>>>
>>> However, I am interested to have case.almblm file along the
>>> quantization axis user-defined in case.inq. I tried running
>>>
>>> x qtl -band -up -alm -so
>>>
>>> But this did not produce case.almblm file. Actually from the :log
>>> file I can see that x qtl is calling lapw2:
>>>
>>> Sat Mar 18 09:37:27 PM CET 2023> (x) qtl -band -up -alm -so
>>> Sat Mar 18 09:37:27 PM CET 2023> (x) lapw2 -fermi -so -up
>>>
>>> Is there any way of printing case.almblm file with the user-defined
>>> quantization axis?
>>>
>>> x qtl produces case.rotlm, which I believe contains new
>>> local-rotation-matrices. Perhaps I can manually plug these matrices
>>> somewhere (in case.struct ?) as an input for x lapw2?
>>>
>>> Best,
>>> Lukasz
>>> _______________________________________________
>>> Wien mailing list
>>> Wien at zeus.theochem.tuwien.ac.at
>>> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
>>> SEARCH the MAILING-LIST at:
>>> http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html
> _______________________________________________
> Wien mailing list
> Wien at zeus.theochem.tuwien.ac.at
> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> SEARCH the MAILING-LIST at:
> http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html
--
--------------------------------------------------------------------------
Peter BLAHA, Inst.f. Materials Chemistry, TU Vienna, A-1060 Vienna
Phone: +43-1-58801-165300
Email: peter.blaha at tuwien.ac.at WIEN2k: http://www.wien2k.at
WWW: http://www.imc.tuwien.ac.at
-------------------------------------------------------------------------
More information about the Wien
mailing list