TB2J 0.9.11.2__py3-none-any.whl → 0.9.12.3__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.
TB2J/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.o
2
+ *.x
3
+ *.mod
4
+ exchanges.sublime-project
5
+ exchanges.sublime-workspace
@@ -0,0 +1,2 @@
1
+ TB2J_results/
2
+ *.png
TB2J/magnon/magnon3.py CHANGED
@@ -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}...")
@@ -714,10 +733,25 @@ def plot_magnon_bands_from_TB2J(
714
733
  return magnon
715
734
 
716
735
 
717
- def main():
718
- """Command line interface for plotting magnon bands from TB2J results."""
736
+ def plot_magnon_bands_cli():
719
737
  import argparse
720
-
738
+ import warnings
739
+
740
+ warnings.warn(
741
+ """
742
+ # !!!!!!!!!!!!!!!!!! WARNING: =============================
743
+ #
744
+ # This functionality is under development and should not be used in production.
745
+ # It is provided for testing and development purposes only.
746
+ # Please use with caution and report any issues to the developers.
747
+ #
748
+ # This warning will be removed in future releases.
749
+ # =====================================
750
+
751
+ """,
752
+ UserWarning,
753
+ stacklevel=2,
754
+ )
721
755
  parser = argparse.ArgumentParser(
722
756
  description="Plot magnon band structure from TB2J results"
723
757
  )
@@ -737,27 +771,32 @@ def main():
737
771
 
738
772
  # Command line arguments (used if no config file is provided)
739
773
  parser.add_argument(
774
+ "-p",
740
775
  "--path",
741
776
  default="TB2J_results",
742
777
  help="Path to TB2J results directory (default: TB2J_results)",
743
778
  )
744
779
  parser.add_argument(
780
+ "-k",
745
781
  "--kpath",
746
782
  default=None,
747
783
  help="k-path specification (default: auto-detected from type of cell)",
748
784
  )
749
785
  parser.add_argument(
786
+ "-n",
750
787
  "--npoints",
751
788
  type=int,
752
789
  default=300,
753
790
  help="Number of k-points along the path (default: 300)",
754
791
  )
755
792
  parser.add_argument(
793
+ "-o",
756
794
  "--output",
757
795
  default="magnon_bands.png",
758
796
  help="Output file name (default: magnon_bands.png)",
759
797
  )
760
798
  parser.add_argument(
799
+ "-j",
761
800
  "--Jiso",
762
801
  action="store_true",
763
802
  default=True,
@@ -770,18 +809,21 @@ def main():
770
809
  help="Exclude isotropic exchange interactions",
771
810
  )
772
811
  parser.add_argument(
812
+ "-a",
773
813
  "--Jani",
774
814
  action="store_true",
775
815
  default=False,
776
816
  help="Include anisotropic exchange interactions (default: False)",
777
817
  )
778
818
  parser.add_argument(
819
+ "-d",
779
820
  "--DMI",
780
821
  action="store_true",
781
822
  default=False,
782
823
  help="Include Dzyaloshinskii-Moriya interactions (default: False)",
783
824
  )
784
825
  parser.add_argument(
826
+ "-q",
785
827
  "--Q",
786
828
  nargs=3,
787
829
  type=float,
@@ -789,11 +831,19 @@ def main():
789
831
  help="Propagation vector [Qx, Qy, Qz] (default: [0, 0, 0])",
790
832
  )
791
833
  parser.add_argument(
834
+ "-u",
792
835
  "--uz-file",
793
836
  type=str,
794
- help="Path to file containing quantization axes for each spin (natom×3 array)",
837
+ help="Path to file containing quantization axes for each spin (nspin×3 array)",
838
+ )
839
+ parser.add_argument(
840
+ "-c",
841
+ "--spin-conf-file",
842
+ type=str,
843
+ help="Path to file containing magnetic moments for each spin (nspin×3 array)",
795
844
  )
796
845
  parser.add_argument(
846
+ "-v",
797
847
  "--n",
798
848
  nargs=3,
799
849
  type=float,
@@ -802,6 +852,7 @@ def main():
802
852
  )
803
853
 
804
854
  parser.add_argument(
855
+ "-s",
805
856
  "--show",
806
857
  action="store_true",
807
858
  default=False,
@@ -833,6 +884,7 @@ def main():
833
884
  DMI=args.DMI,
834
885
  Q=args.Q if args.Q is not None else None,
835
886
  uz_file=args.uz_file,
887
+ spin_conf_file=args.spin_conf_file,
836
888
  n=args.n if args.n is not None else None,
837
889
  show=args.show,
838
890
  )
@@ -840,10 +892,6 @@ def main():
840
892
  plot_magnon_bands_from_TB2J(params)
841
893
 
842
894
 
843
- if __name__ == "__main__":
844
- main()
845
-
846
-
847
895
  class MagnonASEWrapper:
848
896
  def __init__(self, magnon: Magnon):
849
897
  self.magnon = magnon
@@ -4,6 +4,8 @@
4
4
  import argparse
5
5
  from pathlib import Path
6
6
 
7
+ import numpy as np
8
+
7
9
  from TB2J.magnon.magnon3 import Magnon
8
10
  from TB2J.magnon.magnon_dos import plot_magnon_dos
9
11
 
@@ -13,6 +15,7 @@ def main():
13
15
  description="Calculate and plot magnon DOS from TB2J results"
14
16
  )
