pyprocar icon indicating copy to clipboard operation
pyprocar copied to clipboard

2d kmesh in k110-k001 plane with k1-10 perpendicular

Open xbchen1994 opened this issue 1 year ago • 1 comments

Hello,

I want to obtain the 2D spin-texture from PROCAR for a tetragonal lattice a = b >c. At the present, the k-mesh is "t t s" for t, s both varied from 0 to 0.5. How can I obtain the 2d fermi surface using translate and rotation?
Now I don't use the tag "translate" since I cannot figure out it even I come to Part "Translate and Rotate the 2D KPOINT mesh". And I set the rotation with rotation = [90, 1, 1, 0], but results are weird, maybe the determinant of transform matrix now is not 1?
Can you show me the right setting?

Regards, Aaron

xbchen1994 avatar Jul 28 '24 13:07 xbchen1994

Hey,

The issue is the translate, general rotation, and rot_symmetry_z are not applied in the spin texture case.

So, the relevant code is in scriptFermi2D.py:

if spin_texture is True:
        sx, sy, sz = stData[0], stData[1], stData[2]
        symm = ProcarSymmetry(kpoints, bands, sx=sx, sy=sy, sz=sz, character=character)
else:
        symm = ProcarSymmetry(kpoints, bands, character=character)
        symm.translate(translate)
        symm.general_rotation(rotation[0], rotation[1:])
        # symm.MirrorX()
        symm.rot_symmetry_z(rot_symm)

This should be

if spin_texture is True:
        sx, sy, sz = stData[0], stData[1], stData[2]
        symm = ProcarSymmetry(kpoints, bands, sx=sx, sy=sy, sz=sz, character=character)
else:
        symm = ProcarSymmetry(kpoints, bands, character=character)
symm.translate(translate)
symm.general_rotation(rotation[0], rotation[1:])
        # symm.MirrorX()
symm.rot_symmetry_z(rot_symm)

I made the change and pushed it to github.

To use these changes, do the following.

pip uninstall pyprocar
git clone [email protected]:romerogroup/pyprocar.git
cd pyprocar
pip install -e .

Logan Lang

lllangWV avatar Aug 09 '24 16:08 lllangWV