Problem calculating exchange parameters in MnO

318 views
Skip to first unread message

Emil Boström

unread,
Feb 25, 2021, 5:34:43 AM2/25/21
to TB2J
Dear developers,

I currently trying to use Octopus, Wannier90 and TB2J to get the exchange parameters for MnO. However, I find a problem when trying to run TB2J that I would appreciate any help in solving. The command I use to run TB2J and the corresponding error message is attached below, as well as the contents of the POSCAR file and the file with the Wannier centers produced by Wannier90. I can also send the file with the Wannier90 tight-binding Hamiltonian if this is useful. I've tested that I can reproduce the results provided in the TB2J example of SrMnO3.

Best regards,
Emil Vinas Boström

Command
python /u/vinasemi/.local/bin/wann2J.py --spinor --groupby spin --posfile MnO.poscar --efermi 4.0 --kmesh 5 5 5 --elements Mn --prefix_spinor w90

Error
TB2J version 0.3.8
Copyright (C) 2018-2020  TB2J group.
This software is distributed with the 2-Clause BSD License, without any warranty. For more details, see the LICENSE file delivered with this software.

Reading Wannier90 hamiltonian: non-colinear spin.
Starting to calculate exchange.

Green's function Calculation started.
Traceback (most recent call last):                                                                                                                      | (ETA:  --:--:--)
  File "/u/vinasemi/.local/bin/wann2J.py", line 4, in <module>
    __import__('pkg_resources').run_script('TB2J==0.3.8', 'wann2J.py')
  File "/cobra/u/system/soft/SLE_12/packages/x86_64/anaconda/3/2020.02/lib/python3.7/site-packages/pkg_resources/__init__.py", line 667, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/cobra/u/system/soft/SLE_12/packages/x86_64/anaconda/3/2020.02/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1470, in run_script
    exec(script_code, namespace, namespace)
  File "/u/vinasemi/.local/lib/python3.7/site-packages/TB2J-0.3.8-py3.7.egg/EGG-INFO/scripts/wann2J.py", line 163, in <module>
  File "/u/vinasemi/.local/lib/python3.7/site-packages/TB2J-0.3.8-py3.7.egg/EGG-INFO/scripts/wann2J.py", line 159, in run_wann2J
  File "/u/vinasemi/.local/lib/python3.7/site-packages/TB2J-0.3.8-py3.7.egg/TB2J/manager.py", line 171, in gen_exchange
  File "/u/vinasemi/.local/lib/python3.7/site-packages/TB2J-0.3.8-py3.7.egg/TB2J/exchange.py", line 581, in run
  File "/u/vinasemi/.local/lib/python3.7/site-packages/TB2J-0.3.8-py3.7.egg/TB2J/exchange.py", line 532, in calculate_all
  File "/u/vinasemi/.local/lib/python3.7/site-packages/TB2J-0.3.8-py3.7.egg/TB2J/exchange.py", line 324, in get_all_A
  File "/u/vinasemi/.local/lib/python3.7/site-packages/TB2J-0.3.8-py3.7.egg/TB2J/exchange.py", line 295, in get_A_ijR
  File "/u/vinasemi/.local/lib/python3.7/site-packages/TB2J-0.3.8-py3.7.egg/TB2J/pauli.py", line 133, in pauli_block_all
ValueError: operands could not be broadcast together with shapes (2,2) (3,3)

MnO.poscar
MnO
  4.435
  1.00000000   0.50000000   0.50000000
  0.50000000   1.00000000   0.50000000
  0.50000000   0.50000000   1.00000000
Mn O
  2 2
Direct
  0.00000000   0.00000000   0.00000000
 -0.50000000  -0.50000000  -0.50000000
  0.25000000   0.25000000   0.25000000
 -0.25000000  -0.25000000  -0.25000000

    30
 Wannier centres, written by Wannier90 on25Feb2021 at 09:42:44
