TB2J 0.9.9rc17__tar.gz → 0.9.9rc18__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 (109) hide show
  1. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/PKG-INFO +1 -1
  2. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/MAEGreen.py +18 -11
  3. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/siesta_interface.py +14 -7
  4. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J.egg-info/PKG-INFO +1 -1
  5. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/setup.py +1 -1
  6. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/LICENSE +0 -0
  7. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/README.md +0 -0
  8. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/Jdownfolder.py +0 -0
  9. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/Jtensor.py +0 -0
  10. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/MAE.py +0 -0
  11. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/Oiju.py +0 -0
  12. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/Oiju_epc.py +0 -0
  13. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/__init__.py +0 -0
  14. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/anisotropy.py +0 -0
  15. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/basis.py +0 -0
  16. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/citation.py +0 -0
  17. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/contour.py +0 -0
  18. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/density_matrix.py +0 -0
  19. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/epc.py +0 -0
  20. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/exchange.py +0 -0
  21. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/exchangeCL2.py +0 -0
  22. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/exchange_params.py +0 -0
  23. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/exchange_pert.py +0 -0
  24. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/exchange_qspace.py +0 -0
  25. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/external/__init__.py +0 -0
  26. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/external/p_tqdm.py +0 -0
  27. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/gpaw_wrapper.py +0 -0
  28. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/green.py +0 -0
  29. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/greentest.py +0 -0
  30. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/__init__.py +0 -0
  31. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/abacus/__init__.py +0 -0
  32. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/abacus/abacus_api.py +0 -0
  33. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/abacus/abacus_wrapper.py +0 -0
  34. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/abacus/gen_exchange_abacus.py +0 -0
  35. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/abacus/orbital_api.py +0 -0
  36. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/abacus/stru_api.py +0 -0
  37. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/abacus/test_density_matrix.py +0 -0
  38. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/abacus/test_read_HRSR.py +0 -0
  39. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/abacus/test_read_stru.py +0 -0
  40. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/gpaw_interface.py +0 -0
  41. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/lawaf_interface.py +0 -0
  42. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/manager.py +0 -0
  43. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/interfaces/wannier90_interface.py +0 -0
  44. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/io_exchange/__init__.py +0 -0
  45. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/io_exchange/io_exchange.py +0 -0
  46. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/io_exchange/io_multibinit.py +0 -0
  47. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/io_exchange/io_tomsasd.py +0 -0
  48. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/io_exchange/io_txt.py +0 -0
  49. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/io_exchange/io_uppasd.py +0 -0
  50. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/io_exchange/io_vampire.py +0 -0
  51. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/io_merge.py +0 -0
  52. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/kpoints.py +0 -0
  53. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/magnon/__init__.py +0 -0
  54. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/magnon/io_exchange2.py +0 -0
  55. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/magnon/plot.py +0 -0
  56. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/magnon/structure.py +0 -0
  57. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/mathutils/__init__.py +0 -0
  58. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/mathutils/fermi.py +0 -0
  59. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/mathutils/fibonacci_sphere.py +0 -0
  60. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/mathutils/kR_convert.py +0 -0
  61. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/mathutils/lowdin.py +0 -0
  62. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/mathutils/magnons.py +0 -0
  63. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/mathutils/rotate_spin.py +0 -0
  64. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/myTB.py +0 -0
  65. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/mycfr.py +0 -0
  66. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/orbital_magmom.py +0 -0
  67. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/orbmap.py +0 -0
  68. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/pauli.py +0 -0
  69. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/pert.py +0 -0
  70. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/plot.py +0 -0
  71. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/rotate_atoms.py +0 -0
  72. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/rotate_siestaDM.py +0 -0
  73. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/sisl_wrapper.py +0 -0
  74. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/spinham/__init__.py +0 -0
  75. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/spinham/base_parser.py +0 -0
  76. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/spinham/constants.py +0 -0
  77. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/spinham/hamiltonian.py +0 -0
  78. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/spinham/hamiltonian_terms.py +0 -0
  79. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/spinham/plot.py +0 -0
  80. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/spinham/qsolver.py +0 -0
  81. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/spinham/spin_api.py +0 -0
  82. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/spinham/spin_xml.py +0 -0
  83. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/spinham/supercell.py +0 -0
  84. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/symmetrize_J.py +0 -0
  85. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/tensor_rotate.py +0 -0
  86. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/thetaphi.py +0 -0
  87. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/utest.py +0 -0
  88. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/utils.py +0 -0
  89. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/versioninfo.py +0 -0
  90. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/wannier/__init__.py +0 -0
  91. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/wannier/w90_parser.py +0 -0
  92. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J/wannier/w90_tb_parser.py +0 -0
  93. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J.egg-info/SOURCES.txt +0 -0
  94. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J.egg-info/dependency_links.txt +0 -0
  95. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J.egg-info/entry_points.txt +0 -0
  96. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J.egg-info/requires.txt +0 -0
  97. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/TB2J.egg-info/top_level.txt +0 -0
  98. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/TB2J_downfold.py +0 -0
  99. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/TB2J_eigen.py +0 -0
  100. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/TB2J_magnon.py +0 -0
  101. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/TB2J_magnon2.py +0 -0
  102. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/TB2J_magnon_dos.py +0 -0
  103. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/TB2J_merge.py +0 -0
  104. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/TB2J_rotate.py +0 -0
  105. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/TB2J_rotateDM.py +0 -0
  106. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/abacus2J.py +0 -0
  107. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/siesta2J.py +0 -0
  108. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/scripts/wann2J.py +0 -0
  109. {tb2j-0.9.9rc17 → tb2j-0.9.9rc18}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TB2J
