nomad-parser-plugins-atomistic 1.0__py3-none-any.whl
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.
- atomisticparsers/__init__.py +400 -0
- atomisticparsers/amber/__init__.py +19 -0
- atomisticparsers/amber/__main__.py +31 -0
- atomisticparsers/amber/metainfo/__init__.py +19 -0
- atomisticparsers/amber/metainfo/amber.py +495 -0
- atomisticparsers/amber/parser.py +42 -0
- atomisticparsers/asap/__init__.py +19 -0
- atomisticparsers/asap/__main__.py +31 -0
- atomisticparsers/asap/metainfo/__init__.py +19 -0
- atomisticparsers/asap/metainfo/asap.py +75 -0
- atomisticparsers/asap/parser.py +197 -0
- atomisticparsers/bopfox/__init__.py +19 -0
- atomisticparsers/bopfox/__main__.py +31 -0
- atomisticparsers/bopfox/metainfo/__init__.py +19 -0
- atomisticparsers/bopfox/metainfo/bopfox.py +225 -0
- atomisticparsers/bopfox/parser.py +808 -0
- atomisticparsers/dftbplus/__init__.py +19 -0
- atomisticparsers/dftbplus/__main__.py +31 -0
- atomisticparsers/dftbplus/metainfo/__init__.py +19 -0
- atomisticparsers/dftbplus/metainfo/dftbplus.py +217 -0
- atomisticparsers/dftbplus/parser.py +500 -0
- atomisticparsers/dlpoly/__init__.py +19 -0
- atomisticparsers/dlpoly/__main__.py +31 -0
- atomisticparsers/dlpoly/metainfo/__init__.py +19 -0
- atomisticparsers/dlpoly/metainfo/dl_poly.py +312 -0
- atomisticparsers/dlpoly/parser.py +798 -0
- atomisticparsers/gromacs/__init__.py +19 -0
- atomisticparsers/gromacs/__main__.py +31 -0
- atomisticparsers/gromacs/metainfo/__init__.py +19 -0
- atomisticparsers/gromacs/metainfo/gromacs.py +2388 -0
- atomisticparsers/gromacs/parser.py +1581 -0
- atomisticparsers/gromos/__init__.py +19 -0
- atomisticparsers/gromos/__main__.py +31 -0
- atomisticparsers/gromos/metainfo/__init__.py +19 -0
- atomisticparsers/gromos/metainfo/gromos.py +1995 -0
- atomisticparsers/gromos/parser.py +58 -0
- atomisticparsers/gulp/__init__.py +19 -0
- atomisticparsers/gulp/__main__.py +31 -0
- atomisticparsers/gulp/metainfo/__init__.py +19 -0
- atomisticparsers/gulp/metainfo/gulp.py +1117 -0
- atomisticparsers/gulp/parser.py +1316 -0
- atomisticparsers/h5md/__init__.py +19 -0
- atomisticparsers/h5md/__main__.py +31 -0
- atomisticparsers/h5md/metainfo/__init__.py +19 -0
- atomisticparsers/h5md/metainfo/h5md.py +239 -0
- atomisticparsers/h5md/parser.py +901 -0
- atomisticparsers/lammps/__init__.py +19 -0
- atomisticparsers/lammps/__main__.py +31 -0
- atomisticparsers/lammps/metainfo/__init__.py +19 -0
- atomisticparsers/lammps/metainfo/lammps.py +1417 -0
- atomisticparsers/lammps/parser.py +1753 -0
- atomisticparsers/libatoms/__init__.py +19 -0
- atomisticparsers/libatoms/__main__.py +31 -0
- atomisticparsers/libatoms/metainfo/__init__.py +19 -0
- atomisticparsers/libatoms/metainfo/lib_atoms.py +251 -0
- atomisticparsers/libatoms/parser.py +38 -0
- atomisticparsers/namd/__init__.py +19 -0
- atomisticparsers/namd/__main__.py +31 -0
- atomisticparsers/namd/metainfo/__init__.py +19 -0
- atomisticparsers/namd/metainfo/namd.py +1605 -0
- atomisticparsers/namd/parser.py +312 -0
- atomisticparsers/tinker/__init__.py +19 -0
- atomisticparsers/tinker/__main__.py +31 -0
- atomisticparsers/tinker/metainfo/__init__.py +18 -0
- atomisticparsers/tinker/metainfo/tinker.py +1363 -0
- atomisticparsers/tinker/parser.py +685 -0
- atomisticparsers/utils/__init__.py +22 -0
- atomisticparsers/utils/mdanalysis.py +662 -0
- atomisticparsers/utils/parsers.py +226 -0
- atomisticparsers/xtb/__init__.py +19 -0
- atomisticparsers/xtb/__main__.py +32 -0
- atomisticparsers/xtb/metainfo/__init__.py +19 -0
- atomisticparsers/xtb/metainfo/xtb.py +256 -0
- atomisticparsers/xtb/parser.py +979 -0
- nomad_parser_plugins_atomistic-1.0.dist-info/LICENSE +202 -0
- nomad_parser_plugins_atomistic-1.0.dist-info/METADATA +327 -0
- nomad_parser_plugins_atomistic-1.0.dist-info/RECORD +80 -0
- nomad_parser_plugins_atomistic-1.0.dist-info/WHEEL +5 -0
- nomad_parser_plugins_atomistic-1.0.dist-info/entry_points.txt +15 -0
- nomad_parser_plugins_atomistic-1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright The NOMAD Authors.
|
|
3
|
+
#
|
|
4
|
+
# This file is part of NOMAD.
|
|
5
|
+
# See https://nomad-lab.eu for further info.
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
import numpy as np # pylint: disable=unused-import
|
|
20
|
+
import typing # pylint: disable=unused-import
|
|
21
|
+
from nomad.metainfo import ( # pylint: disable=unused-import
|
|
22
|
+
MSection,
|
|
23
|
+
MCategory,
|
|
24
|
+
Category,
|
|
25
|
+
Package,
|
|
26
|
+
Quantity,
|
|
27
|
+
Section,
|
|
28
|
+
SubSection,
|
|
29
|
+
SectionProxy,
|
|
30
|
+
Reference,
|
|
31
|
+
)
|
|
32
|
+
import runschema.run # pylint: disable=unused-import
|
|
33
|
+
import runschema.calculation # pylint: disable=unused-import
|
|
34
|
+
import runschema.method # pylint: disable=unused-import
|
|
35
|
+
import runschema.system # pylint: disable=unused-import
|
|
36
|
+
import simulationworkflowschema
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
m_package = Package()
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class x_amber_mdin_method(MCategory):
|
|
43
|
+
"""
|
|
44
|
+
Parameters of mdin belonging to section method.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
m_def = Category()
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class x_amber_mdout_single_configuration_calculation(MCategory):
|
|
51
|
+
"""
|
|
52
|
+
Parameters of mdout belonging to section_single_configuration_calculation.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
m_def = Category()
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class x_amber_mdout_method(MCategory):
|
|
59
|
+
"""
|
|
60
|
+
Parameters of mdin belonging to section method.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
m_def = Category()
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class x_amber_mdout_run(MCategory):
|
|
67
|
+
"""
|
|
68
|
+
Parameters of mdin belonging to settings run.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
m_def = Category()
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
class x_amber_mdin_run(MCategory):
|
|
75
|
+
"""
|
|
76
|
+
Parameters of mdin belonging to settings run.
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
m_def = Category()
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class x_amber_section_input_output_files(MSection):
|
|
83
|
+
"""
|
|
84
|
+
Temperory variable to store input and output file keywords
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
m_def = Section(validate=False)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
class x_amber_section_single_configuration_calculation(MSection):
|
|
91
|
+
"""
|
|
92
|
+
section for gathering values for MD steps
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
m_def = Section(validate=False)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class System(runschema.system.System):
|
|
99
|
+
m_def = Section(validate=False, extends_base_section=True)
|
|
100
|
+
|
|
101
|
+
x_amber_atom_positions_image_index = Quantity(
|
|
102
|
+
type=np.int32,
|
|
103
|
+
shape=['number_of_atoms', 3],
|
|
104
|
+
unit='dimensionless',
|
|
105
|
+
description="""
|
|
106
|
+
PBC image flag index.
|
|
107
|
+
""",
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
x_amber_atom_positions_scaled = Quantity(
|
|
111
|
+
type=np.float64,
|
|
112
|
+
shape=['number_of_atoms', 3],
|
|
113
|
+
unit='dimensionless',
|
|
114
|
+
description="""
|
|
115
|
+
Position of the atoms in a scaled format [0, 1].
|
|
116
|
+
""",
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
x_amber_atom_positions_wrapped = Quantity(
|
|
120
|
+
type=np.float64,
|
|
121
|
+
shape=['number_of_atoms', 3],
|
|
122
|
+
unit='meter',
|
|
123
|
+
description="""
|
|
124
|
+
Position of the atoms wrapped back to the periodic box.
|
|
125
|
+
""",
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
x_amber_dummy = Quantity(
|
|
129
|
+
type=str,
|
|
130
|
+
shape=[],
|
|
131
|
+
description="""
|
|
132
|
+
dummy
|
|
133
|
+
""",
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
x_amber_mdin_finline = Quantity(
|
|
137
|
+
type=str,
|
|
138
|
+
shape=[],
|
|
139
|
+
description="""
|
|
140
|
+
finline in mdin
|
|
141
|
+
""",
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
x_amber_traj_timestep_store = Quantity(
|
|
145
|
+
type=str,
|
|
146
|
+
shape=[],
|
|
147
|
+
description="""
|
|
148
|
+
tmp
|
|
149
|
+
""",
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
x_amber_traj_number_of_atoms_store = Quantity(
|
|
153
|
+
type=str,
|
|
154
|
+
shape=[],
|
|
155
|
+
description="""
|
|
156
|
+
tmp
|
|
157
|
+
""",
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
x_amber_traj_box_bound_store = Quantity(
|
|
161
|
+
type=str,
|
|
162
|
+
shape=[],
|
|
163
|
+
description="""
|
|
164
|
+
tmp
|
|
165
|
+
""",
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
x_amber_traj_box_bounds_store = Quantity(
|
|
169
|
+
type=str,
|
|
170
|
+
shape=[],
|
|
171
|
+
description="""
|
|
172
|
+
tmp
|
|
173
|
+
""",
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
x_amber_traj_variables_store = Quantity(
|
|
177
|
+
type=str,
|
|
178
|
+
shape=[],
|
|
179
|
+
description="""
|
|
180
|
+
tmp
|
|
181
|
+
""",
|
|
182
|
+
)
|
|
183
|
+
|
|
184
|
+
x_amber_traj_atoms_store = Quantity(
|
|
185
|
+
type=str,
|
|
186
|
+
shape=[],
|
|
187
|
+
description="""
|
|
188
|
+
tmp
|
|
189
|
+
""",
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
class MolecularDynamics(simulationworkflowschema.MolecularDynamics):
|
|
194
|
+
m_def = Section(validate=False, extends_base_section=True)
|
|
195
|
+
|
|
196
|
+
x_amber_barostat_target_pressure = Quantity(
|
|
197
|
+
type=np.float64,
|
|
198
|
+
shape=[],
|
|
199
|
+
unit='pascal',
|
|
200
|
+
description="""
|
|
201
|
+
MD barostat target pressure.
|
|
202
|
+
""",
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
x_amber_barostat_tau = Quantity(
|
|
206
|
+
type=np.float64,
|
|
207
|
+
shape=[],
|
|
208
|
+
unit='second',
|
|
209
|
+
description="""
|
|
210
|
+
MD barostat relaxation time.
|
|
211
|
+
""",
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
x_amber_barostat_type = Quantity(
|
|
215
|
+
type=str,
|
|
216
|
+
shape=[],
|
|
217
|
+
description="""
|
|
218
|
+
MD barostat type, valid values are defined in the barostat_type wiki page.
|
|
219
|
+
""",
|
|
220
|
+
)
|
|
221
|
+
|
|
222
|
+
x_amber_integrator_dt = Quantity(
|
|
223
|
+
type=np.float64,
|
|
224
|
+
shape=[],
|
|
225
|
+
unit='second',
|
|
226
|
+
description="""
|
|
227
|
+
MD integration time step.
|
|
228
|
+
""",
|
|
229
|
+
)
|
|
230
|
+
|
|
231
|
+
x_amber_integrator_type = Quantity(
|
|
232
|
+
type=str,
|
|
233
|
+
shape=[],
|
|
234
|
+
description="""
|
|
235
|
+
MD integrator type, valid values are defined in the integrator_type wiki page.
|
|
236
|
+
""",
|
|
237
|
+
)
|
|
238
|
+
|
|
239
|
+
x_amber_periodicity_type = Quantity(
|
|
240
|
+
type=str,
|
|
241
|
+
shape=[],
|
|
242
|
+
description="""
|
|
243
|
+
Periodic boundary condition type in the sampling (non-PBC or PBC).
|
|
244
|
+
""",
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
x_amber_langevin_gamma = Quantity(
|
|
248
|
+
type=np.float64,
|
|
249
|
+
shape=[],
|
|
250
|
+
unit='second',
|
|
251
|
+
description="""
|
|
252
|
+
Langevin thermostat damping factor.
|
|
253
|
+
""",
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
x_amber_number_of_steps_requested = Quantity(
|
|
257
|
+
type=np.float64,
|
|
258
|
+
shape=[],
|
|
259
|
+
description="""
|
|
260
|
+
Number of requested MD integration time steps.
|
|
261
|
+
""",
|
|
262
|
+
)
|
|
263
|
+
|
|
264
|
+
x_amber_thermostat_level = Quantity(
|
|
265
|
+
type=str,
|
|
266
|
+
shape=[],
|
|
267
|
+
description="""
|
|
268
|
+
MD thermostat level (see wiki: single, multiple, regional).
|
|
269
|
+
""",
|
|
270
|
+
)
|
|
271
|
+
|
|
272
|
+
x_amber_thermostat_target_temperature = Quantity(
|
|
273
|
+
type=np.float64,
|
|
274
|
+
shape=[],
|
|
275
|
+
unit='kelvin',
|
|
276
|
+
description="""
|
|
277
|
+
MD thermostat target temperature.
|
|
278
|
+
""",
|
|
279
|
+
)
|
|
280
|
+
|
|
281
|
+
x_amber_thermostat_tau = Quantity(
|
|
282
|
+
type=np.float64,
|
|
283
|
+
shape=[],
|
|
284
|
+
unit='second',
|
|
285
|
+
description="""
|
|
286
|
+
MD thermostat relaxation time.
|
|
287
|
+
""",
|
|
288
|
+
)
|
|
289
|
+
|
|
290
|
+
x_amber_thermostat_type = Quantity(
|
|
291
|
+
type=str,
|
|
292
|
+
shape=[],
|
|
293
|
+
description="""
|
|
294
|
+
MD thermostat type, valid values are defined in the thermostat_type wiki page.
|
|
295
|
+
""",
|
|
296
|
+
)
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
class AtomParameters(runschema.method.AtomParameters):
|
|
300
|
+
m_def = Section(validate=False, extends_base_section=True)
|
|
301
|
+
|
|
302
|
+
x_amber_atom_type_element = Quantity(
|
|
303
|
+
type=str,
|
|
304
|
+
shape=[],
|
|
305
|
+
description="""
|
|
306
|
+
Element symbol of an atom type.
|
|
307
|
+
""",
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
x_amber_atom_type_radius = Quantity(
|
|
311
|
+
type=np.float64,
|
|
312
|
+
shape=[],
|
|
313
|
+
description="""
|
|
314
|
+
van der Waals radius of an atom type.
|
|
315
|
+
""",
|
|
316
|
+
)
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
class Interaction(runschema.method.Interaction):
|
|
320
|
+
m_def = Section(validate=False, extends_base_section=True)
|
|
321
|
+
|
|
322
|
+
x_amber_interaction_atom_to_atom_type_ref = Quantity(
|
|
323
|
+
type=runschema.method.AtomParameters,
|
|
324
|
+
shape=['number_of_atoms_per_interaction'],
|
|
325
|
+
description="""
|
|
326
|
+
Reference to the atom type of each interaction atoms.
|
|
327
|
+
""",
|
|
328
|
+
)
|
|
329
|
+
|
|
330
|
+
x_amber_number_of_defined_pair_interactions = Quantity(
|
|
331
|
+
type=np.int32,
|
|
332
|
+
shape=[],
|
|
333
|
+
description="""
|
|
334
|
+
Number of defined pair interactions (L-J pairs).
|
|
335
|
+
""",
|
|
336
|
+
)
|
|
337
|
+
|
|
338
|
+
x_amber_pair_interaction_atom_type_ref = Quantity(
|
|
339
|
+
type=runschema.method.AtomParameters,
|
|
340
|
+
shape=[
|
|
341
|
+
'x_amber_number_of_defined_pair_interactions',
|
|
342
|
+
'number_of_atoms_per_interaction',
|
|
343
|
+
],
|
|
344
|
+
description="""
|
|
345
|
+
Reference to the atom type for pair interactions.
|
|
346
|
+
""",
|
|
347
|
+
)
|
|
348
|
+
|
|
349
|
+
x_amber_pair_interaction_parameters = Quantity(
|
|
350
|
+
type=np.float64,
|
|
351
|
+
shape=['x_amber_number_of_defined_pair_interactions', 2],
|
|
352
|
+
description="""
|
|
353
|
+
Pair interactions parameters.
|
|
354
|
+
""",
|
|
355
|
+
)
|
|
356
|
+
|
|
357
|
+
x_amber_molecule_interaction_atom_to_atom_type_ref = Quantity(
|
|
358
|
+
type=runschema.method.AtomParameters,
|
|
359
|
+
shape=['number_of_atoms_per_interaction'],
|
|
360
|
+
description="""
|
|
361
|
+
Reference to the atom type of each molecule interaction atoms.
|
|
362
|
+
""",
|
|
363
|
+
)
|
|
364
|
+
|
|
365
|
+
x_amber_number_of_defined_molecule_pair_interactions = Quantity(
|
|
366
|
+
type=np.int32,
|
|
367
|
+
shape=[],
|
|
368
|
+
description="""
|
|
369
|
+
Number of defined pair interactions within a molecule (L-J pairs).
|
|
370
|
+
""",
|
|
371
|
+
)
|
|
372
|
+
|
|
373
|
+
x_amber_pair_molecule_interaction_parameters = Quantity(
|
|
374
|
+
type=np.float64,
|
|
375
|
+
shape=['number_of_defined_molecule_pair_interactions', 2],
|
|
376
|
+
description="""
|
|
377
|
+
Molecule pair interactions parameters.
|
|
378
|
+
""",
|
|
379
|
+
)
|
|
380
|
+
|
|
381
|
+
x_amber_pair_molecule_interaction_to_atom_type_ref = Quantity(
|
|
382
|
+
type=runschema.method.AtomParameters,
|
|
383
|
+
shape=[
|
|
384
|
+
'x_amber_number_of_defined_pair_interactions',
|
|
385
|
+
'number_of_atoms_per_interaction',
|
|
386
|
+
],
|
|
387
|
+
description="""
|
|
388
|
+
Reference to the atom type for pair interactions within a molecule.
|
|
389
|
+
""",
|
|
390
|
+
)
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
class Run(runschema.run.Run):
|
|
394
|
+
m_def = Section(validate=False, extends_base_section=True)
|
|
395
|
+
|
|
396
|
+
x_amber_program_version_date = Quantity(
|
|
397
|
+
type=str,
|
|
398
|
+
shape=[],
|
|
399
|
+
description="""
|
|
400
|
+
Program version date.
|
|
401
|
+
""",
|
|
402
|
+
)
|
|
403
|
+
|
|
404
|
+
x_amber_xlo_xhi = Quantity(
|
|
405
|
+
type=str,
|
|
406
|
+
shape=[],
|
|
407
|
+
description="""
|
|
408
|
+
test
|
|
409
|
+
""",
|
|
410
|
+
)
|
|
411
|
+
|
|
412
|
+
x_amber_data_file_store = Quantity(
|
|
413
|
+
type=str,
|
|
414
|
+
shape=[],
|
|
415
|
+
description="""
|
|
416
|
+
Filename of data file
|
|
417
|
+
""",
|
|
418
|
+
)
|
|
419
|
+
|
|
420
|
+
x_amber_program_working_path = Quantity(
|
|
421
|
+
type=str,
|
|
422
|
+
shape=[],
|
|
423
|
+
description="""
|
|
424
|
+
tmp
|
|
425
|
+
""",
|
|
426
|
+
)
|
|
427
|
+
|
|
428
|
+
x_amber_program_execution_host = Quantity(
|
|
429
|
+
type=str,
|
|
430
|
+
shape=[],
|
|
431
|
+
description="""
|
|
432
|
+
tmp
|
|
433
|
+
""",
|
|
434
|
+
)
|
|
435
|
+
|
|
436
|
+
x_amber_program_execution_path = Quantity(
|
|
437
|
+
type=str,
|
|
438
|
+
shape=[],
|
|
439
|
+
description="""
|
|
440
|
+
tmp
|
|
441
|
+
""",
|
|
442
|
+
)
|
|
443
|
+
|
|
444
|
+
x_amber_program_module = Quantity(
|
|
445
|
+
type=str,
|
|
446
|
+
shape=[],
|
|
447
|
+
description="""
|
|
448
|
+
tmp
|
|
449
|
+
""",
|
|
450
|
+
)
|
|
451
|
+
|
|
452
|
+
x_amber_program_execution_date = Quantity(
|
|
453
|
+
type=str,
|
|
454
|
+
shape=[],
|
|
455
|
+
description="""
|
|
456
|
+
tmp
|
|
457
|
+
""",
|
|
458
|
+
)
|
|
459
|
+
|
|
460
|
+
x_amber_program_execution_time = Quantity(
|
|
461
|
+
type=str,
|
|
462
|
+
shape=[],
|
|
463
|
+
description="""
|
|
464
|
+
tmp
|
|
465
|
+
""",
|
|
466
|
+
)
|
|
467
|
+
|
|
468
|
+
x_amber_mdin_header = Quantity(
|
|
469
|
+
type=str,
|
|
470
|
+
shape=[],
|
|
471
|
+
description="""
|
|
472
|
+
tmp
|
|
473
|
+
""",
|
|
474
|
+
)
|
|
475
|
+
|
|
476
|
+
x_amber_mdin_wt = Quantity(
|
|
477
|
+
type=str,
|
|
478
|
+
shape=[],
|
|
479
|
+
description="""
|
|
480
|
+
tmp
|
|
481
|
+
""",
|
|
482
|
+
)
|
|
483
|
+
|
|
484
|
+
x_amber_section_input_output_files = SubSection(
|
|
485
|
+
sub_section=SectionProxy('x_amber_section_input_output_files'), repeats=False
|
|
486
|
+
)
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
class Calculation(runschema.calculation.Calculation):
|
|
490
|
+
m_def = Section(validate=False, extends_base_section=True)
|
|
491
|
+
|
|
492
|
+
x_amber_section_single_configuration_calculation = SubSection(
|
|
493
|
+
sub_section=SectionProxy('x_amber_section_single_configuration_calculation'),
|
|
494
|
+
repeats=True,
|
|
495
|
+
)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright The NOMAD Authors.
|
|
3
|
+
#
|
|
4
|
+
# This file is part of NOMAD.
|
|
5
|
+
# See https://nomad-lab.eu for further info.
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
from nomad.units import ureg
|
|
21
|
+
from simulationparsers.utils import BasicParser
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class AmberParser:
|
|
25
|
+
def __init__(self):
|
|
26
|
+
re_f = r'\-*\d+\.\d+E*\-*\+*\d*'
|
|
27
|
+
self._parser = BasicParser(
|
|
28
|
+
'Amber',
|
|
29
|
+
units_mapping=dict(length=ureg.angstrom, energy=ureg.eV),
|
|
30
|
+
program_version=r'Amber\s*(\d+)\s*(\w+)\s*(\d+)',
|
|
31
|
+
# will only read initial coordinates
|
|
32
|
+
auxilliary_files=r'(\S+\.inpcrd|\S+\.prmtop)',
|
|
33
|
+
atom_positions=(
|
|
34
|
+
rf'\d+\s+({re_f} +{re_f} +{re_f} +{re_f} +{re_f} +{re_f}[\s\S]+)',
|
|
35
|
+
lambda x: x.strip().split(),
|
|
36
|
+
),
|
|
37
|
+
atom_atom_number=r'\%FLAG ATOMIC_NUMBER\s*\%FORMAT\(.+\)\s*([\d\s]+)',
|
|
38
|
+
energy_total=rf'NSTEP\s*ENERGY.+\s*\d+\s*({re_f})',
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
def parse(self, mainfile, archive, logger=None):
|
|
42
|
+
self._parser.parse(mainfile, archive, logger=None)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright The NOMAD Authors.
|
|
3
|
+
#
|
|
4
|
+
# This file is part of NOMAD.
|
|
5
|
+
# See https://nomad-lab.eu for further info.
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
from .parser import AsapParser
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright The NOMAD Authors.
|
|
3
|
+
#
|
|
4
|
+
# This file is part of NOMAD.
|
|
5
|
+
# See https://nomad-lab.eu for further info.
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
import sys
|
|
20
|
+
import json
|
|
21
|
+
import logging
|
|
22
|
+
|
|
23
|
+
from nomad.utils import configure_logging
|
|
24
|
+
from nomad.datamodel import EntryArchive
|
|
25
|
+
from atomisticparsers.asap import AsapParser
|
|
26
|
+
|
|
27
|
+
if __name__ == '__main__':
|
|
28
|
+
configure_logging(console_log_level=logging.DEBUG)
|
|
29
|
+
archive = EntryArchive()
|
|
30
|
+
AsapParser().parse(sys.argv[1], archive, logging)
|
|
31
|
+
json.dump(archive.m_to_dict(), sys.stdout, indent=2)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright The NOMAD Authors.
|
|
3
|
+
#
|
|
4
|
+
# This file is part of NOMAD.
|
|
5
|
+
# See https://nomad-lab.eu for further info.
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
from . import asap
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright The NOMAD Authors.
|
|
3
|
+
#
|
|
4
|
+
# This file is part of NOMAD.
|
|
5
|
+
# See https://nomad-lab.eu for further info.
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
import numpy as np # pylint: disable=unused-import
|
|
20
|
+
import typing # pylint: disable=unused-import
|
|
21
|
+
from nomad.metainfo import ( # pylint: disable=unused-import
|
|
22
|
+
MSection,
|
|
23
|
+
MCategory,
|
|
24
|
+
Category,
|
|
25
|
+
Package,
|
|
26
|
+
Quantity,
|
|
27
|
+
Section,
|
|
28
|
+
SubSection,
|
|
29
|
+
SectionProxy,
|
|
30
|
+
Reference,
|
|
31
|
+
)
|
|
32
|
+
import simulationworkflowschema
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
m_package = Package()
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class MolecularDynamics(simulationworkflowschema.MolecularDynamics):
|
|
39
|
+
m_def = Section(validate=False, extends_base_section=True)
|
|
40
|
+
|
|
41
|
+
x_asap_langevin_friction = Quantity(
|
|
42
|
+
type=np.float64,
|
|
43
|
+
shape=[],
|
|
44
|
+
description="""
|
|
45
|
+
Friction coeffient used in Langevin dynamics
|
|
46
|
+
""",
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
x_asap_temperature = Quantity(
|
|
50
|
+
type=np.float64,
|
|
51
|
+
shape=[],
|
|
52
|
+
description="""
|
|
53
|
+
Temperature used in molecular-dynamics
|
|
54
|
+
""",
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
x_asap_timestep = Quantity(
|
|
58
|
+
type=np.float64,
|
|
59
|
+
shape=[],
|
|
60
|
+
description="""
|
|
61
|
+
Timestep in molecular dynamics
|
|
62
|
+
""",
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class GeometryOptimization(simulationworkflowschema.GeometryOptimization):
|
|
67
|
+
m_def = Section(validate=False, extends_base_section=True)
|
|
68
|
+
|
|
69
|
+
x_asap_maxstep = Quantity(
|
|
70
|
+
type=np.float64,
|
|
71
|
+
shape=[],
|
|
72
|
+
description="""
|
|
73
|
+
Maxstep in Angstrom for geometry optimization
|
|
74
|
+
""",
|
|
75
|
+
)
|