TB2J 0.9.9rc18__tar.gz → 0.9.9.1__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.9rc18 → tb2j-0.9.9.1}/PKG-INFO +3 -2
  2. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/MAEGreen.py +11 -18
  3. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/exchange_params.py +1 -6
  4. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/siesta_interface.py +7 -14
  5. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/io_exchange/__init__.py +0 -2
  6. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/io_exchange/io_exchange.py +5 -2
  7. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/mathutils/__init__.py +0 -1
  8. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J.egg-info/PKG-INFO +3 -2
  9. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J.egg-info/SOURCES.txt +0 -6
  10. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J.egg-info/requires.txt +2 -1
  11. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/scripts/abacus2J.py +2 -6
  12. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/scripts/siesta2J.py +1 -5
  13. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/scripts/wann2J.py +2 -6
  14. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/setup.py +3 -3
  15. tb2j-0.9.9rc18/TB2J/magnon/__init__.py +0 -3
  16. tb2j-0.9.9rc18/TB2J/magnon/io_exchange2.py +0 -688
  17. tb2j-0.9.9rc18/TB2J/magnon/plot.py +0 -58
  18. tb2j-0.9.9rc18/TB2J/magnon/structure.py +0 -348
  19. tb2j-0.9.9rc18/TB2J/mathutils/magnons.py +0 -45
  20. tb2j-0.9.9rc18/scripts/TB2J_magnon2.py +0 -77
  21. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/LICENSE +0 -0
  22. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/README.md +0 -0
  23. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/Jdownfolder.py +0 -0
  24. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/Jtensor.py +0 -0
  25. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/MAE.py +0 -0
  26. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/Oiju.py +0 -0
  27. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/Oiju_epc.py +0 -0
  28. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/__init__.py +0 -0
  29. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/anisotropy.py +0 -0
  30. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/basis.py +0 -0
  31. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/citation.py +0 -0
  32. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/contour.py +0 -0
  33. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/density_matrix.py +0 -0
  34. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/epc.py +0 -0
  35. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/exchange.py +0 -0
  36. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/exchangeCL2.py +0 -0
  37. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/exchange_pert.py +0 -0
  38. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/exchange_qspace.py +0 -0
  39. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/external/__init__.py +0 -0
  40. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/external/p_tqdm.py +0 -0
  41. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/gpaw_wrapper.py +0 -0
  42. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/green.py +0 -0
  43. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/greentest.py +0 -0
  44. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/__init__.py +0 -0
  45. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/__init__.py +0 -0
  46. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/abacus_api.py +0 -0
  47. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/abacus_wrapper.py +0 -0
  48. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/gen_exchange_abacus.py +0 -0
  49. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/orbital_api.py +0 -0
  50. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/stru_api.py +0 -0
  51. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/test_density_matrix.py +0 -0
  52. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/test_read_HRSR.py +0 -0
  53. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/test_read_stru.py +0 -0
  54. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/gpaw_interface.py +0 -0
  55. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/lawaf_interface.py +0 -0
  56. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/manager.py +0 -0
  57. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/interfaces/wannier90_interface.py +0 -0
  58. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/io_exchange/io_multibinit.py +0 -0
  59. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/io_exchange/io_tomsasd.py +0 -0
  60. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/io_exchange/io_txt.py +0 -0
  61. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/io_exchange/io_uppasd.py +0 -0
  62. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/io_exchange/io_vampire.py +0 -0
  63. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/io_merge.py +0 -0
  64. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/kpoints.py +0 -0
  65. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/mathutils/fermi.py +0 -0
  66. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/mathutils/fibonacci_sphere.py +0 -0
  67. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/mathutils/kR_convert.py +0 -0
  68. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/mathutils/lowdin.py +0 -0
  69. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/mathutils/rotate_spin.py +0 -0
  70. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/myTB.py +0 -0
  71. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/mycfr.py +0 -0
  72. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/orbital_magmom.py +0 -0
  73. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/orbmap.py +0 -0
  74. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/pauli.py +0 -0
  75. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/pert.py +0 -0
  76. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/plot.py +0 -0
  77. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/rotate_atoms.py +0 -0
  78. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/rotate_siestaDM.py +0 -0
  79. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/sisl_wrapper.py +0 -0
  80. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/spinham/__init__.py +0 -0
  81. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/spinham/base_parser.py +0 -0
  82. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/spinham/constants.py +0 -0
  83. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/spinham/hamiltonian.py +0 -0
  84. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/spinham/hamiltonian_terms.py +0 -0
  85. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/spinham/plot.py +0 -0
  86. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/spinham/qsolver.py +0 -0
  87. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/spinham/spin_api.py +0 -0
  88. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/spinham/spin_xml.py +0 -0
  89. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/spinham/supercell.py +0 -0
  90. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/symmetrize_J.py +0 -0
  91. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/tensor_rotate.py +0 -0
  92. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/thetaphi.py +0 -0
  93. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/utest.py +0 -0
  94. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/utils.py +0 -0
  95. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/versioninfo.py +0 -0
  96. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/wannier/__init__.py +0 -0
  97. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/wannier/w90_parser.py +0 -0
  98. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J/wannier/w90_tb_parser.py +0 -0
  99. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J.egg-info/dependency_links.txt +0 -0
  100. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J.egg-info/entry_points.txt +0 -0
  101. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/TB2J.egg-info/top_level.txt +0 -0
  102. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/scripts/TB2J_downfold.py +0 -0
  103. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/scripts/TB2J_eigen.py +0 -0
  104. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/scripts/TB2J_magnon.py +0 -0
  105. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/scripts/TB2J_magnon_dos.py +0 -0
  106. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/scripts/TB2J_merge.py +0 -0
  107. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/scripts/TB2J_rotate.py +0 -0
  108. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/scripts/TB2J_rotateDM.py +0 -0
  109. {tb2j-0.9.9rc18 → tb2j-0.9.9.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TB2J
3
- Version: 0.9.9rc18
3
+ Version: 0.9.9.1
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
@@ -21,10 +21,11 @@ Requires-Dist: ase>=3.19
21
21
  Requires-Dist: tqdm
22
22
  Requires-Dist: pathos
23
23
  Requires-Dist: packaging>=20.0
24
- Requires-Dist: HamiltonIO>=0.2.1
24
+ Requires-Dist: HamiltonIO>=0.1.10
25
25
  Requires-Dist: pre-commit
26
26
  Requires-Dist: sympair>0.1.0
27
27
  Requires-Dist: sisl>=0.9.0
28
+ Requires-Dist: netcdf4
28
29
  Dynamic: author
29
30
  Dynamic: author-email
30
31
  Dynamic: classifier
@@ -32,9 +32,7 @@ class MAEGreen(ExchangeNCL):
32
32
  """
33
33
  super().__init__(**kwargs)
34
34
  self.natoms = len(self.atoms)
35
- if angles is None or angles == "xyz":
36
- self.set_angles_xyz()
37
- elif angles == "axis":
35
+ if angles is None or angles == "axis":
38
36
  self.set_angles_axis()
39
37
  elif angles == "scan":
40
38
  self.set_angles_scan()
@@ -53,12 +51,6 @@ class MAEGreen(ExchangeNCL):
53
51
  self.es_atom = np.zeros((nangles, self.natoms), dtype=complex)
54
52
  self.es_atom_orb = DefaultDict(lambda: 0)
55
53
 
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
-
62
54
  def set_angles_axis(self):
63
55
  """theta and phi are defined as the x, y, z, xy, yz, xz, xyz, x-yz, -xyz, -x-yz axis."""
64
56
  self.thetas = [0, np.pi / 2, np.pi / 2, np.pi / 2, np.pi, 0, np.pi / 2, 0, 0, 0]
@@ -83,6 +75,7 @@ class MAEGreen(ExchangeNCL):
83
75
  self.thetas = thetas
84
76
  self.phis = phis
85
77
  self.angle_pairs = list(zip(thetas, phis))
78
+ # remove duplicates of angles using sets.
86
79
  self.angle_pairs = list(set(self.angle_pairs))
87
80
  self.thetas, self.phis = zip(*self.angle_pairs)
88
81
 
@@ -284,18 +277,18 @@ class MAEGreen(ExchangeNCL):
284
277
  f.write(f"{ea*1e3:.8f} ")
285
278
  f.write("\n")
286
279
 
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")
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")
291
284
 
292
- #if figure3d is not None:
293
- # self.ani.plot_3d(figname=fname_fig3d, show=False)
285
+ if figure3d is not None:
286
+ self.ani.plot_3d(figname=fname_fig3d, show=False)
294
287
 
295
- #if figure_contourf is not None:
296
- # self.ani.plot_contourf(figname=fname_figcontourf, show=False)
288
+ if figure_contourf is not None:
289
+ self.ani.plot_contourf(figname=fname_figcontourf, show=False)
297
290
 
298
- #plt.close()
291
+ plt.close()
299
292
  gc.collect()
300
293
 
301
294
  with open(fname_orb, "w") as f:
@@ -251,11 +251,6 @@ def add_exchange_args_to_parser(parser: argparse.ArgumentParser):
251
251
 
252
252
 
253
253
  def parser_argument_to_dict(args) -> dict:
254
- ind_mag_atoms = args.index_magnetic_atoms
255
- if ind_mag_atoms is not None:
256
- ind_mag_atoms = [int(i) - 1 for i in ind_mag_atoms]
257
- else:
258
- ind_mag_atoms = None
259
254
  return {
260
255
  "efermi": args.efermi,
261
256
  "magnetic_elements": args.elements,
@@ -273,5 +268,5 @@ def parser_argument_to_dict(args) -> dict:
273
268
  "orb_decomposition": args.orb_decomposition,
274
269
  "output_path": args.output_path,
275
270
  "orth": args.orth,
276
- "index_magnetic_atoms": ind_mag_atoms,
271
+ "index_magnetic_atoms": args.index_magnetic_atoms,
277
272
  }
@@ -5,7 +5,6 @@ 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
9
8
 
10
9
  try:
11
10
  from HamiltonIO.siesta import SislParser
@@ -157,18 +156,18 @@ Warning: The DMI component parallel to the spin orientation, the Jani which has
157
156
  atoms=model.atoms,
158
157
  basis=basis,
159
158
  efermi=None,
160
- angles="axis",
159
+ angles="miller",
161
160
  # magnetic_elements=magnetic_elements,
162
161
  # include_orbs=include_orbs,
163
162
  **exargs,
164
163
  )
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)
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)
168
167
  MAE.run(output_path=f"{output_path}_anisotropy", with_eigen=False)
169
- #print(
170
- # f"MAE calculation finished. The results are in {output_path} directory."
171
- #)
168
+ print(
169
+ f"MAE calculation finished. The results are in {output_path} directory."
170
+ )
172
171
 
173
172
  angle = {"x": (np.pi / 2, 0), "y": (np.pi / 2, np.pi / 2), "z": (0, 0)}
174
173
  for key, val in angle.items():
@@ -192,9 +191,3 @@ Warning: The DMI component parallel to the spin orientation, the Jani which has
192
191
  print(
193
192
  f"All calculation finished. The results are in {output_path_full} directory."
194
193
  )
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,3 +1 @@
1
1
  from .io_exchange import SpinIO
2
-
3
- __all__ = ["SpinIO"]
@@ -8,13 +8,16 @@ write not only xml output.
8
8
  - tom's asd inputs.
9
9
  """
10
10
 
11
- # matplotlib.use("Agg")
12
- import gc
13
11
  import os
14
12
  import pickle
15
13
  from collections.abc import Iterable
16
14
  from datetime import datetime
17
15
 
16
+ import matplotlib
17
+
18
+ matplotlib.use("Agg")
19
+ import gc
20
+
18
21
  import matplotlib.pyplot as plt
19
22
  import numpy as np
20
23
 
@@ -1,2 +1 @@
1
1
  from .lowdin import Lowdin
2
- from .magnons import *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TB2J
3
- Version: 0.9.9rc18
3
+ Version: 0.9.9.1
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
@@ -21,10 +21,11 @@ Requires-Dist: ase>=3.19
21
21
  Requires-Dist: tqdm
22
22
  Requires-Dist: pathos
23
23
  Requires-Dist: packaging>=20.0
24
- Requires-Dist: HamiltonIO>=0.2.1
24
+ Requires-Dist: HamiltonIO>=0.1.10
25
25
  Requires-Dist: pre-commit
26
26
  Requires-Dist: sympair>0.1.0
27
27
  Requires-Dist: sisl>=0.9.0
28
+ Requires-Dist: netcdf4
28
29
  Dynamic: author
29
30
  Dynamic: author-email
30
31
  Dynamic: classifier
@@ -70,16 +70,11 @@ TB2J/io_exchange/io_tomsasd.py
70
70
  TB2J/io_exchange/io_txt.py
71
71
  TB2J/io_exchange/io_uppasd.py
72
72
  TB2J/io_exchange/io_vampire.py
73
- TB2J/magnon/__init__.py
74
- TB2J/magnon/io_exchange2.py
75
- TB2J/magnon/plot.py
76
- TB2J/magnon/structure.py
77
73
  TB2J/mathutils/__init__.py
78
74
  TB2J/mathutils/fermi.py
79
75
  TB2J/mathutils/fibonacci_sphere.py
80
76
  TB2J/mathutils/kR_convert.py
81
77
  TB2J/mathutils/lowdin.py
82
- TB2J/mathutils/magnons.py
83
78
  TB2J/mathutils/rotate_spin.py
84
79
  TB2J/spinham/__init__.py
85
80
  TB2J/spinham/base_parser.py
@@ -97,7 +92,6 @@ TB2J/wannier/w90_tb_parser.py
97
92
  scripts/TB2J_downfold.py
98
93
  scripts/TB2J_eigen.py
99
94
  scripts/TB2J_magnon.py
100
- scripts/TB2J_magnon2.py
101
95
  scripts/TB2J_magnon_dos.py
102
96
  scripts/TB2J_merge.py
103
97
  scripts/TB2J_rotate.py
@@ -5,7 +5,8 @@ ase>=3.19
5
5
  tqdm
6
6
  pathos
7
7
  packaging>=20.0
8
- HamiltonIO>=0.2.1
8
+ HamiltonIO>=0.1.10
9
9
  pre-commit
10
10
  sympair>0.1.0
11
11
  sisl>=0.9.0
12
+ netcdf4
@@ -28,11 +28,7 @@ def run_abacus2J():
28
28
 
29
29
  args = parser.parse_args()
30
30
 
31
- index_magnetic_atoms = args.index_magnetic_atoms
32
- if index_magnetic_atoms is not None:
33
- index_magnetic_atoms = [i - 1 for i in index_magnetic_atoms]
34
-
35
- if args.elements is None and index_magnetic_atoms is None:
31
+ if args.elements is None:
36
32
  print("Please input the magnetic elements, e.g. --elements Fe Ni")
37
33
  sys.exit()
38
34
 
@@ -53,7 +49,7 @@ def run_abacus2J():
53
49
  nproc=args.nproc,
54
50
  exclude_orbs=args.exclude_orbs,
55
51
  orb_decomposition=args.orb_decomposition,
56
- index_magnetic_atoms=index_magnetic_atoms,
52
+ index_magnetic_atoms=args.index_magnetic_atoms,
57
53
  cutoff=args.cutoff,
58
54
  )
59
55
 
@@ -47,10 +47,6 @@ def run_siesta2J():
47
47
  # else:
48
48
  # include_orbs[element] = None
49
49
 
50
- index_magnetic_atoms = args.index_magnetic_atoms
51
- if index_magnetic_atoms is not None:
52
- index_magnetic_atoms = [i - 1 for i in index_magnetic_atoms]
53
-
54
50
  gen_exchange_siesta(
55
51
  fdf_fname=args.fdf_fname,
56
52
  kmesh=args.kmesh,
@@ -70,7 +66,7 @@ def run_siesta2J():
70
66
  orb_decomposition=args.orb_decomposition,
71
67
  read_H_soc=args.split_soc,
72
68
  orth=args.orth,
73
- index_magnetic_atoms=index_magnetic_atoms,
69
+ index_magnetic_atoms=args.index_magnetic_atoms,
74
70
  )
75
71
 
76
72
 
@@ -61,14 +61,10 @@ def run_wann2J():
61
61
  if args.efermi is None:
62
62
  print("Please input fermi energy using --efermi ")
63
63
  sys.exit()
64
- if args.elements is None and args.index_magnetic_atoms is None:
64
+ if args.elements is None:
65
65
  print("Please input the magnetic elements, e.g. --elements Fe Ni")