X          2.41481300       2.41481377       2.41481323
X          2.02225095       2.02225049       2.02225135
X          2.27569149       2.27569128       1.86057864
X          2.15902383       2.15902405       2.57383654
X          1.86057852       2.27569103       2.27569133
X          2.57383644       2.15902377       2.15902350
X          2.27569195       1.86057875       2.27569174
X          2.15902330       2.57383626       2.15902314
X         -2.41480880      -2.41480847      -2.41480884
X         -2.02226045      -2.02226130      -2.02226066
X         -2.27569488      -2.27569453      -1.86057714
X         -2.15901967      -2.15901949      -2.57383972
X         -1.86057709      -2.27569495      -2.27569444
X         -2.57383964      -2.15901920      -2.15901950
X         -2.27569418      -1.86057698      -2.27569457
X         -2.15902027      -2.57383997      -2.15902006
X         -0.00000007      -0.00000002      -0.00000002
X         -0.00000010      -0.00000003      -0.00000011
X          0.00000001      -0.00000010      -0.00000007
X         -0.00000002      -0.00000002      -0.00000002
X         -0.00000010      -0.00000012       0.00000001
X         -4.43500002      -4.43500002      -4.43499981
X         -4.43499728      -4.43500000      -4.43499724
X         -4.43500005      -4.43499730      -4.43499726
X         -4.43499985      -4.43499988      -4.43500008
X         -4.43499726      -4.43499727      -4.43500001
Mn       0.00000000       0.00000000       0.00000000
Mn     -4.43500000      -4.43500000      -4.43500000
O          2.21750000       2.21750000       2.21750000
O         -2.21750000      -2.21750000      -2.21750000

Xu He

unread,
Feb 25, 2021, 8:22:22 AM2/25/21
to tb...@googlegroups.com, emile....@gmail.com

Dear Emil,

Thanks for the detailed error message.

It suggest that TB2J find 5 Wannier functions attached to one atom, and TB2J is trying to assign them to spin up and down. The error message is not clear, I will try to improve it.

In a spinor calculation for MnO, there will be 32 Wannier functions if Mn 3d and O 2p orbitals are considered  (10*2+6*2). But in the xyz file there are 26. Please check the Wannier90 input.

From the xyz file, I guess you put 6 orbitals per O and 5 orbitals per Mn. I guess only the occupied states are included? For TB2J, two spin channels should be included for each orbitals as the spins rotation should be allowed.

Best wishes,

HeXu



What are the orbitals

--
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/a9cde4e1-20e7-4916-a705-ce820b9b07f8n%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Xu He

unread,
Mar 10, 2021, 8:04:24 AM3/10/21
to Emil Boström, TB2J

Dear Emil,

Could you send the Wannier files? I have done some calculations for both materials long ago using another DFT code and the result was fine, but I didn't use non-collinear spin. I think the --groupby orbital option is correct.


Best regards,

HeXu



On 10/3/21 13:21, Emil Boström wrote:
Dear He Xu,

Sorry to bother you again.

I've now managed to converge Wannier90 for both MnO and NiO and have subsequently used TB2J to calculate the magnetic interaction parameters. The magnetic moments and Wannier charge of the underlying DFT and TB2J output agree very well, and I get reasonable values for the ferromagnetic exchange interactions (i.e. those between up-up and down-down spins). However, for both NiO and MnO the antiferromagnetic interactions come out as zero (i.e. those between up-down and down-up spins), even though these should be the dominant interactions in both materials (see e.g. Phys. Rev. B 88, 134427 (2013)). Do you know what could be the reason for this?

I've checked that the Wannier interpolation is well converged, with the spread of the magnetic d-orbitals less than 1 Å^2. The only difference I've noticed compared to the TB2J tutorial on using Wannier90, is that my states are ordered differently. Since I've used Octopus for the DFT calculation, the states are ordered according to orbitals instead of spin and thus I've had to use the "--groupby orbital" option for non-collinear calculations. Could this give a problem?

Please let me know if you want to see any of the input/output files I've used.

Best regards,
Emil Viñas Boström

Den tors 25 feb. 2021 kl 15:05 skrev Xu He <mail...@gmail.com>:


On 25/2/21 15:03, Emil Boström wrote:
Dear HeXu,

Thanks for the prompt reply.

I’ve used 8 states on each O atom to include the 2s and 2p orbitals of each spin channel. For the Mn 3d orbitals I’ve only included 5 states on each atom, corresponding to a single spin channel on each. These make up the 2*8 + 2*5 = 26 states.

If I understand you correctly, what I need to do is to include the 3d states of Mn that correspond to the unoccupied spin channels. Is that the case?
Yes

Best wishes and thanks again for your help,
Emil Viñas Boström
Reply all
Reply to author
Forward
0 new messages