structuretoolkit 0.0.32__tar.gz → 0.0.34__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.
- structuretoolkit-0.0.34/.gitignore +10 -0
- {structuretoolkit-0.0.32/structuretoolkit.egg-info → structuretoolkit-0.0.34}/PKG-INFO +29 -31
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/pyproject.toml +30 -20
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/__init__.py +3 -3
- structuretoolkit-0.0.34/structuretoolkit/_version.py +34 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/analyse/symmetry.py +1 -1
- structuretoolkit-0.0.32/MANIFEST.in +0 -1
- structuretoolkit-0.0.32/PKG-INFO +0 -152
- structuretoolkit-0.0.32/setup.cfg +0 -4
- structuretoolkit-0.0.32/setup.py +0 -7
- structuretoolkit-0.0.32/structuretoolkit/_version.py +0 -21
- structuretoolkit-0.0.32/structuretoolkit.egg-info/SOURCES.txt +0 -55
- structuretoolkit-0.0.32/structuretoolkit.egg-info/dependency_links.txt +0 -1
- structuretoolkit-0.0.32/structuretoolkit.egg-info/requires.txt +0 -39
- structuretoolkit-0.0.32/structuretoolkit.egg-info/top_level.txt +0 -1
- structuretoolkit-0.0.32/tests/test_aimsgb.py +0 -42
- structuretoolkit-0.0.32/tests/test_analyse.py +0 -385
- structuretoolkit-0.0.32/tests/test_analyse_distance.py +0 -20
- structuretoolkit-0.0.32/tests/test_analyse_phonopy.py +0 -32
- structuretoolkit-0.0.32/tests/test_analyse_symmetry.py +0 -137
- structuretoolkit-0.0.32/tests/test_compound.py +0 -147
- structuretoolkit-0.0.32/tests/test_dscribe.py +0 -30
- structuretoolkit-0.0.32/tests/test_helpers.py +0 -28
- structuretoolkit-0.0.32/tests/test_high_index_surface.py +0 -81
- structuretoolkit-0.0.32/tests/test_mesh.py +0 -31
- structuretoolkit-0.0.32/tests/test_neighbors.py +0 -624
- structuretoolkit-0.0.32/tests/test_pymatgen.py +0 -199
- structuretoolkit-0.0.32/tests/test_pyscal.py +0 -560
- structuretoolkit-0.0.32/tests/test_pyxtal.py +0 -77
- structuretoolkit-0.0.32/tests/test_snap.py +0 -803
- structuretoolkit-0.0.32/tests/test_sqs.py +0 -78
- structuretoolkit-0.0.32/tests/test_strain.py +0 -73
- structuretoolkit-0.0.32/tests/test_symmetry.py +0 -317
- structuretoolkit-0.0.32/tests/test_visualize.py +0 -44
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/LICENSE +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/README.md +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/analyse/__init__.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/analyse/distance.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/analyse/dscribe.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/analyse/neighbors.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/analyse/phonopy.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/analyse/pyscal.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/analyse/snap.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/analyse/spatial.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/analyse/strain.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/build/__init__.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/build/aimsgb.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/build/compound.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/build/mesh.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/build/random.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/build/sqs.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/build/surface.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/common/__init__.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/common/error.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/common/helper.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/common/phonopy.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/common/pymatgen.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/common/pyscal.py +0 -0
- {structuretoolkit-0.0.32 → structuretoolkit-0.0.34}/structuretoolkit/visualize.py +0 -0
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: structuretoolkit
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.34
|
|
4
4
|
Summary: build, analyse and visualise atomistic structures for materials science
|
|
5
|
+
Project-URL: Homepage, https://github.com/pyiron/structuretoolkit
|
|
6
|
+
Project-URL: Documentation, https://github.com/pyiron/structuretoolkit
|
|
7
|
+
Project-URL: Repository, https://github.com/pyiron/structuretoolkit
|
|
5
8
|
Author-email: Jan Janssen <janssen@mpie.de>
|
|
6
9
|
License: BSD 3-Clause License
|
|
7
10
|
|
|
@@ -32,52 +35,47 @@ License: BSD 3-Clause License
|
|
|
32
35
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
33
36
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
34
37
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
35
|
-
|
|
36
|
-
Project-URL: Homepage, https://github.com/pyiron/structuretoolkit
|
|
37
|
-
Project-URL: Documentation, https://github.com/pyiron/structuretoolkit
|
|
38
|
-
Project-URL: Repository, https://github.com/pyiron/structuretoolkit
|
|
38
|
+
License-File: LICENSE
|
|
39
39
|
Keywords: pyiron
|
|
40
40
|
Classifier: Development Status :: 5 - Production/Stable
|
|
41
|
-
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
42
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
43
41
|
Classifier: Intended Audience :: Science/Research
|
|
42
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
44
43
|
Classifier: Operating System :: OS Independent
|
|
45
44
|
Classifier: Programming Language :: Python :: 3.9
|
|
46
45
|
Classifier: Programming Language :: Python :: 3.10
|
|
47
46
|
Classifier: Programming Language :: Python :: 3.11
|
|
48
47
|
Classifier: Programming Language :: Python :: 3.12
|
|
48
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
49
49
|
Requires-Python: <3.13,>=3.9
|
|
50
|
-
|
|
51
|
-
License-File: LICENSE
|
|
52
|
-
Requires-Dist: ase<=3.25.0,>=3.20.1
|
|
50
|
+
Requires-Dist: ase<=3.26.0,>=3.20.1
|
|
53
51
|
Requires-Dist: numpy<=1.26.4,>=1.23.5
|
|
54
52
|
Requires-Dist: scipy<=1.15.2,>=1.9.3
|
|
53
|
+
Provides-Extra: clusters
|
|
54
|
+
Requires-Dist: scikit-learn==1.6.1; extra == 'clusters'
|
|
55
55
|
Provides-Extra: dscribe
|
|
56
|
-
Requires-Dist: dscribe==2.1.1; extra ==
|
|
56
|
+
Requires-Dist: dscribe==2.1.1; extra == 'dscribe'
|
|
57
57
|
Provides-Extra: grainboundary
|
|
58
|
-
Requires-Dist: aimsgb<=1.1.1,>=1.0.2; extra ==
|
|
59
|
-
Requires-Dist: pymatgen<=2025.3.10,>=2022.2.1; extra ==
|
|
60
|
-
Provides-Extra: pyscal
|
|
61
|
-
Requires-Dist: pyscal3<=3.2.7,>=3.2.5; extra == "pyscal"
|
|
62
|
-
Provides-Extra: nglview
|
|
63
|
-
Requires-Dist: nglview<=3.1.4,>=2.7.7; extra == "nglview"
|
|
58
|
+
Requires-Dist: aimsgb<=1.1.1,>=1.0.2; extra == 'grainboundary'
|
|
59
|
+
Requires-Dist: pymatgen<=2025.3.10,>=2022.2.1; extra == 'grainboundary'
|
|
64
60
|
Provides-Extra: matplotlib
|
|
65
|
-
Requires-Dist: matplotlib==3.10.
|
|
66
|
-
Provides-Extra:
|
|
67
|
-
Requires-Dist:
|
|
68
|
-
Provides-Extra: clusters
|
|
69
|
-
Requires-Dist: scikit-learn==1.6.1; extra == "clusters"
|
|
70
|
-
Provides-Extra: symmetry
|
|
71
|
-
Requires-Dist: spglib<=2.6.0,>=1.16.5; extra == "symmetry"
|
|
72
|
-
Provides-Extra: surface
|
|
73
|
-
Requires-Dist: spglib<=2.6.0,>=1.16.5; extra == "surface"
|
|
74
|
-
Requires-Dist: pymatgen<=2025.3.10,>=2022.2.1; extra == "surface"
|
|
61
|
+
Requires-Dist: matplotlib==3.10.3; extra == 'matplotlib'
|
|
62
|
+
Provides-Extra: nglview
|
|
63
|
+
Requires-Dist: nglview<=3.1.4,>=2.7.7; extra == 'nglview'
|
|
75
64
|
Provides-Extra: phonopy
|
|
76
|
-
Requires-Dist: phonopy<=2.
|
|
77
|
-
Requires-Dist: spglib<=2.6.0,>=1.16.5; extra ==
|
|
65
|
+
Requires-Dist: phonopy<=2.43.1,>=2.16.2; extra == 'phonopy'
|
|
66
|
+
Requires-Dist: spglib<=2.6.0,>=1.16.5; extra == 'phonopy'
|
|
67
|
+
Provides-Extra: plotly
|
|
68
|
+
Requires-Dist: plotly<=6.2.0,>=4.14.3; extra == 'plotly'
|
|
69
|
+
Provides-Extra: pyscal
|
|
70
|
+
Requires-Dist: pyscal3<=3.3.0,>=3.2.5; extra == 'pyscal'
|
|
78
71
|
Provides-Extra: pyxtal
|
|
79
|
-
Requires-Dist: pyxtal<=1.0
|
|
80
|
-
|
|
72
|
+
Requires-Dist: pyxtal<=1.1.0,>=0.5.5; extra == 'pyxtal'
|
|
73
|
+
Provides-Extra: surface
|
|
74
|
+
Requires-Dist: pymatgen<=2025.3.10,>=2022.2.1; extra == 'surface'
|
|
75
|
+
Requires-Dist: spglib<=2.6.0,>=1.16.5; extra == 'surface'
|
|
76
|
+
Provides-Extra: symmetry
|
|
77
|
+
Requires-Dist: spglib<=2.6.0,>=1.16.5; extra == 'symmetry'
|
|
78
|
+
Description-Content-Type: text/markdown
|
|
81
79
|
|
|
82
80
|
# structuretoolkit
|
|
83
81
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["ase", "numpy", "
|
|
3
|
-
build-backend = "
|
|
2
|
+
requires = ["ase", "numpy", "scipy", "hatchling==1.27.0", "hatch-vcs==0.5.0"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "structuretoolkit"
|
|
@@ -24,7 +24,7 @@ classifiers = [
|
|
|
24
24
|
"Programming Language :: Python :: 3.12",
|
|
25
25
|
]
|
|
26
26
|
dependencies = [
|
|
27
|
-
"ase>=3.20.1,<=3.
|
|
27
|
+
"ase>=3.20.1,<=3.26.0",
|
|
28
28
|
"numpy>=1.23.5,<=1.26.4",
|
|
29
29
|
"scipy>=1.9.3,<=1.15.2",
|
|
30
30
|
]
|
|
@@ -41,10 +41,10 @@ grainboundary = [
|
|
|
41
41
|
"aimsgb>=1.0.2,<=1.1.1",
|
|
42
42
|
"pymatgen>=2022.2.1,<=2025.3.10",
|
|
43
43
|
]
|
|
44
|
-
pyscal = ["pyscal3>=3.2.5,<=3.
|
|
44
|
+
pyscal = ["pyscal3>=3.2.5,<=3.3.0"]
|
|
45
45
|
nglview = ["nglview>=2.7.7,<=3.1.4"]
|
|
46
|
-
matplotlib = ["matplotlib==3.10.
|
|
47
|
-
plotly = ["plotly>=4.14.3,<=6.0
|
|
46
|
+
matplotlib = ["matplotlib==3.10.3"]
|
|
47
|
+
plotly = ["plotly>=4.14.3,<=6.2.0"]
|
|
48
48
|
clusters = ["scikit-learn==1.6.1"]
|
|
49
49
|
symmetry = ["spglib>=1.16.5,<=2.6.0"]
|
|
50
50
|
surface = [
|
|
@@ -52,16 +52,10 @@ surface = [
|
|
|
52
52
|
"pymatgen>=2022.2.1,<=2025.3.10",
|
|
53
53
|
]
|
|
54
54
|
phonopy = [
|
|
55
|
-
"phonopy>=2.16.2,<=2.
|
|
55
|
+
"phonopy>=2.16.2,<=2.43.1",
|
|
56
56
|
"spglib>=1.16.5,<=2.6.0",
|
|
57
57
|
]
|
|
58
|
-
pyxtal = ["pyxtal>=0.5.5,<=1.0
|
|
59
|
-
|
|
60
|
-
[tool.setuptools.packages.find]
|
|
61
|
-
include = ["structuretoolkit*"]
|
|
62
|
-
|
|
63
|
-
[tool.setuptools.dynamic]
|
|
64
|
-
version = {attr = "structuretoolkit.__version__"}
|
|
58
|
+
pyxtal = ["pyxtal>=0.5.5,<=1.1.0"]
|
|
65
59
|
|
|
66
60
|
[tool.ruff]
|
|
67
61
|
exclude = [".ci_support", "tests", "setup.py", "_version.py"]
|
|
@@ -100,6 +94,8 @@ ignore = [
|
|
|
100
94
|
"E722",
|
|
101
95
|
# ignore ambiguous variable name
|
|
102
96
|
"E741",
|
|
97
|
+
# ignore imports which are not at the top of a module
|
|
98
|
+
"PLC0415",
|
|
103
99
|
# Too many arguments in function definition
|
|
104
100
|
"PLR0913",
|
|
105
101
|
# Magic value used in comparison
|
|
@@ -110,9 +106,23 @@ ignore = [
|
|
|
110
106
|
"PLR0915",
|
|
111
107
|
]
|
|
112
108
|
|
|
113
|
-
[tool.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
109
|
+
[tool.hatch.build.hooks.vcs]
|
|
110
|
+
version-file = "structuretoolkit/_version.py"
|
|
111
|
+
|
|
112
|
+
[tool.hatch.build.targets.sdist]
|
|
113
|
+
include = [
|
|
114
|
+
"structuretoolkit"
|
|
115
|
+
]
|
|
116
|
+
|
|
117
|
+
[tool.hatch.build.targets.wheel]
|
|
118
|
+
packages = [
|
|
119
|
+
"structuretoolkit"
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
[tool.hatch.version]
|
|
123
|
+
source = "vcs"
|
|
124
|
+
path = "structuretoolkit/_version.py"
|
|
125
|
+
|
|
126
|
+
[tool.coverage.run]
|
|
127
|
+
omit = ["structuretoolkit/_version.py", "tests/*"]
|
|
128
|
+
command_line = "-m unittest discover tests"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# Analyse
|
|
2
|
+
import structuretoolkit._version
|
|
2
3
|
from structuretoolkit.analyse import (
|
|
3
4
|
find_mic,
|
|
4
5
|
find_solids,
|
|
@@ -96,8 +97,6 @@ from structuretoolkit.common import (
|
|
|
96
97
|
# Visualize
|
|
97
98
|
from structuretoolkit.visualize import plot3d
|
|
98
99
|
|
|
99
|
-
from . import _version
|
|
100
|
-
|
|
101
100
|
__all__ = [
|
|
102
101
|
"find_mic",
|
|
103
102
|
"find_solids",
|
|
@@ -156,4 +155,5 @@ __all__ = [
|
|
|
156
155
|
"select_index",
|
|
157
156
|
"plot3d",
|
|
158
157
|
]
|
|
159
|
-
|
|
158
|
+
|
|
159
|
+
__version__ = structuretoolkit._version.__version__
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = [
|
|
5
|
+
"__version__",
|
|
6
|
+
"__version_tuple__",
|
|
7
|
+
"version",
|
|
8
|
+
"version_tuple",
|
|
9
|
+
"__commit_id__",
|
|
10
|
+
"commit_id",
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
TYPE_CHECKING = False
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from typing import Tuple
|
|
16
|
+
from typing import Union
|
|
17
|
+
|
|
18
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
+
COMMIT_ID = Union[str, None]
|
|
20
|
+
else:
|
|
21
|
+
VERSION_TUPLE = object
|
|
22
|
+
COMMIT_ID = object
|
|
23
|
+
|
|
24
|
+
version: str
|
|
25
|
+
__version__: str
|
|
26
|
+
__version_tuple__: VERSION_TUPLE
|
|
27
|
+
version_tuple: VERSION_TUPLE
|
|
28
|
+
commit_id: COMMIT_ID
|
|
29
|
+
__commit_id__: COMMIT_ID
|
|
30
|
+
|
|
31
|
+
__version__ = version = '0.0.34'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 0, 34)
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = None
|
|
@@ -260,7 +260,7 @@ class Symmetry(dict):
|
|
|
260
260
|
*sum([s == 3 for s in tensor.shape]) * [self.rotations],
|
|
261
261
|
v,
|
|
262
262
|
optimize=True,
|
|
263
|
-
)
|
|
263
|
+
) / len(self.rotations)
|
|
264
264
|
|
|
265
265
|
def _get_spglib_cell(
|
|
266
266
|
self, use_elements: Optional[bool] = None, use_magmoms: Optional[bool] = None
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
include LICENSE
|
structuretoolkit-0.0.32/PKG-INFO
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: structuretoolkit
|
|
3
|
-
Version: 0.0.32
|
|
4
|
-
Summary: build, analyse and visualise atomistic structures for materials science
|
|
5
|
-
Author-email: Jan Janssen <janssen@mpie.de>
|
|
6
|
-
License: BSD 3-Clause License
|
|
7
|
-
|
|
8
|
-
Copyright (c) 2018, Max-Planck-Institut für Eisenforschung GmbH - Computational Materials Design (CM) Department
|
|
9
|
-
All rights reserved.
|
|
10
|
-
|
|
11
|
-
Redistribution and use in source and binary forms, with or without
|
|
12
|
-
modification, are permitted provided that the following conditions are met:
|
|
13
|
-
|
|
14
|
-
* Redistributions of source code must retain the above copyright notice, this
|
|
15
|
-
list of conditions and the following disclaimer.
|
|
16
|
-
|
|
17
|
-
* Redistributions in binary form must reproduce the above copyright notice,
|
|
18
|
-
this list of conditions and the following disclaimer in the documentation
|
|
19
|
-
and/or other materials provided with the distribution.
|
|
20
|
-
|
|
21
|
-
* Neither the name of the copyright holder nor the names of its
|
|
22
|
-
contributors may be used to endorse or promote products derived from
|
|
23
|
-
this software without specific prior written permission.
|
|
24
|
-
|
|
25
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
26
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
27
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
28
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
29
|
-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
30
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
31
|
-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
32
|
-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
33
|
-
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
34
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
35
|
-
|
|
36
|
-
Project-URL: Homepage, https://github.com/pyiron/structuretoolkit
|
|
37
|
-
Project-URL: Documentation, https://github.com/pyiron/structuretoolkit
|
|
38
|
-
Project-URL: Repository, https://github.com/pyiron/structuretoolkit
|
|
39
|
-
Keywords: pyiron
|
|
40
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
41
|
-
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
42
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
43
|
-
Classifier: Intended Audience :: Science/Research
|
|
44
|
-
Classifier: Operating System :: OS Independent
|
|
45
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
46
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
47
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
48
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
49
|
-
Requires-Python: <3.13,>=3.9
|
|
50
|
-
Description-Content-Type: text/markdown
|
|
51
|
-
License-File: LICENSE
|
|
52
|
-
Requires-Dist: ase<=3.25.0,>=3.20.1
|
|
53
|
-
Requires-Dist: numpy<=1.26.4,>=1.23.5
|
|
54
|
-
Requires-Dist: scipy<=1.15.2,>=1.9.3
|
|
55
|
-
Provides-Extra: dscribe
|
|
56
|
-
Requires-Dist: dscribe==2.1.1; extra == "dscribe"
|
|
57
|
-
Provides-Extra: grainboundary
|
|
58
|
-
Requires-Dist: aimsgb<=1.1.1,>=1.0.2; extra == "grainboundary"
|
|
59
|
-
Requires-Dist: pymatgen<=2025.3.10,>=2022.2.1; extra == "grainboundary"
|
|
60
|
-
Provides-Extra: pyscal
|
|
61
|
-
Requires-Dist: pyscal3<=3.2.7,>=3.2.5; extra == "pyscal"
|
|
62
|
-
Provides-Extra: nglview
|
|
63
|
-
Requires-Dist: nglview<=3.1.4,>=2.7.7; extra == "nglview"
|
|
64
|
-
Provides-Extra: matplotlib
|
|
65
|
-
Requires-Dist: matplotlib==3.10.1; extra == "matplotlib"
|
|
66
|
-
Provides-Extra: plotly
|
|
67
|
-
Requires-Dist: plotly<=6.0.1,>=4.14.3; extra == "plotly"
|
|
68
|
-
Provides-Extra: clusters
|
|
69
|
-
Requires-Dist: scikit-learn==1.6.1; extra == "clusters"
|
|
70
|
-
Provides-Extra: symmetry
|
|
71
|
-
Requires-Dist: spglib<=2.6.0,>=1.16.5; extra == "symmetry"
|
|
72
|
-
Provides-Extra: surface
|
|
73
|
-
Requires-Dist: spglib<=2.6.0,>=1.16.5; extra == "surface"
|
|
74
|
-
Requires-Dist: pymatgen<=2025.3.10,>=2022.2.1; extra == "surface"
|
|
75
|
-
Provides-Extra: phonopy
|
|
76
|
-
Requires-Dist: phonopy<=2.38.0,>=2.16.2; extra == "phonopy"
|
|
77
|
-
Requires-Dist: spglib<=2.6.0,>=1.16.5; extra == "phonopy"
|
|
78
|
-
Provides-Extra: pyxtal
|
|
79
|
-
Requires-Dist: pyxtal<=1.0.7,>=0.5.5; extra == "pyxtal"
|
|
80
|
-
Dynamic: license-file
|
|
81
|
-
|
|
82
|
-
# structuretoolkit
|
|
83
|
-
|
|
84
|
-
[](https://github.com/pyiron/structuretoolkit/actions/workflows/pipeline.yml)
|
|
85
|
-
[](https://codecov.io/gh/pyiron/structuretoolkit)
|
|
86
|
-
|
|
87
|
-
Originally developed as part of the `pyiron_atomistics` module the `structuretoolkit` was release as standalone library
|
|
88
|
-
for analysing, building and visualising atomistic structures. Internally it uses the `ase.atoms.Atoms` class to
|
|
89
|
-
represent atomistic structures in python. The `structuretoolkit` is integrated inside `pyiron_atomistics`.
|
|
90
|
-
|
|
91
|
-
## Disclaimer
|
|
92
|
-
The `structuretoolkit` is currently under development.
|
|
93
|
-
|
|
94
|
-
## Example
|
|
95
|
-
|
|
96
|
-
```python
|
|
97
|
-
import structuretoolkit as stk
|
|
98
|
-
from ase.build import bulk
|
|
99
|
-
|
|
100
|
-
structure = bulk("Al", cubic=True)
|
|
101
|
-
stk.analyse.get_adaptive_cna_descriptors(structure)
|
|
102
|
-
stk.plot3d(structure)
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
## Features
|
|
106
|
-
### Analysis
|
|
107
|
-
* `stk.analyse.get_neighbors()`
|
|
108
|
-
* `stk.analyse.get_neighborhood()`
|
|
109
|
-
* `stk.analyse.get_equivalent_atoms()`
|
|
110
|
-
* `stk.analyse.get_steinhardt_parameters()`
|
|
111
|
-
* `stk.analyse.get_centro_symmetry_descriptors()`
|
|
112
|
-
* `stk.analyse.get_diamond_structure_descriptors()`
|
|
113
|
-
* `stk.analyse.get_adaptive_cna_descriptors()`
|
|
114
|
-
* `stk.analyse.get_voronoi_volumes()`
|
|
115
|
-
* `stk.analyse.find_solids()`
|
|
116
|
-
* `stk.analyse.get_mean_positions()`
|
|
117
|
-
* `stk.analyse.get_average_of_unique_labels()`
|
|
118
|
-
* `stk.analyse.get_interstitials()`
|
|
119
|
-
* `stk.analyse.get_layers()`
|
|
120
|
-
* `stk.analyse.get_voronoi_vertices()`
|
|
121
|
-
* `stk.analyse.get_voronoi_neighbors()`
|
|
122
|
-
* `stk.analyse.get_delaunay_neighbors()`
|
|
123
|
-
* `stk.analyse.get_cluster_positions()`
|
|
124
|
-
* `stk.analyse.get_strain()`
|
|
125
|
-
|
|
126
|
-
### Build
|
|
127
|
-
* `stk.build.get_grainboundary_info()`
|
|
128
|
-
* `stk.build.grainboundary()`
|
|
129
|
-
* `stk.build.high_index_surface()`
|
|
130
|
-
* `stk.build.get_high_index_surface_info()`
|
|
131
|
-
* `stk.build.sqs_structures()`
|
|
132
|
-
* `stk.build.pyxtal()`
|
|
133
|
-
* `stk.build.B2()`
|
|
134
|
-
* `stk.build.C14()`
|
|
135
|
-
* `stk.build.C15()`
|
|
136
|
-
* `stk.build.C36()`
|
|
137
|
-
* `stk.build.D03()`
|
|
138
|
-
|
|
139
|
-
### Visualize
|
|
140
|
-
* `stk.visualize.plot3d()`
|
|
141
|
-
|
|
142
|
-
### Common
|
|
143
|
-
* `stk.common.ase_to_pymatgen()`
|
|
144
|
-
* `stk.common.pymatgen_to_ase()`
|
|
145
|
-
* `stk.common.pymatgen_read_from_file()`
|
|
146
|
-
* `stk.common.ase_to_pyscal()`
|
|
147
|
-
* `stk.common.apply_strain()`
|
|
148
|
-
* `stk.common.center_coordinates_in_unit_cell()`
|
|
149
|
-
* `stk.common.get_extended_positions()`
|
|
150
|
-
* `stk.common.get_vertical_length()`
|
|
151
|
-
* `stk.common.get_wrapped_coordinates()`
|
|
152
|
-
* `stk.common.select_index()`
|
structuretoolkit-0.0.32/setup.py
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# This file was generated by 'versioneer.py' (0.29) from
|
|
3
|
-
# revision-control system data, or from the parent directory name of an
|
|
4
|
-
# unpacked source archive. Distribution tarballs contain a pre-generated copy
|
|
5
|
-
# of this file.
|
|
6
|
-
|
|
7
|
-
import json
|
|
8
|
-
|
|
9
|
-
version_json = '''
|
|
10
|
-
{
|
|
11
|
-
"date": "2025-04-13T08:36:36+0200",
|
|
12
|
-
"dirty": true,
|
|
13
|
-
"error": null,
|
|
14
|
-
"full-revisionid": "6a0b89e67ab34d999e56a93afceaa1fbedf249bc",
|
|
15
|
-
"version": "0.0.32"
|
|
16
|
-
}
|
|
17
|
-
''' # END VERSION_JSON
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def get_versions():
|
|
21
|
-
return json.loads(version_json)
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
LICENSE
|
|
2
|
-
MANIFEST.in
|
|
3
|
-
README.md
|
|
4
|
-
pyproject.toml
|
|
5
|
-
setup.py
|
|
6
|
-
structuretoolkit/__init__.py
|
|
7
|
-
structuretoolkit/_version.py
|
|
8
|
-
structuretoolkit/visualize.py
|
|
9
|
-
structuretoolkit.egg-info/PKG-INFO
|
|
10
|
-
structuretoolkit.egg-info/SOURCES.txt
|
|
11
|
-
structuretoolkit.egg-info/dependency_links.txt
|
|
12
|
-
structuretoolkit.egg-info/requires.txt
|
|
13
|
-
structuretoolkit.egg-info/top_level.txt
|
|
14
|
-
structuretoolkit/analyse/__init__.py
|
|
15
|
-
structuretoolkit/analyse/distance.py
|
|
16
|
-
structuretoolkit/analyse/dscribe.py
|
|
17
|
-
structuretoolkit/analyse/neighbors.py
|
|
18
|
-
structuretoolkit/analyse/phonopy.py
|
|
19
|
-
structuretoolkit/analyse/pyscal.py
|
|
20
|
-
structuretoolkit/analyse/snap.py
|
|
21
|
-
structuretoolkit/analyse/spatial.py
|
|
22
|
-
structuretoolkit/analyse/strain.py
|
|
23
|
-
structuretoolkit/analyse/symmetry.py
|
|
24
|
-
structuretoolkit/build/__init__.py
|
|
25
|
-
structuretoolkit/build/aimsgb.py
|
|
26
|
-
structuretoolkit/build/compound.py
|
|
27
|
-
structuretoolkit/build/mesh.py
|
|
28
|
-
structuretoolkit/build/random.py
|
|
29
|
-
structuretoolkit/build/sqs.py
|
|
30
|
-
structuretoolkit/build/surface.py
|
|
31
|
-
structuretoolkit/common/__init__.py
|
|
32
|
-
structuretoolkit/common/error.py
|
|
33
|
-
structuretoolkit/common/helper.py
|
|
34
|
-
structuretoolkit/common/phonopy.py
|
|
35
|
-
structuretoolkit/common/pymatgen.py
|
|
36
|
-
structuretoolkit/common/pyscal.py
|
|
37
|
-
tests/test_aimsgb.py
|
|
38
|
-
tests/test_analyse.py
|
|
39
|
-
tests/test_analyse_distance.py
|
|
40
|
-
tests/test_analyse_phonopy.py
|
|
41
|
-
tests/test_analyse_symmetry.py
|
|
42
|
-
tests/test_compound.py
|
|
43
|
-
tests/test_dscribe.py
|
|
44
|
-
tests/test_helpers.py
|
|
45
|
-
tests/test_high_index_surface.py
|
|
46
|
-
tests/test_mesh.py
|
|
47
|
-
tests/test_neighbors.py
|
|
48
|
-
tests/test_pymatgen.py
|
|
49
|
-
tests/test_pyscal.py
|
|
50
|
-
tests/test_pyxtal.py
|
|
51
|
-
tests/test_snap.py
|
|
52
|
-
tests/test_sqs.py
|
|
53
|
-
tests/test_strain.py
|
|
54
|
-
tests/test_symmetry.py
|
|
55
|
-
tests/test_visualize.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
ase<=3.25.0,>=3.20.1
|
|
2
|
-
numpy<=1.26.4,>=1.23.5
|
|
3
|
-
scipy<=1.15.2,>=1.9.3
|
|
4
|
-
|
|
5
|
-
[clusters]
|
|
6
|
-
scikit-learn==1.6.1
|
|
7
|
-
|
|
8
|
-
[dscribe]
|
|
9
|
-
dscribe==2.1.1
|
|
10
|
-
|
|
11
|
-
[grainboundary]
|
|
12
|
-
aimsgb<=1.1.1,>=1.0.2
|
|
13
|
-
pymatgen<=2025.3.10,>=2022.2.1
|
|
14
|
-
|
|
15
|
-
[matplotlib]
|
|
16
|
-
matplotlib==3.10.1
|
|
17
|
-
|
|
18
|
-
[nglview]
|
|
19
|
-
nglview<=3.1.4,>=2.7.7
|
|
20
|
-
|
|
21
|
-
[phonopy]
|
|
22
|
-
phonopy<=2.38.0,>=2.16.2
|
|
23
|
-
spglib<=2.6.0,>=1.16.5
|
|
24
|
-
|
|
25
|
-
[plotly]
|
|
26
|
-
plotly<=6.0.1,>=4.14.3
|
|
27
|
-
|
|
28
|
-
[pyscal]
|
|
29
|
-
pyscal3<=3.2.7,>=3.2.5
|
|
30
|
-
|
|
31
|
-
[pyxtal]
|
|
32
|
-
pyxtal<=1.0.7,>=0.5.5
|
|
33
|
-
|
|
34
|
-
[surface]
|
|
35
|
-
spglib<=2.6.0,>=1.16.5
|
|
36
|
-
pymatgen<=2025.3.10,>=2022.2.1
|
|
37
|
-
|
|
38
|
-
[symmetry]
|
|
39
|
-
spglib<=2.6.0,>=1.16.5
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
structuretoolkit
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# coding: utf-8
|
|
2
|
-
# Copyright (c) Max-Planck-Institut für Eisenforschung GmbH - Computational Materials Design (CM) Department
|
|
3
|
-
# Distributed under the terms of "New BSD License", see the LICENSE file.
|
|
4
|
-
|
|
5
|
-
import unittest
|
|
6
|
-
|
|
7
|
-
from ase.build import bulk
|
|
8
|
-
|
|
9
|
-
import structuretoolkit as stk
|
|
10
|
-
|
|
11
|
-
try:
|
|
12
|
-
import aimsgb
|
|
13
|
-
|
|
14
|
-
skip_aimsgb_test = False
|
|
15
|
-
except ImportError:
|
|
16
|
-
skip_aimsgb_test = True
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@unittest.skipIf(
|
|
20
|
-
skip_aimsgb_test, "aimsgb is not installed, so the aimsgb tests are skipped."
|
|
21
|
-
)
|
|
22
|
-
class TestAimsgb(unittest.TestCase):
|
|
23
|
-
@classmethod
|
|
24
|
-
def setUpClass(cls):
|
|
25
|
-
cls.fcc_basis = bulk("Al", cubic=True)
|
|
26
|
-
|
|
27
|
-
def test_grain_thickness(self):
|
|
28
|
-
axis = [0, 0, 1]
|
|
29
|
-
sigma = 5
|
|
30
|
-
plane = [1, 2, 0]
|
|
31
|
-
gb1 = stk.build.grainboundary(
|
|
32
|
-
axis, sigma, plane, self.fcc_basis
|
|
33
|
-
) # Default thicknesses expected to be 1
|
|
34
|
-
uc_a, uc_b = 2, 3 # Make grains thicker
|
|
35
|
-
gb2 = stk.build.grainboundary(
|
|
36
|
-
axis, sigma, plane, self.fcc_basis, uc_a=uc_a, uc_b=uc_b
|
|
37
|
-
)
|
|
38
|
-
self.assertEqual(
|
|
39
|
-
((uc_a + uc_b) / 2) * len(gb1),
|
|
40
|
-
len(gb2),
|
|
41
|
-
msg="Expected structure to be bigger in proportion to grain thickness",
|
|
42
|
-
)
|