structuretoolkit 0.0.40__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.40 → structuretoolkit-0.0.41}/PKG-INFO +9 -9
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/pyproject.toml +9 -9
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/_version.py +2 -2
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/build/sqs.py +29 -35
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/.gitignore +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/LICENSE +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/README.md +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/__init__.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/__init__.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/distance.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/dscribe.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/neighbors.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/phonopy.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/pyscal.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/snap.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/spatial.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/strain.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/symmetry.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/build/__init__.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/build/aimsgb.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/build/compound.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/build/mesh.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/build/surface.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/common/__init__.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/common/error.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/common/helper.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/common/phonopy.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/common/pymatgen.py +0 -0
- {structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/common/pyscal.py +0 -0
- {structuretoolkit-0.0.40 → 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,9 +46,9 @@ 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
|
|
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
52
|
Requires-Dist: scipy<=1.17.0,>=1.15.0
|
|
53
53
|
Provides-Extra: clusters
|
|
54
54
|
Requires-Dist: scikit-learn==1.8.0; extra == 'clusters'
|
|
@@ -56,20 +56,20 @@ 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
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,8 +24,8 @@ 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
|
|
27
|
+
"ase>=3.20.1,<=3.28.0",
|
|
28
|
+
"numpy>=1.23.5,<=2.4.3",
|
|
29
29
|
"scipy>=1.15.0,<=1.17.0",
|
|
30
30
|
]
|
|
31
31
|
dynamic = ["version"]
|
|
@@ -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.
|
|
44
|
+
pyscal = ["pyscal3>=3.2.5,<=3.3.2"]
|
|
45
45
|
nglview = ["nglview>=2.7.7,<=4.0.1"]
|
|
46
46
|
matplotlib = ["matplotlib==3.10.8"]
|
|
47
|
-
plotly = ["plotly>=4.14.3,<=6.
|
|
47
|
+
plotly = ["plotly>=4.14.3,<=6.6.0"]
|
|
48
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
|
|
|
@@ -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.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/__init__.py
RENAMED
|
File without changes
|
{structuretoolkit-0.0.40 → structuretoolkit-0.0.41}/src/structuretoolkit/analyse/distance.py
RENAMED
|
File without changes
|
|
File without changes
|
{structuretoolkit-0.0.40 → 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.40 → 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
|