TB2J 0.9.9rc5__py3-none-any.whl → 0.9.9rc7__py3-none-any.whl

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 (33) hide show
  1. TB2J/Jdownfolder.py +11 -9
  2. TB2J/MAEGreen.py +123 -19
  3. TB2J/anisotropy.py +104 -30
  4. TB2J/contour.py +16 -0
  5. TB2J/exchange.py +14 -17
  6. TB2J/exchangeCL2.py +20 -11
  7. TB2J/exchange_params.py +8 -0
  8. TB2J/green.py +15 -1
  9. TB2J/interfaces/siesta_interface.py +2 -1
  10. TB2J/io_exchange/io_exchange.py +44 -5
  11. TB2J/io_exchange/io_matjes.py +225 -0
  12. TB2J/kpoints.py +15 -1
  13. TB2J/mathutils/fibonacci_sphere.py +74 -0
  14. TB2J/mycfr.py +114 -0
  15. TB2J/orbital_magmom.py +36 -0
  16. TB2J/orbmap.py +4 -4
  17. TB2J/symmetrize_J.py +24 -11
  18. {TB2J-0.9.9rc5.dist-info → tb2j-0.9.9rc7.dist-info}/METADATA +16 -7
  19. {TB2J-0.9.9rc5.dist-info → tb2j-0.9.9rc7.dist-info}/RECORD +33 -29
  20. {TB2J-0.9.9rc5.dist-info → tb2j-0.9.9rc7.dist-info}/WHEEL +1 -1
  21. {TB2J-0.9.9rc5.data → tb2j-0.9.9rc7.data}/scripts/TB2J_downfold.py +0 -0
  22. {TB2J-0.9.9rc5.data → tb2j-0.9.9rc7.data}/scripts/TB2J_eigen.py +0 -0
  23. {TB2J-0.9.9rc5.data → tb2j-0.9.9rc7.data}/scripts/TB2J_magnon.py +0 -0
  24. {TB2J-0.9.9rc5.data → tb2j-0.9.9rc7.data}/scripts/TB2J_magnon_dos.py +0 -0
  25. {TB2J-0.9.9rc5.data → tb2j-0.9.9rc7.data}/scripts/TB2J_merge.py +0 -0
  26. {TB2J-0.9.9rc5.data → tb2j-0.9.9rc7.data}/scripts/TB2J_rotate.py +0 -0
  27. {TB2J-0.9.9rc5.data → tb2j-0.9.9rc7.data}/scripts/TB2J_rotateDM.py +0 -0
  28. {TB2J-0.9.9rc5.data → tb2j-0.9.9rc7.data}/scripts/abacus2J.py +0 -0
  29. {TB2J-0.9.9rc5.data → tb2j-0.9.9rc7.data}/scripts/siesta2J.py +0 -0
  30. {TB2J-0.9.9rc5.data → tb2j-0.9.9rc7.data}/scripts/wann2J.py +0 -0
  31. {TB2J-0.9.9rc5.dist-info → tb2j-0.9.9rc7.dist-info}/entry_points.txt +0 -0
  32. {TB2J-0.9.9rc5.dist-info → tb2j-0.9.9rc7.dist-info/licenses}/LICENSE +0 -0
  33. {TB2J-0.9.9rc5.dist-info → tb2j-0.9.9rc7.dist-info}/top_level.txt +0 -0
TB2J/mycfr.py ADDED
@@ -0,0 +1,114 @@
1
+ # -*- coding: utf-8 -*-
2
+ # File: mycfr.py
3
+ # Time: 2017/12/10 19:29:43
4
+ """
5
+ Continued fraction representation.
6
+ """
7
+
8
+ import numpy as np
9
+ from scipy.linalg import eig
10
+
11
+ kb = 8.61733e-5 # Boltzmann constant in eV
12
+
13
+
14
+ class CFR:
15
+ """
16
+ Integration with the continued fraction representation.
17
+ """
18
+
19
+ def __init__(self, nz=50, T=60):
20
+ self.nz = nz
21
+ self.T = 600
22
+ self.beta = 1 / (kb * self.T)
23
+ self.Rinf = 1e10
24
+ if nz <= 0:
25
+ raise ValueError("nz should be larger than 0.")
26
+ else:
27
+ self.prepare_poles()
28
+
29
+ def prepare_poles(self):
30
+ ##b_mat = [1 / (2.0 * np.sqrt((2 * (j + 1) - 1) * (2 * (j + 1) + 1)) / (kb * self.#T)) for j in range(0, self.nz- 1)]
31
+ jmat = np.arange(0, self.nz - 1)
32
+ b_mat = 1 / (2.0 * np.sqrt((2 * (jmat + 1) - 1) * (2 * (jmat + 1) + 1)))
33
+ b_mat = np.diag(b_mat, -1) + np.diag(b_mat, 1)
34
+ self.poles, residules = eig(b_mat)
35
+
36
+ residules = 0.25 * np.abs(residules[0, :]) ** 2 / self.poles**2
37
+ # residules = 0.25 * np.diag(residules) ** 2 / self.poles**2
38
+
39
+ # self.weights = np.where(
40
+ # #np.real(self.poles) > 0, 4.0j / self.beta * residules, 0.0
41
+ # #np.real(self.poles) > 0, 2.0j / self.beta * residules, 2.0j / self.beta * residules
42
+ # np.real(self.poles) > 0, 2.0j / self.beta * residules, 0.0
43
+ # )
44
+
45
+ # self.path = 1j / self.poles * kb * self.T
46
+
47
+ self.path = []
48
+ self.weights = []
49
+ for p, r in zip(self.poles, residules):
50
+ if p > 0:
51
+ self.path.append(1j / p * kb * self.T)
52
+ w = 2.0j / self.beta * r
53
+ self.weights.append(w)
54
+ self.path.append(-1j / p * kb * self.T)
55
+ self.weights.append(w)
56
+
57
+ self.path = np.array(self.path)
58
+ self.weights = np.array(self.weights)
59
+
60
+ # from J. Phys. Soc. Jpn. 88, 114706 (2019)
61
+ # A_mat = -1/2 *np.diag(1, -1) + np.diag(1, 1)
62
+ # B_mat = np.diag([2*i-1 for i in range(1, self.nz)])
63
+ # eigp, eigv = eig(A_mat, B_mat)
64
+ # zp = 1j / eigp * kb * self.T
65
+ # Rp = 0.25 * np.diag(eigv)**2 * zp **2
66
+
67
+ # add a point to the poles: 1e10j
68
+ self.path = np.concatenate((self.path, [self.Rinf * 1j]))
69
+ # self.path = np.concatenate((self.path, [0.0]))
70
+ self.npoles = len(self.poles)
71
+
72
+ # add weights for the point 1e10j
73
+ # self.weights = np.concatenate((self.weights, [-self.Rinf]))
74
+ self.weights = np.concatenate((self.weights, [00.0]))
75
+ # zeros moment is 1j * R * test_gf(1j * R), but the real part of it will be taken. In contrast to the other part, where the imaginary part is taken.
76
+
77
+ def integrate_values(self, gf_vals, imag=False):
78
+ ret = 0
79
+ for i in range(self.npoles + 1):
80
+ ret += self.weights[i] * gf_vals[i]
81
+ ret *= (
82
+ -np.pi / 2
83
+ ) # This is to be compatible with the integration of contour, where /-np.pi is used after the integration. And the factor of 2 is because the Fermi function here is 2-fold degenerate.
84
+ if imag:
85
+ return np.imag(ret)
86
+ return ret
87
+
88
+ def integrate_func(self, gf, ef=0):
89
+ """
90
+ Integration with the continued fraction representation.
91
+
92
+ :param gf: Green's function
93
+ :param ef: Fermi energy
94
+ :return: integration result
95
+ """
96
+ path = self.path
97
+ gf_vals = gf(path, ef=ef)
98
+ return self.integrate_values(gf_vals)
99
+
100
+
101
+ def test_cfr():
102
+ cfr = CFR(nz=100)
103
+
104
+ def test_gf(z, ef=0.1):
105
+ return 1 / (z - 3 + ef)
106
+
107
+ r = cfr.integrate_func(test_gf, ef=2)
108
+ r = -np.imag(r) / np.pi * 2
109
+ print(r)
110
+ return r
111
+
112
+
113
+ if __name__ == "__main__":
114
+ test_cfr()
TB2J/orbital_magmom.py ADDED
@@ -0,0 +1,36 @@
1
+ """
2
+ utilities to handel orbital magnetic moments
3
+ """
4
+
5
+ import numpy as np
6
+
7
+
8
+ def complex_spherical_harmonic_to_real_spherical_harmonic(l=1):
9
+ """
10
+ matrix to convert the complex spherical harmonics to real spherical harmonics
11
+ """
12
+ MCR = np.zeros((2 * l + 1, 2 * l + 1), dtype=np.complex128)
13
+ MCR[0 + l, 0 + l] = 1.0
14
+ for m in range(1, l + 1):
15
+ mi = m + l
16
+ mpi = -m + l
17
+ MCR[mi, mi] = (-1) ** m / 2
18
+ MCR[mi, mpi] = 1.0 / 2
19
+ MCR[mpi, mi] = -1j * (-1) ** m / 2
20
+ MCR[mpi, mpi] = 1j / 2
21
+
22
+ return MCR
23
+
24
+
25
+ def test_complex_spherical_harmonic_to_real_spherical_harmonic():
26
+ """
27
+ test the conversion matrix
28
+ """
29
+ l = 3
30
+ MCR = complex_spherical_harmonic_to_real_spherical_harmonic(l)
31
+ # print(MCR*np.sqrt(2))
32
+ print(MCR * 2)
33
+
34
+
35
+ if __name__ == "__main__":
36
+ test_complex_spherical_harmonic_to_real_spherical_harmonic()
TB2J/orbmap.py CHANGED
@@ -28,14 +28,14 @@ def map_orbs_matrix(orblist, spinor=False, include_only=None):
28
28
 