3
- Version: 0.9.9rc17
3
+ Version: 0.9.9rc18
4
4
  Summary: TB2J: First principle to Heisenberg exchange J using tight-binding Green function method
5
5
  Author: Xu He
6
6
  Author-email: mailhexu@gmail.com
@@ -32,7 +32,9 @@ class MAEGreen(ExchangeNCL):
32
32
  """
33
33
  super().__init__(**kwargs)
34
34
  self.natoms = len(self.atoms)
35
- if angles is None or angles == "axis":
35
+ if angles is None or angles == "xyz":
36
+ self.set_angles_xyz()
37
+ elif angles == "axis":
36
38
  self.set_angles_axis()
37
39
  elif angles == "scan":
38
40
  self.set_angles_scan()
@@ -51,6 +53,12 @@ class MAEGreen(ExchangeNCL):
51
53
  self.es_atom = np.zeros((nangles, self.natoms), dtype=complex)
52
54
  self.es_atom_orb = DefaultDict(lambda: 0)
53
55
 
56
+ def set_angles_xyz(self):
57
+ """theta and phi are defined as the x, y, z, xy, yz, xz, xyz, x-yz, -xyz, -x-yz axis."""
58
+ self.thetas = [ np.pi / 2, np.pi / 2, 0.0]
59
+ self.phis = [ np.pi / 2, 0, 0.0]
60
+
61
+
54
62
  def set_angles_axis(self):
55
63
  """theta and phi are defined as the x, y, z, xy, yz, xz, xyz, x-yz, -xyz, -x-yz axis."""
56
64
  self.thetas = [0, np.pi / 2, np.pi / 2, np.pi / 2, np.pi, 0, np.pi / 2, 0, 0, 0]
@@ -75,7 +83,6 @@ class MAEGreen(ExchangeNCL):
75
83
  self.thetas = thetas
76
84
  self.phis = phis
77
85
  self.angle_pairs = list(zip(thetas, phis))
78
- # remove duplicates of angles using sets.
79
86
  self.angle_pairs = list(set(self.angle_pairs))
80
87
  self.thetas, self.phis = zip(*self.angle_pairs)
81
88
 
@@ -277,18 +284,18 @@ class MAEGreen(ExchangeNCL):
277
284
  f.write(f"{ea*1e3:.8f} ")
278
285
  f.write("\n")
279
286
 
280
- self.ani = self.fit_anisotropy_tensor()
281
- with open(fname_tensor, "w") as f:
282
- f.write("# Anisotropy tensor in meV\n")
283
- f.write(f"{self.ani.tensor_strings(include_isotropic=False)}\n")
287
+ #self.ani = self.fit_anisotropy_tensor()
288
+ #with open(fname_tensor, "w") as f:
289
+ # f.write("# Anisotropy tensor in meV\n")
290
+ # f.write(f"{self.ani.tensor_strings(include_isotropic=False)}\n")
284
291
 
285
- if figure3d is not None:
286
- self.ani.plot_3d(figname=fname_fig3d, show=False)
292
+ #if figure3d is not None:
293
+ # self.ani.plot_3d(figname=fname_fig3d, show=False)
287
294
 
288
- if figure_contourf is not None:
289
- self.ani.plot_contourf(figname=fname_figcontourf, show=False)
295
+ #if figure_contourf is not None:
296
+ # self.ani.plot_contourf(figname=fname_figcontourf, show=False)
290
297
 
291
- plt.close()
298
+ #plt.close()
292
299
  gc.collect()
293
300
 
294
301
  with open(fname_orb, "w") as f:
@@ -5,6 +5,7 @@ import numpy as np
5
5
  from TB2J.exchange import ExchangeNCL
6
6
  from TB2J.exchangeCL2 import ExchangeCL2
7
7
  from TB2J.MAEGreen import MAEGreen
8
+ from TB2J.io_merge import merge
8
9
 
9
10
  try:
10
11
  from HamiltonIO.siesta import SislParser
@@ -156,18 +157,18 @@ Warning: The DMI component parallel to the spin orientation, the Jani which has
156
157
  atoms=model.atoms,
157
158
  basis=basis,
158
159
  efermi=None,
159
- angles="miller",
160
+ angles="axis",
160
161
  # magnetic_elements=magnetic_elements,
161
162
  # include_orbs=include_orbs,
162
163
  **exargs,
163
164
  )
164
- # thetas = [0, np.pi / 2, np.pi, 3 * np.pi / 2]
165
- # phis = [0, 0, 0, 0]
166
- # MAE.set_angles(thetas=thetas, phis=phis)
165
+ #thetas = [0, np.pi / 2, np.pi, 3 * np.pi / 2]
166
+ #phis = [0, 0, 0, 0]
167
+ #MAE.set_angles(thetas=thetas, phis=phis)
167
168
  MAE.run(output_path=f"{output_path}_anisotropy", with_eigen=False)
168
- print(
169
- f"MAE calculation finished. The results are in {output_path} directory."
170
- )
169
+ #print(
170
+ # f"MAE calculation finished. The results are in {output_path} directory."
171
+ #)
171
172
 
172
173
  angle = {"x": (np.pi / 2, 0), "y": (np.pi / 2, np.pi / 2), "z": (0, 0)}
173
174
  for key, val in angle.items():
@@ -191,3 +192,9 @@ Warning: The DMI component parallel to the spin orientation, the Jani which has
191
192
  print(
192
193
  f"All calculation finished. The results are in {output_path_full} directory."
193
194
  )
195
+
196
+
197
+ merge("TB2J_results_x", "TB2J_results_y", "TB2J_results_z", main_path=None, save=True, write_path='TB2J_results')
198
+ print("Final TB2J_results written to TB2J_results directory.")
199
+
200
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TB2J
3
- Version: 0.9.9rc17
3
+ Version: 0.9.9rc18
4
4
  Summary: TB2J: First principle to Heisenberg exchange J using tight-binding Green function method
5
5
  Author: Xu He
6
6
  Author-email: mailhexu@gmail.com
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  from setuptools import find_packages, setup
3
3
 
4
- __version__ = "0.9.9rc17"
4
+ __version__ = "0.9.9rc18"
5
5
 
6
6
  long_description = """TB2J is a Python package aimed to compute automatically the magnetic interactions (superexchange and Dzyaloshinskii-Moriya) between atoms of magnetic crystals from DFT Hamiltonian based on Wannier functions or Linear combination of atomic orbitals. It uses the Green's function method and take the local rigid spin rotation as a perturbation. The package can take the output from Wannier90, which is interfaced with many density functional theory codes or from codes based on localised orbitals. A minimal user input is needed, which allows for an easily integration into a high-throughput workflows. """
7
7
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes