TB2J 0.9.9rc19__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.9rc19 → tb2j-0.9.9.1}/PKG-INFO +3 -2
  2. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/Jdownfolder.py +2 -3
  3. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/MAEGreen.py +17 -22
  4. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/exchange_params.py +1 -6
  5. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/siesta_interface.py +4 -15
  6. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/io_exchange/__init__.py +0 -2
  7. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/io_exchange/io_exchange.py +5 -2
  8. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/mathutils/__init__.py +0 -1
  9. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J.egg-info/PKG-INFO +3 -2
  10. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J.egg-info/SOURCES.txt +0 -6
  11. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J.egg-info/requires.txt +2 -1
  12. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/scripts/abacus2J.py +2 -6
  13. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/scripts/siesta2J.py +1 -5
  14. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/scripts/wann2J.py +2 -6
  15. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/setup.py +3 -3
  16. tb2j-0.9.9rc19/TB2J/magnon/__init__.py +0 -3
  17. tb2j-0.9.9rc19/TB2J/magnon/io_exchange2.py +0 -688
  18. tb2j-0.9.9rc19/TB2J/magnon/plot.py +0 -58
  19. tb2j-0.9.9rc19/TB2J/magnon/structure.py +0 -348
  20. tb2j-0.9.9rc19/TB2J/mathutils/magnons.py +0 -45
  21. tb2j-0.9.9rc19/scripts/TB2J_magnon2.py +0 -78
  22. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/LICENSE +0 -0
  23. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/README.md +0 -0
  24. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/Jtensor.py +0 -0
  25. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/MAE.py +0 -0
  26. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/Oiju.py +0 -0
  27. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/Oiju_epc.py +0 -0
  28. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/__init__.py +0 -0
  29. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/anisotropy.py +0 -0
  30. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/basis.py +0 -0
  31. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/citation.py +0 -0
  32. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/contour.py +0 -0
  33. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/density_matrix.py +0 -0
  34. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/epc.py +0 -0
  35. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/exchange.py +0 -0
  36. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/exchangeCL2.py +0 -0
  37. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/exchange_pert.py +0 -0
  38. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/exchange_qspace.py +0 -0
  39. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/external/__init__.py +0 -0
  40. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/external/p_tqdm.py +0 -0
  41. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/gpaw_wrapper.py +0 -0
  42. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/green.py +0 -0
  43. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/greentest.py +0 -0
  44. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/__init__.py +0 -0
  45. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/__init__.py +0 -0
  46. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/abacus_api.py +0 -0
  47. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/abacus_wrapper.py +0 -0
  48. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/gen_exchange_abacus.py +0 -0
  49. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/orbital_api.py +0 -0
  50. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/stru_api.py +0 -0
  51. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/test_density_matrix.py +0 -0
  52. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/test_read_HRSR.py +0 -0
  53. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/abacus/test_read_stru.py +0 -0
  54. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/gpaw_interface.py +0 -0
  55. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/lawaf_interface.py +0 -0
  56. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/manager.py +0 -0
  57. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/interfaces/wannier90_interface.py +0 -0
  58. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/io_exchange/io_multibinit.py +0 -0
  59. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/io_exchange/io_tomsasd.py +0 -0
  60. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/io_exchange/io_txt.py +0 -0
  61. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/io_exchange/io_uppasd.py +0 -0
  62. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/io_exchange/io_vampire.py +0 -0
  63. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/io_merge.py +0 -0
  64. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/kpoints.py +0 -0
  65. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/mathutils/fermi.py +0 -0
  66. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/mathutils/fibonacci_sphere.py +0 -0
  67. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/mathutils/kR_convert.py +0 -0
  68. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/mathutils/lowdin.py +0 -0
  69. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/mathutils/rotate_spin.py +0 -0
  70. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/myTB.py +0 -0
  71. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/mycfr.py +0 -0
  72. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/orbital_magmom.py +0 -0
  73. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/orbmap.py +0 -0
  74. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/pauli.py +0 -0
  75. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/pert.py +0 -0
  76. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/plot.py +0 -0
  77. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/rotate_atoms.py +0 -0
  78. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/rotate_siestaDM.py +0 -0
  79. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/sisl_wrapper.py +0 -0
  80. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/spinham/__init__.py +0 -0
  81. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/spinham/base_parser.py +0 -0
  82. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/spinham/constants.py +0 -0
  83. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/spinham/hamiltonian.py +0 -0
  84. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/spinham/hamiltonian_terms.py +0 -0
  85. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/spinham/plot.py +0 -0
  86. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/spinham/qsolver.py +0 -0
  87. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/spinham/spin_api.py +0 -0
  88. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/spinham/spin_xml.py +0 -0
  89. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/spinham/supercell.py +0 -0
  90. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/symmetrize_J.py +0 -0
  91. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/tensor_rotate.py +0 -0
  92. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/thetaphi.py +0 -0
  93. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/utest.py +0 -0
  94. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/utils.py +0 -0
  95. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/versioninfo.py +0 -0
  96. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/wannier/__init__.py +0 -0
  97. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/wannier/w90_parser.py +0 -0
  98. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J/wannier/w90_tb_parser.py +0 -0
  99. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J.egg-info/dependency_links.txt +0 -0
  100. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J.egg-info/entry_points.txt +0 -0
  101. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/TB2J.egg-info/top_level.txt +0 -0
  102. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/scripts/TB2J_downfold.py +0 -0
  103. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/scripts/TB2J_eigen.py +0 -0
  104. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/scripts/TB2J_magnon.py +0 -0
  105. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/scripts/TB2J_magnon_dos.py +0 -0
  106. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/scripts/TB2J_merge.py +0 -0
  107. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/scripts/TB2J_rotate.py +0 -0
  108. {tb2j-0.9.9rc19 → tb2j-0.9.9.1}/scripts/TB2J_rotateDM.py +0 -0
  109. {tb2j-0.9.9rc19 → 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.9rc19
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
@@ -136,7 +136,7 @@ class JDownfolder_pickle:
136
136
  outpath,
137
137
  qmesh=[7, 7, 7],
138
138
  iso_only=False,
139
- method="lowdin",
139
+ method="pwf",
140
140
  **kwargs,
141
141
  ):
142
142
  self.exc = SpinIO.load_pickle(path=inpath, fname="TB2J.pickle")
@@ -146,7 +146,6 @@ class JDownfolder_pickle:
146
146
  self.ligands = ligands
147
147
  self.outpath = outpath
148
148
  self.method = method
149
- print("Using method:", self.method)
150
149
 
151
150
  # read atomic structure
152
151
  self.atoms = self.exc.atoms
@@ -177,7 +176,7 @@ class JDownfolder_pickle:
177
176
 
178
177
  def _downfold(self, **kwargs):
179
178
  JR2 = self.exc.get_full_Jtensor_for_Rlist(asr=True)
180
- if self.method.lower() == "lowdin":
179
+ if self.method == "lowdin":
181
180
  d = JDownfolder(
182
181
  JR2,
183
182
  self.exc.Rlist,
@@ -1,6 +1,7 @@
1
1
  import gc
2
2
  from pathlib import Path
3
3
 
4
+ import matplotlib.pyplot as plt
4
5
  import numpy as np
5
6
  import tqdm
6
7
  from HamiltonIO.abacus.abacus_wrapper import AbacusSplitSOCParser
@@ -31,9 +32,7 @@ class MAEGreen(ExchangeNCL):
31
32
  """
32
33
  super().__init__(**kwargs)
33
34
  self.natoms = len(self.atoms)
34
- if angles is None or angles == "xyz":
35
- self.set_angles_xyz()
36
- elif angles == "axis":
35
+ if angles is None or angles == "axis":
37
36
  self.set_angles_axis()
38
37
  elif angles == "scan":
39
38
  self.set_angles_scan()
@@ -52,11 +51,6 @@ class MAEGreen(ExchangeNCL):
52
51
  self.es_atom = np.zeros((nangles, self.natoms), dtype=complex)
53
52
  self.es_atom_orb = DefaultDict(lambda: 0)
54
53
 
55
- def set_angles_xyz(self):
56
- """theta and phi are defined as the x, y, z, xy, yz, xz, xyz, x-yz, -xyz, -x-yz axis."""
57
- self.thetas = [np.pi / 2, np.pi / 2, 0.0]
58
- self.phis = [np.pi / 2, 0, 0.0]
59
-
60
54
  def set_angles_axis(self):
61
55
  """theta and phi are defined as the x, y, z, xy, yz, xz, xyz, x-yz, -xyz, -x-yz axis."""
62
56
  self.thetas = [0, np.pi / 2, np.pi / 2, np.pi / 2, np.pi, 0, np.pi / 2, 0, 0, 0]
@@ -81,6 +75,7 @@ class MAEGreen(ExchangeNCL):
81
75
  self.thetas = thetas
82
76
  self.phis = phis
83
77
  self.angle_pairs = list(zip(thetas, phis))
78
+ # remove duplicates of angles using sets.
84
79
  self.angle_pairs = list(set(self.angle_pairs))
85
80
  self.thetas, self.phis = zip(*self.angle_pairs)
86
81
 
@@ -253,11 +248,11 @@ class MAEGreen(ExchangeNCL):
253
248
  Path(output_path).mkdir(exist_ok=True)
254
249
  fname = f"{output_path}/MAE.dat"
255
250
  fname_orb = f"{output_path}/MAE_orb.dat"
256
- # fname_tensor = f"{output_path}/MAE_tensor.dat"
257
- # if figure3d is not None:
258
- # fname_fig3d = f"{output_path}/{figure3d}"
259
- # if figure_contourf is not None:
260
- # fname_figcontourf = f"{output_path}/{figure_contourf}"
251
+ fname_tensor = f"{output_path}/MAE_tensor.dat"
252
+ if figure3d is not None:
253
+ fname_fig3d = f"{output_path}/{figure3d}"
254
+ if figure_contourf is not None:
255
+ fname_figcontourf = f"{output_path}/{figure_contourf}"
261
256
 
262
257
  # ouput with eigenvalues.
263
258
  if with_eigen:
@@ -282,18 +277,18 @@ class MAEGreen(ExchangeNCL):
282
277
  f.write(f"{ea*1e3:.8f} ")
283
278
  f.write("\n")
284
279
 
285
- # self.ani = self.fit_anisotropy_tensor()
286
- # with open(fname_tensor, "w") as f:
287
- # f.write("# Anisotropy tensor in meV\n")
288
- # 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")
289
284
 
290
- # if figure3d is not None:
291
- # 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)
292
287
 
293
- # if figure_contourf is not None:
294
- # 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)
295
290
 
296
- # plt.close()
291
+ plt.close()
297
292
  gc.collect()
298
293
 
299
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
  }
@@ -4,7 +4,6 @@ import numpy as np
4
4
 
5
5
  from TB2J.exchange import ExchangeNCL
6
6
  from TB2J.exchangeCL2 import ExchangeCL2
7
- from TB2J.io_merge import merge
8
7
  from TB2J.MAEGreen import MAEGreen
9
8
 
10
9
  try:
@@ -157,7 +156,7 @@ 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,
@@ -166,9 +165,9 @@ Warning: The DMI component parallel to the spin orientation, the Jani which has
166
165
  # phis = [0, 0, 0, 0]
167
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,13 +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
- merge(
197
- "TB2J_results_x",
198
- "TB2J_results_y",
199
- "TB2J_results_z",
200
- main_path=None,
201
- save=True,
202
- write_path="TB2J_results",
203
- )
204
- print("Final TB2J_results written to TB2J_results directory.")
@@ -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.9rc19
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.9rc19"
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"]