wrong magnetization and non-symmetric Jani

162 views
Skip to first unread message

Timon Moško

unread,
May 26, 2024, 10:25:51 AM5/26/24
to TB2J
Dear He Xu,

I would like to ask you few questions about prope calculation od DMI and Janiso in case of antiferromagnet.
 I am trying to calculate DMI and Jani for antiferromagnetic system RuF4 using QE+Wannier90+TB2J.

I have performed 3 calculations with magnetic moments alligned in the z axis (in antiferromagnetic configuration) and rotated the structure.

First of all in each case I face the problem of of weird behaviour of y component of magnetic moment on each atom. From non-collinear+SOC DFT calcululation with QE I see those components non-zero but TB2J present them as 0.0000. I call it weird cos it is able to find smaller x-component but it completly ignores the bigger one in y. I have tried to investigate further but this behaviour does not change with number of kpoints in DFT calc. The wannier90 bandstructure fits the DFT one quite well and spreads of all wannier functions are quite small < 1. I have no idea how to make avoid this behaviour.

The second question is related to the symmetry of the Jani tensor. When I perform merge calc. on already calculated x,y and z cases I got Janis which is not symmetric.

Could you please provide me with some hint how to solve those problems?

I provide link to the already performed calculations with results.

Thanks for your help!

Best

Timon M.

Xu He

unread,
May 26, 2024, 11:11:01 AM5/26/24
to Timon Moško, TB2J
Hello, 
Thanks for reporting the y component problem. This is a bug introduced in the last version and has been fixed in v0.9.0.1, Could you update and see if it works for you?
For the symmetry problem, this is often because the maximally-localized wannier functions does not preserve the symmetry. For the moment we do not have a perfect solution for that. A careful choice of energy window can sometimes improve the symmetry but that's not for sure. 
One way to make it less significant is to set the steps of the localization to 1 in the wannier input to use the "projected Wannier functions.". If the symmetry is vital for your  project, you can also try using DFT codes with atomic orbital basis (currently TB2J supports Siesta, openmx and abacus), which does not need the Wannierization procedure. 

Best regards, 
HeXu



--
You received this message because you are subscribed to the Google Groups "TB2J" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tb2j+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tb2j/ad0fb12d-aaed-4b0a-9d72-fecc4c7b71a7n%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Timon Moško

unread,
May 26, 2024, 12:03:40 PM5/26/24
to TB2J
Dear HeXu,

thanks for a quick answer.

I updated the code and y component problem was solved.

Regarding the symmetry of Jani. If I understand correctly the problem is that MLWF functions in general do not preserve the symmetry group of the crystal. As far as I know, wannier90 code offers also acces to symmetry-adapted MLWF. Would it be possible to reduce this issue using them? (https://arxiv.org/pdf/1306.0032).

Thanks for hint.

Best regards
Timon M.

Dátum: nedeľa 26. mája 2024, čas: 17:11:01 UTC+2, odosielateľ: mail...@gmail.com

Timon Moško

unread,
May 26, 2024, 2:41:01 PM5/26/24
to TB2J
And one last question.

After recalculating x,y and z cases in the newest version of TB2J I got following error for merge calc.
I attach the  exchange files for all three cases.

TB2J_merge.py RuF4_x RuF4_y RuF4_ibrav0_z/ --type structure
/home/tmosko/virtualenv/venv_py_310/lib/python3.10/site-packages/TB2J/io_merge.py:39: RuntimeWarning: invalid value encountered in divide
  projections[0] /= np.linalg.norm(projections[0])
/home/tmosko/virtualenv/venv_py_310/lib/python3.10/site-packages/TB2J/io_merge.py:111: UserWarning:
                    WARNING: The matrix of equations to reconstruct the exchange tensors is
                    close to being singular. This happens when the magnetic moments between
                    different configurations are cloes to being parallel. You need to consider
                    more rotated spin configurations, otherwise the results might have a large
                    error.
  warnings.warn('''
Traceback (most recent call last):
  File "/home/tmosko/virtualenv/venv_py_310/bin/TB2J_merge.py", line 45, in <module>
    main()
  File "/home/tmosko/virtualenv/venv_py_310/bin/TB2J_merge.py", line 42, in main
    merge(*args.directories, main_path=args.main_path, write_path=args.output_path)
  File "/home/tmosko/virtualenv/venv_py_310/lib/python3.10/site-packages/TB2J/io_merge.py", line 178, in merge
    m = Merger(*paths, main_path=main_path)
  File "/home/tmosko/virtualenv/venv_py_310/lib/python3.10/site-packages/TB2J/io_merge.py", line 91, in __init__
    self._set_projv()
  File "/home/tmosko/virtualenv/venv_py_310/lib/python3.10/site-packages/TB2J/io_merge.py", line 110, in _set_projv
    if np.linalg.matrix_rank(coeff_matrix[key], tol=1e-2) < 6:
  File "/home/tmosko/virtualenv/venv_py_310/lib/python3.10/site-packages/numpy/linalg/linalg.py", line 1922, in matrix_rank
    S = svd(A, compute_uv=False, hermitian=hermitian)
  File "/home/tmosko/virtualenv/venv_py_310/lib/python3.10/site-packages/numpy/linalg/linalg.py", line 1693, in svd
    s = gufunc(a, signature=signature, extobj=extobj)
  File "/home/tmosko/virtualenv/venv_py_310/lib/python3.10/site-packages/numpy/linalg/linalg.py", line 121, in _raise_linalgerror_svd_nonconvergence
    raise LinAlgError("SVD did not converge")
numpy.linalg.LinAlgError: SVD did not converge

Best
Timon M.
Dátum: nedeľa 26. mája 2024, čas: 18:03:40 UTC+2, odosielateľ: Timon Moško
error.zip

Timon Moško

unread,
May 27, 2024, 2:15:10 AM5/27/24
to TB2J
If it helps I provide all outputs from TB2J.

Best
Timon M.

Dátum: nedeľa 26. mája 2024, čas: 20:41:01 UTC+2, odosielateľ: Timon Moško

Xu He

unread,
May 28, 2024, 10:22:48 AM5/28/24
to TB2J
Hello, 
In the new TB2J version, it requires 6 structures for a system with large enough non-collinearity. In your case it seems the canting is indeed quite large. 
Could you try with the --noncollinear option in TB2J_rotate.py? 
- For the symmetry. Yes symmetry adapted Wannier function can be an option. It is implemented only for bands without overlap with the others as far as I know. But it can be an good solution if it works for your system. I would be very curious to know if you try with that!
Best, 
HeXu

Reply all
Reply to author
Forward
0 new messages