TB2Jflows 0.0.1__tar.gz → 0.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.
- tb2jflows-0.1/.gitignore +129 -0
- tb2jflows-0.1/.pre-commit-config.yaml +11 -0
- {tb2jflows-0.0.1 → tb2jflows-0.1}/PKG-INFO +3 -2
- {tb2jflows-0.0.1 → tb2jflows-0.1}/TB2Jflows/ase_siesta.py +28 -22
- {tb2jflows-0.0.1 → tb2jflows-0.1}/TB2Jflows/auto_siesta_TB2J.py +2 -0
- {tb2jflows-0.0.1 → tb2jflows-0.1}/TB2Jflows.egg-info/PKG-INFO +3 -2
- {tb2jflows-0.0.1 → tb2jflows-0.1}/TB2Jflows.egg-info/SOURCES.txt +6 -1
- tb2jflows-0.1/examples/SrMnO3/POSCAR +13 -0
- tb2jflows-0.1/examples/SrMnO3/SMO_example.py +42 -0
- tb2jflows-0.1/setup.py +29 -0
- tb2jflows-0.1/upload_to_pip.sh +5 -0
- tb2jflows-0.0.1/setup.py +0 -31
- {tb2jflows-0.0.1 → tb2jflows-0.1}/LICENSE +0 -0
- {tb2jflows-0.0.1 → tb2jflows-0.1}/README.md +0 -0
- {tb2jflows-0.0.1 → tb2jflows-0.1}/TB2Jflows/__init__.py +0 -0
- {tb2jflows-0.0.1 → tb2jflows-0.1}/TB2Jflows/run_abacus.py +0 -0
- {tb2jflows-0.0.1 → tb2jflows-0.1}/TB2Jflows.egg-info/dependency_links.txt +0 -0
- {tb2jflows-0.0.1 → tb2jflows-0.1}/TB2Jflows.egg-info/requires.txt +0 -0
- {tb2jflows-0.0.1 → tb2jflows-0.1}/TB2Jflows.egg-info/top_level.txt +0 -0
- {tb2jflows-0.0.1 → tb2jflows-0.1}/setup.cfg +0 -0
tb2jflows-0.1/.gitignore
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
doc/refs/*.pdf
|
|
2
|
+
examples
|
|
3
|
+
|
|
4
|
+
# Latex
|
|
5
|
+
*.aux
|
|
6
|
+
|
|
7
|
+
# xyz files
|
|
8
|
+
|
|
9
|
+
.DS_Store
|
|
10
|
+
|
|
11
|
+
# Byte-compiled / optimized / DLL files
|
|
12
|
+
__pycache__/
|
|
13
|
+
*.py[cod]
|
|
14
|
+
*$py.class
|
|
15
|
+
|
|
16
|
+
# numpy results
|
|
17
|
+
*.npy
|
|
18
|
+
|
|
19
|
+
# png files
|
|
20
|
+
|
|
21
|
+
# C extensions
|
|
22
|
+
*.so
|
|
23
|
+
*.a
|
|
24
|
+
|
|
25
|
+
# Fortran extensions
|
|
26
|
+
*.fpp
|
|
27
|
+
*.mod
|
|
28
|
+
*.o
|
|
29
|
+
|
|
30
|
+
# F90wrap files
|
|
31
|
+
*.plist
|
|
32
|
+
|
|
33
|
+
# Distribution / packaging
|
|
34
|
+
.Python
|
|
35
|
+
env/
|
|
36
|
+
build/
|
|
37
|
+
develop-eggs/
|
|
38
|
+
dist/
|
|
39
|
+
downloads/
|
|
40
|
+
eggs/
|
|
41
|
+
.eggs/
|
|
42
|
+
lib/
|
|
43
|
+
lib64/
|
|
44
|
+
parts/
|
|
45
|
+
sdist/
|
|
46
|
+
var/
|
|
47
|
+
wheels/
|
|
48
|
+
*.egg-info/
|
|
49
|
+
*.egg-info/*
|
|
50
|
+
.installed.cfg
|
|
51
|
+
*.egg
|
|
52
|
+
|
|
53
|
+
# temporary files
|
|
54
|
+
temp/
|
|
55
|
+
|
|
56
|
+
# PyInstaller
|
|
57
|
+
# Usually these files are written by a python script from a template
|
|
58
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
59
|
+
*.manifest
|
|
60
|
+
*.spec
|
|
61
|
+
|
|
62
|
+
# Installer logs
|
|
63
|
+
pip-log.txt
|
|
64
|
+
pip-delete-this-directory.txt
|
|
65
|
+
|
|
66
|
+
# Unit test / coverage reports
|
|
67
|
+
htmlcov/
|
|
68
|
+
.tox/
|
|
69
|
+
.coverage
|
|
70
|
+
.coverage.*
|
|
71
|
+
.cache
|
|
72
|
+
nosetests.xml
|
|
73
|
+
coverage.xml
|
|
74
|
+
*.cover
|
|
75
|
+
.hypothesis/
|
|
76
|
+
|
|
77
|
+
# Translations
|
|
78
|
+
*.mo
|
|
79
|
+
*.pot
|
|
80
|
+
|
|
81
|
+
# Django stuff:
|
|
82
|
+
*.log
|
|
83
|
+
local_settings.py
|
|
84
|
+
|
|
85
|
+
# Flask stuff:
|
|
86
|
+
instance/
|
|
87
|
+
.webassets-cache
|
|
88
|
+
|
|
89
|
+
# Scrapy stuff:
|
|
90
|
+
.scrapy
|
|
91
|
+
|
|
92
|
+
# Sphinx documentation
|
|
93
|
+
docs/_build/
|
|
94
|
+
|
|
95
|
+
# PyBuilder
|
|
96
|
+
target/
|
|
97
|
+
|
|
98
|
+
# Jupyter Notebook
|
|
99
|
+
.ipynb_checkpoints
|
|
100
|
+
|
|
101
|
+
# pyenv
|
|
102
|
+
.python-version
|
|
103
|
+
|
|
104
|
+
# celery beat schedule file
|
|
105
|
+
celerybeat-schedule
|
|
106
|
+
|
|
107
|
+
# SageMath parsed files
|
|
108
|
+
*.sage.py
|
|
109
|
+
|
|
110
|
+
# dotenv
|
|
111
|
+
.env
|
|
112
|
+
|
|
113
|
+
# virtualenv
|
|
114
|
+
.venv
|
|
115
|
+
venv/
|
|
116
|
+
ENV/
|
|
117
|
+
|
|
118
|
+
# Spyder project settings
|
|
119
|
+
.spyderproject
|
|
120
|
+
.spyproject
|
|
121
|
+
|
|
122
|
+
# Rope project settings
|
|
123
|
+
.ropeproject
|
|
124
|
+
|
|
125
|
+
# mkdocs documentation
|
|
126
|
+
/site
|
|
127
|
+
|
|
128
|
+
# mypy
|
|
129
|
+
.mypy_cache/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: TB2Jflows
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.1
|
|
4
4
|
Summary: TB2Jflows: Workflows for automatically calculation of exchange parameters using TB2J
|
|
5
5
|
Author: Xu He
|
|
6
6
|
Author-email: mailhexu@gmail.com
|
|
@@ -23,6 +23,7 @@ Dynamic: author-email
|
|
|
23
23
|
Dynamic: classifier
|
|
24
24
|
Dynamic: description
|
|
25
25
|
Dynamic: license
|
|
26
|
+
Dynamic: license-file
|
|
26
27
|
Dynamic: requires-dist
|
|
27
28
|
Dynamic: requires-python
|
|
28
29
|
Dynamic: summary
|
|
@@ -24,6 +24,7 @@ class SiestaFlow:
|
|
|
24
24
|
restart=True,
|
|
25
25
|
metadata={},
|
|
26
26
|
fdf_arguments={},
|
|
27
|
+
relax_arguments={},
|
|
27
28
|
split_soc=False,
|
|
28
29
|
**kwargs,
|
|
29
30
|
):
|
|
@@ -50,6 +51,7 @@ class SiestaFlow:
|
|
|
50
51
|
self.root_path = root_path
|
|
51
52
|
self.restart = restart
|
|
52
53
|
self.kwargs = kwargs
|
|
54
|
+
self.relax_args = relax_arguments
|
|
53
55
|
|
|
54
56
|
# paths
|
|
55
57
|
self.metadata_path = os.path.join(self.root_path, "metadata.json")
|
|
@@ -227,19 +229,20 @@ class SiestaFlow:
|
|
|
227
229
|
def scf_calculatoin_split_soc(self, atoms, label="siesta", nscf=False):
|
|
228
230
|
fdf_args = {
|
|
229
231
|
"SOC_split_SR_SO": True,
|
|
230
|
-
#"Spin.OrbitStrength": 3,
|
|
232
|
+
# "Spin.OrbitStrength": 3,
|
|
231
233
|
"SaveHS.so": True,
|
|
232
234
|
"SaveHS": True,
|
|
233
|
-
"Spin.Fix": False,
|
|
235
|
+
"Spin.Fix": False,
|
|
236
|
+
}
|
|
237
|
+
nscf_args = {
|
|
238
|
+
"SCF.DM.Converge": True,
|
|
239
|
+
"SCF.DM.Tolerance": 1e4,
|
|
240
|
+
"SCF.H.Converge": False,
|
|
241
|
+
"SCF.EDM.Converge": False,
|
|
242
|
+
"SCF.Mix.First": False,
|
|
243
|
+
"SCF.Mix": "density",
|
|
244
|
+
"MaxSCFIterations": 1,
|
|
234
245
|
}
|
|
235
|
-
nscf_args={"SCF.DM.Converge": True,
|
|
236
|
-
"SCF.DM.Tolerance": 1e4,
|
|
237
|
-
"SCF.H.Converge": False,
|
|
238
|
-
"SCF.EDM.Converge": False,
|
|
239
|
-
"SCF.Mix.First": False,
|
|
240
|
-
"SCF.Mix": "density",
|
|
241
|
-
"MaxSCFIterations": 1,
|
|
242
|
-
}
|
|
243
246
|
if nscf:
|
|
244
247
|
fdf_args.update(nscf_args)
|
|
245
248
|
|
|
@@ -288,14 +291,17 @@ class SiestaFlow:
|
|
|
288
291
|
)
|
|
289
292
|
|
|
290
293
|
def set_nonscf_params(self):
|
|
291
|
-
nscf_params={
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
294
|
+
nscf_params = {
|
|
295
|
+
"SCF.DM.Converge": False,
|
|
296
|
+
"SCF.DM.Tolerance": 1e4,
|
|
297
|
+
"SCF.H.Converge": False,
|
|
298
|
+
"SCF.EDM.Converge": False,
|
|
299
|
+
"SCF.Mix.First": False,
|
|
300
|
+
"SCF.Mix": "density",
|
|
301
|
+
"MaxSCFIterations": 1,
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
self.fdf_arguments.update(nscf_params)
|
|
299
305
|
|
|
300
306
|
def run_TB2J_split_soc(self, **kwargs):
|
|
301
307
|
path = os.path.join(self.scf_path, "split_soc")
|
|
@@ -352,9 +358,9 @@ class SiestaFlow:
|
|
|
352
358
|
write_path=os.path.join(self.root_path, "TB2J_results_merged"),
|
|
353
359
|
)
|
|
354
360
|
|
|
355
|
-
def runall_collinear(self, atoms, relax=True, scf=True, TB2J=True,
|
|
361
|
+
def runall_collinear(self, atoms, relax=True, scf=True, TB2J=True, **kwargs):
|
|
356
362
|
if relax:
|
|
357
|
-
atoms = self.relax(atoms)
|
|
363
|
+
atoms = self.relax(atoms, **self.relax_args)
|
|
358
364
|
if scf:
|
|
359
365
|
self.scf_calculation_collinear(atoms, label="siesta")
|
|
360
366
|
if TB2J:
|
|
@@ -364,7 +370,7 @@ class SiestaFlow:
|
|
|
364
370
|
self, atoms, relax=True, scf=True, TB2J=True, rotate_type="structure", **kwargs
|
|
365
371
|
):
|
|
366
372
|
if relax:
|
|
367
|
-
atoms = self.relax(atoms)
|
|
373
|
+
atoms = self.relax(atoms, **self.relax_args)
|
|
368
374
|
if scf:
|
|
369
375
|
self.scf_calculation_with_rotations(
|
|
370
376
|
atoms, rotate_type=rotate_type, label="siesta"
|
|
@@ -375,7 +381,7 @@ class SiestaFlow:
|
|
|
375
381
|
|
|
376
382
|
def runall_split_soc(self, atoms, relax=True, scf=True, TB2J=True, **kwargs):
|
|
377
383
|
if relax:
|
|
378
|
-
atoms = self.relax(atoms)
|
|
384
|
+
atoms = self.relax(atoms, **self.relax_args)
|
|
379
385
|
if scf:
|
|
380
386
|
self.scf_calculatoin_split_soc(atoms, label="siesta")
|
|
381
387
|
if TB2J:
|
|
@@ -52,6 +52,7 @@ def auto_siesta_TB2J(
|
|
|
52
52
|
TB2J=True,
|
|
53
53
|
rotate_type="structure",
|
|
54
54
|
fincore=True,
|
|
55
|
+
relax_arguments={},
|
|
55
56
|
siesta_kwargs={},
|
|
56
57
|
TB2J_kwargs={},
|
|
57
58
|
fdf_kwargs={},
|
|
@@ -99,6 +100,7 @@ def auto_siesta_TB2J(
|
|
|
99
100
|
fincore=fincore,
|
|
100
101
|
Udict=Udict,
|
|
101
102
|
split_soc=split_soc,
|
|
103
|
+
relax_arguments = relax_arguments,
|
|
102
104
|
**siesta_kwargs,
|
|
103
105
|
)
|
|
104
106
|
flow.write_metadata()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: TB2Jflows
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.1
|
|
4
4
|
Summary: TB2Jflows: Workflows for automatically calculation of exchange parameters using TB2J
|
|
5
5
|
Author: Xu He
|
|
6
6
|
Author-email: mailhexu@gmail.com
|
|
@@ -23,6 +23,7 @@ Dynamic: author-email
|
|
|
23
23
|
Dynamic: classifier
|
|
24
24
|
Dynamic: description
|
|
25
25
|
Dynamic: license
|
|
26
|
+
Dynamic: license-file
|
|
26
27
|
Dynamic: requires-dist
|
|
27
28
|
Dynamic: requires-python
|
|
28
29
|
Dynamic: summary
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
.gitignore
|
|
2
|
+
.pre-commit-config.yaml
|
|
1
3
|
LICENSE
|
|
2
4
|
README.md
|
|
3
5
|
setup.py
|
|
6
|
+
upload_to_pip.sh
|
|
4
7
|
TB2Jflows/__init__.py
|
|
5
8
|
TB2Jflows/ase_siesta.py
|
|
6
9
|
TB2Jflows/auto_siesta_TB2J.py
|
|
@@ -9,4 +12,6 @@ TB2Jflows.egg-info/PKG-INFO
|
|
|
9
12
|
TB2Jflows.egg-info/SOURCES.txt
|
|
10
13
|
TB2Jflows.egg-info/dependency_links.txt
|
|
11
14
|
TB2Jflows.egg-info/requires.txt
|
|
12
|
-
TB2Jflows.egg-info/top_level.txt
|
|
15
|
+
TB2Jflows.egg-info/top_level.txt
|
|
16
|
+
examples/SrMnO3/POSCAR
|
|
17
|
+
examples/SrMnO3/SMO_example.py
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Sr Mn Ca O
|
|
2
|
+
1.0000000000000000
|
|
3
|
+
3.8099846261953436 -0.0000000000000000 -0.0000000000000000
|
|
4
|
+
0.0000000000000000 3.8099846261953436 0.0000000000000000
|
|
5
|
+
0.0000000000000000 0.0000000000000000 3.8099846261953436
|
|
6
|
+
Sr Mn O
|
|
7
|
+
1 1 3
|
|
8
|
+
Cartesian
|
|
9
|
+
0.0000000000000000 0.0000000000000000 0.0000000000000000
|
|
10
|
+
1.9049923130976718 1.9049923130976718 1.9049923130976718
|
|
11
|
+
1.9049923130976718 2.0049923130976718 0.0000000000000000
|
|
12
|
+
0.0000000000000000 1.9049923130976718 1.9049923130976718
|
|
13
|
+
1.9049923130976718 0.0000000000000000 1.9049923130976718
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from ase.io import read
|
|
2
|
+
import numpy as np
|
|
3
|
+
from TB2Jflows import SiestaFlow
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def calculate_siesta_TB2J_SrMnO3():
|
|
7
|
+
atoms = read('POSCAR')
|
|
8
|
+
atoms.set_initial_magnetic_moments([0, 3, 0, 0, 0])
|
|
9
|
+
flow = SiestaFlow(atoms,
|
|
10
|
+
spin='spin-orbit',
|
|
11
|
+
restart=True,
|
|
12
|
+
kpts=[6, 6, 6],
|
|
13
|
+
root_path='SrMnO3')
|
|
14
|
+
flow.write_metadata()
|
|
15
|
+
|
|
16
|
+
#atoms = flow.relax(atoms)
|
|
17
|
+
mz = [0, 3, 0, 0, 0]
|
|
18
|
+
#m = np.zeros((5, 3), dtype=float)
|
|
19
|
+
#m[1] = np.array([3, 3, 3])/1.732
|
|
20
|
+
# m[1]=np.array([0,0,3])
|
|
21
|
+
# atoms.set_initial_magnetic_moments(None)
|
|
22
|
+
atoms.set_initial_magnetic_moments(mz)
|
|
23
|
+
# flow.scf_calculation_single_noncollinear(atoms)
|
|
24
|
+
# flow.run_TB2J_single_noncollinear(magnetic_elements='Mn',
|
|
25
|
+
# nz=50,
|
|
26
|
+
# kmesh=[5, 5, 5],
|
|
27
|
+
# Rcut=18,
|
|
28
|
+
# np=3,
|
|
29
|
+
# use_cache=True)
|
|
30
|
+
|
|
31
|
+
flow.scf_calculation_with_rotations(atoms)
|
|
32
|
+
flow.run_TB2J(magnetic_elements='Mn',
|
|
33
|
+
nz=50,
|
|
34
|
+
kmesh=[7, 7, 7],
|
|
35
|
+
Rcut=18,
|
|
36
|
+
np=3,
|
|
37
|
+
use_cache=True)
|
|
38
|
+
flow.run_TB2J_merge()
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
if __name__ == '__main__':
|
|
42
|
+
calculate_siesta_TB2J_SrMnO3()
|
tb2jflows-0.1/setup.py
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
from setuptools import find_packages, setup
|
|
3
|
+
|
|
4
|
+
__version__ = "0.1"
|
|
5
|
+
|
|
6
|
+
long_description = """ TB2Jflows: Workflows for automatically calculation of exchange parameters using TB2J """
|
|
7
|
+
|
|
8
|
+
setup(
|
|
9
|
+
name="TB2Jflows",
|
|
10
|
+
version=__version__,
|
|
11
|
+
description="TB2Jflows: Workflows for automatically calculation of exchange parameters using TB2J",
|
|
12
|
+
long_description=long_description,
|
|
13
|
+
author="Xu He",
|
|
14
|
+
author_email="mailhexu@gmail.com",
|
|
15
|
+
license="BSD-2-clause",
|
|
16
|
+
packages=find_packages(),
|
|
17
|
+
scripts=[],
|
|
18
|
+
install_requires=["TB2J", "ase", "sisl", "pyDFTutils"],
|
|
19
|
+
classifiers=[
|
|
20
|
+
"Development Status :: 3 - Alpha",
|
|
21
|
+
"Programming Language :: Python :: 3",
|
|
22
|
+
"Operating System :: OS Independent",
|
|
23
|
+
"Intended Audience :: Science/Research",
|
|
24
|
+
"Topic :: Scientific/Engineering :: Chemistry",
|
|
25
|
+
"Topic :: Scientific/Engineering :: Physics",
|
|
26
|
+
"License :: OSI Approved :: BSD License",
|
|
27
|
+
],
|
|
28
|
+
python_requires=">=3.6",
|
|
29
|
+
)
|
tb2jflows-0.0.1/setup.py
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python
|
|
2
|
-
from setuptools import setup, find_packages
|
|
3
|
-
|
|
4
|
-
__version__ = "0.0.1"
|
|
5
|
-
|
|
6
|
-
long_description = """ TB2Jflows: Workflows for automatically calculation of exchange parameters using TB2J """
|
|
7
|
-
|
|
8
|
-
setup(
|
|
9
|
-
name='TB2Jflows',
|
|
10
|
-
version=__version__,
|
|
11
|
-
description=
|
|
12
|
-
'TB2Jflows: Workflows for automatically calculation of exchange parameters using TB2J',
|
|
13
|
-
long_description=long_description,
|
|
14
|
-
author='Xu He',
|
|
15
|
-
author_email='mailhexu@gmail.com',
|
|
16
|
-
license='BSD-2-clause',
|
|
17
|
-
packages=find_packages(),
|
|
18
|
-
scripts=[
|
|
19
|
-
],
|
|
20
|
-
install_requires=['TB2J', 'ase', 'sisl', 'pyDFTutils'],
|
|
21
|
-
classifiers=[
|
|
22
|
-
'Development Status :: 3 - Alpha',
|
|
23
|
-
'Programming Language :: Python :: 3',
|
|
24
|
-
'Operating System :: OS Independent',
|
|
25
|
-
'Intended Audience :: Science/Research',
|
|
26
|
-
'Topic :: Scientific/Engineering :: Chemistry',
|
|
27
|
-
'Topic :: Scientific/Engineering :: Physics',
|
|
28
|
-
'License :: OSI Approved :: BSD License',
|
|
29
|
-
],
|
|
30
|
-
python_requires='>=3.6',
|
|
31
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|