15
17
  parser.add_argument(
18
+ "-p",
16
19
  "--path",
17
20
  default="TB2J_results",
18
21
  help="Path to TB2J results directory (default: TB2J_results)",
@@ -51,26 +54,135 @@ def main():
51
54
  help="Number of energy points (default: 401)",
52
55
  )
53
56
  parser.add_argument(
57
+ "-o",
54
58
  "--output",
55
59
  default="magnon_dos.png",
56
60
  help="Output filename for plot (default: magnon_dos.png)",
57
61
  )
58
62
  parser.add_argument(
59
- "-show",
63
+ "-s",
64
+ "--show",
60
65
  action="store_true",
61
66
  dest="show",
62
67
  help="Show plot window",
63
68
  )
64
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
+
65
129
  args = parser.parse_args()
66
130
 
67
131
  # Check if TB2J results exist
68
132
  if not Path(args.path).exists():
69
133
  raise FileNotFoundError(f"TB2J results not found at {args.path}")
70
134
 
71
- # Load magnon calculator
135
+ # Load magnon calculator with exchange interaction options
72
136
  print(f"Loading exchange parameters from {args.path}...")
73
- magnon = Magnon.from_TB2J_results(path=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)
74
186
 
75
187
  # Convert window from meV to eV if provided
76
188
  window = None
@@ -1,15 +1,10 @@
1
1
  #!/usr/bin/env python3
2
+ import warnings
2
3
 
4
+ from TB2J.magnon.magnon3 import main
3
5
 