29
29
  norb = len(orblist)
30
30
 
31
- print("orblist: ", orblist)
31
+ # print("orblist: ", orblist)
32
32
  ss = [split_orb_name(orb) for orb in orblist]
33
33
  orbdict = dict(zip(ss, range(norb)))
34
34
 
35
35
  reduced_orbdict = defaultdict(lambda: [])
36
36
 
37
- print(f"Orbital dictionary: {orbdict}")
38
- print("include_only: ", include_only)
37
+ # print(f"Orbital dictionary: {orbdict}")
38
+ # print("include_only: ", include_only)
39
39
 
40
40
  if include_only is None:
41
41
  for key, val in orbdict.items():
@@ -46,7 +46,7 @@ def map_orbs_matrix(orblist, spinor=False, include_only=None):
46
46
  # [:2] for 3d, 4d, 5d, etc. and [:1] for s, p, d, etc
47
47
  reduced_orbdict[key[0]].append(val)
48
48
 
49
- print(f"reduced_orbdict: {reduced_orbdict}")
49
+ # print(f"reduced_orbdict: {reduced_orbdict}")
50
50
  reduced_orbs = tuple(reduced_orbdict.keys())
51
51
  ngroup = len(reduced_orbdict)
52
52
  mmat = np.zeros((norb, ngroup), dtype=int)
TB2J/symmetrize_J.py CHANGED
@@ -9,11 +9,12 @@ from TB2J.versioninfo import print_license
9
9
 
10
10
 
11
11
  class TB2JSymmetrizer:
12
- def __init__(self, exc, symprec=1e-8, verbose=True, Jonly=False):
12
+ def __init__(self, exc, symprec=1e-8, verbose=True, Jonly=True):
13
13
  # list of pairs with the index of atoms
14
14
  ijRs = exc.ijR_list_index_atom()
15
15
  finder = SymmetryPairFinder(atoms=exc.atoms, pairs=ijRs, symprec=symprec)
16
16
  self.verbose = verbose
17
+ self.Jonly = Jonly
17
18
 
18
19
  if verbose:
19
20
  print("=" * 30)
@@ -24,6 +25,12 @@ class TB2JSymmetrizer:
24
25
  )
25
26
  print("-" * 30)
26
27
  if exc.has_dmi:
28
+ # raise NotImplementedError(
29
+ # "Symmetrization of DMI is not yet implemented."
30
+ # )
31
+ # raise Warning(
32
+ # "WARNING: Symmetrization of DMI is not yet implemented."
33
+ # )
27
34
  print(
28
35
  "WARNING: Currently only the isotropic exchange is symmetrized. Symmetrization of DMI and anisotropic exchange are not yet implemented."
29
36
  )
@@ -32,7 +39,7 @@ class TB2JSymmetrizer:
32
39
  print("Symmetry found:")
33
40
  print(finder.spacegroup)
34
41
  print("-" * 30)
35
- self.pgdict = finder.get_symmetry_pair_group_dict()
42
+ self.pldict = finder.get_symmetry_pair_list_dict()
36
43
  self.exc = exc
37
44
  self.new_exc = copy.deepcopy(exc)
38
45
  self.Jonly = Jonly
@@ -45,21 +52,25 @@ class TB2JSymmetrizer:
45
52
  Symmetrize the exchange parameters J.
