TB2J 0.9.9rc3__tar.gz → 0.9.9rc4__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.
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/PKG-INFO +1 -1
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/symmetrize_J.py +22 -5
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J.egg-info/PKG-INFO +1 -1
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/setup.py +1 -1
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/LICENSE +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/README.md +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/Jdownfolder.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/Jtensor.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/MAE.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/MAEGreen.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/Oiju.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/Oiju_epc.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/__init__.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/anisotropy.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/basis.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/citation.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/contour.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/density_matrix.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/epc.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/exchange.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/exchangeCL2.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/exchange_params.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/exchange_pert.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/exchange_qspace.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/external/__init__.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/external/p_tqdm.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/gpaw_wrapper.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/green.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/greentest.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/__init__.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/abacus/__init__.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/abacus/abacus_api.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/abacus/abacus_wrapper.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/abacus/gen_exchange_abacus.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/abacus/orbital_api.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/abacus/stru_api.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/abacus/test_density_matrix.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/abacus/test_read_HRSR.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/abacus/test_read_stru.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/gpaw_interface.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/lawaf_interface.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/manager.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/siesta_interface.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/interfaces/wannier90_interface.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/io_exchange/__init__.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/io_exchange/io_exchange.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/io_exchange/io_multibinit.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/io_exchange/io_tomsasd.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/io_exchange/io_txt.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/io_exchange/io_uppasd.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/io_exchange/io_vampire.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/io_merge.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/kpoints.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/mathutils/__init__.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/mathutils/fermi.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/mathutils/kR_convert.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/mathutils/lowdin.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/mathutils/rotate_spin.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/myTB.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/orbmap.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/pauli.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/pert.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/plot.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/rotate_atoms.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/rotate_siestaDM.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/sisl_wrapper.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/spinham/__init__.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/spinham/base_parser.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/spinham/constants.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/spinham/hamiltonian.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/spinham/hamiltonian_terms.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/spinham/plot.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/spinham/qsolver.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/spinham/spin_api.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/spinham/spin_xml.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/spinham/supercell.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/tensor_rotate.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/utest.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/utils.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/versioninfo.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/wannier/__init__.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/wannier/w90_parser.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J/wannier/w90_tb_parser.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J.egg-info/SOURCES.txt +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J.egg-info/dependency_links.txt +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J.egg-info/entry_points.txt +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J.egg-info/requires.txt +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/TB2J.egg-info/top_level.txt +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/scripts/TB2J_downfold.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/scripts/TB2J_eigen.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/scripts/TB2J_magnon.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/scripts/TB2J_magnon_dos.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/scripts/TB2J_merge.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/scripts/TB2J_rotate.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/scripts/TB2J_rotateDM.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/scripts/abacus2J.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/scripts/siesta2J.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/scripts/wann2J.py +0 -0
- {tb2j-0.9.9rc3 → tb2j-0.9.9rc4}/setup.cfg +0 -0
@@ -1,16 +1,19 @@
|
|
1
|
-
|
2
|
-
import numpy as np
|
1
|
+
import copy
|
3
2
|
from pathlib import Path
|
3
|
+
|
4
|
+
import numpy as np
|
5
|
+
from sympair import SymmetryPairFinder
|
6
|
+
|
4
7
|
from TB2J.versioninfo import print_license
|
5
|
-
import copy
|
6
8
|
|
7
9
|
|
8
10
|
class TB2JSymmetrizer:
|
9
|
-
def __init__(self, exc, symprec=1e-8, verbose=True):
|
11
|
+
def __init__(self, exc, symprec=1e-8, verbose=True, Jonly=False):
|
10
12
|
# list of pairs with the index of atoms
|
11
13
|
ijRs = exc.ijR_list_index_atom()
|
12
14
|
finder = SymmetryPairFinder(atoms=exc.atoms, pairs=ijRs, symprec=symprec)
|
13
15
|
self.verbose = verbose
|
16
|
+
self.Jonly = Jonly
|
14
17
|
|
15
18
|
if verbose:
|
16
19
|
print("=" * 30)
|
@@ -28,7 +31,7 @@ class TB2JSymmetrizer:
|
|
28
31
|
print(f"Finding crystal symmetry with symprec of {symprec} Angstrom.")
|
29
32
|
print("Symmetry found:")
|
30
33
|
print(finder.spacegroup)
|
31
|
-
print(
|
34
|
+
print("-" * 30)
|
32
35
|
self.pgdict = finder.get_symmetry_pair_group_dict()
|
33
36
|
self.exc = exc
|
34
37
|
self.new_exc = copy.deepcopy(exc)
|
@@ -51,6 +54,11 @@ class TB2JSymmetrizer:
|
|
51
54
|
for i, j, R in ijRs_spin:
|
52
55
|
symJdict[(R, i, j)] = Javg
|
53
56
|
self.new_exc.exchange_Jdict = symJdict
|
57
|
+
if self.Jonly:
|
58
|
+
self.new_exc.has_dmi = False
|
59
|
+
self.new_exc.dmi_dict = {}
|
60
|
+
self.new_exc.has_uniaxial_anistropy = False
|
61
|
+
self.new_exc.k1_dict = {}
|
54
62
|
|
55
63
|
def output(self, path="TB2J_symmetrized"):
|
56
64
|
if path is None:
|
@@ -72,6 +80,7 @@ def symmetrize_J(
|
|
72
80
|
fname="TB2J.pickle",
|
73
81
|
symprec=1e-5,
|
74
82
|
output_path="TB2J_symmetrized",
|
83
|
+
Jonly=False,
|
75
84
|
):
|
76
85
|
"""
|
77
86
|
symmetrize the exchange parameters
|
@@ -109,6 +118,14 @@ def symmetrize_J_cli():
|
|
109
118
|
default=1e-5,
|
110
119
|
help="precision for symmetry detection. default is 1e-5 Angstrom",
|
111
120
|
)
|
121
|
+
|
122
|
+
parser.add_argument(
|
123
|
+
"--Jonly",
|
124
|
+
action="store_true",
|
125
|
+
help="symmetrize only the exchange parameters and discard the DMI and anisotropic exchange",
|
126
|
+
default=False,
|
127
|
+
)
|
128
|
+
|
112
129
|
args = parser.parse_args()
|
113
130
|
if args.inpath is None:
|
114
131
|
parser.print_help()
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env python
|
2
2
|
from setuptools import find_packages, setup
|
3
3
|
|
4
|
-
__version__ = "0.9.
|
4
|
+
__version__ = "0.9.9_rc4"
|
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
|
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
|
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
|