TB2J 0.9.11.1__tar.gz → 0.9.11.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/PKG-INFO +1 -1
  2. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/magnon/magnon3.py +58 -21
  3. tb2j-0.9.11.3/TB2J/magnon/plot_magnon_dos_cli.py +211 -0
  4. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/TB2J_eigen.py +2 -1
  5. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/TB2J_magnon.py +2 -1
  6. tb2j-0.9.11.3/TB2J/scripts/TB2J_magnon_dos.py +5 -0
  7. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/TB2J_rotate.py +3 -2
  8. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/TB2J_rotateDM.py +4 -4
  9. tb2j-0.9.11.3/TB2J/spinham/__init__.py +0 -0
  10. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J.egg-info/PKG-INFO +1 -1
  11. tb2j-0.9.11.3/TB2J.egg-info/SOURCES.txt +116 -0
  12. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/pyproject.toml +1 -1
  13. tb2j-0.9.11.1/.github/workflows/pylint.yml.bak +0 -23
  14. tb2j-0.9.11.1/.github/workflows/python-app.yml +0 -44
  15. tb2j-0.9.11.1/.gitignore +0 -131
  16. tb2j-0.9.11.1/.pre-commit-config.yaml +0 -11
  17. tb2j-0.9.11.1/.readthedocs.yml +0 -28
  18. tb2j-0.9.11.1/.ruff.toml +0 -78
  19. tb2j-0.9.11.1/.travis.yml +0 -33
  20. tb2j-0.9.11.1/TB2J/.gitignore +0 -5
  21. tb2j-0.9.11.1/TB2J/interfaces/abacus/.gitignore +0 -2
  22. tb2j-0.9.11.1/TB2J/magnon/plot_magnon_dos_cli.py +0 -99
  23. tb2j-0.9.11.1/TB2J/scripts/TB2J_magnon_dos.py +0 -5
  24. tb2j-0.9.11.1/TB2J.egg-info/SOURCES.txt +0 -231
  25. tb2j-0.9.11.1/buildimage.sh +0 -51
  26. tb2j-0.9.11.1/docs/Makefile +0 -20
  27. tb2j-0.9.11.1/docs/_static/Logo-ULG.png +0 -0
  28. tb2j-0.9.11.1/docs/_static/logo_TB2J_horizon.png +0 -0
  29. tb2j-0.9.11.1/docs/conf.py +0 -67
  30. tb2j-0.9.11.1/docs/index.rst +0 -44
  31. tb2j-0.9.11.1/docs/make.bat +0 -35
  32. tb2j-0.9.11.1/docs/requirements.txt +0 -3
  33. tb2j-0.9.11.1/docs/src/BFOvarT.png +0 -0
  34. tb2j-0.9.11.1/docs/src/Contributors.rst +0 -44
  35. tb2j-0.9.11.1/docs/src/ReleaseNotes.md +0 -226
  36. tb2j-0.9.11.1/docs/src/SrMnO3_DOS.png +0 -0
  37. tb2j-0.9.11.1/docs/src/abacus.md +0 -103
  38. tb2j-0.9.11.1/docs/src/applications.rst +0 -9
  39. tb2j-0.9.11.1/docs/src/convention.rst +0 -18
  40. tb2j-0.9.11.1/docs/src/development.md +0 -22
  41. tb2j-0.9.11.1/docs/src/downfold.md +0 -28
  42. tb2j-0.9.11.1/docs/src/ecosystem.md +0 -49
  43. tb2j-0.9.11.1/docs/src/eigen.rst +0 -34
  44. tb2j-0.9.11.1/docs/src/extend.rst +0 -45
  45. tb2j-0.9.11.1/docs/src/faq.rst +0 -79
  46. tb2j-0.9.11.1/docs/src/install.rst +0 -123
  47. tb2j-0.9.11.1/docs/src/mae.md +0 -127
  48. tb2j-0.9.11.1/docs/src/magnon_band.assets/exchange_magnon-1593690872101.png +0 -0
  49. tb2j-0.9.11.1/docs/src/magnon_band.assets/exchange_magnon.png +0 -0
  50. tb2j-0.9.11.1/docs/src/magnon_band.assets/magnon_dos.png +0 -0
  51. tb2j-0.9.11.1/docs/src/magnon_band.rst +0 -74
  52. tb2j-0.9.11.1/docs/src/magnon_bands.md +0 -177
  53. tb2j-0.9.11.1/docs/src/multibinit.rst +0 -89
  54. tb2j-0.9.11.1/docs/src/openmx.rst +0 -27
  55. tb2j-0.9.11.1/docs/src/orbital_contribution.md +0 -80
  56. tb2j-0.9.11.1/docs/src/output.rst +0 -52
  57. tb2j-0.9.11.1/docs/src/parameters.rst +0 -89
  58. tb2j-0.9.11.1/docs/src/references.rst +0 -36
  59. tb2j-0.9.11.1/docs/src/roadmap.md +0 -8
  60. tb2j-0.9.11.1/docs/src/rotate_and_merge.rst +0 -54
  61. tb2j-0.9.11.1/docs/src/siesta.rst +0 -38
  62. tb2j-0.9.11.1/docs/src/spin_model_assets/canting_DMI.png +0 -0
  63. tb2j-0.9.11.1/docs/src/spin_model_assets/tmulti5_2.png +0 -0
  64. tb2j-0.9.11.1/docs/src/symmetry.md +0 -42
  65. tb2j-0.9.11.1/docs/src/tutorial.rst +0 -18
  66. tb2j-0.9.11.1/docs/src/wannier.rst +0 -228
  67. tb2j-0.9.11.1/examples/Siesta/BccFe/Fe.1.psml +0 -1181
  68. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/EigenJq.txt +0 -119
  69. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/exchange.xml +0 -4126
  70. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/exchange_kpth.txt +0 -8
  71. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/exchange_magnon.png +0 -0
  72. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/magnon.py +0 -3
  73. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/magnon_band.json +0 -3332
  74. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/magnon_band.pdf +0 -0
  75. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/magnon_dos.png +0 -0
  76. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/magnon_dos.txt +0 -302
  77. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/mb.files +0 -3
  78. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/mb.in +0 -33
  79. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/plot.sh +0 -1
  80. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/plot_magnon_dos.sh +0 -1
  81. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/Multibinit/plot_magnon_from_json_file.py +0 -73
  82. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/TB2J.pickle +0 -0
  83. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/TomASD/exchange.exch +0 -1381
  84. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/TomASD/exchange.ucf +0 -3
  85. tb2j-0.9.11.1/examples/Siesta/BccFe/TB2J_results/exchange.out +0 -3097
  86. tb2j-0.9.11.1/examples/Siesta/BccFe/getJ.sh +0 -2
  87. tb2j-0.9.11.1/examples/Siesta/BccFe/run.sh +0 -3
  88. tb2j-0.9.11.1/examples/Siesta/BccFe/siesta.fdf +0 -61
  89. tb2j-0.9.11.1/examples/Siesta/HcpCo/Co.1.psml +0 -3174
  90. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/Multibinit/exchange.xml +0 -7610
  91. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/Multibinit/mb.files +0 -3
  92. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/Multibinit/mb.in +0 -33
  93. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/TB2J.pickle +0 -0
  94. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/TomASD/exchange.exch +0 -2556
  95. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/TomASD/exchange.ucf +0 -4
  96. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/Vampire/input +0 -42
  97. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/Vampire/vampire.UCF +0 -644
  98. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/Vampire/vampire.mat +0 -24
  99. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/exchange.out +0 -5708
  100. tb2j-0.9.11.1/examples/Siesta/HcpCo/TB2J_results/summary.txt +0 -10
  101. tb2j-0.9.11.1/examples/Siesta/HcpCo/getJ.sh +0 -1
  102. tb2j-0.9.11.1/examples/Siesta/HcpCo/run.sh +0 -3
  103. tb2j-0.9.11.1/examples/Siesta/HcpCo/siesta.fdf +0 -63
  104. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/JvsR.pdf +0 -0
  105. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/Multibinit/exchange.xml +0 -533
  106. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/Multibinit/mb.files +0 -3
  107. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/Multibinit/mb.in +0 -33
  108. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/TB2J.pickle +0 -0
  109. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/TomASD/exchange.exch +0 -509
  110. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/TomASD/exchange.ucf +0 -3
  111. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/Vampire/input +0 -42
  112. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/Vampire/vampire.UCF +0 -135
  113. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/Vampire/vampire.mat +0 -13
  114. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/assigned_basis.txt +0 -14
  115. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/exchange.out +0 -406
  116. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/TB2J_results/exchange_orb_decomposition.out +0 -1274
  117. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/abinit.files +0 -8
  118. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/abinit.in +0 -83
  119. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/abinito_w90_down.win +0 -113
  120. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/abinito_w90_down_centres.xyz +0 -21
  121. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/abinito_w90_down_hr.dat +0 -24512
  122. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/abinito_w90_up.win +0 -113
  123. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/abinito_w90_up_centres.xyz +0 -21
  124. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/abinito_w90_up_hr.dat +0 -24512
  125. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/get_J.sh +0 -1
  126. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/psp/Mn.GGA-PBESOL-JTH.xml +0 -16818
  127. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/psp/O.GGA-PBESOL-JTH.xml +0 -12782
  128. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/psp/Sr.GGA-PBESOL-JTH.xml +0 -12646
  129. tb2j-0.9.11.1/examples/abinit-w90/SrMnO3/run.sh +0 -6
  130. tb2j-0.9.11.1/requirements.txt +0 -11
  131. tb2j-0.9.11.1/upload_to_pip.sh +0 -5
  132. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/LICENSE +0 -0
  133. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/README.md +0 -0
  134. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/Jdownfolder.py +0 -0
  135. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/Jtensor.py +0 -0
  136. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/MAE.py +0 -0
  137. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/MAEGreen.py +0 -0
  138. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/Oiju.py +0 -0
  139. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/Oiju_epc.py +0 -0
  140. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/__init__.py +0 -0
  141. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/anisotropy.py +0 -0
  142. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/basis.py +0 -0
  143. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/citation.py +0 -0
  144. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/contour.py +0 -0
  145. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/density_matrix.py +0 -0
  146. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/downfold/Hdownfolder.py +0 -0
  147. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/epc.py +0 -0
  148. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/exchange.py +0 -0
  149. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/exchangeCL2.py +0 -0
  150. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/exchange_params.py +0 -0
  151. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/exchange_pert.py +0 -0
  152. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/exchange_qspace.py +0 -0
  153. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/external/__init__.py +0 -0
  154. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/external/p_tqdm.py +0 -0
  155. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/gpaw_wrapper.py +0 -0
  156. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/green.py +0 -0
  157. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/greentest.py +0 -0
  158. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/__init__.py +0 -0
  159. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/abacus/__init__.py +0 -0
  160. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/abacus/abacus_api.py +0 -0
  161. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/abacus/abacus_wrapper.py +0 -0
  162. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/abacus/gen_exchange_abacus.py +0 -0
  163. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/abacus/orbital_api.py +0 -0
  164. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/abacus/stru_api.py +0 -0
  165. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/abacus/test_density_matrix.py +0 -0
  166. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/abacus/test_read_HRSR.py +0 -0
  167. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/abacus/test_read_stru.py +0 -0
  168. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/gpaw_interface.py +0 -0
  169. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/lawaf_interface.py +0 -0
  170. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/manager.py +0 -0
  171. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/siesta_interface.py +0 -0
  172. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/interfaces/wannier90_interface.py +0 -0
  173. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/io_exchange/__init__.py +0 -0
  174. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/io_exchange/io_exchange.py +0 -0
  175. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/io_exchange/io_multibinit.py +0 -0
  176. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/io_exchange/io_tomsasd.py +0 -0
  177. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/io_exchange/io_txt.py +0 -0
  178. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/io_exchange/io_uppasd.py +0 -0
  179. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/io_exchange/io_vampire.py +0 -0
  180. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/io_merge.py +0 -0
  181. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/kpoints.py +0 -0
  182. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/magnon/__init__.py +0 -0
  183. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/magnon/io_exchange2.py +0 -0
  184. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/magnon/magnon_band.py +0 -0
  185. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/magnon/magnon_dos.py +0 -0
  186. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/magnon/magnon_io.py +0 -0
  187. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/magnon/magnon_math.py +0 -0
  188. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/magnon/plot.py +0 -0
  189. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/magnon/structure.py +0 -0
  190. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/mathutils/__init__.py +0 -0
  191. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/mathutils/auto_kpath.py +0 -0
  192. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/mathutils/fermi.py +0 -0
  193. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/mathutils/fibonacci_sphere.py +0 -0
  194. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/mathutils/kR_convert.py +0 -0
  195. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/mathutils/lowdin.py +0 -0
  196. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/mathutils/rotate_spin.py +0 -0
  197. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/myTB.py +0 -0
  198. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/mycfr.py +0 -0
  199. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/orbital_magmom.py +0 -0
  200. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/orbmap.py +0 -0
  201. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/pauli.py +0 -0
  202. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/pert.py +0 -0
  203. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/plot.py +0 -0
  204. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/rotate_atoms.py +0 -0
  205. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/rotate_siestaDM.py +0 -0
  206. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/TB2J_downfold.py +0 -0
  207. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/TB2J_magnon2.py +0 -0
  208. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/TB2J_merge.py +0 -0
  209. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/TB2J_plot_magnon_bands.py +0 -0
  210. {tb2j-0.9.11.1/TB2J/spinham → tb2j-0.9.11.3/TB2J/scripts}/__init__.py +0 -0
  211. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/abacus2J.py +0 -0
  212. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/siesta2J.py +0 -0
  213. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/scripts/wann2J.py +0 -0
  214. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/sisl_wrapper.py +0 -0
  215. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/spinham/base_parser.py +0 -0
  216. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/spinham/constants.py +0 -0
  217. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/spinham/hamiltonian.py +0 -0
  218. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/spinham/hamiltonian_terms.py +0 -0
  219. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/spinham/plot.py +0 -0
  220. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/spinham/qsolver.py +0 -0
  221. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/spinham/spin_api.py +0 -0
  222. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/spinham/spin_xml.py +0 -0
  223. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/spinham/supercell.py +0 -0
  224. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/symmetrize_J.py +0 -0
  225. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/tensor_rotate.py +0 -0
  226. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/thetaphi.py +0 -0
  227. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/utest.py +0 -0
  228. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/utils.py +0 -0
  229. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/versioninfo.py +0 -0
  230. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/wannier/__init__.py +0 -0
  231. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/wannier/w90_parser.py +0 -0
  232. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J/wannier/w90_tb_parser.py +0 -0
  233. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J.egg-info/dependency_links.txt +0 -0
  234. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J.egg-info/entry_points.txt +0 -0
  235. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J.egg-info/requires.txt +0 -0
  236. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/TB2J.egg-info/top_level.txt +0 -0
  237. {tb2j-0.9.11.1 → tb2j-0.9.11.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TB2J
3
- Version: 0.9.11.1
3
+ Version: 0.9.11.3
4
4
  Summary: TB2J: First principle to Heisenberg exchange J using tight-binding Green function method
5
5
  Author-email: Xu He <mailhexu@gmail.com>
6
6
  Maintainer-email: Xu He <mailhexu@gmail.com>
@@ -31,6 +31,7 @@ class MagnonParameters:
31
31
  Q: Optional[List[float]] = None
32
32
  uz_file: Optional[str] = None
33
33
  n: Optional[List[float]] = None
34
+ spin_conf_file: Optional[str] = None
34
35
  show: bool = False
35
36
 
36
37
  @classmethod
@@ -57,6 +58,8 @@ class MagnonParameters:
57
58
  # Convert path to absolute path if uz_file is relative to it
58
59
  if self.uz_file and not Path(self.uz_file).is_absolute():
59
60
  self.uz_file = str(Path(self.path) / self.uz_file)
61
+ if self.spin_conf_file and not Path(self.spin_conf_file).is_absolute():
62
+ self.spin_conf_file = str(Path(self.path) / self.spin_conf_file)
60
63
 
61
64
 
62
65
  @dataclass
@@ -76,7 +79,7 @@ class Magnon:
76
79
  _n: np.ndarray
77
80
  pbc: tuple = (True, True, True)
78
81
 
79
- def set_reference(self, Q, uz, n):
82
+ def set_reference(self, Q, uz, n, magmoms=None):
80
83
  """
81
84
  Set reference propagation vector and quantization axis
82
85
 
@@ -92,6 +95,8 @@ class Magnon:
92
95
  self.set_propagation_vector(Q)
93
96
  self._uz = np.array(uz, dtype=float)
94
97
  self._n = np.array(n, dtype=float)
98
+ if magmoms is not None:
99
+ self.magmom = np.array(magmoms, dtype=float)
95
100
 
96
101
  def set_propagation_vector(self, Q):
97
102
  """Set propagation vector"""
@@ -653,26 +658,40 @@ def plot_magnon_bands_from_TB2J(
653
658
  )
654
659
 
655
660
  # Set reference vectors if provided
656
- if any(x is not None for x in [params.Q, params.uz_file, params.n]):
657
- Q = [0, 0, 0] if params.Q is None else params.Q
658
- n = [0, 0, 1] if params.n is None else params.n
659
-
660
- # Handle quantization axes
661
- if params.uz_file is not None:
662
- uz = np.loadtxt(params.uz_file)
663
- if uz.shape[1] != 3:
664
- raise ValueError(
665
- f"Quantization axes file should contain a natom×3 array. Got shape {uz.shape}"
666
- )
667
- if uz.shape[0] != magnon.nspin:
668
- raise ValueError(
669
- f"Number of spins in uz file ({uz.shape[0]}) does not match the system ({magnon.nspin})"
670
- )
671
- else:
672
- # Default: [0, 0, 1] for all spins
673
- uz = np.array([[0.0, 0.0, 1.0] for _ in range(magnon.nspin)])
661
+ Q = [0, 0, 0] if params.Q is None else params.Q
662
+ n = [0, 0, 1] if params.n is None else params.n
663
+
664
+ # Handle quantization axes
665
+ if params.uz_file is not None:
666
+ uz = np.loadtxt(params.uz_file)
667
+ if uz.shape[1] != 3:
668
+ raise ValueError(
669
+ f"Quantization axes file should contain a natom×3 array. Got shape {uz.shape}"
670
+ )
671
+ if uz.shape[0] != magnon.nspin:
672
+ raise ValueError(
673
+ f"Number of spins in uz file ({uz.shape[0]}) does not match the system ({magnon.nspin})"
674
+ )
675
+ else:
676
+ # Default: [0, 0, 1] for all spins
677
+ # uz = np.array([[0.0, 0.0, 1.0] for _ in range(magnon.nspin)])
678
+ uz = np.array([[0, 0, 1]], dtype=float)
679
+
680
+ print(params)
681
+ if params.spin_conf_file is not None:
682
+ magmoms = np.loadtxt(params.spin_conf_file)
683
+ if magmoms.shape[1] != 3:
684
+ raise ValueError(
685
+ f"Spin configuration file should contain a nspin×3 array. Got shape {magmoms.shape}"
686
+ )
687
+ if magmoms.shape[0] != magnon.nspin:
688
+ raise ValueError(
689
+ f"Number of spins in spin configuration file ({magmoms.shape[0]}) does not match the system ({magnon.nspin})"
690
+ )
691
+ else:
692
+ magmoms = None
674
693
 
675
- magnon.set_reference(Q, uz, n)
694
+ magnon.set_reference(Q, uz, n, magmoms)
676
695
 
677
696
  # Get band structure data
678
697
  print(f"\nCalculating bands along path {params.kpath}...")
@@ -737,27 +756,32 @@ def main():
737
756
 
738
757
  # Command line arguments (used if no config file is provided)
739
758
  parser.add_argument(
759
+ "-p",
740
760
  "--path",
741
761
  default="TB2J_results",
742
762
  help="Path to TB2J results directory (default: TB2J_results)",
743
763
  )
744
764
  parser.add_argument(
765
+ "-k",
745
766
  "--kpath",
746
767
  default=None,
747
768
  help="k-path specification (default: auto-detected from type of cell)",
748
769
  )
749
770
  parser.add_argument(
771
+ "-n",
750
772
  "--npoints",
751
773
  type=int,
752
774
  default=300,
753
775
  help="Number of k-points along the path (default: 300)",
754
776
  )
755
777
  parser.add_argument(
778
+ "-o",
756
779
  "--output",
757
780
  default="magnon_bands.png",
758
781
  help="Output file name (default: magnon_bands.png)",
759
782
  )
760
783
  parser.add_argument(
784
+ "-j",
761
785
  "--Jiso",
762
786
  action="store_true",
763
787
  default=True,
@@ -770,18 +794,21 @@ def main():
770
794
  help="Exclude isotropic exchange interactions",
771
795
  )
772
796
  parser.add_argument(
797
+ "-a",
773
798
  "--Jani",
774
799
  action="store_true",
775
800
  default=False,
776
801
  help="Include anisotropic exchange interactions (default: False)",
777
802
  )
778
803
  parser.add_argument(
804
+ "-d",
779
805
  "--DMI",
780
806
  action="store_true",
781
807
  default=False,
782
808
  help="Include Dzyaloshinskii-Moriya interactions (default: False)",
783
809
  )
784
810
  parser.add_argument(
811
+ "-q",
785
812
  "--Q",
786
813
  nargs=3,
787
814
  type=float,
@@ -789,11 +816,19 @@ def main():
789
816
  help="Propagation vector [Qx, Qy, Qz] (default: [0, 0, 0])",
790
817
  )
791
818
  parser.add_argument(
819
+ "-u",
792
820
  "--uz-file",
793
821
  type=str,
794
- help="Path to file containing quantization axes for each spin (natom×3 array)",
822
+ help="Path to file containing quantization axes for each spin (nspin×3 array)",
823
+ )
824
+ parser.add_argument(
825
+ "-c",
826
+ "--spin-conf-file",
827
+ type=str,
828
+ help="Path to file containing magnetic moments for each spin (nspin×3 array)",
795
829
  )
796
830
  parser.add_argument(
831
+ "-v",
797
832
  "--n",
798
833
  nargs=3,
799
834
  type=float,
@@ -802,6 +837,7 @@ def main():
802
837
  )
803
838
 
804
839
  parser.add_argument(
840
+ "-s",
805
841
  "--show",
806
842
  action="store_true",
807
843
  default=False,
@@ -833,6 +869,7 @@ def main():
833
869
  DMI=args.DMI,
834
870
  Q=args.Q if args.Q is not None else None,
835
871
  uz_file=args.uz_file,
872
+ spin_conf_file=args.spin_conf_file,
836
873
  n=args.n if args.n is not None else None,
837
874
  show=args.show,
838
875
  )
@@ -0,0 +1,211 @@
1
+ #!/usr/bin/env python3
2
+ """Command-line tool for plotting magnon DOS from TB2J results."""
3
+
4
+ import argparse
5
+ from pathlib import Path
6
+
7
+ import numpy as np
8
+
9
+ from TB2J.magnon.magnon3 import Magnon
10
+ from TB2J.magnon.magnon_dos import plot_magnon_dos
11
+
12
+
13
+ def main():
14
+ parser = argparse.ArgumentParser(
15
+ description="Calculate and plot magnon DOS from TB2J results"
16
+ )
17
+ parser.add_argument(
18
+ "-p",
19
+ "--path",
20
+ default="TB2J_results",
21
+ help="Path to TB2J results directory (default: TB2J_results)",
22
+ )
23
+ parser.add_argument(
24
+ "--kmesh",
25
+ type=int,
26
+ nargs=3,
27
+ default=[20, 20, 20],
28
+ metavar=("nx", "ny", "nz"),
29
+ help="k-point mesh dimensions (default: 20, 20, 20)",
30
+ )
31
+ parser.add_argument(
32
+ "--no-gamma",
33
+ action="store_false",
34
+ dest="gamma",
35
+ help="Exclude Gamma point from k-mesh",
36
+ )
37
+ parser.add_argument(
38
+ "--width",
39
+ type=float,
40
+ default=0.001,
41
+ help="Gaussian smearing width in eV (default: 0.001)",
42
+ )
43
+ parser.add_argument(
44
+ "--window",
45
+ type=float,
46
+ nargs=2,
47
+ metavar=("emin", "emax"),
48
+ help="Energy window in meV (optional)",
49
+ )
50
+ parser.add_argument(
51
+ "--npts",
52
+ type=int,
53
+ default=401,
54
+ help="Number of energy points (default: 401)",
55
+ )
56
+ parser.add_argument(
57
+ "-o",
58
+ "--output",
59
+ default="magnon_dos.png",
60
+ help="Output filename for plot (default: magnon_dos.png)",
61
+ )
62
+ parser.add_argument(
63
+ "-s",
64
+ "--show",
65
+ action="store_true",
66
+ dest="show",
67
+ help="Show plot window",
68
+ )
69
+
70
+ # Exchange interaction options (same as in magnon bands)
71
+ parser.add_argument(
72
+ "-j",
73
+ "--Jiso",
74
+ action="store_true",
75
+ default=True,
76
+ help="Include isotropic exchange interactions (default: True)",
77
+ )
78
+ parser.add_argument(
79
+ "--no-Jiso",
80
+ action="store_false",
81
+ dest="Jiso",
82
+ help="Exclude isotropic exchange interactions",
83
+ )
84
+ parser.add_argument(
85
+ "-a",
86
+ "--Jani",
87
+ action="store_true",
88
+ default=False,
89
+ help="Include anisotropic exchange interactions (default: False)",
90
+ )
91
+ parser.add_argument(
92
+ "-d",
93
+ "--DMI",
94
+ action="store_true",
95
+ default=False,
96
+ help="Include Dzyaloshinskii-Moriya interactions (default: False)",
97
+ )
98
+
99
+ # Reference vector options (same as in magnon bands)
100
+ parser.add_argument(
101
+ "-q",
102
+ "--Q",
103
+ nargs=3,
104
+ type=float,
105
+ metavar=("Qx", "Qy", "Qz"),
106
+ help="Propagation vector [Qx, Qy, Qz] (default: [0, 0, 0])",
107
+ )
108
+ parser.add_argument(
109
+ "-u",
110
+ "--uz-file",
111
+ type=str,
112
+ help="Path to file containing quantization axes for each spin (nspin×3 array)",
113
+ )
114
+ parser.add_argument(
115
+ "-c",
116
+ "--spin-conf-file",
117
+ type=str,
118
+ help="Path to file containing magnetic moments for each spin (nspin×3 array)",
119
+ )
120
+ parser.add_argument(
121
+ "-v",
122
+ "--n",
123
+ nargs=3,
124
+ type=float,
125
+ metavar=("nx", "ny", "nz"),
126
+ help="Normal vector for rotation [nx, ny, nz] (default: [0, 0, 1])",
127
+ )
128
+
129
+ args = parser.parse_args()
130
+
131
+ # Check if TB2J results exist
132
+ if not Path(args.path).exists():
133
+ raise FileNotFoundError(f"TB2J results not found at {args.path}")
134
+
135
+ # Load magnon calculator with exchange interaction options
136
+ print(f"Loading exchange parameters from {args.path}...")
137
+ magnon = Magnon.from_TB2J_results(
138
+ path=args.path, Jiso=args.Jiso, Jani=args.Jani, DMI=args.DMI
139
+ )
140
+
141
+ # Set reference vectors if provided (same logic as in magnon bands)
142
+ Q = [0, 0, 0] if args.Q is None else args.Q
143
+ n = [0, 0, 1] if args.n is None else args.n
144
+
145
+ # Handle quantization axes
146
+ if args.uz_file is not None:
147
+ # Make path relative to TB2J results if not absolute
148
+ uz_file = args.uz_file
149
+ if not Path(uz_file).is_absolute():
150
+ uz_file = str(Path(args.path) / uz_file)
151
+
152
+ uz = np.loadtxt(uz_file)
153
+ if uz.shape[1] != 3:
154
+ raise ValueError(
155
+ f"Quantization axes file should contain a nspin×3 array. Got shape {uz.shape}"
156
+ )
157
+ if uz.shape[0] != magnon.nspin:
158
+ raise ValueError(
159
+ f"Number of spins in uz file ({uz.shape[0]}) does not match the system ({magnon.nspin})"
160
+ )
161
+ else:
162
+ # Default: [0, 0, 1] for all spins
163
+ uz = np.array([[0, 0, 1]], dtype=float)
164
+
165
+ # Handle spin configuration
166
+ if args.spin_conf_file is not None:
167
+ # Make path relative to TB2J results if not absolute
168
+ spin_conf_file = args.spin_conf_file
169
+ if not Path(spin_conf_file).is_absolute():
170
+ spin_conf_file = str(Path(args.path) / spin_conf_file)
171
+
172
+ magmoms = np.loadtxt(spin_conf_file)
173
+ if magmoms.shape[1] != 3:
174
+ raise ValueError(
175
+ f"Spin configuration file should contain a nspin×3 array. Got shape {magmoms.shape}"
176
+ )
177
+ if magmoms.shape[0] != magnon.nspin:
178
+ raise ValueError(
179
+ f"Number of spins in spin configuration file ({magmoms.shape[0]}) does not match the system ({magnon.nspin})"
180
+ )
181
+ else:
182
+ magmoms = None
183
+
184
+ # Set reference configuration
185
+ magnon.set_reference(Q, uz, n, magmoms)
186
+
187
+ # Convert window from meV to eV if provided
188
+ window = None
189
+ if args.window is not None:
190
+ window = (args.window[0] / 1000, args.window[1] / 1000)
191
+
192
+ # Calculate and plot DOS
193
+ print("\nCalculating magnon DOS...")
194
+ _dos = plot_magnon_dos(
195
+ magnon,
196
+ kmesh=args.kmesh,
197
+ gamma=args.gamma,
198
+ width=args.width,
199
+ window=window,
200
+ npts=args.npts,
201
+ filename=args.output,
202
+ show=args.show,
203
+ )
204
+
205
+ print(f"\nPlot saved to {args.output}")
206
+ data_file = Path(args.output).with_suffix(".json")
207
+ print(f"DOS data saved to {data_file}")
208
+
209
+
210
+ if __name__ == "__main__":
211
+ main()
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ import argparse
3
+
2
4
  from TB2J.plot import write_eigen
3
5
  from TB2J.versioninfo import print_license
4
- import argparse
5
6
 
6
7
  """
7
8
  The script to plot the magnon band structure.
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env python3
2
+ import argparse
3
+
2
4
  from TB2J.plot import plot_magnon_band, write_eigen
3
5
  from TB2J.versioninfo import print_license
4
- import argparse
5
6
 
6
7
  """
7
8
  The script to plot the magnon band structure.
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env python3
2
+
3
+ from TB2J.plot import command_line_plot_magnon_dos
4
+
5
+ command_line_plot_magnon_dos()
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  import argparse
3
- from TB2J.rotate_atoms import rotate_atom_xyz, rotate_xyz, check_ftype
3
+
4
+ from TB2J.rotate_atoms import rotate_xyz
4
5
 
5
6
 
6
7
  def main():
@@ -17,7 +18,7 @@ def main():
17
18
  parser.add_argument(
18
19
  "--noncollinear",
19
20
  action="store_true",
20
- help="If present, six different configurations will be generated. These are required for non-collinear systems."
21
+ help="If present, six different configurations will be generated. These are required for non-collinear systems.",
21
22
  )
22
23
 
23
24
  args = parser.parse_args()
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env python3
2
2
  import argparse
3
+
3
4
  from TB2J.rotate_siestaDM import rotate_DM
4
5
 
6
+
5
7
  def main():
6
8
  parser = argparse.ArgumentParser(description="")
7
- parser.add_argument(
8
- "--fdf_fname", help="Name of the *.fdf siesta file."
9
- )
9
+ parser.add_argument("--fdf_fname", help="Name of the *.fdf siesta file.")
10
10
  parser.add_argument(
11
11
  "--noncollinear",
12
12
  action="store_true",
13
- help="If present, six different configurations will be generated. These are required for non-collinear systems."
13
+ help="If present, six different configurations will be generated. These are required for non-collinear systems.",
14
14
  )
15
15
 
16
16
  args = parser.parse_args()
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TB2J
3
- Version: 0.9.11.1
3
+ Version: 0.9.11.3
4
4
  Summary: TB2J: First principle to Heisenberg exchange J using tight-binding Green function method
5
5
  Author-email: Xu He <mailhexu@gmail.com>
6
6
  Maintainer-email: Xu He <mailhexu@gmail.com>
@@ -0,0 +1,116 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ TB2J/Jdownfolder.py
5
+ TB2J/Jtensor.py
6
+ TB2J/MAE.py
7
+ TB2J/MAEGreen.py
8
+ TB2J/Oiju.py
9
+ TB2J/Oiju_epc.py
10
+ TB2J/__init__.py
11
+ TB2J/anisotropy.py
12
+ TB2J/basis.py
13
+ TB2J/citation.py
14
+ TB2J/contour.py
15
+ TB2J/density_matrix.py
16
+ TB2J/epc.py
17
+ TB2J/exchange.py
18
+ TB2J/exchangeCL2.py
19
+ TB2J/exchange_params.py
20
+ TB2J/exchange_pert.py
21
+ TB2J/exchange_qspace.py
22
+ TB2J/gpaw_wrapper.py
23
+ TB2J/green.py
24
+ TB2J/greentest.py
25
+ TB2J/io_merge.py
26
+ TB2J/kpoints.py
27
+ TB2J/myTB.py
28
+ TB2J/mycfr.py
29
+ TB2J/orbital_magmom.py
30
+ TB2J/orbmap.py
31
+ TB2J/pauli.py
32
+ TB2J/pert.py
33
+ TB2J/plot.py
34
+ TB2J/rotate_atoms.py
35
+ TB2J/rotate_siestaDM.py
36
+ TB2J/sisl_wrapper.py
37
+ TB2J/symmetrize_J.py
38
+ TB2J/tensor_rotate.py
39
+ TB2J/thetaphi.py
40
+ TB2J/utest.py
41
+ TB2J/utils.py
42
+ TB2J/versioninfo.py
43
+ TB2J.egg-info/PKG-INFO
44
+ TB2J.egg-info/SOURCES.txt
45
+ TB2J.egg-info/dependency_links.txt
46
+ TB2J.egg-info/entry_points.txt
47
+ TB2J.egg-info/requires.txt
48
+ TB2J.egg-info/top_level.txt
49
+ TB2J/downfold/Hdownfolder.py
50
+ TB2J/external/__init__.py
51
+ TB2J/external/p_tqdm.py
52
+ TB2J/interfaces/__init__.py
53
+ TB2J/interfaces/gpaw_interface.py
54
+ TB2J/interfaces/lawaf_interface.py
55
+ TB2J/interfaces/manager.py
56
+ TB2J/interfaces/siesta_interface.py
57
+ TB2J/interfaces/wannier90_interface.py
58
+ TB2J/interfaces/abacus/__init__.py
59
+ TB2J/interfaces/abacus/abacus_api.py
60
+ TB2J/interfaces/abacus/abacus_wrapper.py
61
+ TB2J/interfaces/abacus/gen_exchange_abacus.py
62
+ TB2J/interfaces/abacus/orbital_api.py
63
+ TB2J/interfaces/abacus/stru_api.py
64
+ TB2J/interfaces/abacus/test_density_matrix.py
65
+ TB2J/interfaces/abacus/test_read_HRSR.py
66
+ TB2J/interfaces/abacus/test_read_stru.py
67
+ TB2J/io_exchange/__init__.py
68
+ TB2J/io_exchange/io_exchange.py
69
+ TB2J/io_exchange/io_multibinit.py
70
+ TB2J/io_exchange/io_tomsasd.py
71
+ TB2J/io_exchange/io_txt.py
72
+ TB2J/io_exchange/io_uppasd.py
73
+ TB2J/io_exchange/io_vampire.py
74
+ TB2J/magnon/__init__.py
75
+ TB2J/magnon/io_exchange2.py
76
+ TB2J/magnon/magnon3.py
77
+ TB2J/magnon/magnon_band.py
78
+ TB2J/magnon/magnon_dos.py
79
+ TB2J/magnon/magnon_io.py
80
+ TB2J/magnon/magnon_math.py
81
+ TB2J/magnon/plot.py
82
+ TB2J/magnon/plot_magnon_dos_cli.py
83
+ TB2J/magnon/structure.py
84
+ TB2J/mathutils/__init__.py
85
+ TB2J/mathutils/auto_kpath.py
86
+ TB2J/mathutils/fermi.py
87
+ TB2J/mathutils/fibonacci_sphere.py
88
+ TB2J/mathutils/kR_convert.py
89
+ TB2J/mathutils/lowdin.py
90
+ TB2J/mathutils/rotate_spin.py
91
+ TB2J/scripts/TB2J_downfold.py
92
+ TB2J/scripts/TB2J_eigen.py
93
+ TB2J/scripts/TB2J_magnon.py
94
+ TB2J/scripts/TB2J_magnon2.py
95
+ TB2J/scripts/TB2J_magnon_dos.py
96
+ TB2J/scripts/TB2J_merge.py
97
+ TB2J/scripts/TB2J_plot_magnon_bands.py
98
+ TB2J/scripts/TB2J_rotate.py
99
+ TB2J/scripts/TB2J_rotateDM.py
100
+ TB2J/scripts/__init__.py
101
+ TB2J/scripts/abacus2J.py
102
+ TB2J/scripts/siesta2J.py
103
+ TB2J/scripts/wann2J.py
104
+ TB2J/spinham/__init__.py
105
+ TB2J/spinham/base_parser.py
106
+ TB2J/spinham/constants.py
107
+ TB2J/spinham/hamiltonian.py
108
+ TB2J/spinham/hamiltonian_terms.py
109
+ TB2J/spinham/plot.py
110
+ TB2J/spinham/qsolver.py
111
+ TB2J/spinham/spin_api.py
112
+ TB2J/spinham/spin_xml.py
113
+ TB2J/spinham/supercell.py
114
+ TB2J/wannier/__init__.py
115
+ TB2J/wannier/w90_parser.py
116
+ TB2J/wannier/w90_tb_parser.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "TB2J"
7
- version = "0.9.11.1"
7
+ version = "0.9.11.3"
8
8
  description = "TB2J: First principle to Heisenberg exchange J using tight-binding Green function method"
9
9
  readme = "README.md"
10
10
  license = { text = "BSD-2-Clause" }
@@ -1,23 +0,0 @@
1
- name: Pylint
2
-
3
- on: [push]
4
-
5
- jobs:
6
- build:
7
- runs-on: ubuntu-latest
8
- strategy:
9
- matrix:
10
- python-version: ["3.8", "3.9", "3.10"]
11
- steps:
12
- - uses: actions/checkout@v3
13
- - name: Set up Python ${{ matrix.python-version }}
14
- uses: actions/setup-python@v3
15
- with:
16
- python-version: ${{ matrix.python-version }}
17
- - name: Install dependencies
18
- run: |
19
- python -m pip install --upgrade pip
20
- pip install pylint
21
- - name: Analysing the code with pylint
22
- run: |
23
- pylint $(git ls-files '*.py')
@@ -1,44 +0,0 @@
1
- # This workflow will install Python dependencies, run tests and lint with a single version of Python
2
- # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
3
-
4
- name: Python application
5
-
6
- on:
7
- push:
8
- branches: [ "master" ]
9
- pull_request:
10
- branches: [ "master" ]
11
-
12
- permissions:
13
- contents: read
14
-
15
- jobs:
16
- build:
17
- runs-on: ubuntu-latest
18
- steps:
19
- - uses: actions/checkout@v4
20
- - name: Set up Python 3.10
21
- uses: actions/setup-python@v5
22
- with:
23
- python-version: "3.10"
24
- - name: Install dependencies
25
- run: |
26
- python -m pip install --upgrade pip
27
- pip install flake8 pytest
28
- if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
29
- - name: Lint with flake8
30
- run: |
31
- # stop the build if there are Python syntax errors or undefined names
32
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
33
- # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
34
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
35
- - name: Test with pytest
36
- run: |
37
- #pytest
38
- # - pwd
39
- python -m pip install .
40
- cd examples/abinit-w90/SrMnO3
41
- ls -lah
42
- sh get_J.sh
43
- cd TB2J_results/Multibinit
44
- TB2J_magnon.py --figfname magnon.png