4
- if __name__ == "__main__":
5
- # add a warning messege that this functionality is under development and should not be used in production.
6
- # make it visually distinct, e.g. with a different color or formatting.
7
- import warnings
8
-
9
- from TB2J.magnon.magnon3 import main
10
-
11
- warnings.warn(
12
- """
6
+ warnings.warn(
7
+ """
13
8
  # !!!!!!!!!!!!!!!!!! WARNING: =============================
14
9
  #
15
10
  # This functionality is under development and should not be used in production.
@@ -20,8 +15,8 @@ if __name__ == "__main__":
20
15
  # =====================================
21
16
 
22
17
  """,
23
- UserWarning,
24
- stacklevel=2,
25
- )
26
- # Call the main function from the magnons module
27
- main()
18
+ UserWarning,
19
+ stacklevel=2,
20
+ )
21
+ # Call the main function from the magnons module
22
+ main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TB2J
3
- Version: 0.9.11.2
3
+ Version: 0.9.12.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>
@@ -1,3 +1,4 @@
1
+ TB2J/.gitignore,sha256=0Q9EiAAZLJpONgoHwR1XcEskJykFEKfCc45KGH-C3zI,68
1
2
  TB2J/Jdownfolder.py,sha256=U6R8v6ZC-AgMA6wvvFPyacXX_lYJcRu1kzNr7aVB1tg,10827
2
3
  TB2J/Jtensor.py,sha256=WRhpp5N92a6lA1jeM1hc7jYUoTOLIdMnIIKpdOyzjR4,3192
3
4
  TB2J/MAE.py,sha256=fM8U-Dgp9HcQOEeC_kyZV1oVrygBvcux9BraUXVouvY,10994
@@ -46,6 +47,7 @@ TB2J/interfaces/lawaf_interface.py,sha256=PieLnmppdafOYsgeHznqOou1g9L1sam5jOm3Ka
46
47
  TB2J/interfaces/manager.py,sha256=PQMLEfMCT5GnDWSl2nI4JOgRPm_fysyR-6Y6l97xWcw,860
47
48
  TB2J/interfaces/siesta_interface.py,sha256=Te9-Au0ZGAt-LfEnG8exUFD4lMj6uZu8RmHjopb0XLU,7595
48
49
  TB2J/interfaces/wannier90_interface.py,sha256=qzRgXUBb7t1Aiegrl_RV51BB8csdtVM0EP0Z4pjmTcs,4467
50
+ TB2J/interfaces/abacus/.gitignore,sha256=Iytg6TR3gOh014q9m7ReuCKYmx-Qi-o3SgILYB2WRtU,20
49
51
  TB2J/interfaces/abacus/__init__.py,sha256=leas71oCvM_HxrF4gnO5A_VKcJmDAgsI1BUctLU3OBw,177
50
52
  TB2J/interfaces/abacus/abacus_api.py,sha256=lNV4LNkLcKw7Zux4MQYM9wnh3eFTlcSqbf4Pb7pqhrk,7243
51
53
  TB2J/interfaces/abacus/abacus_wrapper.py,sha256=bQFnvvy-0hruTavH_VspMk1wD32t2UFybEkCgwkwle0,11941
@@ -64,13 +66,13 @@ TB2J/io_exchange/io_uppasd.py,sha256=bI4iPEgnK4TvCZNvb6x2xYXgjW7pEehCqmcizy2pqFU
64
66
  TB2J/io_exchange/io_vampire.py,sha256=vOStLmtCiWLp9GPhZpsAmrtaRHg9KSmtOM2Fky6yCQA,5762
65
67
  TB2J/magnon/__init__.py,sha256=Q69duroGIIotgW_71ZdHYarSiJLGAu9NPYgEacUk6eI,117
66
68
  TB2J/magnon/io_exchange2.py,sha256=EcC3x6H13qq61WBsr__xKzHDtSvy_dMz1tEdUaqSG2I,23265
67
- TB2J/magnon/magnon3.py,sha256=PFZFiyfYTIBscVu8SzvGxtrXhT-QM66EwIhWOqgSYQE,30219
69
+ TB2J/magnon/magnon3.py,sha256=ecMCCAZiBCPyEPdNI60h5rV0nRyjFeB40FIX8-o87kE,31801
68
70
  TB2J/magnon/magnon_band.py,sha256=ZLHK1qf2Clu9jlcvBwBCBEi1MrPfy2BWrow8JJ2v5pk,6103
69
71
  TB2J/magnon/magnon_dos.py,sha256=uztzsxCmFZpDHl-JziaUb_NNwBeZw9-L2ozd3XNTvxI,8506
70
72
  TB2J/magnon/magnon_io.py,sha256=H4bmzCcnh1D3Sb6UBIIKWa6jIrA20dg9lX4wfLXHEjo,1241
71
73
  TB2J/magnon/magnon_math.py,sha256=0mVQY5tXe6fHsfijivXf-1-Tk-Ku02Gv7-TdAd8qUpc,1359
72
74
  TB2J/magnon/plot.py,sha256=oNavax15jRfW4Sxl6FgwLXSrMntyVz2cgVDbmgkWehw,3193
73
- TB2J/magnon/plot_magnon_dos_cli.py,sha256=XVozodrIO_w4FBhp-ZcpIZbyGWLdegUFLdvY5zL3XOI,2592
75
+ TB2J/magnon/plot_magnon_dos_cli.py,sha256=y3R2DPTuK5Jw9rdnBooWNczQM-s8s_blCP5Wd2zaIWg,6124
74
76
  TB2J/magnon/structure.py,sha256=rKefzXgQlEjVvV-A7E2IogVDWwf5egZr3Wxxu6HuJU4,7685
75
77
  TB2J/mathutils/__init__.py,sha256=E70Mx8mLXh3DJGmdN3TLWmGYMcsbvKxmgxUbAI6Mzmo,49
76
78
  TB2J/mathutils/auto_kpath.py,sha256=bDXDyQzRByVpPSOpz7NU7F5hYqS6IX-47lwWoMU89lM,4978
@@ -85,7 +87,7 @@ TB2J/scripts/TB2J_magnon.py,sha256=fz9nOv5dMy1e0Dac3eGtiNODvdfTnfLlM7jvYbShiN0,3
85
87
  TB2J/scripts/TB2J_magnon2.py,sha256=mfDrkjK9DpXeKl6jLdACzAD6ArAWBCmC-TPb-vCWpJs,1934
86
88
  TB2J/scripts/TB2J_magnon_dos.py,sha256=xQlI6u31Oyv9Yua73_Qa5cF1cnvg1PNrTy1VXs4dcBk,107
87
89
  TB2J/scripts/TB2J_merge.py,sha256=Fw9Y4fVmptWWMtOXA71xi4ebPWhsvb6dCSVOga6GguA,2110
88
- TB2J/scripts/TB2J_plot_magnon_bands.py,sha256=0HxjN5-gYrlqQsppQs94BCp6aynBGt-QMK-5QiFPgDg,888
90
+ TB2J/scripts/TB2J_plot_magnon_bands.py,sha256=x5WkiI-pkVHqCTa2e5qNWaeAvyXmchqY8BMeTW13dFs,636
89
91
  TB2J/scripts/TB2J_rotate.py,sha256=WneOj6NBMDzVlpLXnq9tZqnJqTATfv_zmgl4EltD118,859
90
92
  TB2J/scripts/TB2J_rotateDM.py,sha256=lH71mkg0BKDGVLoK7VvmIPkf2mCjyc0V5l9rZZgyfP4,570
91
93
  TB2J/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -105,9 +107,9 @@ TB2J/spinham/supercell.py,sha256=y17uUC6r3gQb278FhxIW4CABihfLTvKFj6flyXrCPR8,122
105
107
  TB2J/wannier/__init__.py,sha256=7ojCbM84PYv1X1Tbo4NHI-d3gWmQsZB_xiYqbfxVV1E,80
106
108
  TB2J/wannier/w90_parser.py,sha256=dbd63LuKyv2DVUzqRINGsbDzEsOxsQyE8_Ear_LQIRg,4620
107
109
  TB2J/wannier/w90_tb_parser.py,sha256=qt8pnuprmPp9iIAYwPkPbmEzk6ZPgMq2xognoQp7vwc,4610
108
- tb2j-0.9.11.2.dist-info/licenses/LICENSE,sha256=CbZI-jyRTjiqIcWa244cRSHJdjjtUNqGR4HeJkgEwJw,1332
109
- tb2j-0.9.11.2.dist-info/METADATA,sha256=kVp3S-FqbSsA0F0Ax0wyF16LJl278fzfJq0v4jkntoI,4138
110
- tb2j-0.9.11.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
111
- tb2j-0.9.11.2.dist-info/entry_points.txt,sha256=_URI37R-iFE-WZoz1hOWTveskbyXYbA2gIn4cIunwOo,794
112
- tb2j-0.9.11.2.dist-info/top_level.txt,sha256=whYa5ByLYhl5XnTPBHSWr-IGD6VWmr5Ql2bye2qwV_s,5
113
- tb2j-0.9.11.2.dist-info/RECORD,,
110
+ tb2j-0.9.12.3.dist-info/licenses/LICENSE,sha256=CbZI-jyRTjiqIcWa244cRSHJdjjtUNqGR4HeJkgEwJw,1332
111
+ tb2j-0.9.12.3.dist-info/METADATA,sha256=lx-rEx7n_YMV3OHN6bQVX6xIELa-3J_aVX-yn6KeDHA,4138
112
+ tb2j-0.9.12.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
113
+ tb2j-0.9.12.3.dist-info/entry_points.txt,sha256=2Z_kDfyv6rWCsClgeyMqt6H3UXoTOkTmWsJtI3o9FLw,795
114
+ tb2j-0.9.12.3.dist-info/top_level.txt,sha256=whYa5ByLYhl5XnTPBHSWr-IGD6VWmr5Ql2bye2qwV_s,5
115
+ tb2j-0.9.12.3.dist-info/RECORD,,
@@ -5,7 +5,7 @@ TB2J_magnon.py = TB2J.scripts.TB2J_magnon:main
5
5
  TB2J_magnon2.py = TB2J.scripts.TB2J_magnon2:main
6
6
  TB2J_magnon_dos.py = TB2J.scripts.TB2J_magnon_dos:main
7
7
  TB2J_merge.py = TB2J.scripts.TB2J_merge:main
8
- TB2J_plot_magnon_bands.py = TB2J.scripts.TB2J_plot_magnon_bands:main
8
+ TB2J_plot_magnon_bands.py = TB2J.magnon.magnon3:plot_magnon_bands_cli
9
9
  TB2J_plot_magnon_dos.py = TB2J.magnon.plot_magnon_dos_cli:main
10
10
  TB2J_rotate.py = TB2J.scripts.TB2J_rotate:main
11
11
  TB2J_rotateDM.py = TB2J.scripts.TB2J_rotateDM:main