cyrusyc commited on
Commit
1925de9
·
1 Parent(s): 2613ace

cleanup notebooks

Browse files
mlip_arena/tasks/combustion/water.ipynb CHANGED
@@ -2,7 +2,7 @@
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
- "execution_count": 1,
6
  "metadata": {},
7
  "outputs": [
8
  {
@@ -27,7 +27,6 @@
27
  "from pymatgen.io.packmol import PackmolBoxGen\n",
28
  "\n",
29
  "from mlip_arena.models import REGISTRY, MLIPEnum\n",
30
- "\n",
31
  "from mlip_arena.tasks.md import run as MD"
32
  ]
33
  },
@@ -87,7 +86,7 @@
87
  },
88
  {
89
  "cell_type": "code",
90
- "execution_count": 6,
91
  "metadata": {},
92
  "outputs": [
93
  {
@@ -121,7 +120,7 @@
121
  "\n",
122
  "print(atoms)\n",
123
  "\n",
124
- "write(f'{atoms.get_chemical_formula()}.extxyz', atoms)"
125
  ]
126
  },
127
  {
@@ -153,7 +152,7 @@
153
  },
154
  {
155
  "cell_type": "code",
156
- "execution_count": 3,
157
  "metadata": {},
158
  "outputs": [
159
  {
@@ -213,29 +212,13 @@
213
  " f\"-N {nodes_per_alloc}\",\n",
214
  " \"-C gpu\",\n",
215
  " f\"-G {gpus_per_alloc}\",\n",
216
- " f\"--exclusive\",\n",
217
  " ],\n",
218
- " death_timeout=86400\n",
219
  ")\n",
220
  "\n",
221
  "cluster = SLURMCluster(**cluster_kwargs)\n",
222
  "\n",
223
- "# cluster_kwargs = {\n",
224
- "# \"cores\": 1,\n",
225
- "# \"memory\": \"64 GB\",\n",
226
- "# \"shebang\": \"#!/bin/bash\",\n",
227
- "# \"account\": \"matgen\",\n",
228
- "# \"walltime\": \"00:30:00\",\n",
229
- "# \"job_mem\": \"0\",\n",
230
- "# \"job_script_prologue\": [\n",
231
- "# \"source ~/.bashrc\",\n",
232
- "# \"module load python\",\n",
233
- "# \"source activate /pscratch/sd/c/cyrusyc/.conda/mlip-arena\",\n",
234
- "# ],\n",
235
- "# \"job_directives_skip\": [\"-n\", \"--cpus-per-task\", \"-J\"],\n",
236
- "# \"job_extra_directives\": [f\"-N {nodes_per_alloc}\", \"-q debug\", \"-C gpu\", \"-J combustion-water\"],\n",
237
- "# }\n",
238
- "# cluster = SLURMCluster(**cluster_kwargs)\n",
239
  "\n",
240
  "print(cluster.job_script())\n",
241
  "cluster.adapt(minimum_jobs=2, maximum_jobs=2)\n",
@@ -244,7 +227,7 @@
244
  },
245
  {
246
  "cell_type": "code",
247
- "execution_count": 4,
248
  "metadata": {},
249
  "outputs": [],
250
  "source": [
@@ -272,339 +255,19 @@
272
  " )\n",
273
  "\n",
274
  " futures.append(future)\n",
275
- " \n",
276
  " return [future.result() for future in futures]"
277
  ]
278
  },
279
  {
280
  "cell_type": "code",
281
- "execution_count": 5,
282
  "metadata": {
283
  "tags": []
284
  },
285
- "outputs": [
286
- {
287
- "data": {
288
- "text/html": [
289
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">12:01:53.150 | <span style=\"color: #008080; text-decoration-color: #008080\">INFO</span> | prefect.engine - Created flow run<span style=\"color: #800080; text-decoration-color: #800080\"> 'khaki-hippo'</span> for flow<span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\"> 'combustion'</span>\n",
290
- "</pre>\n"
291
- ],
292
- "text/plain": [
293
- "12:01:53.150 | \u001b[36mINFO\u001b[0m | prefect.engine - Created flow run\u001b[35m 'khaki-hippo'\u001b[0m for flow\u001b[1;35m 'combustion'\u001b[0m\n"
294
- ]
295
- },
296
- "metadata": {},
297
- "output_type": "display_data"
298
- },
299
- {
300
- "data": {
301
- "text/html": [
302
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">12:01:53.156 | <span style=\"color: #008080; text-decoration-color: #008080\">INFO</span> | prefect.engine - View at <span style=\"color: #0000ff; text-decoration-color: #0000ff\">https://app.prefect.cloud/account/f7d40474-9362-4bfa-8950-ee6a43ec00f3/workspace/d4bb0913-5f5e-49f7-bfc5-06509088baeb/runs/flow-run/ce836160-4f0d-49a4-90d8-227225cb8f4c</span>\n",
303
- "</pre>\n"
304
- ],
305
- "text/plain": [
306
- "12:01:53.156 | \u001b[36mINFO\u001b[0m | prefect.engine - View at \u001b[94mhttps://app.prefect.cloud/account/f7d40474-9362-4bfa-8950-ee6a43ec00f3/workspace/d4bb0913-5f5e-49f7-bfc5-06509088baeb/runs/flow-run/ce836160-4f0d-49a4-90d8-227225cb8f4c\u001b[0m\n"
307
- ]
308
- },
309
- "metadata": {},
310
- "output_type": "display_data"
311
- },
312
- {
313
- "data": {
314
- "text/html": [
315
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">12:01:53.523 | <span style=\"color: #008080; text-decoration-color: #008080\">INFO</span> | prefect.task_runner.dask - Connecting to existing Dask cluster SLURMCluster(99282258, 'tcp://128.55.64.15:38781', workers=0, threads=0, memory=0 B)\n",
316
- "</pre>\n"
317
- ],
318
- "text/plain": [
319
- "12:01:53.523 | \u001b[36mINFO\u001b[0m | prefect.task_runner.dask - Connecting to existing Dask cluster SLURMCluster(99282258, 'tcp://128.55.64.15:38781', workers=0, threads=0, memory=0 B)\n"
320
- ]
321
- },
322
- "metadata": {},
323
- "output_type": "display_data"
324
- },
325
- {
326
- "data": {
327
- "text/html": [
328
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">13:06:57.332 | <span style=\"color: #d70000; text-decoration-color: #d70000\">ERROR</span> | Flow run<span style=\"color: #800080; text-decoration-color: #800080\"> 'khaki-hippo'</span> - Encountered exception during execution: IndexError('too many indices for tensor of dimension 1')\n",
329
- "Traceback (most recent call last):\n",
330
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py\", line 652, in run_context\n",
331
- " yield self\n",
332
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py\", line 696, in run_flow_sync\n",
333
- " engine.call_flow_fn()\n",
334
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py\", line 675, in call_flow_fn\n",
335
- " result = call_with_parameters(self.flow.fn, self.parameters)\n",
336
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
337
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/callables.py\", line 206, in call_with_parameters\n",
338
- " return fn(*args, **kwargs)\n",
339
- " ^^^^^^^^^^^^^^^^^^^\n",
340
- " File \"/tmp/ipykernel_1849247/2043615938.py\", line 26, in combustion\n",
341
- " return [future.result() for future in futures]\n",
342
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
343
- " File \"/tmp/ipykernel_1849247/2043615938.py\", line 26, in &lt;listcomp&gt;\n",
344
- " return [future.result() for future in futures]\n",
345
- " ^^^^^^^^^^^^^^^\n",
346
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect_dask/task_runners.py\", line 143, in result\n",
347
- " _result = self._final_state.result(\n",
348
- " ^^^^^^^^^^^^^^^^^^^^^^^^^\n",
349
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/client/schemas/objects.py\", line 314, in result\n",
350
- " return get_state_result(\n",
351
- " ^^^^^^^^^^^^^^^^^\n",
352
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/states.py\", line 75, in get_state_result\n",
353
- " return _get_state_result(\n",
354
- " ^^^^^^^^^^^^^^^^^^\n",
355
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py\", line 399, in coroutine_wrapper\n",
356
- " return run_coro_as_sync(ctx_call())\n",
357
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
358
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py\", line 243, in run_coro_as_sync\n",
359
- " return call.result()\n",
360
- " ^^^^^^^^^^^^^\n",
361
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py\", line 312, in result\n",
362
- " return self.future.result(timeout=timeout)\n",
363
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
364
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py\", line 182, in result\n",
365
- " return self.__get_result()\n",
366
- " ^^^^^^^^^^^^^^^^^^^\n",
367
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/concurrent/futures/_base.py\", line 401, in __get_result\n",
368
- " raise self._exception\n",
369
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py\", line 383, in _run_async\n",
370
- " result = await coro\n",
371
- " ^^^^^^^^^^\n",
372
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py\", line 225, in coroutine_wrapper\n",
373
- " return await task\n",
374
- " ^^^^^^^^^^\n",
375
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py\", line 389, in ctx_call\n",
376
- " result = await async_fn(*args, **kwargs)\n",
377
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
378
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/states.py\", line 138, in _get_state_result\n",
379
- " raise await get_state_exception(state)\n",
380
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/task_engine.py\", line 763, in run_context\n",
381
- " yield self\n",
382
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/task_engine.py\", line 1323, in run_task_sync\n",
383
- " engine.call_task_fn(txn)\n",
384
- " ^^^^^^^^^^^^^^^^^\n",
385
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/task_engine.py\", line 786, in call_task_fn\n",
386
- " result = call_with_parameters(self.task.fn, parameters)\n",
387
- " ^^^^^^^^^^^^^^^^^\n",
388
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/callables.py\", line 206, in call_with_parameters\n",
389
- " return fn(*args, **kwargs)\n",
390
- " ^^^^^^^^^^^^^^^^^\n",
391
- " File \"/pscratch/sd/c/cyrusyc/mlip-arena/mlip_arena/tasks/md.py\", line 363, in run\n",
392
- " md_runner.run(steps=n_steps)\n",
393
- " ^^^^^^^^^^^^^^^^^\n",
394
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/md/npt.py\", line 277, in run\n",
395
- " self.initialize()\n",
396
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/md/npt.py\", line 399, in initialize\n",
397
- " self._calculate_q_past_and_future()\n",
398
- " ^^^^^^^^^^^^^^^^^\n",
399
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/md/npt.py\", line 608, in _calculate_q_past_and_future\n",
400
- " self._calculate_q_future(self.atoms.get_forces(md=True))\n",
401
- " ^^^^^^^^^^^^^^^^^\n",
402
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/atoms.py\", line 812, in get_forces\n",
403
- " forces = self._calc.get_forces(self)\n",
404
- " ^^^^^^^^^^^^^^^^^\n",
405
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/calculators/abc.py\", line 30, in get_forces\n",
406
- " return self.get_property('forces', atoms)\n",
407
- " ^^^^^^^^^^^^^^^^^\n",
408
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/calculators/calculator.py\", line 538, in get_property\n",
409
- " self.calculate(atoms, [name], system_changes)\n",
410
- " ^^^^^^^^^^^^^^^^^\n",
411
- " File \"/pscratch/sd/c/cyrusyc/mlip-arena/mlip_arena/models/externals/chgnet.py\", line 36, in calculate\n",
412
- " super().calculate(atoms, properties, system_changes)\n",
413
- " ^^^^^^^^^^^^^^^^^\n",
414
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/dynamics.py\", line 143, in calculate\n",
415
- " model_prediction = self.model.predict_graph(\n",
416
- " ^^^^^^^^^^^^^^^^^\n",
417
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/model.py\", line 627, in predict_graph\n",
418
- " prediction = self.forward(\n",
419
- " ^^^^^^^^^^^^^^^^^\n",
420
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/model.py\", line 359, in forward\n",
421
- " batched_graph = BatchedGraph.from_graphs(\n",
422
- " ^^^^^^^^^^^^^^^^^\n",
423
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/model.py\", line 822, in from_graphs\n",
424
- " center=atom_cart_coords[graph.atom_graph[:, 0]],\n",
425
- " ^^^^^^^^^^^^^^^^^\n",
426
- "IndexError: too many indices for tensor of dimension 1\n",
427
- "</pre>\n"
428
- ],
429
- "text/plain": [
430
- "13:06:57.332 | \u001b[38;5;160mERROR\u001b[0m | Flow run\u001b[35m 'khaki-hippo'\u001b[0m - Encountered exception during execution: IndexError('too many indices for tensor of dimension 1')\n",
431
- "Traceback (most recent call last):\n",
432
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py\", line 652, in run_context\n",
433
- " yield self\n",
434
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py\", line 696, in run_flow_sync\n",
435
- " engine.call_flow_fn()\n",
436
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py\", line 675, in call_flow_fn\n",
437
- " result = call_with_parameters(self.flow.fn, self.parameters)\n",
438
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
439
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/callables.py\", line 206, in call_with_parameters\n",
440
- " return fn(*args, **kwargs)\n",
441
- " ^^^^^^^^^^^^^^^^^^^\n",
442
- " File \"/tmp/ipykernel_1849247/2043615938.py\", line 26, in combustion\n",
443
- " return [future.result() for future in futures]\n",
444
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
445
- " File \"/tmp/ipykernel_1849247/2043615938.py\", line 26, in <listcomp>\n",
446
- " return [future.result() for future in futures]\n",
447
- " ^^^^^^^^^^^^^^^\n",
448
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect_dask/task_runners.py\", line 143, in result\n",
449
- " _result = self._final_state.result(\n",
450
- " ^^^^^^^^^^^^^^^^^^^^^^^^^\n",
451
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/client/schemas/objects.py\", line 314, in result\n",
452
- " return get_state_result(\n",
453
- " ^^^^^^^^^^^^^^^^^\n",
454
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/states.py\", line 75, in get_state_result\n",
455
- " return _get_state_result(\n",
456
- " ^^^^^^^^^^^^^^^^^^\n",
457
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py\", line 399, in coroutine_wrapper\n",
458
- " return run_coro_as_sync(ctx_call())\n",
459
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
460
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py\", line 243, in run_coro_as_sync\n",
461
- " return call.result()\n",
462
- " ^^^^^^^^^^^^^\n",
463
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py\", line 312, in result\n",
464
- " return self.future.result(timeout=timeout)\n",
465
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
466
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py\", line 182, in result\n",
467
- " return self.__get_result()\n",
468
- " ^^^^^^^^^^^^^^^^^^^\n",
469
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/concurrent/futures/_base.py\", line 401, in __get_result\n",
470
- " raise self._exception\n",
471
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py\", line 383, in _run_async\n",
472
- " result = await coro\n",
473
- " ^^^^^^^^^^\n",
474
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py\", line 225, in coroutine_wrapper\n",
475
- " return await task\n",
476
- " ^^^^^^^^^^\n",
477
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py\", line 389, in ctx_call\n",
478
- " result = await async_fn(*args, **kwargs)\n",
479
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
480
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/states.py\", line 138, in _get_state_result\n",
481
- " raise await get_state_exception(state)\n",
482
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/task_engine.py\", line 763, in run_context\n",
483
- " yield self\n",
484
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/task_engine.py\", line 1323, in run_task_sync\n",
485
- " engine.call_task_fn(txn)\n",
486
- " ^^^^^^^^^^^^^^^^^\n",
487
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/task_engine.py\", line 786, in call_task_fn\n",
488
- " result = call_with_parameters(self.task.fn, parameters)\n",
489
- " ^^^^^^^^^^^^^^^^^\n",
490
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/callables.py\", line 206, in call_with_parameters\n",
491
- " return fn(*args, **kwargs)\n",
492
- " ^^^^^^^^^^^^^^^^^\n",
493
- " File \"/pscratch/sd/c/cyrusyc/mlip-arena/mlip_arena/tasks/md.py\", line 363, in run\n",
494
- " md_runner.run(steps=n_steps)\n",
495
- " ^^^^^^^^^^^^^^^^^\n",
496
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/md/npt.py\", line 277, in run\n",
497
- " self.initialize()\n",
498
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/md/npt.py\", line 399, in initialize\n",
499
- " self._calculate_q_past_and_future()\n",
500
- " ^^^^^^^^^^^^^^^^^\n",
501
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/md/npt.py\", line 608, in _calculate_q_past_and_future\n",
502
- " self._calculate_q_future(self.atoms.get_forces(md=True))\n",
503
- " ^^^^^^^^^^^^^^^^^\n",
504
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/atoms.py\", line 812, in get_forces\n",
505
- " forces = self._calc.get_forces(self)\n",
506
- " ^^^^^^^^^^^^^^^^^\n",
507
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/calculators/abc.py\", line 30, in get_forces\n",
508
- " return self.get_property('forces', atoms)\n",
509
- " ^^^^^^^^^^^^^^^^^\n",
510
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/calculators/calculator.py\", line 538, in get_property\n",
511
- " self.calculate(atoms, [name], system_changes)\n",
512
- " ^^^^^^^^^^^^^^^^^\n",
513
- " File \"/pscratch/sd/c/cyrusyc/mlip-arena/mlip_arena/models/externals/chgnet.py\", line 36, in calculate\n",
514
- " super().calculate(atoms, properties, system_changes)\n",
515
- " ^^^^^^^^^^^^^^^^^\n",
516
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/dynamics.py\", line 143, in calculate\n",
517
- " model_prediction = self.model.predict_graph(\n",
518
- " ^^^^^^^^^^^^^^^^^\n",
519
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/model.py\", line 627, in predict_graph\n",
520
- " prediction = self.forward(\n",
521
- " ^^^^^^^^^^^^^^^^^\n",
522
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/model.py\", line 359, in forward\n",
523
- " batched_graph = BatchedGraph.from_graphs(\n",
524
- " ^^^^^^^^^^^^^^^^^\n",
525
- " File \"/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/model.py\", line 822, in from_graphs\n",
526
- " center=atom_cart_coords[graph.atom_graph[:, 0]],\n",
527
- " ^^^^^^^^^^^^^^^^^\n",
528
- "IndexError: too many indices for tensor of dimension 1\n"
529
- ]
530
- },
531
- "metadata": {},
532
- "output_type": "display_data"
533
- },
534
- {
535
- "data": {
536
- "text/html": [
537
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">13:06:58.009 | <span style=\"color: #d70000; text-decoration-color: #d70000\">ERROR</span> | Flow run<span style=\"color: #800080; text-decoration-color: #800080\"> 'khaki-hippo'</span> - Finished in state <span style=\"color: #d70000; text-decoration-color: #d70000\">Failed</span>('Flow run encountered an exception: IndexError: too many indices for tensor of dimension 1')\n",
538
- "</pre>\n"
539
- ],
540
- "text/plain": [
541
- "13:06:58.009 | \u001b[38;5;160mERROR\u001b[0m | Flow run\u001b[35m 'khaki-hippo'\u001b[0m - Finished in state \u001b[38;5;160mFailed\u001b[0m('Flow run encountered an exception: IndexError: too many indices for tensor of dimension 1')\n"
542
- ]
543
- },
544
- "metadata": {},
545
- "output_type": "display_data"
546
- },
547
- {
548
- "ename": "IndexError",
549
- "evalue": "too many indices for tensor of dimension 1",
550
- "output_type": "error",
551
- "traceback": [
552
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
553
- "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)",
554
- "Cell \u001b[0;32mIn[5], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[43mcombustion\u001b[49m\u001b[43m(\u001b[49m\u001b[43matoms\u001b[49m\u001b[43m)\u001b[49m\n",
555
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flows.py:1345\u001b[0m, in \u001b[0;36mFlow.__call__\u001b[0;34m(self, return_state, wait_for, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1341\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m track_viz_task(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39misasync, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mname, parameters)\n\u001b[1;32m 1343\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mprefect\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mflow_engine\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m run_flow\n\u001b[0;32m-> 1345\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mrun_flow\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1346\u001b[0m \u001b[43m \u001b[49m\u001b[43mflow\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1347\u001b[0m \u001b[43m \u001b[49m\u001b[43mparameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparameters\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1348\u001b[0m \u001b[43m \u001b[49m\u001b[43mwait_for\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mwait_for\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1349\u001b[0m \u001b[43m \u001b[49m\u001b[43mreturn_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreturn_type\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1350\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
556
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py:818\u001b[0m, in \u001b[0;36mrun_flow\u001b[0;34m(flow, flow_run, parameters, wait_for, return_type)\u001b[0m\n\u001b[1;32m 816\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m run_flow_async(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 817\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 818\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mrun_flow_sync\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
557
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py:698\u001b[0m, in \u001b[0;36mrun_flow_sync\u001b[0;34m(flow, flow_run, parameters, wait_for, return_type)\u001b[0m\n\u001b[1;32m 695\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m engine\u001b[38;5;241m.\u001b[39mrun_context():\n\u001b[1;32m 696\u001b[0m engine\u001b[38;5;241m.\u001b[39mcall_flow_fn()\n\u001b[0;32m--> 698\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m engine\u001b[38;5;241m.\u001b[39mstate \u001b[38;5;28;01mif\u001b[39;00m return_type \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstate\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m \u001b[43mengine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
558
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py:255\u001b[0m, in \u001b[0;36mFlowRunEngine.result\u001b[0;34m(self, raise_on_failure)\u001b[0m\n\u001b[1;32m 253\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_raised \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m NotSet:\n\u001b[1;32m 254\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m raise_on_failure:\n\u001b[0;32m--> 255\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_raised\n\u001b[1;32m 256\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_raised\n\u001b[1;32m 258\u001b[0m \u001b[38;5;66;03m# This is a fall through case which leans on the existing state result mechanics to get the\u001b[39;00m\n\u001b[1;32m 259\u001b[0m \u001b[38;5;66;03m# return value. This is necessary because we currently will return a State object if the\u001b[39;00m\n\u001b[1;32m 260\u001b[0m \u001b[38;5;66;03m# the State was Prefect-created.\u001b[39;00m\n\u001b[1;32m 261\u001b[0m \u001b[38;5;66;03m# TODO: Remove the need to get the result from a State except in cases where the return value\u001b[39;00m\n\u001b[1;32m 262\u001b[0m \u001b[38;5;66;03m# is a State object.\u001b[39;00m\n",
559
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py:652\u001b[0m, in \u001b[0;36mFlowRunEngine.run_context\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 645\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m timeout_context(\n\u001b[1;32m 646\u001b[0m seconds\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mflow\u001b[38;5;241m.\u001b[39mtimeout_seconds,\n\u001b[1;32m 647\u001b[0m timeout_exc_type\u001b[38;5;241m=\u001b[39mFlowRunTimeoutError,\n\u001b[1;32m 648\u001b[0m ):\n\u001b[1;32m 649\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlogger\u001b[38;5;241m.\u001b[39mdebug(\n\u001b[1;32m 650\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExecuting flow \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mflow\u001b[38;5;241m.\u001b[39mname\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m for flow run \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mflow_run\u001b[38;5;241m.\u001b[39mname\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m...\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 651\u001b[0m )\n\u001b[0;32m--> 652\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m \u001b[38;5;28mself\u001b[39m\n\u001b[1;32m 653\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTimeoutError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[1;32m 654\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandle_timeout(exc)\n",
560
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py:696\u001b[0m, in \u001b[0;36mrun_flow_sync\u001b[0;34m(flow, flow_run, parameters, wait_for, return_type)\u001b[0m\n\u001b[1;32m 694\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m engine\u001b[38;5;241m.\u001b[39mis_running():\n\u001b[1;32m 695\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m engine\u001b[38;5;241m.\u001b[39mrun_context():\n\u001b[0;32m--> 696\u001b[0m \u001b[43mengine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_flow_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 698\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m engine\u001b[38;5;241m.\u001b[39mstate \u001b[38;5;28;01mif\u001b[39;00m return_type \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstate\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m engine\u001b[38;5;241m.\u001b[39mresult()\n",
561
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/flow_engine.py:675\u001b[0m, in \u001b[0;36mFlowRunEngine.call_flow_fn\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 673\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _call_flow_fn()\n\u001b[1;32m 674\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 675\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mcall_with_parameters\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mflow\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparameters\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 676\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandle_success(result)\n",
562
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/callables.py:206\u001b[0m, in \u001b[0;36mcall_with_parameters\u001b[0;34m(fn, parameters)\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 199\u001b[0m \u001b[38;5;124;03mCall a function with parameters extracted with `get_call_parameters`\u001b[39;00m\n\u001b[1;32m 200\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 203\u001b[0m \u001b[38;5;124;03mthe args/kwargs using `parameters_to_positional_and_keyword` directly\u001b[39;00m\n\u001b[1;32m 204\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 205\u001b[0m args, kwargs \u001b[38;5;241m=\u001b[39m parameters_to_args_kwargs(fn, parameters)\n\u001b[0;32m--> 206\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
563
- "Cell \u001b[0;32mIn[4], line 26\u001b[0m, in \u001b[0;36mcombustion\u001b[0;34m(atoms)\u001b[0m\n\u001b[1;32m 6\u001b[0m future \u001b[38;5;241m=\u001b[39m MD\u001b[38;5;241m.\u001b[39msubmit(\n\u001b[1;32m 7\u001b[0m atoms\u001b[38;5;241m=\u001b[39matoms,\n\u001b[1;32m 8\u001b[0m calculator_name\u001b[38;5;241m=\u001b[39mmodel,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 21\u001b[0m restart\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 22\u001b[0m )\n\u001b[1;32m 24\u001b[0m futures\u001b[38;5;241m.\u001b[39mappend(future)\n\u001b[0;32m---> 26\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m[\u001b[49m\u001b[43mfuture\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mfuture\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mfutures\u001b[49m\u001b[43m]\u001b[49m\n",
564
- "Cell \u001b[0;32mIn[4], line 26\u001b[0m, in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 6\u001b[0m future \u001b[38;5;241m=\u001b[39m MD\u001b[38;5;241m.\u001b[39msubmit(\n\u001b[1;32m 7\u001b[0m atoms\u001b[38;5;241m=\u001b[39matoms,\n\u001b[1;32m 8\u001b[0m calculator_name\u001b[38;5;241m=\u001b[39mmodel,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 21\u001b[0m restart\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 22\u001b[0m )\n\u001b[1;32m 24\u001b[0m futures\u001b[38;5;241m.\u001b[39mappend(future)\n\u001b[0;32m---> 26\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m [\u001b[43mfuture\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m future \u001b[38;5;129;01min\u001b[39;00m futures]\n",
565
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect_dask/task_runners.py:143\u001b[0m, in \u001b[0;36mPrefectDaskFuture.result\u001b[0;34m(self, timeout, raise_on_failure)\u001b[0m\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m future_result\n\u001b[0;32m--> 143\u001b[0m _result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_final_state\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 144\u001b[0m \u001b[43m \u001b[49m\u001b[43mraise_on_failure\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mraise_on_failure\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfetch\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\n\u001b[1;32m 145\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 146\u001b[0m \u001b[38;5;66;03m# state.result is a `sync_compatible` function that may or may not return an awaitable\u001b[39;00m\n\u001b[1;32m 147\u001b[0m \u001b[38;5;66;03m# depending on whether the parent frame is sync or not\u001b[39;00m\n\u001b[1;32m 148\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39miscoroutine(_result):\n",
566
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/client/schemas/objects.py:314\u001b[0m, in \u001b[0;36mState.result\u001b[0;34m(self, raise_on_failure, fetch, retry_result_failure)\u001b[0m\n\u001b[1;32m 229\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 230\u001b[0m \u001b[38;5;124;03mRetrieve the result attached to this state.\u001b[39;00m\n\u001b[1;32m 231\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 310\u001b[0m \u001b[38;5;124;03m >>> await flow_run.state.result(raise_on_failure=True, fetch=True) # Raises `ValueError(\"oh no!\")`\u001b[39;00m\n\u001b[1;32m 311\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 312\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mprefect\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mstates\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m get_state_result\n\u001b[0;32m--> 314\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mget_state_result\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 315\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 316\u001b[0m \u001b[43m \u001b[49m\u001b[43mraise_on_failure\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mraise_on_failure\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 317\u001b[0m \u001b[43m \u001b[49m\u001b[43mfetch\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfetch\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 318\u001b[0m \u001b[43m \u001b[49m\u001b[43mretry_result_failure\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mretry_result_failure\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 319\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
567
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/states.py:75\u001b[0m, in \u001b[0;36mget_state_result\u001b[0;34m(state, raise_on_failure, fetch, retry_result_failure)\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m state\u001b[38;5;241m.\u001b[39mdata\n\u001b[1;32m 74\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m---> 75\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_get_state_result\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 76\u001b[0m \u001b[43m \u001b[49m\u001b[43mstate\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 77\u001b[0m \u001b[43m \u001b[49m\u001b[43mraise_on_failure\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mraise_on_failure\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 78\u001b[0m \u001b[43m \u001b[49m\u001b[43mretry_result_failure\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mretry_result_failure\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 79\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n",
568
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py:399\u001b[0m, in \u001b[0;36msync_compatible.<locals>.coroutine_wrapper\u001b[0;34m(_sync, *args, **kwargs)\u001b[0m\n\u001b[1;32m 397\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ctx_call()\n\u001b[1;32m 398\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 399\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mrun_coro_as_sync\u001b[49m\u001b[43m(\u001b[49m\u001b[43mctx_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n",
569
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py:243\u001b[0m, in \u001b[0;36mrun_coro_as_sync\u001b[0;34m(coroutine, force_new_thread, wait_for_result)\u001b[0m\n\u001b[1;32m 241\u001b[0m runner\u001b[38;5;241m.\u001b[39msubmit(call)\n\u001b[1;32m 242\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 243\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcall\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 244\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyboardInterrupt\u001b[39;00m:\n\u001b[1;32m 245\u001b[0m call\u001b[38;5;241m.\u001b[39mcancel()\n",
570
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py:312\u001b[0m, in \u001b[0;36mCall.result\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 306\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mresult\u001b[39m(\u001b[38;5;28mself\u001b[39m, timeout: Optional[\u001b[38;5;28mfloat\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m T:\n\u001b[1;32m 307\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 308\u001b[0m \u001b[38;5;124;03m Wait for the result of the call.\u001b[39;00m\n\u001b[1;32m 309\u001b[0m \n\u001b[1;32m 310\u001b[0m \u001b[38;5;124;03m Not safe for use from asynchronous contexts.\u001b[39;00m\n\u001b[1;32m 311\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 312\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfuture\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n",
571
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py:182\u001b[0m, in \u001b[0;36mFuture.result\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 180\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n\u001b[1;32m 181\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;241m==\u001b[39m FINISHED:\n\u001b[0;32m--> 182\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__get_result\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 183\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 184\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTimeoutError\u001b[39;00m()\n",
572
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/concurrent/futures/_base.py:401\u001b[0m, in \u001b[0;36mFuture.__get_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 399\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception:\n\u001b[1;32m 400\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 401\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\n\u001b[1;32m 402\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 403\u001b[0m \u001b[38;5;66;03m# Break a reference cycle with the exception in self._exception\u001b[39;00m\n\u001b[1;32m 404\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
573
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py:383\u001b[0m, in \u001b[0;36mCall._run_async\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 381\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfuture\u001b[38;5;241m.\u001b[39menforce_async_deadline() \u001b[38;5;28;01mas\u001b[39;00m cancel_scope:\n\u001b[1;32m 382\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 383\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m coro\n\u001b[1;32m 384\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 385\u001b[0m \u001b[38;5;66;03m# Forget this call's arguments in order to free up any memory\u001b[39;00m\n\u001b[1;32m 386\u001b[0m \u001b[38;5;66;03m# that may be referenced by them; after a call has happened,\u001b[39;00m\n\u001b[1;32m 387\u001b[0m \u001b[38;5;66;03m# there's no need to keep a reference to them\u001b[39;00m\n\u001b[1;32m 388\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39margs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
574
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py:225\u001b[0m, in \u001b[0;36mrun_coro_as_sync.<locals>.coroutine_wrapper\u001b[0;34m()\u001b[0m\n\u001b[1;32m 223\u001b[0m task \u001b[38;5;241m=\u001b[39m create_task(coroutine)\n\u001b[1;32m 224\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m wait_for_result:\n\u001b[0;32m--> 225\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m task\n\u001b[1;32m 226\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 227\u001b[0m RUNNING_IN_RUN_SYNC_LOOP_FLAG\u001b[38;5;241m.\u001b[39mreset(token1)\n",
575
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/asyncutils.py:389\u001b[0m, in \u001b[0;36msync_compatible.<locals>.coroutine_wrapper.<locals>.ctx_call\u001b[0;34m()\u001b[0m\n\u001b[1;32m 387\u001b[0m token \u001b[38;5;241m=\u001b[39m RUNNING_ASYNC_FLAG\u001b[38;5;241m.\u001b[39mset(\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 388\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 389\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m async_fn(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 391\u001b[0m RUNNING_ASYNC_FLAG\u001b[38;5;241m.\u001b[39mreset(token)\n",
576
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/states.py:138\u001b[0m, in \u001b[0;36m_get_state_result\u001b[0;34m(state, raise_on_failure, retry_result_failure)\u001b[0m\n\u001b[1;32m 131\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m UnfinishedRun(\n\u001b[1;32m 132\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRun is in \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mstate\u001b[38;5;241m.\u001b[39mtype\u001b[38;5;241m.\u001b[39mname\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m state, its result is not available.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 133\u001b[0m )\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m raise_on_failure \u001b[38;5;129;01mand\u001b[39;00m (\n\u001b[1;32m 136\u001b[0m state\u001b[38;5;241m.\u001b[39mis_crashed() \u001b[38;5;129;01mor\u001b[39;00m state\u001b[38;5;241m.\u001b[39mis_failed() \u001b[38;5;129;01mor\u001b[39;00m state\u001b[38;5;241m.\u001b[39mis_cancelled()\n\u001b[1;32m 137\u001b[0m ):\n\u001b[0;32m--> 138\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m get_state_exception(state)\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(state\u001b[38;5;241m.\u001b[39mdata, (BaseResult, ResultRecordMetadata)):\n\u001b[1;32m 141\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m _get_state_result_data_with_retries(\n\u001b[1;32m 142\u001b[0m state, retry_result_failure\u001b[38;5;241m=\u001b[39mretry_result_failure\n\u001b[1;32m 143\u001b[0m )\n",
577
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/task_engine.py:763\u001b[0m, in \u001b[0;36mrun_context\u001b[0;34m()\u001b[0m\n\u001b[1;32m 760\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mis_cancelled():\n\u001b[1;32m 761\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTask run cancelled by the task runner\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 763\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m \u001b[38;5;28mself\u001b[39m\n\u001b[1;32m 764\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTimeoutError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[1;32m 765\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandle_timeout(exc)\n",
578
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/task_engine.py:1323\u001b[0m, in \u001b[0;36mrun_task_sync\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1321\u001b[0m run_coro_as_sync(engine\u001b[38;5;241m.\u001b[39mwait_until_ready())\n\u001b[1;32m 1322\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m engine\u001b[38;5;241m.\u001b[39mrun_context(), engine\u001b[38;5;241m.\u001b[39mtransaction_context() \u001b[38;5;28;01mas\u001b[39;00m txn:\n\u001b[0;32m-> 1323\u001b[0m engine\u001b[38;5;241m.\u001b[39mcall_task_fn(txn)\n\u001b[1;32m 1325\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m engine\u001b[38;5;241m.\u001b[39mstate \u001b[38;5;28;01mif\u001b[39;00m return_type \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstate\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m engine\u001b[38;5;241m.\u001b[39mresult()\n",
579
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/task_engine.py:786\u001b[0m, in \u001b[0;36mcall_task_fn\u001b[0;34m()\u001b[0m\n\u001b[1;32m 784\u001b[0m result \u001b[38;5;241m=\u001b[39m call_with_parameters(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtask\u001b[38;5;241m.\u001b[39mfn, parameters)\n\u001b[1;32m 785\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 786\u001b[0m result \u001b[38;5;241m=\u001b[39m call_with_parameters(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtask\u001b[38;5;241m.\u001b[39mfn, parameters)\n\u001b[1;32m 787\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandle_success(result, transaction\u001b[38;5;241m=\u001b[39mtransaction)\n\u001b[1;32m 788\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m result\n",
580
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/prefect/utilities/callables.py:206\u001b[0m, in \u001b[0;36mcall_with_parameters\u001b[0;34m()\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 199\u001b[0m \u001b[38;5;124;03mCall a function with parameters extracted with `get_call_parameters`\u001b[39;00m\n\u001b[1;32m 200\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 203\u001b[0m \u001b[38;5;124;03mthe args/kwargs using `parameters_to_positional_and_keyword` directly\u001b[39;00m\n\u001b[1;32m 204\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 205\u001b[0m args, kwargs \u001b[38;5;241m=\u001b[39m parameters_to_args_kwargs(fn, parameters)\n\u001b[0;32m--> 206\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n",
581
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/mlip-arena/mlip_arena/tasks/md.py:363\u001b[0m, in \u001b[0;36mrun\u001b[0;34m()\u001b[0m\n\u001b[1;32m 360\u001b[0m md_runner\u001b[38;5;241m.\u001b[39mattach(_callback, interval\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 362\u001b[0m start_time \u001b[38;5;241m=\u001b[39m datetime\u001b[38;5;241m.\u001b[39mnow()\n\u001b[0;32m--> 363\u001b[0m md_runner\u001b[38;5;241m.\u001b[39mrun(steps\u001b[38;5;241m=\u001b[39mn_steps)\n\u001b[1;32m 364\u001b[0m end_time \u001b[38;5;241m=\u001b[39m datetime\u001b[38;5;241m.\u001b[39mnow()\n\u001b[1;32m 366\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m traj_file \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
582
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/md/npt.py:277\u001b[0m, in \u001b[0;36mrun\u001b[0;34m()\u001b[0m\n\u001b[1;32m 275\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Perform a number of time steps.\"\"\"\u001b[39;00m\n\u001b[1;32m 276\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minitialized:\n\u001b[0;32m--> 277\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minitialize()\n\u001b[1;32m 278\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 279\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhave_the_atoms_been_changed():\n",
583
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/md/npt.py:399\u001b[0m, in \u001b[0;36minitialize\u001b[0;34m()\u001b[0m\n\u001b[1;32m 396\u001b[0m deltazeta \u001b[38;5;241m=\u001b[39m dt \u001b[38;5;241m*\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtfact \u001b[38;5;241m*\u001b[39m (atoms\u001b[38;5;241m.\u001b[39mget_kinetic_energy() \u001b[38;5;241m-\u001b[39m\n\u001b[1;32m 397\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdesiredEkin)\n\u001b[1;32m 398\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mzeta_past \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mzeta \u001b[38;5;241m-\u001b[39m deltazeta\n\u001b[0;32m--> 399\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_calculate_q_past_and_future()\n\u001b[1;32m 400\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minitialized \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n",
584
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/md/npt.py:608\u001b[0m, in \u001b[0;36m_calculate_q_past_and_future\u001b[0;34m()\u001b[0m\n\u001b[1;32m 606\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m2\u001b[39m):\n\u001b[1;32m 607\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mq_past \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mq \u001b[38;5;241m-\u001b[39m dt \u001b[38;5;241m*\u001b[39m np\u001b[38;5;241m.\u001b[39mdot(p \u001b[38;5;241m/\u001b[39m m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minv_h)\n\u001b[0;32m--> 608\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_calculate_q_future(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39matoms\u001b[38;5;241m.\u001b[39mget_forces(md\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m))\n\u001b[1;32m 609\u001b[0m p \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mdot(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mq_future \u001b[38;5;241m-\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mq_past, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mh \u001b[38;5;241m/\u001b[39m (\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m*\u001b[39m dt)) \u001b[38;5;241m*\u001b[39m m\n\u001b[1;32m 610\u001b[0m e \u001b[38;5;241m=\u001b[39m ekin(p)\n",
585
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/atoms.py:812\u001b[0m, in \u001b[0;36mget_forces\u001b[0;34m()\u001b[0m\n\u001b[1;32m 810\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_calc \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 811\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mAtoms object has no calculator.\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m--> 812\u001b[0m forces \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_calc\u001b[38;5;241m.\u001b[39mget_forces(\u001b[38;5;28mself\u001b[39m)\n\u001b[1;32m 814\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m apply_constraint:\n\u001b[1;32m 815\u001b[0m \u001b[38;5;66;03m# We need a special md flag here because for MD we want\u001b[39;00m\n\u001b[1;32m 816\u001b[0m \u001b[38;5;66;03m# to skip real constraints but include special \"constraints\"\u001b[39;00m\n\u001b[1;32m 817\u001b[0m \u001b[38;5;66;03m# Like Hookean.\u001b[39;00m\n\u001b[1;32m 818\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m constraint \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconstraints:\n",
586
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/calculators/abc.py:30\u001b[0m, in \u001b[0;36mget_forces\u001b[0;34m()\u001b[0m\n\u001b[1;32m 29\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget_forces\u001b[39m(\u001b[38;5;28mself\u001b[39m, atoms\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m---> 30\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_property(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mforces\u001b[39m\u001b[38;5;124m'\u001b[39m, atoms)\n",
587
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/ase/calculators/calculator.py:538\u001b[0m, in \u001b[0;36mget_property\u001b[0;34m()\u001b[0m\n\u001b[1;32m 535\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39muse_cache:\n\u001b[1;32m 536\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39matoms \u001b[38;5;241m=\u001b[39m atoms\u001b[38;5;241m.\u001b[39mcopy()\n\u001b[0;32m--> 538\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcalculate(atoms, [name], system_changes)\n\u001b[1;32m 540\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mresults:\n\u001b[1;32m 541\u001b[0m \u001b[38;5;66;03m# For some reason the calculator was not able to do what we want,\u001b[39;00m\n\u001b[1;32m 542\u001b[0m \u001b[38;5;66;03m# and that is OK.\u001b[39;00m\n\u001b[1;32m 543\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m PropertyNotImplementedError(\n\u001b[1;32m 544\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m not present in this \u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcalculation\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m.\u001b[39mformat(name)\n\u001b[1;32m 545\u001b[0m )\n",
588
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/mlip-arena/mlip_arena/models/externals/chgnet.py:36\u001b[0m, in \u001b[0;36mcalculate\u001b[0;34m()\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcalculate\u001b[39m(\n\u001b[1;32m 31\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 32\u001b[0m atoms: Atoms \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 33\u001b[0m properties: \u001b[38;5;28mlist\u001b[39m \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 34\u001b[0m system_changes: \u001b[38;5;28mlist\u001b[39m \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 35\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m---> 36\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39mcalculate(atoms, properties, system_changes)\n\u001b[1;32m 38\u001b[0m \u001b[38;5;66;03m# for ase.io.write compatibility\u001b[39;00m\n\u001b[1;32m 39\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mresults\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcrystal_fea\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n",
589
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/dynamics.py:143\u001b[0m, in \u001b[0;36mcalculate\u001b[0;34m()\u001b[0m\n\u001b[1;32m 141\u001b[0m structure \u001b[38;5;241m=\u001b[39m AseAtomsAdaptor\u001b[38;5;241m.\u001b[39mget_structure(atoms)\n\u001b[1;32m 142\u001b[0m graph \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmodel\u001b[38;5;241m.\u001b[39mgraph_converter(structure)\n\u001b[0;32m--> 143\u001b[0m model_prediction \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmodel\u001b[38;5;241m.\u001b[39mpredict_graph(\n\u001b[1;32m 144\u001b[0m graph\u001b[38;5;241m.\u001b[39mto(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdevice), task\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mefsm\u001b[39m\u001b[38;5;124m\"\u001b[39m, return_crystal_feas\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 145\u001b[0m )\n\u001b[1;32m 147\u001b[0m \u001b[38;5;66;03m# Convert Result\u001b[39;00m\n\u001b[1;32m 148\u001b[0m factor \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmodel\u001b[38;5;241m.\u001b[39mis_intensive \u001b[38;5;28;01melse\u001b[39;00m structure\u001b[38;5;241m.\u001b[39mcomposition\u001b[38;5;241m.\u001b[39mnum_atoms\n",
590
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/model.py:627\u001b[0m, in \u001b[0;36mpredict_graph\u001b[0;34m()\u001b[0m\n\u001b[1;32m 625\u001b[0m n_steps \u001b[38;5;241m=\u001b[39m math\u001b[38;5;241m.\u001b[39mceil(\u001b[38;5;28mlen\u001b[39m(graphs) \u001b[38;5;241m/\u001b[39m batch_size)\n\u001b[1;32m 626\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m step \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(n_steps):\n\u001b[0;32m--> 627\u001b[0m prediction \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mforward(\n\u001b[1;32m 628\u001b[0m [\n\u001b[1;32m 629\u001b[0m g\u001b[38;5;241m.\u001b[39mto(model_device)\n\u001b[1;32m 630\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m g \u001b[38;5;129;01min\u001b[39;00m graphs[batch_size \u001b[38;5;241m*\u001b[39m step : batch_size \u001b[38;5;241m*\u001b[39m (step \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m)]\n\u001b[1;32m 631\u001b[0m ],\n\u001b[1;32m 632\u001b[0m task\u001b[38;5;241m=\u001b[39mtask,\n\u001b[1;32m 633\u001b[0m return_site_energies\u001b[38;5;241m=\u001b[39mreturn_site_energies,\n\u001b[1;32m 634\u001b[0m return_atom_feas\u001b[38;5;241m=\u001b[39mreturn_atom_feas,\n\u001b[1;32m 635\u001b[0m return_crystal_feas\u001b[38;5;241m=\u001b[39mreturn_crystal_feas,\n\u001b[1;32m 636\u001b[0m )\n\u001b[1;32m 637\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key \u001b[38;5;129;01min\u001b[39;00m {\n\u001b[1;32m 638\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124me\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 639\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 644\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcrystal_fea\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 645\u001b[0m } \u001b[38;5;241m&\u001b[39m {\u001b[38;5;241m*\u001b[39mprediction}:\n\u001b[1;32m 646\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m idx, tensor \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(prediction[key]):\n",
591
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/model.py:359\u001b[0m, in \u001b[0;36mforward\u001b[0;34m()\u001b[0m\n\u001b[1;32m 354\u001b[0m comp_energy \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 355\u001b[0m \u001b[38;5;241m0\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomposition_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomposition_model(graphs)\n\u001b[1;32m 356\u001b[0m )\n\u001b[1;32m 358\u001b[0m \u001b[38;5;66;03m# Make batched graph\u001b[39;00m\n\u001b[0;32m--> 359\u001b[0m batched_graph \u001b[38;5;241m=\u001b[39m BatchedGraph\u001b[38;5;241m.\u001b[39mfrom_graphs(\n\u001b[1;32m 360\u001b[0m graphs,\n\u001b[1;32m 361\u001b[0m bond_basis_expansion\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbond_basis_expansion,\n\u001b[1;32m 362\u001b[0m angle_basis_expansion\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mangle_basis_expansion,\n\u001b[1;32m 363\u001b[0m compute_stress\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ms\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m task,\n\u001b[1;32m 364\u001b[0m )\n\u001b[1;32m 366\u001b[0m \u001b[38;5;66;03m# Pass to model\u001b[39;00m\n\u001b[1;32m 367\u001b[0m prediction \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compute(\n\u001b[1;32m 368\u001b[0m batched_graph,\n\u001b[1;32m 369\u001b[0m compute_force\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m task,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 374\u001b[0m return_crystal_feas\u001b[38;5;241m=\u001b[39mreturn_crystal_feas,\n\u001b[1;32m 375\u001b[0m )\n",
592
- "File \u001b[0;32m/pscratch/sd/c/cyrusyc/.conda/mlip-arena/lib/python3.11/site-packages/chgnet/model/model.py:822\u001b[0m, in \u001b[0;36mfrom_graphs\u001b[0;34m()\u001b[0m\n\u001b[1;32m 819\u001b[0m \u001b[38;5;66;03m# Bonds\u001b[39;00m\n\u001b[1;32m 820\u001b[0m atom_cart_coords \u001b[38;5;241m=\u001b[39m graph\u001b[38;5;241m.\u001b[39matom_frac_coord \u001b[38;5;241m@\u001b[39m lattice\n\u001b[1;32m 821\u001b[0m bond_basis_ag, bond_basis_bg, bond_vectors \u001b[38;5;241m=\u001b[39m bond_basis_expansion(\n\u001b[0;32m--> 822\u001b[0m center\u001b[38;5;241m=\u001b[39matom_cart_coords[graph\u001b[38;5;241m.\u001b[39matom_graph[:, \u001b[38;5;241m0\u001b[39m]],\n\u001b[1;32m 823\u001b[0m neighbor\u001b[38;5;241m=\u001b[39matom_cart_coords[graph\u001b[38;5;241m.\u001b[39matom_graph[:, \u001b[38;5;241m1\u001b[39m]],\n\u001b[1;32m 824\u001b[0m undirected2directed\u001b[38;5;241m=\u001b[39mgraph\u001b[38;5;241m.\u001b[39mundirected2directed,\n\u001b[1;32m 825\u001b[0m image\u001b[38;5;241m=\u001b[39mgraph\u001b[38;5;241m.\u001b[39mneighbor_image,\n\u001b[1;32m 826\u001b[0m lattice\u001b[38;5;241m=\u001b[39mlattice,\n\u001b[1;32m 827\u001b[0m )\n\u001b[1;32m 828\u001b[0m atom_positions\u001b[38;5;241m.\u001b[39mappend(atom_cart_coords)\n\u001b[1;32m 829\u001b[0m bond_bases_ag\u001b[38;5;241m.\u001b[39mappend(bond_basis_ag)\n",
593
- "\u001b[0;31mIndexError\u001b[0m: too many indices for tensor of dimension 1"
594
- ]
595
- }
596
- ],
597
- "source": [
598
- "results = combustion(atoms)"
599
- ]
600
- },
601
- {
602
- "cell_type": "code",
603
- "execution_count": null,
604
- "metadata": {},
605
  "outputs": [],
606
  "source": [
607
- "mlip_arena"
608
  ]
609
  }
610
  ],
 
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
+ "execution_count": null,
6
  "metadata": {},
7
  "outputs": [
8
  {
 
27
  "from pymatgen.io.packmol import PackmolBoxGen\n",
28
  "\n",
29
  "from mlip_arena.models import REGISTRY, MLIPEnum\n",
 
30
  "from mlip_arena.tasks.md import run as MD"
31
  ]
32
  },
 
86
  },
87
  {
88
  "cell_type": "code",
89
+ "execution_count": null,
90
  "metadata": {},
91
  "outputs": [
92
  {
 
120
  "\n",
121
  "print(atoms)\n",
122
  "\n",
123
+ "write(f\"{atoms.get_chemical_formula()}.extxyz\", atoms)"
124
  ]
125
  },
126
  {
 
152
  },
153
  {
154
  "cell_type": "code",
155
+ "execution_count": null,
156
  "metadata": {},
157
  "outputs": [
158
  {
 
212
  " f\"-N {nodes_per_alloc}\",\n",
213
  " \"-C gpu\",\n",
214
  " f\"-G {gpus_per_alloc}\",\n",
215
+ " \"--exclusive\",\n",
216
  " ],\n",
217
+ " death_timeout=86400,\n",
218
  ")\n",
219
  "\n",
220
  "cluster = SLURMCluster(**cluster_kwargs)\n",
221
  "\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
222
  "\n",
223
  "print(cluster.job_script())\n",
224
  "cluster.adapt(minimum_jobs=2, maximum_jobs=2)\n",
 
227
  },
228
  {
229
  "cell_type": "code",
230
+ "execution_count": null,
231
  "metadata": {},
232
  "outputs": [],
233
  "source": [
 
255
  " )\n",
256
  "\n",
257
  " futures.append(future)\n",
258
+ "\n",
259
  " return [future.result() for future in futures]"
260
  ]
261
  },
262
  {
263
  "cell_type": "code",
264
+ "execution_count": null,
265
  "metadata": {
266
  "tags": []
267
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  "outputs": [],
269
  "source": [
270
+ "results = combustion(atoms)"
271
  ]
272
  }
273
  ],