46
53
  """
47
54
  symJdict = {}
55
+ reduced_symJdict = {}
48
56
  # Jdict = self.exc.exchange_Jdict
49
- # ngroup = self.pgdict
50
- for pairgroup in self.pgdict.groups:
51
- ijRs = pairgroup.get_all_ijR()
57
+ for ishell, pairlist in enumerate(self.pldict.pairlists):
58
+ ijRs = pairlist.get_all_ijR()
52
59
  ijRs_spin = [self.exc.ijR_index_atom_to_spin(*ijR) for ijR in ijRs]
53
60
  Js = [self.exc.get_J(*ijR_spin) for ijR_spin in ijRs_spin]
54
61
  Javg = np.average(Js)
55
62
  for i, j, R in ijRs_spin:
56
63
  symJdict[(R, i, j)] = Javg
64
+ ijRs_ref = ijRs_spin[0]
65
+ i, j, R = ijRs_ref
66
+ reduced_symJdict[(R, i, j)] = Javg
57
67
  self.new_exc.exchange_Jdict = symJdict
58
68
  if self.Jonly:
59
69
  self.new_exc.has_dmi = False
60
70
  self.new_exc.dmi_ddict = None
61
71
  self.new_exc.has_bilinear = False
62
72
  self.new_exc.Jani_dict = None
73
+ self.new_exc.reduced_exchange_Jdict = reduced_symJdict
63
74
  self.has_uniaxial_anisotropy = False
64
75
  self.k1 = None
65
76
  self.k1dir = None
@@ -123,11 +134,12 @@ def symmetrize_J_cli():
123
134
  help="precision for symmetry detection. default is 1e-5 Angstrom",
124
135
  )
125
136
 
126
- parser.add_argument(
127
- "-Jonly",
128
- action="store_true",
129
- help="Symmetrize only the exchange parameters. Do not output DMI and anisotropic exchange.",
130
- )
137
+ # parser.add_argument(
138
+ # "--Jonly",
139
+ # action="store_true",
140
+ # help="symmetrize only the exchange parameters and discard the DMI and anisotropic exchange",
141
+ # default=True,
142
+ # )
131
143
 
132
144
  args = parser.parse_args()
133
145
  if args.inpath is None:
@@ -137,7 +149,8 @@ def symmetrize_J_cli():
137
149
  path=args.inpath,
138
150
  output_path=args.outpath,
139
151
  symprec=args.symprec,
140
- Jonly=args.Jonly,
152
+ # Jonly=args.Jonly,
153
+ Jonly=True,
141
154
  )
142
155
 
143
156
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: TB2J
3
- Version: 0.9.9rc5
3
+ Version: 0.9.9rc7
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
@@ -14,15 +14,24 @@ Classifier: Topic :: Scientific/Engineering :: Physics
14
14
  Classifier: License :: OSI Approved :: BSD License
15
15
  Requires-Python: >=3.6
16
16
  License-File: LICENSE
17
- Requires-Dist: numpy <2.0
17
+ Requires-Dist: numpy<2.0
18
18
  Requires-Dist: scipy
19
19
  Requires-Dist: matplotlib
20
- Requires-Dist: ase >=3.19
20
+ Requires-Dist: ase>=3.19
21
21
  Requires-Dist: tqdm
22
22
  Requires-Dist: pathos
23
- Requires-Dist: packaging >=20.0
24
- Requires-Dist: HamiltonIO >=0.1.9
23
+ Requires-Dist: packaging>=20.0
24
+ Requires-Dist: HamiltonIO>=0.1.9
25
25
  Requires-Dist: pre-commit
26
- Requires-Dist: sympair >0.1.0
26
+ Requires-Dist: sympair>0.1.0
27
+ Dynamic: author
28
+ Dynamic: author-email
29
+ Dynamic: classifier
30
+ Dynamic: description
31
+ Dynamic: license
32
+ Dynamic: license-file
33
+ Dynamic: requires-dist
34
+ Dynamic: requires-python
35
+ Dynamic: summary
27
36
 
28
37
  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.
@@ -1,35 +1,37 @@
1
- TB2J/Jdownfolder.py,sha256=Rmg6KfQ-Lkhei5daTJ2POzr0XL-R1WM-rzUnDcfoDhc,9595
1
+ TB2J/Jdownfolder.py,sha256=xs0gmcKwOA3ejXqk3JPPgnYVu8CvkK8cteuvHuu1oSk,9603
2
2
  TB2J/Jtensor.py,sha256=t6OsqrSlYW6Im4H7ykVAW8Al_pFXN4C5yj2UEsV6r7g,3181
3
3
  TB2J/MAE.py,sha256=fM8U-Dgp9HcQOEeC_kyZV1oVrygBvcux9BraUXVouvY,10994
4
- TB2J/MAEGreen.py,sha256=DycefzJMqVRXu4QUBtKFF4KQMdXpWF3QhbjupUgD0y4,10826
4
+ TB2J/MAEGreen.py,sha256=pCX12GDNaOz8XgMlui8NjAERM43Ux3HyOKfiD80czXI,15306
5
5
  TB2J/Oiju.py,sha256=cNGv8N5uH_swGq7cnAt2OyiDfqtjLlLrwseGu0E4iaM,3383
6
6
  TB2J/Oiju_epc.py,sha256=oytM3NYW7nWmklrGgNlqwIpI_JYv_hb7ZnR4o9nYNog,6809
7
7
  TB2J/__init__.py,sha256=hcEWkag_UvLm1ZSbjsgcTWkGVlR3Bwmzg1QYAwsvf-g,24
8
- TB2J/anisotropy.py,sha256=zz4ID6_Yjf5gxPJt1psc6liNKhTG8X5AtHdpq0dCEzM,22616
8
+ TB2J/anisotropy.py,sha256=0zmvXkmDmakbBOwGYLa3IIkv5cE99SHLAQJsGoZz7JQ,25463
9
9
  TB2J/basis.py,sha256=DFo6_QUwjBwisP6zGxvoO0lpGTMDPAOkiL9giNCjOjA,1558
10
10
  TB2J/citation.py,sha256=gcQeyJZaT1Qrtsl8Y3s4neOH3-vvgmIcCvXeV2o3vj0,2891
11
- TB2J/contour.py,sha256=4wFZSPV81WwuUrvn1MENMnP-cW5ICDy8azOdTO8HJdw,2877
11
+ TB2J/contour.py,sha256=zLHQZZ3hhgLkLFPATCraLOJyLJKLC0fba_L_5sRz23o,3246
12
12
  TB2J/density_matrix.py,sha256=D5k8Oe21OCiLVORNYbo4TZOFG0slrQSbj91kJ3TMFjs,1514
13
13
  TB2J/epc.py,sha256=zLbtqZJhDr8DnnGN6YENcXwrMb3Qxu6KB08mLy9Pw20,3474
14
- TB2J/exchange.py,sha256=IToRCS5JPXnANuWTqUzNPJgax1o3hjJPAOto2FGq3Ws,25794
15
- TB2J/exchangeCL2.py,sha256=vJgVBpvtTE2K7Xf7hGQNc3C87VvVXTa689Qd5827ItE,11165
16
- TB2J/exchange_params.py,sha256=govA4khUpWObE0UP_7hCCU55YpuZmrmqBD-SMCHhoz4,6963
14
+ TB2J/exchange.py,sha256=742vEE8DQJuWBTlq45RQoPy0-_n_TT6BZOb_DoTpDKI,25739
15
+ TB2J/exchangeCL2.py,sha256=P7bklMXVYX_tn9DbjEPqeTir1SeZyfPBIP1fhWUzLmY,11419
16
+ TB2J/exchange_params.py,sha256=AcGYYky27DXSF3yDZWVjksr_3rt6im6qeIzpOwvqssk,7141
17
17
  TB2J/exchange_pert.py,sha256=jmFMtQbYa_uczM4VAeS6TijkIHRFIqEzZJswzE9Wfuo,8523
18
18
  TB2J/exchange_qspace.py,sha256=ZL68qBGFUaQ9BsSPsJaaoWOr9RssPiqX34R_9I3nk_8,8436
19
19
  TB2J/gpaw_wrapper.py,sha256=aJ--9Dtyq7jOP1Hkh-Sh1nWcfXm6zKcljOCO0DNCAr0,6890
20
- TB2J/green.py,sha256=MpO834p4esu-uJeVP6IrFvzxrr_wRoHTDX7OfH5wRSs,16627
20
+ TB2J/green.py,sha256=ySXjoV3Cj_E2C41dRfc3TkS7M4vmM6qcHXkt-_-jxsY,17071
21
21
  TB2J/greentest.py,sha256=2ISSfhor9ecSEOi_E6b4Cv26wEIQlwlzca0ru8z44_E,1603
22
22
  TB2J/io_merge.py,sha256=E1_GfAB2HGpW-ipaO2lqU9SvaslwkiLxssn4DqJpMT8,6899
23
- TB2J/kpoints.py,sha256=kOYmIAYMicK1dXy5a-IIkBr2NwRQdXPGr3uUWYg0IKw,2664
23
+ TB2J/kpoints.py,sha256=9L7tBarFBHoIhpuc9zuwA6HdnlgH834SQrPek4yRoWk,3191
24
24
  TB2J/myTB.py,sha256=ok_B4my29bOIghMSZfx0Es6G8FaXaIiLP4gPxTdSj00,17659
25
- TB2J/orbmap.py,sha256=g5Lhp6UkDZ7-1T9k0oO43gb2O7j2aGVKMdUeM3QdNAY,7186
25
+ TB2J/mycfr.py,sha256=Wgj6PpA-oVuxm8Hh32FVw_vthozVBrDJhRV1hA1ku44,3752
26
+ TB2J/orbital_magmom.py,sha256=JTwO9ZDgRRQndqR9aFIua4eTvwLMoGsTiY_HaIPMZ2I,889
27
+ TB2J/orbmap.py,sha256=XLQjKMxCy2eADaM5eb2F_zG08V7lzpXJxp5uEtTeVYI,7194
26
28
  TB2J/pauli.py,sha256=ESpAhk6LG5ugzuW1YFUTqiDxcg-pQ7wNnzR2FtUnvKM,5295
27
29
  TB2J/pert.py,sha256=RaCJfewl0doht4cjAnzzGKe-uj2le4aqe0iPKFrq9fo,1192
28
30
  TB2J/plot.py,sha256=AnFIFWE2vlmj7Z6f_7-dX_O1stJN-qbuiurPj43dUCM,4104
29
31
  TB2J/rotate_atoms.py,sha256=Dwptn-wdDW4zYzjYb95yxTzuZOe9WPuLjh3d3-YcSs0,3277
30
32
  TB2J/rotate_siestaDM.py,sha256=eR97rspdrRaK9YTwQwUKfobI0S9UnEcbEZ2f5IgR7Tk,1070
31
33
  TB2J/sisl_wrapper.py,sha256=A5x1-tt8efUSPeGY5wM5m6-pJYQFXTCzQHVqD6RBa2g,14792
32
- TB2J/symmetrize_J.py,sha256=RU2B6J5IFvVbnTvojSsixpP368MVtxqwbL5H_eUD6RY,4436
34
+ TB2J/symmetrize_J.py,sha256=gN6Y8zV4IrO5rPh0SG8KHkekrJjMQzNY4GGe2ZBtwbc,4993
33
35
  TB2J/tensor_rotate.py,sha256=4-DfT_Mg5e40fbd74M5W0D5DqmUq-kVOOLDkkkI834A,8083
34
36
  TB2J/utest.py,sha256=z_ahi7tpHQF9WlHNQihcQ7qzfezRJQXQt28eB1X_z64,3897
35
37
  TB2J/utils.py,sha256=DHkc7BK0KUGesfoAv1OxMgIw_iZzcFXh--3ybsFSd_c,12535
@@ -40,7 +42,7 @@ TB2J/interfaces/__init__.py,sha256=4tiLoXQ73Nlyi9L4j8jJXOYzXluVNPxQZkwfkQZEGHg,3
40
42
  TB2J/interfaces/gpaw_interface.py,sha256=GCDlJ-hRWfChvWwsgBDYSmVqO4sH9HAuGZTV9GqgN6c,1504
41
43
  TB2J/interfaces/lawaf_interface.py,sha256=PieLnmppdafOYsgeHznqOou1g9L1sam5jOm3KaObdqo,4408
42
44
  TB2J/interfaces/manager.py,sha256=PQMLEfMCT5GnDWSl2nI4JOgRPm_fysyR-6Y6l97xWcw,860
43
- TB2J/interfaces/siesta_interface.py,sha256=VXdvMD4JYcV8uTuVaFVAHc0rRBEcXz22nfcI7S3co68,7315
45
+ TB2J/interfaces/siesta_interface.py,sha256=olvo2xdBOSNk3zn67nuKrxbW--EKPoWwEzKRBwJbrVY,7366
44
46
  TB2J/interfaces/wannier90_interface.py,sha256=qzRgXUBb7t1Aiegrl_RV51BB8csdtVM0EP0Z4pjmTcs,4467
45
47
  TB2J/interfaces/abacus/__init__.py,sha256=leas71oCvM_HxrF4gnO5A_VKcJmDAgsI1BUctLU3OBw,177
46
48
  TB2J/interfaces/abacus/abacus_api.py,sha256=lNV4LNkLcKw7Zux4MQYM9wnh3eFTlcSqbf4Pb7pqhrk,7243
@@ -52,7 +54,8 @@ TB2J/interfaces/abacus/test_density_matrix.py,sha256=bMWWJYtDS57SpPZ-eZXZ9Hr_UK4
52
54
  TB2J/interfaces/abacus/test_read_HRSR.py,sha256=W1oO_yigT50Yb5_u-KB_IfTpM7kArGkBuMSMs0H4CTs,1235
53
55
  TB2J/interfaces/abacus/test_read_stru.py,sha256=hoKPHVco8vwzC7Gao4bOPCdAPhh29x-9DTJJqRr7AYM,788
54
56
  TB2J/io_exchange/__init__.py,sha256=KfGHum7B8E4G_KKfillqw0lErtoyKEuFUUttHLs-mg4,32
55
- TB2J/io_exchange/io_exchange.py,sha256=ZeA8lpYUAQO1CqZnQL70IgS9TbAFyfPuadLGfKVf-Ms,19769
57
+ TB2J/io_exchange/io_exchange.py,sha256=7-Xt7_K5FKVrFkFvBrHhJGCRrL2Sw7zY-93GRBBv2GM,21050
58
+ TB2J/io_exchange/io_matjes.py,sha256=klM5Z_t2kk0y_1IoqIILLnhUgjHQmXXmsXiono2LeMU,8594
56
59
  TB2J/io_exchange/io_multibinit.py,sha256=8PDmWxzGuv-GwJosj2ZTmiyNY_duFVWJ4ekCuSqGdd8,6739
57
60
  TB2J/io_exchange/io_tomsasd.py,sha256=NqkAC1Fl-CUnFA21eBzSy_S5F_oeQFJysw4UukQbN8o,4173
58
61
  TB2J/io_exchange/io_txt.py,sha256=BMr1eSILlKpgtjvDx7uw2VMAkEKSvGEPNxpaT_zev0I,10547
@@ -60,6 +63,7 @@ TB2J/io_exchange/io_uppasd.py,sha256=bI4iPEgnK4TvCZNvb6x2xYXgjW7pEehCqmcizy2pqFU
60
63
  TB2J/io_exchange/io_vampire.py,sha256=UllC4twf06_q2vBCnAYFzEDGvS8mSefwQXDquBuyc0M,5583
61
64
  TB2J/mathutils/__init__.py,sha256=tQLBfHkZqdVfVxPOahy42qMUkFYnFFFhM-uc4QsYFxI,27
62
65
  TB2J/mathutils/fermi.py,sha256=72tZ5CptGmYaBUD0xLWltuH7LBXcrMUwODyW6-WqlzI,638
66
+ TB2J/mathutils/fibonacci_sphere.py,sha256=l0USn25ZCAWF6l4UleyWaeLthsj9TThV9iWmfi6DbaM,2344
63
67
  TB2J/mathutils/kR_convert.py,sha256=p_9XWJVNanTzTK2rI6KRjTkbSq42la6N448-zJOsMwY,2671
64
68
  TB2J/mathutils/lowdin.py,sha256=RYbm9OcnFnjcZFdC5YcNUsI9cOJmoDLsWSSCaP0GqKQ,499
65
69
  TB2J/mathutils/rotate_spin.py,sha256=lbGzve_36FyNjanXqdxYDb102kA4_5OycRlBcm-tH-g,8360
@@ -76,19 +80,19 @@ TB2J/spinham/supercell.py,sha256=y17uUC6r3gQb278FhxIW4CABihfLTvKFj6flyXrCPR8,122
76
80
  TB2J/wannier/__init__.py,sha256=7ojCbM84PYv1X1Tbo4NHI-d3gWmQsZB_xiYqbfxVV1E,80
77
81
  TB2J/wannier/w90_parser.py,sha256=dbd63LuKyv2DVUzqRINGsbDzEsOxsQyE8_Ear_LQIRg,4620
78
82
  TB2J/wannier/w90_tb_parser.py,sha256=qt8pnuprmPp9iIAYwPkPbmEzk6ZPgMq2xognoQp7vwc,4610
79
- TB2J-0.9.9rc5.data/scripts/TB2J_downfold.py,sha256=i4BVqnpDdgrX_amookVWeLGefGBn-qeAutWiwuY9SfQ,2099
80
- TB2J-0.9.9rc5.data/scripts/TB2J_eigen.py,sha256=Qs9v2hnMm2Tpfoa4h53muUKty2dZjwx8948MBoQooNg,1128
81
- TB2J-0.9.9rc5.data/scripts/TB2J_magnon.py,sha256=q7UwAmorRcFNk4tfE7gl_ny05l6p7pbD9Wm_LkIpKEw,3101
82
- TB2J-0.9.9rc5.data/scripts/TB2J_magnon_dos.py,sha256=TMXQvD2dIbO5FZ4tUMmxJgCgH2O2hDAPUNfEKO4z-x4,110
83
- TB2J-0.9.9rc5.data/scripts/TB2J_merge.py,sha256=y834SF4rIRn1L1ptkhczvavQpC-8Px6DTmDOOSaq_DE,1854
84
- TB2J-0.9.9rc5.data/scripts/TB2J_rotate.py,sha256=zgiDFuYZNmzKK0rwDmTaYD2OpRlmKA_VGeBx83w2Xwc,873
85
- TB2J-0.9.9rc5.data/scripts/TB2J_rotateDM.py,sha256=kCvF7gotuqAX1VnJ06cwfVm7RrhrdtiV5v7d9P2Pn_E,567
86
- TB2J-0.9.9rc5.data/scripts/abacus2J.py,sha256=0HLXoJhAkiZ-ZM1cs26lncccxE8-TzC8JiDTba1h1uM,4163
87
- TB2J-0.9.9rc5.data/scripts/siesta2J.py,sha256=gp31LioqpPkDmMY0y_5gXIjOBPNnf080P37pRo0yjw8,4886
88
- TB2J-0.9.9rc5.data/scripts/wann2J.py,sha256=pTFDf6h72I_LN_NX5UivyCoJPgwvyAyHW175nSAJvLo,2987
89
- TB2J-0.9.9rc5.dist-info/LICENSE,sha256=CbZI-jyRTjiqIcWa244cRSHJdjjtUNqGR4HeJkgEwJw,1332
90
- TB2J-0.9.9rc5.dist-info/METADATA,sha256=6ktitYVnrQtZSd3gBzL38bWY4xR62WKQAJ4_TPypeaM,1482
91
- TB2J-0.9.9rc5.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
92
- TB2J-0.9.9rc5.dist-info/entry_points.txt,sha256=Hdz1WC9waUzyFVmowKnbbZ6j-J4adHh_Ko6JpxGYAtE,131
93
- TB2J-0.9.9rc5.dist-info/top_level.txt,sha256=whYa5ByLYhl5XnTPBHSWr-IGD6VWmr5Ql2bye2qwV_s,5
94
- TB2J-0.9.9rc5.dist-info/RECORD,,
83
+ tb2j-0.9.9rc7.data/scripts/TB2J_downfold.py,sha256=i4BVqnpDdgrX_amookVWeLGefGBn-qeAutWiwuY9SfQ,2099
84
+ tb2j-0.9.9rc7.data/scripts/TB2J_eigen.py,sha256=Qs9v2hnMm2Tpfoa4h53muUKty2dZjwx8948MBoQooNg,1128
85
+ tb2j-0.9.9rc7.data/scripts/TB2J_magnon.py,sha256=q7UwAmorRcFNk4tfE7gl_ny05l6p7pbD9Wm_LkIpKEw,3101
86
+ tb2j-0.9.9rc7.data/scripts/TB2J_magnon_dos.py,sha256=TMXQvD2dIbO5FZ4tUMmxJgCgH2O2hDAPUNfEKO4z-x4,110
87
+ tb2j-0.9.9rc7.data/scripts/TB2J_merge.py,sha256=y834SF4rIRn1L1ptkhczvavQpC-8Px6DTmDOOSaq_DE,1854
88
+ tb2j-0.9.9rc7.data/scripts/TB2J_rotate.py,sha256=zgiDFuYZNmzKK0rwDmTaYD2OpRlmKA_VGeBx83w2Xwc,873
89
+ tb2j-0.9.9rc7.data/scripts/TB2J_rotateDM.py,sha256=kCvF7gotuqAX1VnJ06cwfVm7RrhrdtiV5v7d9P2Pn_E,567
90
+ tb2j-0.9.9rc7.data/scripts/abacus2J.py,sha256=0HLXoJhAkiZ-ZM1cs26lncccxE8-TzC8JiDTba1h1uM,4163
91
+ tb2j-0.9.9rc7.data/scripts/siesta2J.py,sha256=gp31LioqpPkDmMY0y_5gXIjOBPNnf080P37pRo0yjw8,4886
92
+ tb2j-0.9.9rc7.data/scripts/wann2J.py,sha256=pTFDf6h72I_LN_NX5UivyCoJPgwvyAyHW175nSAJvLo,2987
93
+ tb2j-0.9.9rc7.dist-info/licenses/LICENSE,sha256=CbZI-jyRTjiqIcWa244cRSHJdjjtUNqGR4HeJkgEwJw,1332
94
+ tb2j-0.9.9rc7.dist-info/METADATA,sha256=H5g8ApE237zxKx8_mx0Fr1fUCz2m97VkgDY5LBFYzlg,1660
95
+ tb2j-0.9.9rc7.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
96
+ tb2j-0.9.9rc7.dist-info/entry_points.txt,sha256=Hdz1WC9waUzyFVmowKnbbZ6j-J4adHh_Ko6JpxGYAtE,131
97
+ tb2j-0.9.9rc7.dist-info/top_level.txt,sha256=whYa5ByLYhl5XnTPBHSWr-IGD6VWmr5Ql2bye2qwV_s,5
98
+ tb2j-0.9.9rc7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.1.2)
2
+ Generator: setuptools (77.0.3)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5