66
66
  sys.exit()
67
67
 
68
- index_magnetic_atoms = args.index_magnetic_atoms
69
- if index_magnetic_atoms is not None:
70
- index_magnetic_atoms = [i - 1 for i in index_magnetic_atoms]
71
-
72
68
  gen_exchange(
73
69
  path=args.path,
74
70
  colinear=(not args.spinor),
@@ -93,7 +89,7 @@ def run_wann2J():
93
89
  # qspace=args.qspace,
94
90
  write_density_matrix=args.write_dm,
95
91
  orb_decomposition=args.orb_decomposition,
96
- index_magnetic_atoms=index_magnetic_atoms,
92
+ index_magnetic_atoms=args.index_magnetic_atoms,
97
93
  )
98
94
 
99
95
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  from setuptools import find_packages, setup
3
3
 
4
- __version__ = "0.9.9rc18"
4
+ __version__ = "0.9.9.1"
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
 
@@ -22,7 +22,6 @@ setup(
22
22
  "scripts/TB2J_rotateDM.py",
23
23
  "scripts/TB2J_merge.py",
24
24
  "scripts/TB2J_magnon.py",
25
- "scripts/TB2J_magnon2.py",
26
25
  "scripts/TB2J_magnon_dos.py",
27
26
  "scripts/TB2J_downfold.py",
28
27
  "scripts/TB2J_eigen.py",
@@ -41,10 +40,11 @@ setup(
41
40
  "tqdm",
42
41
  "pathos",
43
42
  "packaging>=20.0",
44
- "HamiltonIO>=0.2.1",
43
+ "HamiltonIO>=0.1.10",
45
44
  "pre-commit",
46
45
  "sympair>0.1.0",
47
46
  "sisl>=0.9.0",
47
+ "netcdf4"
48
48
  ],
49
49
  classifiers=[
50
50
  "Development Status :: 3 - Alpha",
@@ -1,3 +0,0 @@
1
- from .io_exchange2 import ExchangeIO, plot_tb2j_magnon_bands
2
-
3
- __all__ = ["ExchangeIO", "plot_tb2j_magnon_bands"]