structuretoolkit 0.0.39__tar.gz → 0.0.41__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.39 → structuretoolkit-0.0.41}/PKG-INFO +12 -12
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41}/pyproject.toml +17 -17
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/_version.py +2 -2
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/build/sqs.py +29 -35
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41}/.gitignore +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41}/LICENSE +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41}/README.md +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/__init__.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/__init__.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/distance.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/dscribe.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/neighbors.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/phonopy.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/pyscal.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/snap.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/spatial.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/strain.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/symmetry.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/build/__init__.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/build/aimsgb.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/build/compound.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/build/mesh.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/build/surface.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/common/__init__.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/common/error.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/common/helper.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/common/phonopy.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/common/pymatgen.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/common/pyscal.py +0 -0
- {structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/visualize.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: structuretoolkit
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.41
|
|
4
4
|
Summary: build, analyse and visualise atomistic structures for materials science
|
|
5
5
|
Project-URL: Homepage, https://github.com/pyiron/structuretoolkit
|
|
6
6
|
Project-URL: Documentation, https://github.com/pyiron/structuretoolkit
|
|
@@ -46,30 +46,30 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
46
46
|
Classifier: Programming Language :: Python :: 3.12
|
|
47
47
|
Classifier: Programming Language :: Python :: 3.13
|
|
48
48
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
49
|
-
Requires-Python: <3.
|
|
50
|
-
Requires-Dist: ase<=3.
|
|
51
|
-
Requires-Dist: numpy<=2.3
|
|
52
|
-
Requires-Dist: scipy<=1.
|
|
49
|
+
Requires-Python: <3.15,>=3.10
|
|
50
|
+
Requires-Dist: ase<=3.28.0,>=3.20.1
|
|
51
|
+
Requires-Dist: numpy<=2.4.3,>=1.23.5
|
|
52
|
+
Requires-Dist: scipy<=1.17.0,>=1.15.0
|
|
53
53
|
Provides-Extra: clusters
|
|
54
|
-
Requires-Dist: scikit-learn==1.
|
|
54
|
+
Requires-Dist: scikit-learn==1.8.0; extra == 'clusters'
|
|
55
55
|
Provides-Extra: dscribe
|
|
56
56
|
Requires-Dist: dscribe==2.1.2; extra == 'dscribe'
|
|
57
57
|
Provides-Extra: grainboundary
|
|
58
58
|
Requires-Dist: aimsgb<=1.1.1,>=1.0.2; extra == 'grainboundary'
|
|
59
|
-
Requires-Dist: pymatgen<=
|
|
59
|
+
Requires-Dist: pymatgen<=2026.3.23,>=2022.2.1; extra == 'grainboundary'
|
|
60
60
|
Provides-Extra: matplotlib
|
|
61
61
|
Requires-Dist: matplotlib==3.10.8; extra == 'matplotlib'
|
|
62
62
|
Provides-Extra: nglview
|
|
63
|
-
Requires-Dist: nglview<=
|
|
63
|
+
Requires-Dist: nglview<=4.0.1,>=2.7.7; extra == 'nglview'
|
|
64
64
|
Provides-Extra: phonopy
|
|
65
|
-
Requires-Dist: phonopy<=2.
|
|
65
|
+
Requires-Dist: phonopy<=3.2.1,>=2.16.2; extra == 'phonopy'
|
|
66
66
|
Requires-Dist: spglib==2.7.0; extra == 'phonopy'
|
|
67
67
|
Provides-Extra: plotly
|
|
68
|
-
Requires-Dist: plotly<=6.
|
|
68
|
+
Requires-Dist: plotly<=6.6.0,>=4.14.3; extra == 'plotly'
|
|
69
69
|
Provides-Extra: pyscal
|
|
70
|
-
Requires-Dist: pyscal3<=3.3.
|
|
70
|
+
Requires-Dist: pyscal3<=3.3.2,>=3.2.5; extra == 'pyscal'
|
|
71
71
|
Provides-Extra: surface
|
|
72
|
-
Requires-Dist: pymatgen<=
|
|
72
|
+
Requires-Dist: pymatgen<=2026.3.23,>=2022.2.1; extra == 'surface'
|
|
73
73
|
Requires-Dist: spglib==2.7.0; extra == 'surface'
|
|
74
74
|
Provides-Extra: symmetry
|
|
75
75
|
Requires-Dist: spglib==2.7.0; extra == 'symmetry'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["ase", "numpy", "scipy", "hatchling==1.
|
|
2
|
+
requires = ["ase", "numpy", "scipy", "hatchling==1.29.0", "hatch-vcs==0.5.0"]
|
|
3
3
|
build-backend = "hatchling.build"
|
|
4
4
|
|
|
5
5
|
[project]
|
|
@@ -11,7 +11,7 @@ authors = [
|
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = { file = "LICENSE" }
|
|
13
13
|
keywords = ["pyiron"]
|
|
14
|
-
requires-python = ">=3.10, <3.
|
|
14
|
+
requires-python = ">=3.10, <3.15"
|
|
15
15
|
classifiers = [
|
|
16
16
|
"Development Status :: 5 - Production/Stable",
|
|
17
17
|
"Topic :: Scientific/Engineering :: Physics",
|
|
@@ -24,9 +24,9 @@ classifiers = [
|
|
|
24
24
|
"Programming Language :: Python :: 3.13",
|
|
25
25
|
]
|
|
26
26
|
dependencies = [
|
|
27
|
-
"ase>=3.20.1,<=3.
|
|
28
|
-
"numpy>=1.23.5,<=2.3
|
|
29
|
-
"scipy>=1.15.0,<=1.
|
|
27
|
+
"ase>=3.20.1,<=3.28.0",
|
|
28
|
+
"numpy>=1.23.5,<=2.4.3",
|
|
29
|
+
"scipy>=1.15.0,<=1.17.0",
|
|
30
30
|
]
|
|
31
31
|
dynamic = ["version"]
|
|
32
32
|
|
|
@@ -39,20 +39,20 @@ Repository = "https://github.com/pyiron/structuretoolkit"
|
|
|
39
39
|
dscribe = ["dscribe==2.1.2"]
|
|
40
40
|
grainboundary = [
|
|
41
41
|
"aimsgb>=1.0.2,<=1.1.1",
|
|
42
|
-
"pymatgen>=2022.2.1,<=
|
|
42
|
+
"pymatgen>=2022.2.1,<=2026.3.23",
|
|
43
43
|
]
|
|
44
|
-
pyscal = ["pyscal3>=3.2.5,<=3.3.
|
|
45
|
-
nglview = ["nglview>=2.7.7,<=
|
|
44
|
+
pyscal = ["pyscal3>=3.2.5,<=3.3.2"]
|
|
45
|
+
nglview = ["nglview>=2.7.7,<=4.0.1"]
|
|
46
46
|
matplotlib = ["matplotlib==3.10.8"]
|
|
47
|
-
plotly = ["plotly>=4.14.3,<=6.
|
|
48
|
-
clusters = ["scikit-learn==1.
|
|
47
|
+
plotly = ["plotly>=4.14.3,<=6.6.0"]
|
|
48
|
+
clusters = ["scikit-learn==1.8.0"]
|
|
49
49
|
symmetry = ["spglib==2.7.0"]
|
|
50
50
|
surface = [
|
|
51
51
|
"spglib==2.7.0",
|
|
52
|
-
"pymatgen>=2022.2.1,<=
|
|
52
|
+
"pymatgen>=2022.2.1,<=2026.3.23",
|
|
53
53
|
]
|
|
54
54
|
phonopy = [
|
|
55
|
-
"phonopy>=2.16.2,<=2.
|
|
55
|
+
"phonopy>=2.16.2,<=3.2.1",
|
|
56
56
|
"spglib==2.7.0",
|
|
57
57
|
]
|
|
58
58
|
|
|
@@ -106,22 +106,22 @@ ignore = [
|
|
|
106
106
|
]
|
|
107
107
|
|
|
108
108
|
[tool.hatch.build.hooks.vcs]
|
|
109
|
-
version-file = "structuretoolkit/_version.py"
|
|
109
|
+
version-file = "src/structuretoolkit/_version.py"
|
|
110
110
|
|
|
111
111
|
[tool.hatch.build.targets.sdist]
|
|
112
112
|
include = [
|
|
113
|
-
"structuretoolkit"
|
|
113
|
+
"src/structuretoolkit"
|
|
114
114
|
]
|
|
115
115
|
|
|
116
116
|
[tool.hatch.build.targets.wheel]
|
|
117
117
|
packages = [
|
|
118
|
-
"structuretoolkit"
|
|
118
|
+
"src/structuretoolkit"
|
|
119
119
|
]
|
|
120
120
|
|
|
121
121
|
[tool.hatch.version]
|
|
122
122
|
source = "vcs"
|
|
123
|
-
path = "structuretoolkit/_version.py"
|
|
123
|
+
path = "src/structuretoolkit/_version.py"
|
|
124
124
|
|
|
125
125
|
[tool.coverage.run]
|
|
126
|
-
|
|
126
|
+
source = ["structuretoolkit"]
|
|
127
127
|
command_line = "-m unittest discover tests"
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.0.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 0,
|
|
31
|
+
__version__ = version = '0.0.41'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 0, 41)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -166,14 +166,8 @@ def sqs_structures(
|
|
|
166
166
|
output_structures: int = 10,
|
|
167
167
|
mode: str = "random",
|
|
168
168
|
num_threads: int | None = None,
|
|
169
|
-
prefactors: float | np.ndarray | None = None,
|
|
170
|
-
pair_weights: np.ndarray | None = None,
|
|
171
169
|
rtol: float | None = None,
|
|
172
170
|
atol: float | None = None,
|
|
173
|
-
which: Iterable[int] | None = None,
|
|
174
|
-
shell_distances: Iterable[int] | None = None,
|
|
175
|
-
minimal: bool | None = True,
|
|
176
|
-
similar: bool | None = True,
|
|
177
171
|
return_statistics: bool | None = False,
|
|
178
172
|
) -> Atoms | tuple[Atoms, dict[str, list], int, float]:
|
|
179
173
|
"""
|
|
@@ -188,54 +182,54 @@ def sqs_structures(
|
|
|
188
182
|
output_structures (int): The number of output structures.
|
|
189
183
|
mode (str): The mode for selecting configurations.
|
|
190
184
|
num_threads (Optional[int]): The number of threads to use.
|
|
191
|
-
prefactors (Optional[Union[float, np.ndarray]]): The prefactors for each shell.
|
|
192
|
-
pair_weights (Optional[np.ndarray]): The pair weights.
|
|
193
185
|
rtol (Optional[float]): The relative tolerance.
|
|
194
186
|
atol (Optional[float]): The absolute tolerance.
|
|
195
|
-
which (Optional[Iterable[int]]): The indices of the shells to optimize.
|
|
196
|
-
shell_distances (Optional[Iterable[int]]): The distances for each shell.
|
|
197
|
-
minimal (Optional[bool]): Whether to minimize the objective function.
|
|
198
|
-
similar (Optional[bool]): Whether to generate similar structures.
|
|
199
187
|
return_statistics (Optional[bool]): Whether to return additional statistics.
|
|
200
188
|
|
|
201
189
|
Returns:
|
|
202
190
|
Union[Atoms, Tuple[Atoms, Dict[str, list], int, float]]: The generated structures or a tuple containing the structures, short-range order parameters breakdown, number of iterations, and average cycle time.
|
|
203
191
|
|
|
204
192
|
"""
|
|
205
|
-
from sqsgenerator import
|
|
193
|
+
from sqsgenerator import optimize, to_ase
|
|
206
194
|
|
|
207
195
|
composition = mole_fractions_to_composition(mole_fractions, len(structure))
|
|
208
196
|
|
|
209
197
|
settings = {
|
|
210
198
|
"atol": atol,
|
|
211
199
|
"rtol": rtol,
|
|
212
|
-
"
|
|
213
|
-
"
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
"
|
|
219
|
-
"
|
|
200
|
+
"iteration_mode": mode,
|
|
201
|
+
"structure": {
|
|
202
|
+
"lattice": structure.cell.array.tolist(),
|
|
203
|
+
"coords": structure.get_scaled_positions().tolist(),
|
|
204
|
+
"species": structure.get_chemical_symbols(),
|
|
205
|
+
},
|
|
206
|
+
"iterations": int(iterations),
|
|
207
|
+
"composition": {k: int(v) for k, v in composition.items()},
|
|
220
208
|
"target_objective": objective,
|
|
221
|
-
"
|
|
222
|
-
"
|
|
223
|
-
"max_output_configurations": output_structures,
|
|
209
|
+
"thread_config": num_threads or cpu_count(),
|
|
210
|
+
"max_results_per_objective": output_structures,
|
|
224
211
|
}
|
|
212
|
+
if weights is not None:
|
|
213
|
+
settings["shell_weights"] = weights
|
|
214
|
+
|
|
225
215
|
# not specifying a parameter in settings causes sqsgenerator to choose a "sensible" default,
|
|
226
216
|
# hence we remove all entries with a None value
|
|
217
|
+
result = optimize({k: v for k, v in settings.items() if v is not None})
|
|
218
|
+
|
|
219
|
+
structures = []
|
|
220
|
+
sro_breakdown: list = []
|
|
221
|
+
finished = False
|
|
222
|
+
for r_lst in result:
|
|
223
|
+
if not finished:
|
|
224
|
+
for s in r_lst[1]:
|
|
225
|
+
structures.append(to_ase(s.structure()))
|
|
226
|
+
sro_breakdown.append(s.sro())
|
|
227
|
+
if len(structures) == output_structures:
|
|
228
|
+
finished = True
|
|
229
|
+
break
|
|
230
|
+
cycle_time = list(result.statistics.timings.values())[0]
|
|
231
|
+
num_iterations = result.config.iterations
|
|
227
232
|
|
|
228
|
-
results, timings = sqs_optimize(
|
|
229
|
-
{param: value for param, value in settings.items() if value is not None},
|
|
230
|
-
minimal=minimal,
|
|
231
|
-
similar=similar,
|
|
232
|
-
make_structures=True,
|
|
233
|
-
structure_format="ase",
|
|
234
|
-
)
|
|
235
|
-
|
|
236
|
-
structures, sro_breakdown = transpose(map(remap_sqs_results, results.values()))
|
|
237
|
-
num_iterations = iterations
|
|
238
|
-
cycle_time = np.average(list(map_dict(np.average, timings).values()))
|
|
239
233
|
if not return_statistics:
|
|
240
234
|
return structures
|
|
241
235
|
else:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/__init__.py
RENAMED
|
File without changes
|
{structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/distance.py
RENAMED
|
File without changes
|
|
File without changes
|
{structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/neighbors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{structuretoolkit-0.0.39 → structuretoolkit-0.0.41/src}/structuretoolkit/analyse/symmetry.py
RENAMED
|
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
|