pack-mm 0.0.19__py3-none-any.whl → 0.0.21__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
pack_mm/core/core.py CHANGED
@@ -11,6 +11,7 @@ from pathlib import Path
11
11
  from ase import Atoms
12
12
  from ase.build import molecule as build_molecule
13
13
  from ase.io import read, write
14
+ from ase.units import kB
14
15
  from janus_core.calculations.geom_opt import GeomOpt
15
16
  from janus_core.helpers.mlip_calculators import choose_calculator
16
17
  from numpy import cos, exp, pi, random, sin, sqrt
@@ -185,7 +186,7 @@ def pack_molecules(
185
186
  cell_a, cell_b, cell_c (float): Cell dimensions if system is empty.
186
187
  out_path (str): path to save various outputs
187
188
  """
188
- kbt = temperature * 8.6173303e-5 # Boltzmann constant in eV/K
189
+ kbt = temperature * kB
189
190
  validate_value("temperature", temperature)
190
191
  validate_value("radius", radius)
191
192
  validate_value("height", height)
@@ -358,5 +359,5 @@ def optimize_geometry(
358
359
  filter_kwargs={"hydrostatic_strain": True},
359
360
  )
360
361
  geo.run()
361
- write(Path(out_path) / f"{struct_path}-opt.cif", geo.struct)
362
+ write(Path(out_path) / f"{Path(struct_path).stem}-opt.cif", geo.struct)
362
363
  return geo.struct.get_potential_energy()
@@ -0,0 +1,246 @@
1
+ Metadata-Version: 2.1
2
+ Name: pack-mm
3
+ Version: 0.0.21
4
+ Summary: packing materials and molecules in boxes using for machine learnt interatomic potentials
5
+ Author: Alin M. Elena
6
+ Classifier: Programming Language :: Python
7
+ Classifier: Programming Language :: Python :: 3.10
8
+ Classifier: Programming Language :: Python :: 3.11
9
+ Classifier: Programming Language :: Python :: 3.12
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Natural Language :: English
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Project-URL: Repository, https://github.com/ddmms/pack-mm/
15
+ Project-URL: Documentation, https://ddmms.github.io/pack-mm/
16
+ Requires-Python: >=3.10
17
+ Requires-Dist: janus-core>=0.7.2
18
+ Requires-Dist: typer<1.0.0,>=0.12.5
19
+ Requires-Dist: typer-config<2.0.0,>=1.4.2
20
+ Description-Content-Type: text/markdown
21
+
22
+ [![Python versions][python-badge]][python-link]
23
+ [![Build Status][ci-badge]][ci-link]
24
+ [![Coverage Status][cov-badge]][cov-link]
25
+ [![License][license-badge]][license-link]
26
+
27
+ # what is packmm
28
+
29
+ packmm is a simple python package that allows to build atomistic and molecular
30
+ systems which are of interest for materials and molecular modelling.
31
+
32
+ It tries to generate realistic starting configuration by employing machine learnt
33
+ interatomic potential for describing interactions between atoms and Monte Carlo,
34
+ Molecular Dynamics and hybrid Monte Carlo.
35
+
36
+ It provides both a cli and a python api, with some examples below.
37
+
38
+ ## Quick install
39
+
40
+ ```bash
41
+
42
+ uv pip install pack-mm
43
+
44
+ ```
45
+ or install the lates
46
+
47
+ ```bash
48
+
49
+ uv pip install git+https://github.com/ddmms/pack-mm.git
50
+
51
+ ```
52
+
53
+ ## CLI examples
54
+
55
+
56
+ ### MOF in spherical pocket
57
+
58
+ ```bash
59
+
60
+ packmm --system examples/data/UiO-66.cif --molecule H2O --nmols 10 --where sphere --centre 10.0,10.0,10.0 --radius 5.0 --geometry
61
+
62
+ ```
63
+
64
+ ![](examples/pics/UiO66water.webp)
65
+
66
+ ### Zeolite in cylindrical channel
67
+
68
+
69
+ ```bash
70
+
71
+ packmm --system examples/data/MFI.cif --molecule H2O --nmols 30 --where cylinderY --centre 10.0,10.0,13.0 --radius 3.5 --height 19.00 --no-geometry
72
+
73
+ ```
74
+
75
+ ![](examples/pics/MFIwater.webp)
76
+
77
+ ### NaCl on surface
78
+
79
+ ```bash
80
+ packmm --system examples/data/NaCl.cif --molecule H2O --nmols 30 --where box --centre 8.5,8.5,16.0 --a 16.9 --b 16.9 --c 7.5 --no-geometry
81
+
82
+ ```
83
+
84
+ ![](examples/pics/NaClwater.webp)
85
+
86
+ ### MOF ellipsoid
87
+
88
+ first add a methanol
89
+
90
+ ```bash
91
+
92
+ packmm --system examples/data/Cu2L.cif --molecule examples/data/Ethanol.xyz --nmols 1 --where sphere --centre 5.18,8.15,25.25 --radius 1 --model small-0b2 --geometry
93
+
94
+ ```
95
+
96
+ ![](examples/pics/Cu2L-ethanol.webp)
97
+
98
+ ``` bash
99
+
100
+ packmm --system Cu2L-ethanol.cif --molecule H2O --nmols 10 --where ellipsoid --centre 5.18,8.15,25.25 --a 5.18 --b 8.15 --c 8.25 --no-geometry --model small-0b2
101
+
102
+
103
+ ```
104
+
105
+ ![](examples/pics/Cu2l-ethanol-water.webp)
106
+
107
+ ### Liquid water
108
+
109
+ ```bash
110
+
111
+ packmm --molecule H2O --nmols 33 --where anywhere --cell-a 10.0 --cell-b 10.0 --cell-c 10.0 --model small-0b2
112
+
113
+
114
+ ```
115
+
116
+ ![](examples/pics/water.webp)
117
+
118
+ ### interstitials
119
+
120
+ ```bash
121
+
122
+ packmm --system Pd-super.cif --molecule H2 --nmols 50 --where anywhere --model small-0b2
123
+
124
+ ```
125
+
126
+ before optimisation
127
+
128
+ ![](examples/pics/Pd-H2-noopt.webp)
129
+
130
+
131
+ after optimisation
132
+
133
+ ![](examples/pics/Pd-H2.webp)
134
+
135
+
136
+ ### full list of options
137
+
138
+ ```bash
139
+
140
+ packmm --help
141
+
142
+ Usage: packmm [OPTIONS]
143
+
144
+ Pack molecules into a system based on the specified parameters.
145
+
146
+ ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
147
+ │ --system TEXT The original box in which │
148
+ │ you want to add particles. │
149
+ │ If not provided, an empty │
150
+ │ box will be created. │
151
+ │ [default: None] │
152
+ │ --molecule TEXT Name of the molecule to be │
153
+ │ processed, ASE-recognizable │
154
+ │ or ASE-readable file. │
155
+ │ [default: H2O] │
156
+ │ --nmols INTEGER Target number of molecules │
157
+ │ to insert. │
158
+ │ [default: -1] │
159
+ │ --ntries INTEGER Maximum number of attempts │
160
+ │ to insert each molecule. │
161
+ │ [default: 50] │
162
+ │ --seed INTEGER Random seed for │
163
+ │ reproducibility. │
164
+ │ [default: 2025] │
165
+ │ --where [anywhere|sphere|box|cylin Where to insert the │
166
+ │ derZ|cylinderY|cylinderX|e molecule. Choices: │
167
+ │ llipsoid] 'anywhere', 'sphere', │
168
+ │ 'box', 'cylinderZ', │
169
+ │ 'cylinderY', 'cylinderX', │
170
+ │ 'ellipsoid'. │
171
+ │ [default: anywhere] │
172
+ │ --centre TEXT Centre of the insertion │
173
+ │ zone, coordinates in Å, │
174
+ │ e.g., '5.0, 5.0, 5.0'. │
175
+ │ [default: None] │
176
+ │ --radius FLOAT Radius of the sphere or │
177
+ │ cylinder in Å, depending on │
178
+ │ the insertion volume. │
179
+ │ [default: None] │
180
+ │ --height FLOAT Height of the cylinder in │
181
+ │ Å. │
182
+ │ [default: None] │
183
+ │ --a FLOAT Side of the box or │
184
+ │ semi-axis of the ellipsoid, │
185
+ │ in Å, depends on the │
186
+ │ insertion method. │
187
+ │ [default: None] │
188
+ │ --b FLOAT Side of the box or │
189
+ │ semi-axis of the ellipsoid, │
190
+ │ in Å, depends on the │
191
+ │ insertion method. │
192
+ │ [default: None] │
193
+ │ --c FLOAT Side of the box or │
194
+ │ semi-axis of the ellipsoid, │
195
+ │ in Å, depends on the │
196
+ │ insertion method. │
197
+ │ [default: None] │
198
+ │ --device TEXT Device to run calculations │
199
+ │ on (e.g., 'cpu' or 'cuda'). │
200
+ │ [default: cpu] │
201
+ │ --model TEXT ML model to use. │
202
+ │ [default: medium-omat-0] │
203
+ │ --arch TEXT MLIP architecture to use. │
204
+ │ [default: mace_mp] │
205
+ │ --temperature FLOAT Temperature for the Monte │
206
+ │ Carlo acceptance rule. │
207
+ │ [default: 300.0] │
208
+ │ --cell-a FLOAT Side of the empty box along │
209
+ │ the x-axis in Å. │
210
+ │ [default: 20.0] │
211
+ │ --cell-b FLOAT Side of the empty box along │
212
+ │ the y-axis in Å. │
213
+ │ [default: 20.0] │
214
+ │ --cell-c FLOAT Side of the empty box along │
215
+ │ the z-axis in Å. │
216
+ │ [default: 20.0] │
217
+ │ --fmax FLOAT force tollerance for │
218
+ │ optimisation if needed. │
219
+ │ [default: 0.1] │
220
+ │ --geometry --no-geometry Perform geometry │
221
+ │ optimization at the end. │
222
+ │ [default: geometry] │
223
+ │ --out-path TEXT path to save various │
224
+ │ outputs. │
225
+ │ [default: .] │
226
+ │ --install-completion Install completion for the │
227
+ │ current shell. │
228
+ │ --show-completion Show completion for the │
229
+ │ current shell, to copy it │
230
+ │ or customize the │
231
+ │ installation. │
232
+ │ --help Show this message and exit. │
233
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
234
+
235
+
236
+ ```
237
+
238
+
239
+ [python-badge]: https://img.shields.io/pypi/pyversions/pack-mm.svg
240
+ [python-link]: https://pypi.org/project/pack-mm/
241
+ [ci-badge]: https://github.com/ddmms/pack-mm/actions/workflows/build.yml/badge.svg?branch=main
242
+ [ci-link]: https://github.com/ddmms/pack-mm/actions
243
+ [cov-badge]: https://coveralls.io/repos/github/ddmms/pack-mm/badge.svg?branch=main
244
+ [cov-link]: https://coveralls.io/github/ddmms/pack-mm?branch=main
245
+ [license-badge]: https://img.shields.io/badge/License-MIT-yellow.svg
246
+ [license-link]: https://opensource.org/license/MIT
@@ -0,0 +1,8 @@
1
+ pack_mm-0.0.21.dist-info/METADATA,sha256=jW4IZ3HFn-e7AxJ8dAteajsDSs1dsybX3G9l080Gr5Y,13506
2
+ pack_mm-0.0.21.dist-info/WHEEL,sha256=thaaA2w1JzcGC48WYufAs8nrYZjJm8LqNfnXFOFyCC4,90
3
+ pack_mm-0.0.21.dist-info/entry_points.txt,sha256=ajKA2oehIa_LCVCP2XTRxV0VNgjGl9c2wYkwk0BasrQ,66
4
+ pack_mm-0.0.21.dist-info/licenses/LICENSE,sha256=ZOYkPdn_vQ8wYJqZnjesow79F_grMbVlHcJ9V91G1pE,1100
5
+ pack_mm/__init__.py,sha256=ct7qfCmTDwhLYip6JKYWRLasmmaGYt0ColbK0CpvYZk,150
6
+ pack_mm/cli/packmm.py,sha256=VqumDT_f1Nf1LCZ1WsF5D6MoLmKEQPEimYenibQHIU4,4944
7
+ pack_mm/core/core.py,sha256=vNMQOVDIXyRCUWosww9sSHUxwqbjPRk5JLsb9muwpVA,11369
8
+ pack_mm-0.0.21.dist-info/RECORD,,
@@ -1,36 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: pack-mm
3
- Version: 0.0.19
4
- Summary: packing materials and molecules in boxes using for machine learnt interatomic potentials
5
- Author: Alin M. Elena
6
- Classifier: Programming Language :: Python
7
- Classifier: Programming Language :: Python :: 3.10
8
- Classifier: Programming Language :: Python :: 3.11
9
- Classifier: Programming Language :: Python :: 3.12
10
- Classifier: Intended Audience :: Science/Research
11
- Classifier: License :: OSI Approved :: MIT License
12
- Classifier: Natural Language :: English
13
- Classifier: Development Status :: 3 - Alpha
14
- Project-URL: Repository, https://github.com/ddmms/pack-mm/
15
- Project-URL: Documentation, https://ddmms.github.io/pack-mm/
16
- Requires-Python: >=3.10
17
- Requires-Dist: janus-core>=0.7.2
18
- Requires-Dist: typer<1.0.0,>=0.12.5
19
- Requires-Dist: typer-config<2.0.0,>=1.4.2
20
- Description-Content-Type: text/markdown
21
-
22
- # pack materials and molecules
23
-
24
- [![Python versions][python-badge]][python-link]
25
- [![Build Status][ci-badge]][ci-link]
26
- [![Coverage Status][cov-badge]][cov-link]
27
- [![License][license-badge]][license-link]
28
-
29
- [python-badge]: https://img.shields.io/pypi/pyversions/pack-mm.svg
30
- [python-link]: https://pypi.org/project/pack-mm/
31
- [ci-badge]: https://github.com/ddmms/pack-mm/actions/workflows/build.yml/badge.svg?branch=main
32
- [ci-link]: https://github.com/ddmms/pack-mm/actions
33
- [cov-badge]: https://coveralls.io/repos/github/ddmms/pack-mm/badge.svg?branch=main
34
- [cov-link]: https://coveralls.io/github/ddmms/pack-mm?branch=main
35
- [license-badge]: https://img.shields.io/badge/License-MIT-yellow.svg
36
- [license-link]: https://opensource.org/license/MIT
@@ -1,8 +0,0 @@
1
- pack_mm-0.0.19.dist-info/METADATA,sha256=XknqobiQ9HNQyOPmGsJ_auICisxR128TXg_0cU4kh8Y,1583
2
- pack_mm-0.0.19.dist-info/WHEEL,sha256=thaaA2w1JzcGC48WYufAs8nrYZjJm8LqNfnXFOFyCC4,90
3
- pack_mm-0.0.19.dist-info/entry_points.txt,sha256=ajKA2oehIa_LCVCP2XTRxV0VNgjGl9c2wYkwk0BasrQ,66
4
- pack_mm-0.0.19.dist-info/licenses/LICENSE,sha256=ZOYkPdn_vQ8wYJqZnjesow79F_grMbVlHcJ9V91G1pE,1100
5
- pack_mm/__init__.py,sha256=ct7qfCmTDwhLYip6JKYWRLasmmaGYt0ColbK0CpvYZk,150
6
- pack_mm/cli/packmm.py,sha256=VqumDT_f1Nf1LCZ1WsF5D6MoLmKEQPEimYenibQHIU4,4944
7
- pack_mm/core/core.py,sha256=RT9EgMkejhMkqVHN0t_Yn8MDXgQDFD_HOw6Sf3pBeSc,11373
8
- pack_mm-0.0.19.dist-info/RECORD,,