diff --git a/run/ase.out b/run/ase.out new file mode 100644 index 00000000000..da19eec7801 --- /dev/null +++ b/run/ase.out @@ -0,0 +1,6 @@ +[[0. 0. 0.] + [0. 0. 0.] + [0. 0. 0.]] +[[ 0.00472265 -0.04234225 0.00117085] + [-0.0068226 0.04441525 -0.00405104] + [ 0.00209995 -0.00207301 0.00288018]] diff --git a/run/compile.txt b/run/compile.txt new file mode 100644 index 00000000000..4823159c0fb --- /dev/null +++ b/run/compile.txt @@ -0,0 +1 @@ +cmake ../cmake/ -DPKG_ML-METATOMIC=ON -DCMAKE_PREFIX_PATH=../../libtorch/share/cmake/ diff --git a/run/convert.py b/run/convert.py new file mode 100644 index 00000000000..588cd71b759 --- /dev/null +++ b/run/convert.py @@ -0,0 +1,5 @@ +import ase.io + + +atoms = ase.io.read("water-128.xyz") +ase.io.write("water-128.lmp", atoms, format="lammps-data") diff --git a/run/dump_water.py b/run/dump_water.py new file mode 100644 index 00000000000..a762b20945d --- /dev/null +++ b/run/dump_water.py @@ -0,0 +1,45 @@ +import ase.build +import ase.units +from ase.md.velocitydistribution import MaxwellBoltzmannDistribution +import torch +from metatomic.torch.ase_calculator import MetatomicCalculator + +from flashmd import get_pretrained +from flashmd.ase.velocity_verlet import VelocityVerlet + + +# Choose your time step (go for 10-30x what you would use in normal MD for your system) +time_step = 8 # 64 fs; also available: 1, 2, 4, 8, 16, 32, 128 fs + +# Create a structure and initialize velocities +atoms = ase.build.molecule("H2O") +import ase.io +atoms.cell = [100.0, 100.0, 100.0] +atoms.pbc = [True, True, True] +atoms.center() +ase.io.write("water-1.xyz", atoms) +ase.io.write("water-1.lmp", atoms, format="lammps-data") +# MaxwellBoltzmannDistribution(atoms, temperature_K=300) +atoms.set_velocities( # it is generally a good idea to remove any net velocity + atoms.get_velocities() - atoms.get_momenta().sum(axis=0) / atoms.get_masses().sum() +) + +# Load models +device="cuda" if torch.cuda.is_available() else "cpu" +energy_model, flashmd_model = get_pretrained("pet-omatpes", time_step) + +calculator = MetatomicCalculator(energy_model, device=device) +atoms.calc = calculator + +# Run MD +dyn = VelocityVerlet( + atoms=atoms, + timestep=time_step*ase.units.fs, + model=flashmd_model, + rescale_energy=False, + random_rotation=False, +) + +print(atoms.get_momenta()) +dyn.run(1) +print(atoms.get_momenta()) diff --git a/run/error.log b/run/error.log new file mode 100644 index 00000000000..b038565232d --- /dev/null +++ b/run/error.log @@ -0,0 +1,19 @@ +Traceback (most recent call last): + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/__main__.py", line 95, in main + export_model(**args.__dict__) + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/cli/export.py", line 157, in export_model + model = load_model(path=path, hf_token=hf_token) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/utils/io.py", line 169, in load_model + return model_from_checkpoint(checkpoint, context="export") + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/utils/io.py", line 227, in model_from_checkpoint + return architecture.__model__.load_checkpoint(checkpoint, context=context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/pet/model.py", line 1135, in load_checkpoint + model = apply_finetuning_strategy(model, finetune_config) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/pet/modules/finetuning.py", line 84, in apply_finetuning_strategy + inherit_heads_config = strategy["inherit_heads"] + ~~~~~~~~^^^^^^^^^^^^^^^^^ +KeyError: 'inherit_heads' diff --git a/run/flash.py b/run/flash.py new file mode 100644 index 00000000000..fa016165e75 --- /dev/null +++ b/run/flash.py @@ -0,0 +1,39 @@ +import ase.build +import ase.units +from ase.md.velocitydistribution import MaxwellBoltzmannDistribution +import torch +from metatomic.torch.ase_calculator import MetatomicCalculator + +from flashmd import get_pretrained +from flashmd.ase.langevin import Langevin + + +# Choose your time step (go for 10-30x what you would use in normal MD for your system) +time_step = 8 # 64 fs; also available: 1, 2, 4, 8, 16, 32, 128 fs + +# Create a structure and initialize velocities +import ase.io +atoms = ase.io.read("water-128.xyz") +MaxwellBoltzmannDistribution(atoms, temperature_K=300) +atoms.set_velocities( # it is generally a good idea to remove any net velocity + atoms.get_velocities() - atoms.get_momenta().sum(axis=0) / atoms.get_masses().sum() +) + +# Load models +device="cuda" if torch.cuda.is_available() else "cpu" +energy_model, flashmd_model = get_pretrained("pet-omatpes", time_step) + +calculator = MetatomicCalculator(energy_model, device=device) +atoms.calc = calculator + +# Run MD +dyn = Langevin( + atoms=atoms, + timestep=time_step*ase.units.fs, + temperature_K=300, + time_constant=100*ase.units.fs, + model=flashmd_model, + device=device +) +dyn.attach(lambda: print(atoms.get_temperature()), interval=1) +dyn.run(1000) diff --git a/run/flashmd.in b/run/flashmd.in new file mode 100644 index 00000000000..dae5056f988 --- /dev/null +++ b/run/flashmd.in @@ -0,0 +1,28 @@ +units metal + +atom_style atomic + +read_data water-128.lmp + +comm_modify cutoff 20.0 + +mass 1 1.008 +mass 2 15.999 + +# pair_style metatomic mlip.pt device cuda non_conservative off +# pair_coeff * * 1 8 + +run_style verlet + +timestep 0.008 + +thermo 1 + +velocity all create 300 87287 mom no rot no dist gaussian + +# fix 1 all nve +fix 1 all metatomic flashmd.pt types 1 8 energy doesnt-exist.pt device cuda rescale_energy on +# fix 2 all langevin 300.0 300.0 0.1 12345 +# fix 3 all press/langevin iso 1.0 1.0 10.0 temp 300 300 67890 + +run 1000 diff --git a/run/from_python.py b/run/from_python.py new file mode 100644 index 00000000000..5d538d9ac49 --- /dev/null +++ b/run/from_python.py @@ -0,0 +1,69 @@ +from metatomic.torch import load_atomistic_model, ModelOutput, ModelEvaluationOptions +from metatomic.torch import systems_to_torch +import ase.io +from metatrain.utils.neighbor_lists import get_system_with_neighbor_lists +from metatensor.torch import TensorMap, TensorBlock, Labels +import torch +from ase.md.velocitydistribution import MaxwellBoltzmannDistribution + + +model = load_atomistic_model("flashmd.pt").to("cuda") +atoms = ase.io.read("water-1.xyz") +MaxwellBoltzmannDistribution(atoms, temperature_K=300) +system = systems_to_torch(atoms, device="cuda") +system = get_system_with_neighbor_lists(system, model.requested_neighbor_lists()) + +system.add_data( + "masses", + TensorMap( + Labels.single(), + [ + TensorBlock( + values=torch.tensor(atoms.get_masses()[:, None], dtype=torch.float32), + samples=Labels( + ["system", "atom"], + torch.tensor([[0, i] for i in range(len(system))]), + ), + components=[], + properties=Labels.single(), + ) + ] + ).to(system.device) +) + +system.add_data( + "momenta", + TensorMap( + Labels.single(), + [ + TensorBlock( + values=torch.tensor(atoms.get_momenta()[:, :, None], dtype=torch.float32), + samples=Labels( + ["system", "atom"], + torch.tensor([[0, i] for i in range(len(system))]), + ), + components=[Labels(["xyz"], torch.tensor([[0], [1], [2]]))], + properties=Labels.single(), + ) + ] + ).to(system.device) +) + +# print(system.positions) +# print(system.get_data("masses").block().values) +print(system.get_data("momenta").block().values) +# print(system.types) +# print(system.cell) +# print(system.pbc) + +options = ModelEvaluationOptions( + length_unit="angstrom", + outputs={ + "positions": ModelOutput(unit="angstrom", per_atom=True), + "momenta": ModelOutput(unit="(eV*u)^1/2", per_atom=True), + } +) + +outputs = model([system], options, check_consistency=True) +# print(outputs["positions"].block().values) +print(outputs["momenta"].block().values) diff --git a/run/get_flashmd.py b/run/get_flashmd.py new file mode 100644 index 00000000000..ea9e32d45b7 --- /dev/null +++ b/run/get_flashmd.py @@ -0,0 +1,3 @@ +from flashmd import get_pretrained + +energy_model, flashmd_model = get_pretrained("pet-omatpes", 8) diff --git a/run/lammps-2.out b/run/lammps-2.out new file mode 100644 index 00000000000..625829783d3 --- /dev/null +++ b/run/lammps-2.out @@ -0,0 +1,1148 @@ +LAMMPS (10 Sep 2025) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. + using 1 OpenMP thread(s) per MPI task +Reading data file ... + orthogonal box = (0 0 0) to (15.659926 15.659926 15.659926) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 384 atoms + read_data CPU = 0.001 seconds + +This is an unamed model +======================= + +Model references +---------------- + +Please cite the following references when using this model: +- about the architecture of this model: + * https://arxiv.org/abs/2305.19302v3 + +Running simulation on cuda:0 device with float32 data + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: +- https://arxiv.org/abs/2305.19302v3 +The log file lists these citations in BibTeX format. + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +cutoff = 4.5 +request.cutoff() = 4.5 + +This is an unamed model +======================= + +Model references +---------------- + +Please cite the following references when using this model: +- about the architecture of this model: + * https://arxiv.org/abs/2505.19350 + +Running simulation on cuda:0 device with float32 data +cutoff = 4.5 +request.cutoff() = 4.5 +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 15.5 + ghost atom cutoff = 20 + binsize = 7.75, bins = 3 3 3 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair metatomic, perpetual + attributes: full, newton on, ghost + pair build: full/bin/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix metatomic, perpetual, copy from (1) + attributes: full, newton on, ghost + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : metal + Current step : 0 + Time step : 0.008 +EFLAG_ATOM: 0 +Per MPI rank memory allocation (min/avg/max) = 154 | 154 | 154 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -2002.7449 0 -1987.8929 -79224.941 +EFLAG_ATOM: 0 + 1 515.99467 -2013.4471 0 -1987.902 -41132.517 +EFLAG_ATOM: 0 + 2 500.14262 -2012.723 0 -1987.9626 40234.455 +EFLAG_ATOM: 0 + 3 502.02694 -2012.922 0 -1988.0683 49647.2 +EFLAG_ATOM: 0 + 4 475.81821 -2011.582 0 -1988.0259 1898.0497 +EFLAG_ATOM: 0 + 5 463.01564 -2010.9231 0 -1988.0007 -22797.107 +EFLAG_ATOM: 0 + 6 479.85667 -2011.8143 0 -1988.0582 -9949.3754 +EFLAG_ATOM: 0 + 7 515.84244 -2013.715 0 -1988.1773 -1392.0274 +EFLAG_ATOM: 0 + 8 540.73193 -2014.8755 0 -1988.1057 -6095.1921 +EFLAG_ATOM: 0 + 9 510.45173 -2013.4005 0 -1988.1298 -6124.2556 +EFLAG_ATOM: 0 + 10 519.26265 -2013.9471 0 -1988.2402 -1327.2725 +EFLAG_ATOM: 0 + 11 498.93728 -2012.8024 0 -1988.1017 1998.8373 +EFLAG_ATOM: 0 + 12 519.89607 -2013.8722 0 -1988.1339 -705.52632 +EFLAG_ATOM: 0 + 13 528.86919 -2014.2399 0 -1988.0573 -4326.5698 +EFLAG_ATOM: 0 + 14 525.28179 -2014.0884 0 -1988.0834 1826.9309 +EFLAG_ATOM: 0 + 15 526.9152 -2014.2455 0 -1988.1597 7635.7283 +EFLAG_ATOM: 0 + 16 526.36803 -2014.2743 0 -1988.2156 4804.1412 +EFLAG_ATOM: 0 + 17 505.61502 -2013.2759 0 -1988.2446 -4171.6727 +EFLAG_ATOM: 0 + 18 515.41386 -2013.9772 0 -1988.4608 -9133.6418 +EFLAG_ATOM: 0 + 19 510.73748 -2013.8134 0 -1988.5285 -2595.9818 +EFLAG_ATOM: 0 + 20 488.99603 -2012.7738 0 -1988.5653 5145.2411 +EFLAG_ATOM: 0 + 21 515.4768 -2014.2135 0 -1988.694 813.1969 +EFLAG_ATOM: 0 + 22 487.65885 -2012.9952 0 -1988.8529 -9206.4715 +EFLAG_ATOM: 0 + 23 476.37161 -2012.405 0 -1988.8215 -5459.4405 +EFLAG_ATOM: 0 + 24 499.54584 -2013.6412 0 -1988.9104 2768.3255 +EFLAG_ATOM: 0 + 25 489.61789 -2013.1979 0 -1988.9585 3201.1055 +EFLAG_ATOM: 0 + 26 511.58218 -2014.3129 0 -1988.9862 -361.36846 +EFLAG_ATOM: 0 + 27 481.85002 -2012.8782 0 -1989.0234 3460.0464 +EFLAG_ATOM: 0 + 28 482.95766 -2012.9609 0 -1989.0513 -2.4544717 +EFLAG_ATOM: 0 + 29 495.28269 -2013.5879 0 -1989.0681 -3489.3261 +EFLAG_ATOM: 0 + 30 501.90968 -2014.0317 0 -1989.1839 -5176.7883 +EFLAG_ATOM: 0 + 31 477.68127 -2012.8854 0 -1989.237 -360.1428 +EFLAG_ATOM: 0 + 32 496.73226 -2013.9083 0 -1989.3168 894.04718 +EFLAG_ATOM: 0 + 33 491.67053 -2013.6022 0 -1989.2612 -4634.016 +EFLAG_ATOM: 0 + 34 449.09475 -2011.481 0 -1989.2478 -6553.0755 +EFLAG_ATOM: 0 + 35 480.78734 -2013.1078 0 -1989.3056 543.12129 +EFLAG_ATOM: 0 + 36 493.67302 -2013.7765 0 -1989.3364 4108.5211 +EFLAG_ATOM: 0 + 37 445.47688 -2011.4907 0 -1989.4367 -1606.8935 +EFLAG_ATOM: 0 + 38 473.48712 -2012.9595 0 -1989.5187 -8330.6346 +EFLAG_ATOM: 0 + 39 498.29306 -2014.2794 0 -1989.6106 -4999.7968 +EFLAG_ATOM: 0 + 40 467.89423 -2012.7592 0 -1989.5953 2222.8704 +EFLAG_ATOM: 0 + 41 459.47383 -2012.3752 0 -1989.6282 4091.4079 +EFLAG_ATOM: 0 + 42 488.03358 -2013.7667 0 -1989.6058 -3.2658644 +EFLAG_ATOM: 0 + 43 492.77931 -2013.9949 0 -1989.599 -5348.6019 +EFLAG_ATOM: 0 + 44 460.08391 -2012.3589 0 -1989.5817 -7145.5929 +EFLAG_ATOM: 0 + 45 475.66211 -2013.1255 0 -1989.5771 -2949.9822 +EFLAG_ATOM: 0 + 46 480.74118 -2013.4818 0 -1989.6819 894.32376 +EFLAG_ATOM: 0 + 47 470.58412 -2012.9536 0 -1989.6566 -602.74445 +EFLAG_ATOM: 0 + 48 469.34743 -2012.8917 0 -1989.6559 -3006.0734 +EFLAG_ATOM: 0 + 49 486.18609 -2013.6562 0 -1989.5868 -2361.8749 +EFLAG_ATOM: 0 + 50 470.76424 -2012.8322 0 -1989.5262 -1748.928 +EFLAG_ATOM: 0 + 51 459.44645 -2012.3617 0 -1989.616 -4536.1796 +EFLAG_ATOM: 0 + 52 488.18597 -2013.7991 0 -1989.6306 -6166.4071 +EFLAG_ATOM: 0 + 53 489.46038 -2013.892 0 -1989.6604 -3009.7148 +EFLAG_ATOM: 0 + 54 466.49369 -2012.8275 0 -1989.733 -581.09588 +EFLAG_ATOM: 0 + 55 457.63824 -2012.3781 0 -1989.7219 -4570.5418 +EFLAG_ATOM: 0 + 56 462.77634 -2012.5841 0 -1989.6736 -5707.3688 +EFLAG_ATOM: 0 + 57 476.83379 -2013.309 0 -1989.7025 -2469.4603 +EFLAG_ATOM: 0 + 58 481.69022 -2013.5781 0 -1989.7313 1872.4323 +EFLAG_ATOM: 0 + 59 483.16856 -2013.7234 0 -1989.8033 51.830612 +EFLAG_ATOM: 0 + 60 449.96152 -2012.1028 0 -1989.8267 -4038.1146 +EFLAG_ATOM: 0 + 61 455.54408 -2012.3876 0 -1989.8351 -5048.0549 +EFLAG_ATOM: 0 + 62 479.58991 -2013.5634 0 -1989.8205 -3816.9796 +EFLAG_ATOM: 0 + 63 461.00741 -2012.5271 0 -1989.7042 -574.2998 +EFLAG_ATOM: 0 + 64 446.10512 -2011.8584 0 -1989.7732 2790.9573 +EFLAG_ATOM: 0 + 65 466.82825 -2012.9146 0 -1989.8035 1681.8836 +EFLAG_ATOM: 0 + 66 481.23804 -2013.7188 0 -1989.8943 -2335.3337 +EFLAG_ATOM: 0 + 67 428.40465 -2011.0985 0 -1989.8896 -105.19839 +EFLAG_ATOM: 0 + 68 473.55085 -2013.3394 0 -1989.8954 -3823.0638 +EFLAG_ATOM: 0 + 69 461.76212 -2012.7977 0 -1989.9374 -2167.2178 +EFLAG_ATOM: 0 + 70 442.29283 -2011.8218 0 -1989.9253 -2084.0352 +EFLAG_ATOM: 0 + 71 447.67047 -2012.1215 0 -1989.9588 -8363.1057 +EFLAG_ATOM: 0 + 72 464.14535 -2012.9379 0 -1989.9596 -5004.0225 +EFLAG_ATOM: 0 + 73 482.78762 -2013.9253 0 -1990.0241 2771.6108 +EFLAG_ATOM: 0 + 74 478.24461 -2013.7462 0 -1990.0699 3714.992 +EFLAG_ATOM: 0 + 75 444.89583 -2012.1356 0 -1990.1103 -1591.1406 +EFLAG_ATOM: 0 + 76 437.22043 -2011.7433 0 -1990.098 -4316.7467 +EFLAG_ATOM: 0 + 77 438.40102 -2011.7527 0 -1990.0489 -3238.853 +EFLAG_ATOM: 0 + 78 465.29006 -2013.1803 0 -1990.1454 -5409.5517 +EFLAG_ATOM: 0 + 79 466.32643 -2013.2302 0 -1990.144 -5316.0327 +EFLAG_ATOM: 0 + 80 459.75235 -2012.907 0 -1990.1462 -2335.158 +EFLAG_ATOM: 0 + 81 454.04441 -2012.6025 0 -1990.1243 9.2656452 +EFLAG_ATOM: 0 + 82 483.9033 -2014.0405 0 -1990.0841 -0.43006702 +EFLAG_ATOM: 0 + 83 469.74586 -2013.3773 0 -1990.1218 -91.158872 +EFLAG_ATOM: 0 + 84 479.00774 -2013.8647 0 -1990.1507 -7114.0742 +EFLAG_ATOM: 0 + 85 451.64312 -2012.5007 0 -1990.1414 -7359.6987 +EFLAG_ATOM: 0 + 86 468.24357 -2013.3096 0 -1990.1284 932.18875 +EFLAG_ATOM: 0 + 87 462.58776 -2013.0466 0 -1990.1455 5826.6367 +EFLAG_ATOM: 0 + 88 454.39573 -2012.7432 0 -1990.2476 -323.69481 +EFLAG_ATOM: 0 + 89 461.28912 -2013.0618 0 -1990.2249 -4807.7571 +EFLAG_ATOM: 0 + 90 462.46967 -2013.1392 0 -1990.2438 -5179.3659 +EFLAG_ATOM: 0 + 91 463.17803 -2013.1232 0 -1990.1928 -436.60967 +EFLAG_ATOM: 0 + 92 491.32299 -2014.6499 0 -1990.3262 2574.8625 +EFLAG_ATOM: 0 + 93 462.96104 -2013.3579 0 -1990.4383 1301.0125 +EFLAG_ATOM: 0 + 94 470.87934 -2013.8965 0 -1990.5848 -3516.46 +EFLAG_ATOM: 0 + 95 461.91783 -2013.3901 0 -1990.5221 -4299.4204 +EFLAG_ATOM: 0 + 96 475.0784 -2013.9545 0 -1990.4349 -1486.5121 +EFLAG_ATOM: 0 + 97 465.10394 -2013.5282 0 -1990.5025 1974.6486 +EFLAG_ATOM: 0 + 98 456.88972 -2013.1398 0 -1990.5207 646.95929 +EFLAG_ATOM: 0 + 99 456.05869 -2013.1312 0 -1990.5533 -3202.0651 +EFLAG_ATOM: 0 + 100 437.31735 -2012.2047 0 -1990.5546 -4664.5282 +EFLAG_ATOM: 0 + 101 462.98295 -2013.6635 0 -1990.7427 -1300.3639 +EFLAG_ATOM: 0 + 102 458.96079 -2013.4724 0 -1990.7508 -182.42435 +EFLAG_ATOM: 0 + 103 463.26963 -2013.7803 0 -1990.8454 -1229.7116 +EFLAG_ATOM: 0 + 104 484.43693 -2014.783 0 -1990.8001 -3332.4044 +EFLAG_ATOM: 0 + 105 449.7093 -2013.0618 0 -1990.7982 -3733.6808 +EFLAG_ATOM: 0 + 106 442.76023 -2012.7148 0 -1990.7953 529.62251 +EFLAG_ATOM: 0 + 107 461.25513 -2013.6462 0 -1990.8111 3883.0584 +EFLAG_ATOM: 0 + 108 452.00479 -2013.2594 0 -1990.8822 5907.4956 +EFLAG_ATOM: 0 + 109 467.33078 -2014.1359 0 -1990.9999 -1985.9287 +EFLAG_ATOM: 0 + 110 447.61906 -2013.1654 0 -1991.0053 -8134.9339 +EFLAG_ATOM: 0 + 111 438.94247 -2012.7815 0 -1991.0509 -293.61912 +EFLAG_ATOM: 0 + 112 453.70015 -2013.553 0 -1991.0918 4154.2449 +EFLAG_ATOM: 0 + 113 458.75464 -2013.7769 0 -1991.0655 -4330.1735 +EFLAG_ATOM: 0 + 114 450.36091 -2013.3549 0 -1991.059 -4178.202 +EFLAG_ATOM: 0 + 115 437.8212 -2012.8695 0 -1991.1945 6132.8395 +EFLAG_ATOM: 0 + 116 448.55942 -2013.4207 0 -1991.214 2964.9707 +EFLAG_ATOM: 0 + 117 435.83059 -2012.8483 0 -1991.2718 -6016.0915 +EFLAG_ATOM: 0 + 118 473.74611 -2014.7551 0 -1991.3016 -6470.3968 +EFLAG_ATOM: 0 + 119 461.27664 -2014.1848 0 -1991.3486 4156.782 +EFLAG_ATOM: 0 + 120 428.37381 -2012.6577 0 -1991.4504 3425.4021 +EFLAG_ATOM: 0 + 121 436.23511 -2012.9983 0 -1991.4018 -6215.1276 +EFLAG_ATOM: 0 + 122 460.3864 -2014.2013 0 -1991.4091 -6306.5813 +EFLAG_ATOM: 0 + 123 478.62727 -2015.0822 0 -1991.3869 1171.796 +EFLAG_ATOM: 0 + 124 449.47573 -2013.7045 0 -1991.4524 4588.0548 +EFLAG_ATOM: 0 + 125 454.00676 -2013.9323 0 -1991.4559 -2478.9785 +EFLAG_ATOM: 0 + 126 461.01684 -2014.2667 0 -1991.4433 -3020.6161 +EFLAG_ATOM: 0 + 127 446.06217 -2013.592 0 -1991.509 3309.0839 +EFLAG_ATOM: 0 + 128 449.501 -2013.7703 0 -1991.517 196.86413 +EFLAG_ATOM: 0 + 129 451.25896 -2013.9858 0 -1991.6455 -2077.7154 +EFLAG_ATOM: 0 + 130 441.01043 -2013.4095 0 -1991.5766 -3098.9991 +EFLAG_ATOM: 0 + 131 448.80498 -2013.7961 0 -1991.5773 -4082.2727 +EFLAG_ATOM: 0 + 132 447.05329 -2013.7416 0 -1991.6095 2795.0273 +EFLAG_ATOM: 0 + 133 446.24526 -2013.6676 0 -1991.5755 1902.1217 +EFLAG_ATOM: 0 + 134 464.65448 -2014.6046 0 -1991.6011 432.69806 +EFLAG_ATOM: 0 + 135 476.6664 -2015.1398 0 -1991.5416 -2148.1927 +EFLAG_ATOM: 0 + 136 410.40377 -2011.8848 0 -1991.5671 -1811.4403 +EFLAG_ATOM: 0 + 137 416.16562 -2012.2805 0 -1991.6776 -3608.7202 +EFLAG_ATOM: 0 + 138 471.50058 -2015.0029 0 -1991.6605 -1850.5718 +EFLAG_ATOM: 0 + 139 448.12434 -2013.9285 0 -1991.7433 6003.7433 +EFLAG_ATOM: 0 + 140 458.05224 -2014.4037 0 -1991.7271 3955.3018 +EFLAG_ATOM: 0 + 141 448.86286 -2013.9642 0 -1991.7425 -2050.5415 +EFLAG_ATOM: 0 + 142 451.09867 -2014.0708 0 -1991.7384 -3717.3946 +EFLAG_ATOM: 0 + 143 448.58451 -2013.8884 0 -1991.6805 44.705274 +EFLAG_ATOM: 0 + 144 460.74684 -2014.514 0 -1991.704 -2798.0949 +EFLAG_ATOM: 0 + 145 481.36497 -2015.554 0 -1991.7232 -2948.2228 +EFLAG_ATOM: 0 + 146 474.71098 -2015.2721 0 -1991.7708 4147.947 +EFLAG_ATOM: 0 + 147 476.26063 -2015.39 0 -1991.812 9193.6233 +EFLAG_ATOM: 0 + 148 464.22543 -2014.803 0 -1991.8207 26.929486 +EFLAG_ATOM: 0 + 149 439.03229 -2013.5786 0 -1991.8436 -4940.0197 +EFLAG_ATOM: 0 + 150 423.7211 -2012.8479 0 -1991.8709 1367.2048 +EFLAG_ATOM: 0 + 151 476.86093 -2015.5217 0 -1991.9139 2700.3686 +EFLAG_ATOM: 0 + 152 463.81985 -2014.8881 0 -1991.9259 2102.4767 +EFLAG_ATOM: 0 + 153 459.47402 -2014.5637 0 -1991.8167 242.40635 +EFLAG_ATOM: 0 + 154 437.19983 -2013.397 0 -1991.7527 -961.27755 +EFLAG_ATOM: 0 + 155 473.19024 -2015.2019 0 -1991.7758 -1032.8245 +EFLAG_ATOM: 0 + 156 491.12862 -2016.1962 0 -1991.882 -2527.7923 +EFLAG_ATOM: 0 + 157 446.39645 -2013.9438 0 -1991.8443 1707.8096 +EFLAG_ATOM: 0 + 158 440.36621 -2013.6392 0 -1991.8381 2132.8444 +EFLAG_ATOM: 0 + 159 459.9764 -2014.6743 0 -1991.9024 -354.90147 +EFLAG_ATOM: 0 + 160 467.21615 -2015.0387 0 -1991.9084 -3783.941 +EFLAG_ATOM: 0 + 161 469.22551 -2015.1344 0 -1991.9046 -1398.835 +EFLAG_ATOM: 0 + 162 471.91293 -2015.3339 0 -1991.971 -1995.3341 +EFLAG_ATOM: 0 + 163 458.9737 -2014.7427 0 -1992.0204 -5713.2848 +EFLAG_ATOM: 0 + 164 444.092 -2014.0693 0 -1992.0838 -2567.1438 +EFLAG_ATOM: 0 + 165 434.82102 -2013.6373 0 -1992.1108 3889.6861 +EFLAG_ATOM: 0 + 166 459.62185 -2014.8656 0 -1992.1113 261.72969 +EFLAG_ATOM: 0 + 167 458.61895 -2014.7557 0 -1992.0511 -6196.2467 +EFLAG_ATOM: 0 + 168 433.43495 -2013.5514 0 -1992.0935 -3079.6424 +EFLAG_ATOM: 0 + 169 438.41361 -2013.7852 0 -1992.0808 -0.45679997 +EFLAG_ATOM: 0 + 170 432.03286 -2013.3984 0 -1992.0099 -2729.301 +EFLAG_ATOM: 0 + 171 448.87726 -2014.2546 0 -1992.0322 -4110.7062 +EFLAG_ATOM: 0 + 172 445.97369 -2014.1527 0 -1992.0741 2046.8934 +EFLAG_ATOM: 0 + 173 457.61163 -2014.824 0 -1992.1692 4152.1627 +EFLAG_ATOM: 0 + 174 458.69451 -2014.8787 0 -1992.1702 -2782.3694 +EFLAG_ATOM: 0 + 175 431.37037 -2013.5148 0 -1992.1591 -6881.3589 +EFLAG_ATOM: 0 + 176 443.92456 -2014.152 0 -1992.1748 -5466.9594 +EFLAG_ATOM: 0 + 177 439.69977 -2013.8955 0 -1992.1275 235.91309 +EFLAG_ATOM: 0 + 178 446.33848 -2014.2482 0 -1992.1515 1799.4731 +EFLAG_ATOM: 0 + 179 432.50268 -2013.5645 0 -1992.1527 -408.75715 +EFLAG_ATOM: 0 + 180 441.10316 -2013.9091 0 -1992.0715 -3356.1832 +EFLAG_ATOM: 0 + 181 460.79358 -2014.9117 0 -1992.0994 -2185.5154 +EFLAG_ATOM: 0 + 182 476.79196 -2015.6521 0 -1992.0477 -2726.4975 +EFLAG_ATOM: 0 + 183 464.39201 -2015.0193 0 -1992.0288 -1549.2317 +EFLAG_ATOM: 0 + 184 435.19875 -2013.5892 0 -1992.044 1571.0153 +EFLAG_ATOM: 0 + 185 463.31026 -2015.0594 0 -1992.1225 413.46413 +EFLAG_ATOM: 0 + 186 461.83752 -2014.9316 0 -1992.0676 -1285.3283 +EFLAG_ATOM: 0 + 187 417.78296 -2012.7454 0 -1992.0623 -1447.7455 +EFLAG_ATOM: 0 + 188 434.13086 -2013.593 0 -1992.1007 -602.55458 +EFLAG_ATOM: 0 + 189 461.00617 -2015.0353 0 -1992.2124 -2871.5841 +EFLAG_ATOM: 0 + 190 471.768 -2015.5925 0 -1992.2369 -4485.3256 +EFLAG_ATOM: 0 + 191 432.58554 -2013.7117 0 -1992.2958 -725.94679 +EFLAG_ATOM: 0 + 192 450.99253 -2014.7653 0 -1992.4381 935.55291 +EFLAG_ATOM: 0 + 193 482.95476 -2016.3151 0 -1992.4056 601.37833 +EFLAG_ATOM: 0 + 194 455.06492 -2014.8818 0 -1992.3531 -1560.3973 +EFLAG_ATOM: 0 + 195 451.06673 -2014.6653 0 -1992.3345 -3636.3515 +EFLAG_ATOM: 0 + 196 450.97894 -2014.6986 0 -1992.3722 -801.65977 +EFLAG_ATOM: 0 + 197 465.33814 -2015.3864 0 -1992.349 1942.3613 +EFLAG_ATOM: 0 + 198 461.92937 -2015.173 0 -1992.3044 2616.2598 +EFLAG_ATOM: 0 + 199 460.13034 -2015.094 0 -1992.3145 -2004.0547 +EFLAG_ATOM: 0 + 200 438.46142 -2013.9658 0 -1992.2591 -511.56317 +EFLAG_ATOM: 0 + 201 484.50386 -2016.3373 0 -1992.3511 -1833.1779 +EFLAG_ATOM: 0 + 202 467.68739 -2015.4608 0 -1992.3072 -1528.3226 +EFLAG_ATOM: 0 + 203 442.53581 -2014.1729 0 -1992.2644 3655.2881 +EFLAG_ATOM: 0 + 204 449.69391 -2014.5151 0 -1992.2523 4316.9135 +EFLAG_ATOM: 0 + 205 451.73288 -2014.5695 0 -1992.2057 -2474.2349 +EFLAG_ATOM: 0 + 206 445.05546 -2014.3008 0 -1992.2676 -4883.2108 +EFLAG_ATOM: 0 + 207 444.33706 -2014.2782 0 -1992.2806 -3259.39 +EFLAG_ATOM: 0 + 208 443.23025 -2014.2122 0 -1992.2693 3524.2947 +EFLAG_ATOM: 0 + 209 444.18392 -2014.2649 0 -1992.2748 4211.8424 +EFLAG_ATOM: 0 + 210 456.59309 -2014.9083 0 -1992.3039 -1720.8634 +EFLAG_ATOM: 0 + 211 423.79446 -2013.3766 0 -1992.3959 -4583.5588 +EFLAG_ATOM: 0 + 212 422.80417 -2013.353 0 -1992.4214 -5892.8153 +EFLAG_ATOM: 0 + 213 454.57305 -2014.9369 0 -1992.4325 -3174.7152 +EFLAG_ATOM: 0 + 214 457.5266 -2015.1166 0 -1992.466 -1687.2429 +EFLAG_ATOM: 0 + 215 430.61772 -2013.8208 0 -1992.5024 -2221.1826 +EFLAG_ATOM: 0 + 216 435.18005 -2014.0491 0 -1992.5048 -4078.5212 +EFLAG_ATOM: 0 + 217 431.62912 -2013.8693 0 -1992.5008 -3893.889 +EFLAG_ATOM: 0 + 218 438.08174 -2014.2383 0 -1992.5503 -1861.7425 +EFLAG_ATOM: 0 + 219 449.00632 -2014.8669 0 -1992.6382 -1153.2896 +EFLAG_ATOM: 0 + 220 433.31081 -2014.0789 0 -1992.6271 -1056.5422 +EFLAG_ATOM: 0 + 221 425.618 -2013.6279 0 -1992.557 -3546.3952 +EFLAG_ATOM: 0 + 222 428.49638 -2013.811 0 -1992.5976 -4261.595 +EFLAG_ATOM: 0 + 223 443.86543 -2014.6508 0 -1992.6765 -960.28207 +EFLAG_ATOM: 0 + 224 451.18639 -2015.1022 0 -1992.7655 -278.66326 +EFLAG_ATOM: 0 + 225 452.73613 -2015.276 0 -1992.8626 -3395.9055 +EFLAG_ATOM: 0 + 226 420.9991 -2013.7162 0 -1992.8739 -3986.9362 +EFLAG_ATOM: 0 + 227 435.00567 -2014.3912 0 -1992.8556 -4548.3957 +EFLAG_ATOM: 0 + 228 431.55611 -2014.2073 0 -1992.8424 -2693.9717 +EFLAG_ATOM: 0 + 229 444.17864 -2014.9011 0 -1992.9113 -669.52072 +EFLAG_ATOM: 0 + 230 440.1667 -2014.7314 0 -1992.9403 -1992.9746 +EFLAG_ATOM: 0 + 231 432.18982 -2014.3098 0 -1992.9136 -2502.2834 +EFLAG_ATOM: 0 + 232 413.12047 -2013.3785 0 -1992.9263 219.73191 +EFLAG_ATOM: 0 + 233 432.22678 -2014.3687 0 -1992.9706 -289.4511 +EFLAG_ATOM: 0 + 234 440.29721 -2014.8486 0 -1993.051 -2232.6537 +EFLAG_ATOM: 0 + 235 411.51435 -2013.4167 0 -1993.0441 -3901.6752 +EFLAG_ATOM: 0 + 236 421.95733 -2013.9213 0 -1993.0316 -569.83973 +EFLAG_ATOM: 0 + 237 426.19637 -2014.1825 0 -1993.0829 1311.4032 +EFLAG_ATOM: 0 + 238 428.25006 -2014.3252 0 -1993.124 -272.65238 +EFLAG_ATOM: 0 + 239 429.54521 -2014.4576 0 -1993.1923 1404.3049 +EFLAG_ATOM: 0 + 240 418.12121 -2013.9464 0 -1993.2466 3658.2037 +EFLAG_ATOM: 0 + 241 428.93452 -2014.5361 0 -1993.301 490.70105 +EFLAG_ATOM: 0 + 242 426.17343 -2014.3881 0 -1993.2896 -3128.002 +EFLAG_ATOM: 0 + 243 440.88532 -2015.1394 0 -1993.3127 -1528.0653 +EFLAG_ATOM: 0 + 244 447.44584 -2015.5194 0 -1993.3679 -401.13128 +EFLAG_ATOM: 0 + 245 432.48079 -2014.7875 0 -1993.3768 -2598.8859 +EFLAG_ATOM: 0 + 246 427.95529 -2014.4869 0 -1993.3003 -6490.8668 +EFLAG_ATOM: 0 + 247 415.24812 -2013.8629 0 -1993.3054 -750.79145 +EFLAG_ATOM: 0 + 248 420.30042 -2014.1609 0 -1993.3532 5638.0423 +EFLAG_ATOM: 0 + 249 435.5667 -2015.0094 0 -1993.446 168.13078 +EFLAG_ATOM: 0 + 250 415.09045 -2013.9824 0 -1993.4327 -5625.2521 +EFLAG_ATOM: 0 + 251 425.90595 -2014.5636 0 -1993.4784 -3204.7128 +EFLAG_ATOM: 0 + 252 433.14243 -2014.9329 0 -1993.4894 2570.523 +EFLAG_ATOM: 0 + 253 436.61581 -2015.1501 0 -1993.5348 3680.0101 +EFLAG_ATOM: 0 + 254 426.75626 -2014.6965 0 -1993.5693 875.20574 +EFLAG_ATOM: 0 + 255 436.05025 -2015.1702 0 -1993.5828 -3724.3572 +EFLAG_ATOM: 0 + 256 427.61233 -2014.7297 0 -1993.5601 -1374.7522 +EFLAG_ATOM: 0 + 257 433.11591 -2014.9987 0 -1993.5565 159.75975 +EFLAG_ATOM: 0 + 258 449.48147 -2015.8505 0 -1993.5981 2254.3082 +EFLAG_ATOM: 0 + 259 440.57866 -2015.4607 0 -1993.6491 3433.2668 +EFLAG_ATOM: 0 + 260 408.378 -2013.8915 0 -1993.6741 634.68082 +EFLAG_ATOM: 0 + 261 428.54056 -2014.8578 0 -1993.6422 -4055.5053 +EFLAG_ATOM: 0 + 262 419.84061 -2014.3967 0 -1993.6118 -951.1918 +EFLAG_ATOM: 0 + 263 419.94037 -2014.4303 0 -1993.6405 3900.7435 +EFLAG_ATOM: 0 + 264 444.1272 -2015.5675 0 -1993.5803 625.8658 +EFLAG_ATOM: 0 + 265 437.44709 -2015.2924 0 -1993.6358 -3618.8549 +EFLAG_ATOM: 0 + 266 411.23235 -2014.0121 0 -1993.6534 -3467.0357 +EFLAG_ATOM: 0 + 267 402.90948 -2013.6573 0 -1993.7107 2228.8349 +EFLAG_ATOM: 0 + 268 413.71242 -2014.1987 0 -1993.7172 2918.8489 +EFLAG_ATOM: 0 + 269 423.80001 -2014.6803 0 -1993.6994 -3322.6854 +EFLAG_ATOM: 0 + 270 424.85203 -2014.7288 0 -1993.6958 -7093.9079 +EFLAG_ATOM: 0 + 271 439.15997 -2015.449 0 -1993.7076 -4132.8553 +EFLAG_ATOM: 0 + 272 437.38712 -2015.3214 0 -1993.6678 1152.4684 +EFLAG_ATOM: 0 + 273 426.56813 -2014.8688 0 -1993.7508 1425.3288 +EFLAG_ATOM: 0 + 274 417.11074 -2014.4362 0 -1993.7864 -2126.4007 +EFLAG_ATOM: 0 + 275 424.1064 -2014.7866 0 -1993.7905 -4664.4522 +EFLAG_ATOM: 0 + 276 426.64016 -2014.9027 0 -1993.7812 -2442.0048 +EFLAG_ATOM: 0 + 277 427.08682 -2014.965 0 -1993.8213 -1595.6268 +EFLAG_ATOM: 0 + 278 431.77164 -2015.1195 0 -1993.7439 -1800.4618 +EFLAG_ATOM: 0 + 279 419.85262 -2014.515 0 -1993.7295 -2781.244 +EFLAG_ATOM: 0 + 280 425.25177 -2014.7716 0 -1993.7188 -5244.7662 +EFLAG_ATOM: 0 + 281 429.05691 -2014.9176 0 -1993.6764 -743.65464 +EFLAG_ATOM: 0 + 282 416.27529 -2014.3418 0 -1993.7334 374.88385 +EFLAG_ATOM: 0 + 283 424.63816 -2014.7495 0 -1993.7271 -386.4035 +EFLAG_ATOM: 0 + 284 428.51922 -2014.912 0 -1993.6974 -342.42891 +EFLAG_ATOM: 0 + 285 418.12254 -2014.4386 0 -1993.7388 1403.8539 +EFLAG_ATOM: 0 + 286 426.42724 -2014.9183 0 -1993.8074 -898.75525 +EFLAG_ATOM: 0 + 287 436.5477 -2015.5021 0 -1993.8901 -5525.4631 +EFLAG_ATOM: 0 + 288 424.24224 -2014.8503 0 -1993.8475 -3568.985 +EFLAG_ATOM: 0 + 289 429.57181 -2015.0632 0 -1993.7966 -1473.2645 +EFLAG_ATOM: 0 + 290 437.37279 -2015.4614 0 -1993.8086 122.02639 +EFLAG_ATOM: 0 + 291 414.43923 -2014.3135 0 -1993.796 -2069.5693 +EFLAG_ATOM: 0 + 292 414.72083 -2014.3511 0 -1993.8196 -4158.6584 +EFLAG_ATOM: 0 + 293 438.98113 -2015.6372 0 -1993.9047 -2832.396 +EFLAG_ATOM: 0 + 294 417.0626 -2014.6249 0 -1993.9775 2099.9461 +EFLAG_ATOM: 0 + 295 416.62259 -2014.6309 0 -1994.0053 1879.9264 +EFLAG_ATOM: 0 + 296 420.91324 -2014.8335 0 -1993.9955 -5697.957 +EFLAG_ATOM: 0 + 297 401.98517 -2013.8954 0 -1993.9945 -7808.9132 +EFLAG_ATOM: 0 + 298 438.18347 -2015.7246 0 -1994.0316 -4249.2415 +EFLAG_ATOM: 0 + 299 443.24386 -2016.031 0 -1994.0875 3140.4428 +EFLAG_ATOM: 0 + 300 410.5449 -2014.4242 0 -1994.0995 3016.6879 +EFLAG_ATOM: 0 + 301 419.23472 -2014.8831 0 -1994.1282 -2561.4658 +EFLAG_ATOM: 0 + 302 422.83266 -2015.0464 0 -1994.1134 -5354.4875 +EFLAG_ATOM: 0 + 303 427.3356 -2015.3286 0 -1994.1727 -2718.8096 +EFLAG_ATOM: 0 + 304 445.70332 -2016.188 0 -1994.1227 -1630.3634 +EFLAG_ATOM: 0 + 305 433.73826 -2015.7051 0 -1994.2322 -249.26865 +EFLAG_ATOM: 0 + 306 431.20835 -2015.6125 0 -1994.2649 -2677.7775 +EFLAG_ATOM: 0 + 307 411.20667 -2014.5536 0 -1994.1961 -1358.3135 +EFLAG_ATOM: 0 + 308 428.57557 -2015.4325 0 -1994.2152 206.80114 +EFLAG_ATOM: 0 + 309 427.49459 -2015.4255 0 -1994.2617 -1429.9243 +EFLAG_ATOM: 0 + 310 411.22248 -2014.6573 0 -1994.2991 -2473.2651 +EFLAG_ATOM: 0 + 311 440.02507 -2016.1407 0 -1994.3566 -1351.5069 +EFLAG_ATOM: 0 + 312 423.42125 -2015.3547 0 -1994.3926 2676.7401 +EFLAG_ATOM: 0 + 313 392.18164 -2013.9031 0 -1994.4875 -362.10923 +EFLAG_ATOM: 0 + 314 434.15339 -2016.0095 0 -1994.516 -4341.832 +EFLAG_ATOM: 0 + 315 452.17631 -2016.9487 0 -1994.563 -3015.5081 +EFLAG_ATOM: 0 + 316 418.94968 -2015.3673 0 -1994.6265 2297.1834 +EFLAG_ATOM: 0 + 317 429.94508 -2015.947 0 -1994.6619 -154.0051 +EFLAG_ATOM: 0 + 318 431.70072 -2016.0704 0 -1994.6984 -4767.2676 +EFLAG_ATOM: 0 + 319 407.92159 -2014.9567 0 -1994.7618 -6483.3412 +EFLAG_ATOM: 0 + 320 409.79397 -2015.0347 0 -1994.7471 -2058.4875 +EFLAG_ATOM: 0 + 321 408.20223 -2014.9874 0 -1994.7787 4254.7981 +EFLAG_ATOM: 0 + 322 432.72981 -2016.2493 0 -1994.8263 900.07686 +EFLAG_ATOM: 0 + 323 415.63682 -2015.3905 0 -1994.8137 -4956.867 +EFLAG_ATOM: 0 + 324 407.4732 -2014.9395 0 -1994.7668 -5872.9415 +EFLAG_ATOM: 0 + 325 398.10803 -2014.5111 0 -1994.8021 -1510.9826 +EFLAG_ATOM: 0 + 326 418.55035 -2015.4811 0 -1994.7601 -585.09508 +EFLAG_ATOM: 0 + 327 421.57309 -2015.6406 0 -1994.77 -3204.739 +EFLAG_ATOM: 0 + 328 428.22912 -2015.9613 0 -1994.7611 -3759.6805 +EFLAG_ATOM: 0 + 329 398.49407 -2014.4915 0 -1994.7634 -1458.8836 +EFLAG_ATOM: 0 + 330 409.59913 -2015.0367 0 -1994.7589 -477.8823 +EFLAG_ATOM: 0 + 331 439.75228 -2016.4961 0 -1994.7254 -2277.7095 +EFLAG_ATOM: 0 + 332 429.83476 -2015.9703 0 -1994.6907 -2636.0309 +EFLAG_ATOM: 0 + 333 423.60093 -2015.6509 0 -1994.6798 -3013.7107 +EFLAG_ATOM: 0 + 334 425.9171 -2015.7882 0 -1994.7025 -3468.3187 +EFLAG_ATOM: 0 + 335 401.49042 -2014.6666 0 -1994.7902 -1188.7622 +EFLAG_ATOM: 0 + 336 426.96481 -2015.8423 0 -1994.7047 -1370.6997 +EFLAG_ATOM: 0 + 337 437.28187 -2016.4015 0 -1994.7531 -13.177602 +EFLAG_ATOM: 0 + 338 421.13233 -2015.6998 0 -1994.851 20.18412 +EFLAG_ATOM: 0 + 339 423.15005 -2015.734 0 -1994.7853 -3421.2214 +EFLAG_ATOM: 0 + 340 428.49739 -2016.0483 0 -1994.8349 -4338.4332 +EFLAG_ATOM: 0 + 341 408.00263 -2015.1212 0 -1994.9224 -2146.2084 +EFLAG_ATOM: 0 + 342 431.00479 -2016.151 0 -1994.8134 -2244.4181 +EFLAG_ATOM: 0 + 343 427.74937 -2015.9819 0 -1994.8055 3521.173 +EFLAG_ATOM: 0 + 344 445.35147 -2016.7833 0 -1994.7355 2266.2341 +EFLAG_ATOM: 0 + 345 420.7672 -2015.6212 0 -1994.7904 -3343.4098 +EFLAG_ATOM: 0 + 346 394.36681 -2014.349 0 -1994.8252 -6188.0994 +EFLAG_ATOM: 0 + 347 424.97763 -2015.8022 0 -1994.763 -4628.0551 +EFLAG_ATOM: 0 + 348 426.52014 -2015.9264 0 -1994.8108 2231.2114 +EFLAG_ATOM: 0 + 349 417.87419 -2015.5433 0 -1994.8558 4309.0741 +EFLAG_ATOM: 0 + 350 411.69927 -2015.2396 0 -1994.8578 -3062.9701 +EFLAG_ATOM: 0 + 351 392.24795 -2014.2911 0 -1994.8723 -7041.4728 +EFLAG_ATOM: 0 + 352 404.06911 -2014.8429 0 -1994.8388 -4034.6376 +EFLAG_ATOM: 0 + 353 416.49107 -2015.4164 0 -1994.7973 2009.992 +EFLAG_ATOM: 0 + 354 427.23637 -2015.9628 0 -1994.8117 3929.5268 +EFLAG_ATOM: 0 + 355 428.01619 -2016.024 0 -1994.8344 -2573.3406 +EFLAG_ATOM: 0 + 356 400.80545 -2014.7189 0 -1994.8763 -8489.9738 +EFLAG_ATOM: 0 + 357 414.00227 -2015.3081 0 -1994.8122 -5950.8016 +EFLAG_ATOM: 0 + 358 409.9391 -2015.0684 0 -1994.7737 1404.2506 +EFLAG_ATOM: 0 + 359 452.62529 -2017.2468 0 -1994.8389 770.70899 +EFLAG_ATOM: 0 + 360 435.17442 -2016.3973 0 -1994.8533 -6017.7293 +EFLAG_ATOM: 0 + 361 417.96681 -2015.5894 0 -1994.8972 -7354.6021 +EFLAG_ATOM: 0 + 362 398.16012 -2014.5298 0 -1994.8182 -4430.449 +EFLAG_ATOM: 0 + 363 410.56361 -2015.0857 0 -1994.7601 -3900.3917 +EFLAG_ATOM: 0 + 364 415.85893 -2015.3773 0 -1994.7895 -44.413111 +EFLAG_ATOM: 0 + 365 431.17232 -2016.1226 0 -1994.7767 1946.4963 +EFLAG_ATOM: 0 + 366 403.46322 -2014.7461 0 -1994.772 -1614.1055 +EFLAG_ATOM: 0 + 367 398.73966 -2014.5488 0 -1994.8086 -9075.2767 +EFLAG_ATOM: 0 + 368 418.69575 -2015.5438 0 -1994.8156 -11295.423 +EFLAG_ATOM: 0 + 369 399.6628 -2014.6123 0 -1994.8263 -5567.8277 +EFLAG_ATOM: 0 + 370 416.93458 -2015.4658 0 -1994.8248 -5183.3017 +EFLAG_ATOM: 0 + 371 387.18613 -2014.0208 0 -1994.8525 -4192.1593 +EFLAG_ATOM: 0 + 372 385.22746 -2013.9471 0 -1994.8758 2815.0036 +EFLAG_ATOM: 0 + 373 397.66695 -2014.4652 0 -1994.7781 3933.8824 +EFLAG_ATOM: 0 + 374 396.67394 -2014.3799 0 -1994.7419 -1898.1173 +EFLAG_ATOM: 0 + 375 409.41621 -2015.0444 0 -1994.7756 -1595.2793 +EFLAG_ATOM: 0 + 376 396.48551 -2014.5195 0 -1994.8909 -192.67618 +EFLAG_ATOM: 0 + 377 405.59007 -2015.001 0 -1994.9216 -4326.989 +EFLAG_ATOM: 0 + 378 386.61184 -2014.1211 0 -1994.9812 -7100.4349 +EFLAG_ATOM: 0 + 379 405.18382 -2015.0498 0 -1994.9905 -5900.5341 +EFLAG_ATOM: 0 + 380 409.76646 -2015.3153 0 -1995.0291 -1947.0233 +EFLAG_ATOM: 0 + 381 421.81908 -2015.9087 0 -1995.0258 253.0362 +EFLAG_ATOM: 0 + 382 404.47916 -2015.0269 0 -1995.0025 140.90722 +EFLAG_ATOM: 0 + 383 411.83461 -2015.3701 0 -1994.9816 -1939.7243 +EFLAG_ATOM: 0 + 384 435.66064 -2016.5314 0 -1994.9633 -3784.1892 +EFLAG_ATOM: 0 + 385 420.19776 -2015.8206 0 -1995.018 -1833.117 +EFLAG_ATOM: 0 + 386 387.27616 -2014.2668 0 -1995.0941 391.56964 +EFLAG_ATOM: 0 + 387 421.24037 -2016.025 0 -1995.1708 -2280.0026 +EFLAG_ATOM: 0 + 388 413.19846 -2015.6555 0 -1995.1995 -1532.7232 +EFLAG_ATOM: 0 + 389 415.2382 -2015.7684 0 -1995.2114 -420.5324 +EFLAG_ATOM: 0 + 390 436.77203 -2016.881 0 -1995.2579 -2260.3317 +EFLAG_ATOM: 0 + 391 412.24519 -2015.6683 0 -1995.2595 -4589.2483 +EFLAG_ATOM: 0 + 392 394.99899 -2014.8777 0 -1995.3226 -4275.5849 +EFLAG_ATOM: 0 + 393 406.60598 -2015.4863 0 -1995.3566 -1320.7441 +EFLAG_ATOM: 0 + 394 443.2822 -2017.2875 0 -1995.3421 2826.6241 +EFLAG_ATOM: 0 + 395 416.35043 -2015.8893 0 -1995.2772 7033.1121 +EFLAG_ATOM: 0 + 396 404.23415 -2015.4276 0 -1995.4153 6455.1047 +EFLAG_ATOM: 0 + 397 429.85505 -2016.7849 0 -1995.5042 -3401.7708 +EFLAG_ATOM: 0 + 398 409.71979 -2015.8242 0 -1995.5404 -5261.5794 +EFLAG_ATOM: 0 + 399 414.21195 -2016.0076 0 -1995.5013 -1149.6947 +EFLAG_ATOM: 0 + 400 390.70485 -2014.8269 0 -1995.4844 3529.6084 +EFLAG_ATOM: 0 + 401 394.81364 -2015.0092 0 -1995.4633 4720.3807 +EFLAG_ATOM: 0 + 402 421.50896 -2016.3623 0 -1995.4948 118.04376 +EFLAG_ATOM: 0 + 403 417.35679 -2016.2551 0 -1995.5932 -2742.409 +EFLAG_ATOM: 0 + 404 404.73417 -2015.6426 0 -1995.6056 -1998.9836 +EFLAG_ATOM: 0 + 405 389.77491 -2014.9509 0 -1995.6545 -1067.2476 +EFLAG_ATOM: 0 + 406 411.83696 -2016.0703 0 -1995.6817 326.1418 +EFLAG_ATOM: 0 + 407 420.22181 -2016.4852 0 -1995.6815 2250.6674 +EFLAG_ATOM: 0 + 408 409.86849 -2015.9849 0 -1995.6937 1634.7891 +EFLAG_ATOM: 0 + 409 413.47673 -2016.1188 0 -1995.6489 -2657.629 +EFLAG_ATOM: 0 + 410 423.28686 -2016.6311 0 -1995.6756 -4265.0384 +EFLAG_ATOM: 0 + 411 406.82679 -2015.8059 0 -1995.6653 555.06478 +EFLAG_ATOM: 0 + 412 407.8215 -2015.8605 0 -1995.6706 -114.88069 +EFLAG_ATOM: 0 + 413 418.73616 -2016.4106 0 -1995.6804 -4774.0452 +EFLAG_ATOM: 0 + 414 398.92505 -2015.4298 0 -1995.6804 -2834.8777 +EFLAG_ATOM: 0 + 415 395.61901 -2015.261 0 -1995.6752 1083.6936 +EFLAG_ATOM: 0 + 416 392.19333 -2015.0984 0 -1995.6822 3161.8811 +EFLAG_ATOM: 0 + 417 427.84125 -2016.9061 0 -1995.7251 -1364.1104 +EFLAG_ATOM: 0 + 418 411.26253 -2016.0841 0 -1995.7239 -4533.128 +EFLAG_ATOM: 0 + 419 403.565 -2015.7032 0 -1995.7241 -5896.4822 +EFLAG_ATOM: 0 + 420 392.48328 -2015.2072 0 -1995.7766 -5247.15 +EFLAG_ATOM: 0 + 421 402.85107 -2015.7554 0 -1995.8116 -4260.7127 +EFLAG_ATOM: 0 + 422 407.37621 -2015.9449 0 -1995.7771 -4925.3801 +EFLAG_ATOM: 0 + 423 407.62742 -2015.9419 0 -1995.7616 -3470.161 +EFLAG_ATOM: 0 + 424 410.10165 -2016.0072 0 -1995.7044 1146.6996 +EFLAG_ATOM: 0 + 425 409.62907 -2015.9667 0 -1995.6873 3166.03 +EFLAG_ATOM: 0 + 426 418.02864 -2016.333 0 -1995.6378 -3125.8472 +EFLAG_ATOM: 0 + 427 388.98131 -2014.9607 0 -1995.7035 -8546.7497 +EFLAG_ATOM: 0 + 428 404.73777 -2015.6669 0 -1995.6297 -8809.831 +EFLAG_ATOM: 0 + 429 411.83455 -2016.0551 0 -1995.6665 -2834.4023 +EFLAG_ATOM: 0 + 430 404.83738 -2015.7343 0 -1995.6921 1070.3024 +EFLAG_ATOM: 0 + 431 386.5998 -2014.8065 0 -1995.6673 -1728.0383 +EFLAG_ATOM: 0 + 432 391.26567 -2015.0264 0 -1995.6561 -4671.4424 +EFLAG_ATOM: 0 + 433 415.24843 -2016.2797 0 -1995.7221 -2683.0927 +EFLAG_ATOM: 0 + 434 407.05356 -2015.8596 0 -1995.7078 -469.54017 +EFLAG_ATOM: 0 + 435 401.66336 -2015.578 0 -1995.693 -2532.2328 +EFLAG_ATOM: 0 + 436 382.77035 -2014.6899 0 -1995.7403 -3140.6309 +EFLAG_ATOM: 0 + 437 406.61932 -2015.8665 0 -1995.7361 -2786.8829 +EFLAG_ATOM: 0 + 438 402.50799 -2015.684 0 -1995.7571 -295.4293 +EFLAG_ATOM: 0 + 439 409.09914 -2016.01 0 -1995.7569 -969.43152 +EFLAG_ATOM: 0 + 440 381.59814 -2014.587 0 -1995.6954 -1563.6916 +EFLAG_ATOM: 0 + 441 381.00753 -2014.5819 0 -1995.7195 -2468.029 +EFLAG_ATOM: 0 + 442 411.43946 -2016.1123 0 -1995.7433 -2627.8798 +EFLAG_ATOM: 0 + 443 404.44536 -2015.8191 0 -1995.7964 -1168.0912 +EFLAG_ATOM: 0 + 444 409.45552 -2016.0533 0 -1995.7826 -3180.9266 +EFLAG_ATOM: 0 + 445 403.60464 -2015.7535 0 -1995.7724 -5877.5853 +EFLAG_ATOM: 0 + 446 424.59402 -2016.8157 0 -1995.7955 -3147.7601 +EFLAG_ATOM: 0 + 447 414.62799 -2016.3218 0 -1995.7949 -21.664252 +EFLAG_ATOM: 0 + 448 426.64991 -2016.9414 0 -1995.8194 -2736.1438 +EFLAG_ATOM: 0 + 449 427.08679 -2016.975 0 -1995.8313 -3412.2444 +EFLAG_ATOM: 0 + 450 428.14997 -2017.0245 0 -1995.8283 -477.24264 +EFLAG_ATOM: 0 + 451 417.92019 -2016.4938 0 -1995.804 -2743.5628 +EFLAG_ATOM: 0 + 452 406.56912 -2015.9255 0 -1995.7977 -6331.9865 +EFLAG_ATOM: 0 + 453 412.04872 -2016.2064 0 -1995.8073 -6392.7293 +EFLAG_ATOM: 0 + 454 398.99743 -2015.5685 0 -1995.8155 -1262.3888 +EFLAG_ATOM: 0 + 455 417.50779 -2016.4967 0 -1995.8273 -945.65054 +EFLAG_ATOM: 0 + 456 411.07919 -2016.1699 0 -1995.8188 -269.04538 +EFLAG_ATOM: 0 + 457 403.42708 -2015.8732 0 -1995.9009 -182.21922 +EFLAG_ATOM: 0 + 458 402.02046 -2015.7847 0 -1995.882 -745.84787 +EFLAG_ATOM: 0 + 459 400.43645 -2015.6985 0 -1995.8742 -1978.327 +EFLAG_ATOM: 0 + 460 410.31707 -2016.2189 0 -1995.9055 -1553.3607 +EFLAG_ATOM: 0 + 461 383.80502 -2014.8688 0 -1995.8679 -828.37633 +EFLAG_ATOM: 0 + 462 410.06335 -2016.2214 0 -1995.9206 -3315.5396 +EFLAG_ATOM: 0 + 463 412.32956 -2016.2699 0 -1995.8568 -5691.4611 +EFLAG_ATOM: 0 + 464 396.95729 -2015.5631 0 -1995.9111 -1552.0309 +EFLAG_ATOM: 0 + 465 393.95583 -2015.4364 0 -1995.933 4008.3142 +EFLAG_ATOM: 0 + 466 404.33345 -2015.9802 0 -1995.963 2934.0504 +EFLAG_ATOM: 0 + 467 399.30671 -2015.7994 0 -1996.0311 -2209.2122 +EFLAG_ATOM: 0 + 468 411.68865 -2016.3315 0 -1995.9502 -5226.2842 +EFLAG_ATOM: 0 + 469 398.1487 -2015.7565 0 -1996.0455 -2284.9659 +EFLAG_ATOM: 0 + 470 388.5257 -2015.3134 0 -1996.0788 2570.6696 +EFLAG_ATOM: 0 + 471 417.96561 -2016.7749 0 -1996.0828 1995.6372 +EFLAG_ATOM: 0 + 472 403.14452 -2016.0563 0 -1996.0979 751.85814 +EFLAG_ATOM: 0 + 473 409.00174 -2016.3457 0 -1996.0974 -4609.4973 +EFLAG_ATOM: 0 + 474 411.2782 -2016.4532 0 -1996.0922 -5732.7152 +EFLAG_ATOM: 0 + 475 398.49342 -2015.7646 0 -1996.0366 1458.2561 +EFLAG_ATOM: 0 + 476 394.14842 -2015.5129 0 -1996 3730.1148 +EFLAG_ATOM: 0 + 477 400.80972 -2015.8209 0 -1995.9782 -1300.0614 +EFLAG_ATOM: 0 + 478 404.50179 -2015.9935 0 -1995.968 -5125.8561 +EFLAG_ATOM: 0 + 479 385.70284 -2015.0614 0 -1995.9666 -3766.835 +EFLAG_ATOM: 0 + 480 387.4128 -2015.2307 0 -1996.0512 -671.93887 +EFLAG_ATOM: 0 + 481 403.41582 -2016.038 0 -1996.0662 -1128.8689 +EFLAG_ATOM: 0 + 482 408.03589 -2016.2557 0 -1996.0553 -1932.0866 +EFLAG_ATOM: 0 + 483 394.45183 -2015.6235 0 -1996.0956 106.91058 +EFLAG_ATOM: 0 + 484 404.93404 -2016.1077 0 -1996.0607 992.0093 +EFLAG_ATOM: 0 + 485 420.3653 -2016.917 0 -1996.1061 -2673.6693 +EFLAG_ATOM: 0 + 486 409.10976 -2016.4094 0 -1996.1558 -6494.311 +EFLAG_ATOM: 0 + 487 392.06503 -2015.55 0 -1996.1402 -2038.9363 +EFLAG_ATOM: 0 + 488 388.81701 -2015.4155 0 -1996.1665 2825.7489 +EFLAG_ATOM: 0 + 489 405.0699 -2016.2278 0 -1996.1741 1302.9238 +EFLAG_ATOM: 0 + 490 416.97776 -2016.8608 0 -1996.2177 -2219.9388 +EFLAG_ATOM: 0 + 491 417.81675 -2016.9614 0 -1996.2767 -2555.4546 +EFLAG_ATOM: 0 + 492 413.68551 -2016.7603 0 -1996.2801 -2027.6881 +EFLAG_ATOM: 0 + 493 424.91056 -2017.3157 0 -1996.2798 -1528.1146 +EFLAG_ATOM: 0 + 494 389.46101 -2015.587 0 -1996.3061 -2070.3847 +EFLAG_ATOM: 0 + 495 410.38092 -2016.6387 0 -1996.3221 -3598.6772 +EFLAG_ATOM: 0 + 496 400.33521 -2016.1666 0 -1996.3474 -3281.8669 +EFLAG_ATOM: 0 + 497 403.30026 -2016.2687 0 -1996.3026 -2226.0222 +EFLAG_ATOM: 0 + 498 406.17731 -2016.4952 0 -1996.3868 -361.38702 +EFLAG_ATOM: 0 + 499 397.45431 -2016.0776 0 -1996.401 -2161.6452 +EFLAG_ATOM: 0 + 500 394.29573 -2015.9863 0 -1996.4661 -2013.3618 +EFLAG_ATOM: 0 + 501 416.96198 -2017.1169 0 -1996.4746 2280.8465 +EFLAG_ATOM: 0 + 502 420.81097 -2017.2546 0 -1996.4217 3234.7567 +EFLAG_ATOM: 0 + 503 402.74179 -2016.3602 0 -1996.4218 -1152.3724 +EFLAG_ATOM: 0 + 504 408.75732 -2016.6119 0 -1996.3757 -2635.5274 +EFLAG_ATOM: 0 + 505 424.75855 -2017.3807 0 -1996.3524 -455.11676 +EFLAG_ATOM: 0 + 506 433.81686 -2017.803 0 -1996.3262 2118.9448 +EFLAG_ATOM: 0 + 507 421.66154 -2017.3029 0 -1996.4278 554.37784 +EFLAG_ATOM: 0 + 508 402.48502 -2016.4524 0 -1996.5267 -4023.2729 +EFLAG_ATOM: 0 + 509 420.74917 -2017.3762 0 -1996.5463 -5491.2365 +EFLAG_ATOM: 0 + 510 425.60616 -2017.5961 0 -1996.5257 -316.93049 +EFLAG_ATOM: 0 + 511 398.62515 -2016.2875 0 -1996.5529 4263.9966 +EFLAG_ATOM: 0 + 512 407.5981 -2016.7064 0 -1996.5276 -639.62105 +EFLAG_ATOM: 0 + 513 406.20745 -2016.6219 0 -1996.512 -2497.3535 +EFLAG_ATOM: 0 + 514 399.07214 -2016.2145 0 -1996.4578 946.14784 +EFLAG_ATOM: 0 + 515 414.58686 -2017.0116 0 -1996.4868 455.12721 +EFLAG_ATOM: 0 + 516 414.41365 -2017.0496 0 -1996.5333 2534.7842 +EFLAG_ATOM: 0 + 517 400.26488 -2016.3591 0 -1996.5434 3100.7194 +EFLAG_ATOM: 0 + 518 402.25554 -2016.5084 0 -1996.5941 -1633.7443 +EFLAG_ATOM: 0 + 519 399.37819 -2016.3632 0 -1996.5913 -3713.8104 +EFLAG_ATOM: 0 + 520 389.95761 -2015.9127 0 -1996.6072 -2807.5411 +EFLAG_ATOM: 0 + 521 391.83211 -2016.0573 0 -1996.659 1279.5765 +EFLAG_ATOM: 0 + 522 396.45626 -2016.2694 0 -1996.6422 3068.0446 +EFLAG_ATOM: 0 + 523 398.70447 -2016.4312 0 -1996.6926 -94.044669 +EFLAG_ATOM: 0 + 524 400.67917 -2016.496 0 -1996.6597 407.88988 +EFLAG_ATOM: 0 + 525 386.12975 -2015.8381 0 -1996.7221 823.18056 +EFLAG_ATOM: 0 + 526 373.51059 -2015.2195 0 -1996.7282 -649.36764 +EFLAG_ATOM: 0 + 527 385.98409 -2015.8323 0 -1996.7235 -4414.7601 +EFLAG_ATOM: 0 + 528 394.58846 -2016.3015 0 -1996.7668 -5627.6084 +EFLAG_ATOM: 0 + 529 383.48955 -2015.774 0 -1996.7888 46.18584 +EFLAG_ATOM: 0 + 530 408.40484 -2017.0133 0 -1996.7946 2504.3965 +EFLAG_ATOM: 0 + 531 384.90901 -2015.9132 0 -1996.8577 -975.86947 +EFLAG_ATOM: 0 + 532 391.70279 -2016.2883 0 -1996.8964 -5274.7212 +EFLAG_ATOM: 0 + 533 404.89656 -2016.9713 0 -1996.9262 -4293.037 +EFLAG_ATOM: 0 + 534 382.81961 -2015.8695 0 -1996.9174 3632.1566 +EFLAG_ATOM: 0 + 535 401.42088 -2016.7323 0 -1996.8593 4181.8767 +EFLAG_ATOM: 0 + 536 383.83312 -2015.8459 0 -1996.8437 -629.33891 +EFLAG_ATOM: 0 + 537 397.56109 -2016.5369 0 -1996.855 -6935.7487 +EFLAG_ATOM: 0 + 538 369.61395 -2015.1135 0 -1996.8152 -3857.3697 +EFLAG_ATOM: 0 diff --git a/run/lammps.in b/run/lammps.in new file mode 100644 index 00000000000..650510f0286 --- /dev/null +++ b/run/lammps.in @@ -0,0 +1,26 @@ +units metal + +atom_style atomic + +lattice fcc 3.615 +region box block 0 8 0 8 0 8 +create_box 1 box +create_atoms 1 box +mass 1 63.546 + +pair_style metatomic pet-mad-latest.pt device cuda non_conservative on +pair_coeff * * 14 + +run_style verlet + +neighbor 2.0 bin +timestep 0.001 + +thermo 10 + +velocity all create 300 87287 mom yes rot yes + +fix 1 all nve +# fix 2 all langevin 300.0 300.0 0.1 12345 + +run 100 diff --git a/run/lammps.out b/run/lammps.out new file mode 100644 index 00000000000..8c57a25a6a0 --- /dev/null +++ b/run/lammps.out @@ -0,0 +1,174 @@ +LAMMPS (10 Sep 2025) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. + using 1 OpenMP thread(s) per MPI task +Reading data file ... + orthogonal box = (0 0 0) to (15.659926 15.659926 15.659926) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 384 atoms + read_data CPU = 0.001 seconds + +This is an unamed model +======================= + +Model references +---------------- + +Please cite the following references when using this model: +- about the architecture of this model: + * https://arxiv.org/abs/2305.19302v3 + +Running simulation on cuda:0 device with float32 data + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: +- https://arxiv.org/abs/2305.19302v3 +The log file lists these citations in BibTeX format. + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +cutoff = 4.5 +request.cutoff() = 4.5 +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 15.5 + ghost atom cutoff = 20 + binsize = 7.75, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair metatomic, perpetual + attributes: full, newton on, ghost + pair build: full/bin/ghost + stencil: full/ghost/bin/3d + bin: standard +Setting up Verlet run ... + Unit style : metal + Current step : 0 + Time step : 0.008 +EFLAG_ATOM: 0 +Per MPI rank memory allocation (min/avg/max) = 80.03 | 80.03 | 80.03 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 300 -2002.745 0 -1987.893 -79224.941 3840.3351 +EFLAG_ATOM: 0 + 1 1.0245573e+08 12441.312 0 5084679.9 1.4147522e+09 3840.3332 +EFLAG_ATOM: 0 +ERROR: error evaluating the torch model: The following operation failed in the TorchScript interpreter. +Traceback of TorchScript, serialized code (most recent call last): + File "code/__torch__/metatomic/torch/model.py", line 79, in forward + with _29: + module = self.module + outputs = (module).forward(systems0, (options).outputs_getter(), (options).selected_atoms_getter(), ) + ~~~~~~~~~~~~~~~ <--- HERE + if check_consistency: + _31 = __torch__.torch.autograd.profiler.record_function.__new__(__torch__.torch.autograd.profiler.record_function) + File "code/__torch__/metatrain/pet/model.py", line 91, in forward + _19, _20, = _17[_18] + torch._set_item(featurizer_inputs, _19, _20) + _21 = (self)._calculate_features(featurizer_inputs, use_manual_attention, ) + ~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE + node_features_list, edge_features_list, = _21 + long_range = self.long_range + File "code/__torch__/metatrain/pet/model.py", line 214, in _calculate_features + _69 = torch.eq(featurizer_type, "feedforward") + if _69: + _71 = (self)._feedforward_featurization_impl(inputs, use_manual_attention, ) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE + _70 = _71 + else: + File "code/__torch__/metatrain/pet/model.py", line 242, in _feedforward_featurization_impl + _11 = getattr(gnn_layers, "1") + _21 = getattr(gnn_layers, "2") + _73 = (_03).forward(input_node_embeddings, input_edge_embeddings, inputs["element_indices_neighbors"], inputs["edge_vectors"], inputs["padding_mask"], inputs["edge_distances"], inputs["cutoff_factors"], use_manual_attention, ) + ~~~~~~~~~~~~ <--- HERE + output_node_embeddings, output_edge_embeddings, = _73 + _74 = (torch.size(output_edge_embeddings))[0] + File "code/__torch__/metatrain/pet/modules/transformer.py", line 67, in forward + _21 = torch.slice(torch.slice(cutoff_factors2), 1, None, torch.add(max_num_tokens, 1)) + _22 = torch.slice(_21, 2, None, torch.add(max_num_tokens, 1)) + _23 = (trans).forward(_18, _20, _22, use_manual_attention, ) + ~~~~~~~~~~~~~~ <--- HERE + output_node_embeddings, output_edge_embeddings, = _23 + _24 = torch.lt(max_num_tokens, initial_num_tokens) + File "code/__torch__/metatrain/pet/modules/transformer.py", line 100, in forward + _0 = getattr(layers, "0") + _1 = getattr(layers, "1") + _32 = (_0).forward(node_embeddings, edge_embeddings, cutoff_factors, use_manual_attention, ) + ~~~~~~~~~~~ <--- HERE + node_embeddings0, edge_embeddings2, = _32 + _33 = (_1).forward(node_embeddings0, edge_embeddings2, cutoff_factors, use_manual_attention, ) + File "code/__torch__/metatrain/pet/modules/transformer.py", line 138, in forward + _37 = torch.eq(transformer_type0, "PreLN") + if _37: + _38 = (self)._forward_pre_ln_impl(node_embeddings2, edge_embeddings4, cutoff_factors, use_manual_attention, ) + ~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE + node_embeddings5, edge_embeddings7, = _38 + node_embeddings4, edge_embeddings6 = node_embeddings5, edge_embeddings7 + File "code/__torch__/metatrain/pet/modules/transformer.py", line 196, in _forward_pre_ln_impl + input_node_embeddings = node_embeddings + _47 = [input_node_embeddings, edge_embeddings] + tokens = torch.cat(_47, 1) + ~~~~~~~~~ <--- HERE + attention = self.attention + norm_attention = self.norm_attention + +Traceback of TorchScript, original code (most recent call last): + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatomic/torch/model.py", line 429, in forward + # run the actual calculations + with record_function("Model::forward"): + outputs = self.module( + ~~~~~~~~~~~ <--- HERE + systems=systems, + outputs=options.outputs, + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/pet/model.py", line 432, in forward + cutoff_factors=cutoff_factors, + ) + node_features_list, edge_features_list = self._calculate_features( + ~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE + featurizer_inputs, + use_manual_attention=use_manual_attention, + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/pet/model.py", line 568, in _calculate_features + """ + if self.featurizer_type == "feedforward": + return self._feedforward_featurization_impl(inputs, use_manual_attention) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE + else: + return self._residual_featurization_impl(inputs, use_manual_attention) + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/pet/model.py", line 596, in _feedforward_featurization_impl + self.combination_norms, self.combination_mlps, self.gnn_layers, strict=True + ): + output_node_embeddings, output_edge_embeddings = gnn_layer( + ~~~~~~~~~ <--- HERE + input_node_embeddings, + input_edge_embeddings, + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/pet/modules/transformer.py", line 484, in forward + max_num_tokens = input_messages.shape[1] + + output_node_embeddings, output_edge_embeddings = self.trans( + ~~~~~~~~~~ <--- HERE + node_embeddings[:, None, :], + edge_tokens[:, :max_num_tokens, :], + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/pet/modules/transformer.py", line 335, in forward + """ + for layer in self.layers: + node_embeddings, edge_embeddings = layer( + ~~~~~ <--- HERE + node_embeddings, edge_embeddings, cutoff_factors, use_manual_attention + ) + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/pet/modules/transformer.py", line 244, in forward + ) + if self.transformer_type == "PreLN": + node_embeddings, edge_embeddings = self._forward_pre_ln_impl( + ~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE + node_embeddings, edge_embeddings, cutoff_factors, use_manual_attention + ) + File "/home/filippo/code/virtualenvs/base/lib/python3.12/site-packages/metatrain/pet/modules/transformer.py", line 165, in _forward_pre_ln_impl + else: + input_node_embeddings = node_embeddings + tokens = torch.cat([input_node_embeddings, edge_embeddings], dim=1) + ~~~~~~~~~ <--- HERE + new_tokens = self.attention( + self.norm_attention(tokens), cutoff_factors, use_manual_attention +RuntimeError: Sizes of tensors must match except in dimension 1. Expected size 140 but got size 68 for tensor number 1 in the list. + (src/ML-METATOMIC/pair_metatomic.cpp:507) +Last input line: run 1000 diff --git a/run/lammps_respa.in b/run/lammps_respa.in new file mode 100644 index 00000000000..d507ad09fda --- /dev/null +++ b/run/lammps_respa.in @@ -0,0 +1,50 @@ +units metal + +atom_style atomic + +lattice fcc 3.615 +region box block 0 4 0 4 0 4 +create_box 1 box +create_atoms 1 box +mass 1 63.546 + +pair_style hybrid/overlay metatomic_1 pet-mad-latest.pt device cuda non_conservative on scale 1.0 metatomic_2 pet-mad-latest.pt device cuda non_conservative on scale -1.0 metatomic pet-mad-latest.pt device cuda non_conservative off scale 1.0 +pair_coeff * * metatomic 14 +pair_coeff * * metatomic_1 14 +pair_coeff * * metatomic_2 14 + +# pair_style hybrid/overlay metatomic_1 pet-mad-latest.pt device cuda non_conservative off scale 0.5 metatomic pet-mad-latest.pt device cuda non_conservative off scale 0.5 +# pair_coeff * * metatomic 14 +# pair_coeff * * metatomic_1 14 + +# pair_style hybrid/overlay morse 6.0 lj/cut 7.5 +# pair_coeff * * morse 0.3429 1.444 2.491 6.0 +# pair_coeff * * lj/cut 0.01 2.5 7.5 + +# pair_style lj/cut 7.5 +# pair_coeff * * 0.01 2.5 7.5 + +run_style respa 2 8 hybrid 1 2 2 + +# pair_style metatomic pet-mad-latest.pt device cuda +# pair_coeff * * 14 + +# pair_style hybrid/overlay metatomic_1 pet-mad-latest.pt device cuda scale 0.5 metatomic_2 pet-mad-latest.pt device cuda scale 0.5 +# pair_coeff * * metatomic_1 14 +# pair_coeff * * metatomic_2 14 + +# pair_style hybrid/overlay metatomic_1 nickel-lj.pt device cuda scale 0.5 metatomic_2 nickel-lj.pt device cuda scale 0.5 +# pair_coeff * * metatomic_1 28 +# pair_coeff * * metatomic_2 28 + +timestep 0.004 + +thermo 10 +# thermo_modify format float %.6f + +velocity all create 300 87287 mom yes rot yes + +fix 1 all nve +# fix 2 all langevin 300.0 300.0 0.1 12345 + +run 125 diff --git a/run/log.out b/run/log.out new file mode 100644 index 00000000000..1da193655df --- /dev/null +++ b/run/log.out @@ -0,0 +1,134 @@ +LAMMPS (2 Apr 2025) +KOKKOS mode with Kokkos version 4.6.0 is enabled (src/KOKKOS/kokkos.cpp:72) + will use up to 1 GPU(s) per node + using 1 OpenMP thread(s) per MPI task +Lattice spacing in x,y,z = 3.615 3.615 3.615 +Created orthogonal box = (0 0 0) to (14.46 14.46 14.46) + 1 by 1 by 1 MPI processor grid +Created 256 atoms + using lattice units in orthogonal box = (0 0 0) to (14.46 14.46 14.46) + create_atoms CPU = 0.002 seconds + +This is an unamed model +======================= + +Model references +---------------- + +Please cite the following references when using this model: +- about the architecture of this model: + * https://arxiv.org/abs/2305.19302v3 + +Running simulation on cuda:0 device with float32 data + +This is an unamed model +======================= + +Model references +---------------- + +Please cite the following references when using this model: +- about the architecture of this model: + * https://arxiv.org/abs/2305.19302v3 + +Running simulation on cuda:0 device with float32 data + +This is an unamed model +======================= + +Model references +---------------- + +Please cite the following references when using this model: +- about the architecture of this model: + * https://arxiv.org/abs/2305.19302v3 + +Running simulation on cuda:0 device with float32 data +Respa levels: + 1 = bond angle dihedral improper hybrid-1 + 2 = hybrid-2 hybrid-3 kspace + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: +- https://arxiv.org/abs/2305.19302v3 +The log file lists these citations in BibTeX format. + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 11, bins = 2 2 2 + 3 neighbor lists, perpetual/occasional/extra = 3 0 0 + (1) pair metatomic_1, perpetual + attributes: full, newton on, ghost, kokkos_device + pair build: full/bin/ghost/kk/device + stencil: full/ghost/bin/3d + bin: kk/device + (2) pair metatomic_2, perpetual, copy from (1) + attributes: full, newton on, ghost, kokkos_device + pair build: copy/kk/device + stencil: none + bin: none + (3) pair metatomic, perpetual, copy from (1) + attributes: full, newton on, ghost, kokkos_device + pair build: copy/kk/device + stencil: none + bin: none +Setting up r-RESPA run ... + Unit style : metal + Current step : 0 + Time steps : 1:0.0005 2:0.004 + r-RESPA fixes : +WARNING: Fix RESPA not compatible with sending data in Kokkos communication (src/KOKKOS/comm_kokkos.cpp:766) +WARNING: Fix with atom-based arrays not compatible with sending data in Kokkos communication, switching to classic exchange/border communication (src/KOKKOS/comm_kokkos.cpp:779) +WARNING: Fix RESPA not compatible with Kokkos sorting on device (src/KOKKOS/atom_kokkos.cpp:212) +WARNING: Fix with atom-based arrays not compatible with Kokkos sorting on device, switching to classic host sorting (src/KOKKOS/atom_kokkos.cpp:218) +Per MPI rank memory allocation (min/avg/max) = 5.002 | 5.002 | 5.002 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -1335.9207 0 -1326.0323 144805.16 + 10 76.484066 -1328.5359 0 -1326.0149 170127.28 + 20 129.11323 -1330.2771 0 -1326.0214 167276.46 + 30 166.90739 -1331.5227 0 -1326.0212 159896.11 + 40 146.05235 -1330.8333 0 -1326.0192 161028.24 + 50 160.36688 -1331.3071 0 -1326.0212 160333.22 + 60 138.56125 -1330.5868 0 -1326.0196 163124.55 + 70 150.7026 -1330.9877 0 -1326.0203 161852.1 + 80 160.91314 -1331.3247 0 -1326.0208 160387.36 + 90 142.18906 -1330.7065 0 -1326.0198 162289.83 + 100 153.95673 -1331.0951 0 -1326.0205 160916.04 + 110 144.51871 -1330.7836 0 -1326.02 162449.65 + 120 144.34685 -1330.7783 0 -1326.0205 162959.63 + 125 142.50892 -1330.7173 0 -1326.02 162950.24 +Loop time of 40.4834 on 1 procs for 125 steps with 256 atoms + +Performance: 1.067 ns/day, 22.491 hours/ns, 3.088 timesteps/s, 790.448 atom-step/s +99.4% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 37.894 | 37.894 | 37.894 | 0.0 | 93.60 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 1.1415 | 1.1415 | 1.1415 | 0.0 | 2.82 +Output | 0.0018303 | 0.0018303 | 0.0018303 | 0.0 | 0.00 +Modify | 1.4299 | 1.4299 | 1.4299 | 0.0 | 3.53 +Other | | 0.01648 | | | 0.04 + +Nlocal: 256 ave 256 max 256 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 4375 ave 4375 max 4375 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 117248 ave 117248 max 117248 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 117248 +Ave neighs/atom = 458 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:42 diff --git a/run/log_no_overlay.out b/run/log_no_overlay.out new file mode 100644 index 00000000000..7863322ee29 --- /dev/null +++ b/run/log_no_overlay.out @@ -0,0 +1,179 @@ +LAMMPS (2 Apr 2025) +KOKKOS mode with Kokkos version 4.6.0 is enabled (src/KOKKOS/kokkos.cpp:72) + will use up to 1 GPU(s) per node + using 1 OpenMP thread(s) per MPI task +Lattice spacing in x,y,z = 3.615 3.615 3.615 +Created orthogonal box = (0 0 0) to (14.46 14.46 14.46) + 1 by 1 by 1 MPI processor grid +Created 256 atoms + using lattice units in orthogonal box = (0 0 0) to (14.46 14.46 14.46) + create_atoms CPU = 0.002 seconds + +This is an unamed model +======================= + +Model references +---------------- + +Please cite the following references when using this model: +- about the architecture of this model: + * https://arxiv.org/abs/2305.19302v3 + +Running simulation on cuda:0 device with float32 data + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: +- https://arxiv.org/abs/2305.19302v3 +The log file lists these citations in BibTeX format. + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 11, bins = 2 2 2 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair metatomic/kk, perpetual + attributes: full, newton on, ghost, kokkos_device + pair build: full/bin/ghost/kk/device + stencil: full/ghost/bin/3d + bin: kk/device +Setting up Verlet run ... + Unit style : metal + Current step : 0 + Time step : 0.0005 +Per MPI rank memory allocation (min/avg/max) = 3.364 | 3.364 | 3.364 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -1335.9207 0 -1326.0323 144805.16 + 10 292.20831 -1335.6628 0 -1326.0313 145282.4 + 20 269.95895 -1334.9294 0 -1326.0312 146882.11 + 30 236.5011 -1333.8264 0 -1326.031 149833.22 + 40 196.47415 -1332.5072 0 -1326.0312 153967.39 + 50 155.22058 -1331.1473 0 -1326.0311 158781.61 + 60 118.4144 -1329.934 0 -1326.0309 163520.3 + 70 91.115347 -1329.0341 0 -1326.0308 167443.62 + 80 76.430037 -1328.55 0 -1326.0308 170069.73 + 90 74.579966 -1328.489 0 -1326.0308 171269.46 + 100 82.949506 -1328.7651 0 -1326.031 171245.57 + 110 97.097039 -1329.2314 0 -1326.031 170390.36 + 120 112.20944 -1329.7296 0 -1326.031 169188.1 + 130 124.35877 -1330.13 0 -1326.031 168083.47 + 140 131.24513 -1330.3573 0 -1326.0313 167354.73 + 150 132.41949 -1330.3958 0 -1326.031 167112.05 + 160 129.06858 -1330.2853 0 -1326.031 167237.36 + 170 123.5078 -1330.1019 0 -1326.0309 167527.9 + 180 118.52797 -1329.9377 0 -1326.0309 167705.35 + 190 116.66714 -1329.8765 0 -1326.031 167496.44 + 200 119.53451 -1329.9709 0 -1326.0309 166744.95 + 210 127.42279 -1330.231 0 -1326.0309 165439.31 + 220 139.32225 -1330.6232 0 -1326.0309 163703.6 + 230 153.25311 -1331.0825 0 -1326.0311 161750.42 + 240 166.79342 -1331.5288 0 -1326.0311 159867.49 + 250 177.67801 -1331.8876 0 -1326.0311 158312.12 + 260 184.22576 -1332.1035 0 -1326.0312 157263.22 + 270 185.62679 -1332.1497 0 -1326.0312 156854.59 + 280 182.03427 -1332.0312 0 -1326.0312 157078.1 + 290 174.46213 -1331.7817 0 -1326.0312 157808.46 + 300 164.58352 -1331.4561 0 -1326.0312 158850.54 + 310 154.43122 -1331.1212 0 -1326.031 159983.78 + 320 146.00485 -1330.8434 0 -1326.0309 160986.27 + 330 140.78798 -1330.6715 0 -1326.0309 161684.88 + 340 139.4119 -1330.6261 0 -1326.0309 161995.39 + 350 141.52855 -1330.6958 0 -1326.0308 161931.88 + 360 146.03456 -1330.8444 0 -1326.0309 161579.25 + 370 151.45319 -1331.0231 0 -1326.031 161091.05 + 380 156.31021 -1331.1832 0 -1326.031 160636.12 + 390 159.46791 -1331.2872 0 -1326.031 160352.08 + 400 160.30024 -1331.3147 0 -1326.031 160299.11 + 410 158.72864 -1331.2631 0 -1326.0312 160514.8 + 420 155.15048 -1331.1449 0 -1326.0309 160969.04 + 430 150.33331 -1330.9862 0 -1326.031 161558.88 + 440 145.2502 -1330.8186 0 -1326.031 162180.69 + 450 140.89507 -1330.675 0 -1326.031 162708.64 + 460 138.08037 -1330.5823 0 -1326.031 163059.18 + 470 137.26764 -1330.5557 0 -1326.0311 163182.66 + 480 138.46944 -1330.5951 0 -1326.031 163087.16 + 490 141.25853 -1330.687 0 -1326.0309 162828.44 + 500 144.85871 -1330.8058 0 -1326.031 162484.38 + 510 148.38625 -1330.922 0 -1326.031 162154.89 + 520 151.10257 -1331.0117 0 -1326.0312 161897.3 + 530 152.56706 -1331.0598 0 -1326.031 161739 + 540 152.74167 -1331.0657 0 -1326.0311 161690.16 + 550 151.92833 -1331.0388 0 -1326.0311 161728.67 + 560 150.65483 -1330.9968 0 -1326.031 161812.59 + 570 149.52226 -1330.9595 0 -1326.031 161890.07 + 580 149.0614 -1330.9443 0 -1326.0311 161904.45 + 590 149.61975 -1330.9626 0 -1326.031 161821.47 + 600 151.27226 -1331.0172 0 -1326.0311 161606.27 + 610 153.77881 -1331.0996 0 -1326.0309 161286.08 + 620 156.64199 -1331.1942 0 -1326.0311 160923.08 + 630 159.20896 -1331.2788 0 -1326.0311 160580.67 + 640 160.82893 -1331.3322 0 -1326.031 160354.17 + 650 161.0099 -1331.3381 0 -1326.031 160281.24 + 660 159.55551 -1331.2902 0 -1326.031 160380.09 + 670 156.63129 -1331.194 0 -1326.0312 160641.85 + 680 152.74483 -1331.0657 0 -1326.031 161012.69 + 690 148.63822 -1330.9303 0 -1326.031 161449.23 + 700 145.11562 -1330.8141 0 -1326.0309 161843.66 + 710 142.82849 -1330.7388 0 -1326.031 162126.26 + 720 142.12128 -1330.7156 0 -1326.0311 162250.6 + 730 142.95568 -1330.743 0 -1326.031 162208.12 + 740 144.97339 -1330.8094 0 -1326.0309 162017.95 + 750 147.62647 -1330.8969 0 -1326.0309 161737.19 + 760 150.32026 -1330.986 0 -1326.0312 161428.17 + 770 152.54355 -1331.059 0 -1326.0309 161151.9 + 780 153.95216 -1331.1053 0 -1326.0309 160946.93 + 790 154.38952 -1331.12 0 -1326.0311 160857.69 + 800 153.8934 -1331.1035 0 -1326.031 160879.56 + 810 152.65277 -1331.0627 0 -1326.0311 161006.65 + 820 150.95467 -1331.0067 0 -1326.031 161204.27 + 830 149.09709 -1330.9454 0 -1326.031 161439.26 + 840 147.3313 -1330.8873 0 -1326.0311 161714.95 + 850 145.85599 -1330.8387 0 -1326.0311 161977.13 + 860 144.82818 -1330.8047 0 -1326.031 162174.01 + 870 144.34605 -1330.7888 0 -1326.031 162320.06 + 880 144.43297 -1330.7917 0 -1326.031 162412.78 + 890 144.99965 -1330.8104 0 -1326.031 162451.01 + 900 145.86002 -1330.8387 0 -1326.031 162465.58 + 910 146.75763 -1330.8683 0 -1326.031 162477.48 + 920 147.38351 -1330.889 0 -1326.0311 162515.44 + 930 147.45811 -1330.8915 0 -1326.0311 162600.78 + 940 146.87423 -1330.8722 0 -1326.031 162699.42 + 950 145.72907 -1330.8344 0 -1326.0309 162816.02 + 960 144.30082 -1330.7874 0 -1326.031 162919.19 + 970 142.96197 -1330.7433 0 -1326.0311 163012.52 + 980 142.06667 -1330.7139 0 -1326.0312 163062.95 + 990 141.86187 -1330.707 0 -1326.0311 163033.86 + 1000 142.44133 -1330.7261 0 -1326.031 162910.39 +Loop time of 52.7452 on 1 procs for 1000 steps with 256 atoms + +Performance: 0.819 ns/day, 29.303 hours/ns, 18.959 timesteps/s, 4.854 katom-step/s +99.6% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 52.636 | 52.636 | 52.636 | 0.0 | 99.79 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.028983 | 0.028983 | 0.028983 | 0.0 | 0.05 +Output | 0.0038249 | 0.0038249 | 0.0038249 | 0.0 | 0.01 +Modify | 0.020702 | 0.020702 | 0.020702 | 0.0 | 0.04 +Other | | 0.05527 | | | 0.10 + +Nlocal: 256 ave 256 max 256 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 4375 ave 4375 max 4375 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 117248 ave 117248 max 117248 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 117248 +Ave neighs/atom = 458 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:53 diff --git a/run/molecule.py b/run/molecule.py new file mode 100644 index 00000000000..d6f50a4f2c2 --- /dev/null +++ b/run/molecule.py @@ -0,0 +1,9 @@ +import ase.build + + +molecule = ase.build.molecule("H2O") +molecule.cell = [100.0, 100.0, 100.0] +molecule.pbc = [True, True, True] +molecule.center() +ase.io.write("water-1.xyz", molecule) +ase.io.write("water-1.lmp", molecule, format="lammps-data") diff --git a/run/nickel-lj.pt b/run/nickel-lj.pt new file mode 100644 index 00000000000..a48b315ff68 Binary files /dev/null and b/run/nickel-lj.pt differ diff --git a/run/pet-mad-latest.pt b/run/pet-mad-latest.pt new file mode 100644 index 00000000000..b0e972ef129 Binary files /dev/null and b/run/pet-mad-latest.pt differ diff --git a/run/try.in b/run/try.in new file mode 100644 index 00000000000..4a247625dc0 --- /dev/null +++ b/run/try.in @@ -0,0 +1,18 @@ +units metal +atom_style atomic +lattice fcc 4.05 +region box block 0 5 0 5 0 5 +create_box 1 box +create_atoms 1 box +pair_style hybrid/overlay metatomic_1 pet-mad-latest.pt device cuda non_conservative on scale 1.0 metatomic_2 pet-mad-latest.pt device cuda non_conservative on scale -1.0 metatomic_3 pet-mad-latest.pt device cuda non_conservative off scale 1.0 +pair_coeff * * metatomic_1 13 +pair_coeff * * metatomic_2 13 +pair_coeff * * metatomic_3 13 +run_style respa 2 8 hybrid 1 2 2 +mass 1 26.981539 +velocity all create 300.0 12345 mom no dist gaussian +neighbor 2.0 bin +timestep 0.032 +thermo 1 +fix 1 all nve +run 100 diff --git a/run/water-1.lmp b/run/water-1.lmp new file mode 100644 index 00000000000..25ee42ad14f --- /dev/null +++ b/run/water-1.lmp @@ -0,0 +1,14 @@ +(written by ASE) + +3 atoms +2 atom types + +0.0 100 xlo xhi +0.0 100 ylo yhi +0.0 100 zlo zhi + +Atoms # atomic + + 1 2 50 50 50.298154499999988 + 2 1 50 50.763238999999999 49.70184549999999 + 3 1 50 49.236761000000001 49.70184549999999 diff --git a/run/water-1.xyz b/run/water-1.xyz new file mode 100644 index 00000000000..cc75984018f --- /dev/null +++ b/run/water-1.xyz @@ -0,0 +1,5 @@ +3 +Lattice="100.0 0.0 0.0 0.0 100.0 0.0 0.0 0.0 100.0" Properties=species:S:1:pos:R:3 pbc="T T T" +O 50.00000000 50.00000000 50.29815450 +H 50.00000000 50.76323900 49.70184550 +H 50.00000000 49.23676100 49.70184550 diff --git a/run/water-128.lmp b/run/water-128.lmp new file mode 100644 index 00000000000..0d4724b2aba --- /dev/null +++ b/run/water-128.lmp @@ -0,0 +1,395 @@ +(written by ASE) + +384 atoms +2 atom types + +0.0 15.659926093578173 xlo xhi +0.0 15.659926093578173 ylo yhi +0.0 15.659926093578173 zlo zhi + +Atoms # atomic + + 1 2 0.060957490000000003 5.6553690999999997 4.9626501000000003 + 2 1 0.19179324 6.2673003999999999 4.1296782900000002 + 3 1 -0.85307168 5.1400348300000003 4.7656137599999999 + 4 2 0.13982955999999999 12.554312449999999 12.280250629999999 + 5 1 0.90326130999999998 12.456554730000001 11.59264465 + 6 1 -0.079485929999999996 11.607853629999999 12.554812739999999 + 7 2 0.26120722000000002 13.00647942 9.0762488900000005 + 8 1 0.55911412000000005 12.78564903 8.1170725600000004 + 9 1 1.0801777699999999 12.599339029999999 9.5842388199999995 + 10 2 9.6598534699999998 2.7866353099999999 6.14488813 + 11 1 10.66599753 2.4657358399999998 6.0551951700000002 + 12 1 9.1109793999999997 2.3125453999999999 5.4441543899999996 + 13 2 8.55412061 0.076976149999999993 12.089738150000001 + 14 1 9.1999919499999994 -0.66926414999999995 11.993681430000001 + 15 1 8.7452634699999994 0.69452607 11.23813533 + 16 2 0.73087553000000005 4.7960016999999997 1.67391833 + 17 1 -0.043134270000000002 4.1628478700000002 1.60388698 + 18 1 1.42312025 4.4682281799999997 0.94775958999999999 + 19 2 4.6160954800000003 11.84719494 8.4169796399999992 + 20 1 4.91078948 12.668679969999999 7.8552980100000003 + 21 1 3.71464324 11.638972000000001 7.9598697500000002 + 22 2 7.1821605599999998 11.149482989999999 14.252415060000001 + 23 1 7.8361867199999997 10.686709759999999 14.92120993 + 24 1 6.2772562799999996 10.903737899999999 14.58050877 + 25 2 14.818549320000001 13.69468576 1.9528630300000001 + 26 1 14.64624759 12.983565889999999 1.2563017599999999 + 27 1 15.89478476 13.84267313 1.8868540600000001 + 28 2 1.7109601999999999 13.63635131 1.3340276499999999 + 29 1 1.81581211 12.670080799999999 1.6870060600000001 + 30 1 1.3523184500000001 13.46585065 0.37795214999999999 + 31 2 0.82906449999999998 7.26163749 2.7886865200000002 + 32 1 0.49196547000000002 6.3573735899999999 2.3446043300000001 + 33 1 1.83037071 7.3937955200000003 2.5697972899999999 + 34 2 14.68286921 6.5636553800000002 9.6979159399999997 + 35 1 13.75512144 6.7701573100000001 10.045831359999999 + 36 1 14.90730172 5.8327038 10.402441919999999 + 37 2 9.6227315499999992 6.6248715200000001 2.7642020700000001 + 38 1 9.3217138199999994 5.80690857 2.2307170799999998 + 39 1 9.9746893599999993 6.3470975200000002 3.6740993 + 40 2 9.7554799299999999 7.5027598600000003 13.096532590000001 + 41 1 9.4686005499999997 7.5175886099999998 12.0600206 + 42 1 10.17740905 8.3906140699999998 13.368293039999999 + 43 2 14.88448825 15.52956913 9.5579733200000003 + 44 1 15.46603161 15.76420766 10.408845700000001 + 45 1 15.28962746 14.648949180000001 9.1783291600000005 + 46 2 7.45945429 7.8037275599999996 0.69548463999999999 + 47 1 6.6501764699999999 8.1925271199999994 1.2084635100000001 + 48 1 7.3084351200000004 7.9475824900000003 -0.32432749 + 49 2 15.442417669999999 13.910012890000001 4.5241812100000001 + 50 1 15.18386501 13.75642221 3.46728719 + 51 1 16.327240100000001 14.42011407 4.2893525600000002 + 52 2 9.3832401500000007 2.0696419800000001 10.23384237 + 53 1 8.9077594100000006 2.8064570199999999 10.788169659999999 + 54 1 8.6642456299999999 1.85093285 9.5223923100000007 + 55 2 13.84987739 11.09525097 9.0558068200000008 + 56 1 13.983856490000001 10.408745639999999 8.2903248600000001 + 57 1 14.74640672 11.57773585 9.1031948000000007 + 58 2 2.8238572899999999 0.047288820000000002 6.7093213900000004 + 59 1 2.1849200400000002 -0.72179017000000001 6.6445631499999998 + 60 1 3.6717479100000001 -0.33898515000000001 6.3040020700000001 + 61 2 3.5559195199999998 7.1493311799999999 2.3274542 + 62 1 3.9476308000000002 6.1534131600000004 2.3716002600000001 + 63 1 4.4547802399999998 7.6329667299999997 2.26604794 + 64 2 15.2834238 9.8485648900000005 13.26573249 + 65 1 15.581699909999999 9.4282467200000006 12.33528312 + 66 1 14.76641854 9.1250677200000005 13.75992428 + 67 2 13.177680499999999 13.773132070000001 11.184003369999999 + 68 1 13.794044420000001 14.366282289999999 10.590753100000001 + 69 1 13.772431660000001 12.8867087 11.24624012 + 70 2 14.65675379 8.7192681200000006 1.08116835 + 71 1 14.02117853 8.2651700100000003 1.8042853000000001 + 72 1 15.65174126 8.3966976599999992 1.28407816 + 73 2 13.24682132 10.126879219999999 4.5362783599999998 + 74 1 13.41231904 9.8052493199999997 5.4972157199999998 + 75 1 13.040299389999999 11.11086019 4.7037072100000001 + 76 2 8.8058392300000001 9.1631902200000006 3.85793784 + 77 1 9.1980808199999995 9.8017572499999996 3.17300344 + 78 1 8.8787422800000009 8.2662306300000008 3.4345478599999999 + 79 2 5.2345006100000004 14.07701149 6.5617042300000001 + 80 1 5.3463666600000002 14.738802229999999 7.3977078299999999 + 81 1 6.0818208900000004 14.23320371 6.0255876900000001 + 82 2 0.48216268000000001 1.05342197 11.57323319 + 83 1 1.4636241699999999 0.87427220000000005 11.503391949999999 + 84 1 0.081841620000000004 0.52683606000000005 12.33318188 + 85 2 7.51721839 1.64127906 7.8393585899999998 + 86 1 7.2949871799999997 0.76083422000000001 7.3730332599999997 + 87 1 8.3051536099999996 2.1109463700000002 7.44742719 + 88 2 11.825382060000001 7.0622297500000002 10.267061979999999 + 89 1 11.147381749999999 6.8408990699999999 9.5078837400000005 + 90 1 11.57733561 8.0680436199999992 10.45477281 + 91 2 4.3164985900000001 12.72211152 12.273246500000001 + 92 1 4.17897739 13.114643279999999 13.219405139999999 + 93 1 5.1169211800000003 13.3143612 11.88191544 + 94 2 11.57023141 9.7838566799999995 10.51070584 + 95 1 11.14277903 9.8779422399999994 11.425045689999999 + 96 1 12.31997408 10.53682126 10.41604995 + 97 2 12.463258679999999 11.9018272 14.61733051 + 98 1 13.274237510000001 11.479377769999999 15.04958573 + 99 1 12.020797440000001 12.306466110000001 15.48504284 + 100 2 5.1460183600000002 10.866515919999999 0.33847184000000002 + 101 1 4.9395064299999998 11.87381066 0.40049245999999999 + 102 1 5.3760141600000004 10.667698529999999 1.36780759 + 103 2 2.5844159200000001 7.9237083999999998 12.347190149999999 + 104 1 3.2243937800000002 8.6957042100000006 12.742623630000001 + 105 1 2.10908527 7.60892254 13.24882251 + 106 2 15.045583369999999 4.9509431900000003 11.93804858 + 107 1 14.004668779999999 4.7517655899999998 11.98847836 + 108 1 15.459327650000001 4.1677807800000002 11.46206755 + 109 2 9.2911657900000009 7.2248357600000004 8.1253874699999997 + 110 1 8.5297562300000003 7.9221674899999996 7.8991338899999999 + 111 1 9.3997598999999994 7.2388140099999996 9.1396263100000006 + 112 2 0.02521839 7.2679912399999997 7.1629392200000002 + 113 1 0.047831039999999998 6.5577819100000001 6.3710816799999996 + 114 1 -0.65213003999999997 6.8686954900000003 7.8416399400000003 + 115 2 14.288236210000001 3.1746944400000001 0.78816635999999995 + 116 1 14.167665019999999 2.5223692799999999 -0.056843860000000003 + 117 1 13.29545004 3.2724721699999999 1.15676299 + 118 2 6.6084018000000002 14.135045760000001 11.10155469 + 119 1 7.0705946900000001 14.844864859999999 11.68019634 + 120 1 6.1217444600000004 14.618631280000001 10.395337720000001 + 121 2 8.3307287100000007 12.062922309999999 10.443366080000001 + 122 1 7.8134632999999996 12.91122318 10.4914945 + 123 1 7.6365688599999997 11.35770593 10.71242494 + 124 2 4.4299755899999997 13.183984219999999 15.093811840000001 + 125 1 5.3749035100000002 13.644456099999999 15.334053689999999 + 126 1 3.71958616 13.900807459999999 15.279721609999999 + 127 2 1.4553893099999999 6.8021962199999999 14.65004983 + 128 1 0.52399238000000004 6.2959473199999998 14.705582619999999 + 129 1 1.97930864 6.0953288700000003 15.19607222 + 130 2 7.2748152700000004 7.4187302400000004 13.75201961 + 131 1 7.0876947899999996 8.1084474699999998 13.03639708 + 132 1 8.2605672899999991 7.1784483699999999 13.46685124 + 133 2 2.51776657 2.4772426400000001 2.5901493000000002 + 134 1 3.0935365199999998 2.4467746500000001 1.70948933 + 135 1 2.0354517900000002 3.3882805399999998 2.6848752299999998 + 136 2 0.54344186000000005 8.7750710699999992 10.885026849999999 + 137 1 1.38606838 8.4795165600000004 11.427146929999999 + 138 1 0.044125150000000002 7.8960620700000002 10.509505130000001 + 139 2 10.20802713 11.46056666 2.84671078 + 140 1 11.00889999 11.41313866 3.47377102 + 141 1 10.5230131 11.58363933 1.91239914 + 142 2 2.3853583899999999 9.5411333700000007 15.635731809999999 + 143 1 2.30239941 8.5205507899999997 15.744896260000001 + 144 1 2.4923315499999998 9.9844751400000007 16.576287140000002 + 145 2 13.86278501 9.3360622899999992 7.0123002699999999 + 146 1 14.655553080000001 8.6615540400000004 6.8318437300000001 + 147 1 12.973259799999999 8.8023371699999995 7.0013338000000003 + 148 2 4.2351505600000001 15.36146988 2.28389848 + 149 1 3.2572231600000001 15.25270566 2.5854565300000001 + 150 1 4.4257530999999997 14.52397539 1.7680639199999999 + 151 2 4.6808237000000004 4.5473248799999997 1.78288267 + 152 1 5.6893691799999999 4.5866480999999997 1.6801920400000001 + 153 1 4.4591027900000002 4.0653703200000004 2.6879070199999999 + 154 2 2.7107304999999999 15.619922470000001 14.487253709999999 + 155 1 3.1403241400000002 16.273408310000001 15.15875018 + 156 1 2.8993118400000002 16.061583240000001 13.59352603 + 157 2 1.8981607300000001 9.6645062199999998 8.5272747599999992 + 158 1 1.10348153 9.3568745799999995 9.1389358999999999 + 159 1 1.89986174 8.9544069499999992 7.74336191 + 160 2 8.97930165 9.9843750799999995 0.41164505000000001 + 161 1 8.6366593399999996 9.1140011800000007 0.86859584999999995 + 162 1 9.6138362999999991 9.6521689300000002 -0.31845803 + 163 2 0.29448386999999998 14.662757340000001 14.302244480000001 + 164 1 0.12338085 13.93252618 13.56150712 + 165 1 1.3261630099999999 14.85687195 14.323056770000001 + 166 2 6.9964108899999999 9.9858059200000007 11.708413 + 167 1 6.13123006 9.8738197999999997 11.2719553 + 168 1 6.8126824099999999 10.370523070000001 12.670080799999999 + 169 2 12.060921130000001 0.42194913000000001 3.7028862999999999 + 170 1 12.697196809999999 -0.46297234999999998 3.86217034 + 171 1 11.94395207 0.56285832999999996 2.6691459399999999 + 172 2 3.6148643300000001 2.8850734299999998 9.7306953000000007 + 173 1 3.52147919 2.0989192700000001 10.40764499 + 174 1 4.0697228900000004 3.61530459 10.359716690000001 + 175 2 7.7952525499999998 4.6944717599999999 6.9642218900000001 + 176 1 8.15038223 5.5949534300000003 7.3565135100000001 + 177 1 8.6935829499999997 4.1763058199999996 6.8731481099999998 + 178 2 5.0630593800000003 6.7626929000000002 4.91242044 + 179 1 5.09535845 7.7160357800000003 4.4474258899999999 + 180 1 4.0383843800000001 6.4617852300000003 4.7318037999999998 + 181 2 4.3694098300000004 10.17140551 13.31676262 + 182 1 4.1011614500000002 11.07924152 12.94214143 + 183 1 4.28373925 10.22773877 14.31175009 + 184 2 4.80032426 3.3933635400000002 4.3933939899999999 + 185 1 4.3545010299999998 3.21892055 5.2822788200000002 + 186 1 5.6710483600000003 3.8379760599999999 4.5948829599999996 + 187 2 6.0656713599999996 1.5833148399999999 10.50960519 + 188 1 6.71096235 2.2254139500000001 11.0492238 + 189 1 5.6101023699999999 2.23018677 9.8790028599999999 + 190 2 2.7020253599999999 5.45151874 5.8253394600000004 + 191 1 2.94338787 4.5400605900000004 6.1494908500000003 + 192 1 1.7024051499999999 5.4281649500000002 5.5820357999999999 + 193 2 2.5907096300000001 4.0667411299999996 15.51726186 + 194 1 2.8946891099999998 3.9365442499999999 14.53308077 + 195 1 3.5211990200000001 4.2049727399999997 15.96872842 + 196 2 11.099653569999999 5.4979061299999996 14.395199359999999 + 197 1 11.59524618 4.9524340699999998 13.69128375 + 198 1 10.85951178 6.42165154 13.9520377 + 199 2 7.1026836400000004 13.85427999 0.18459299000000001 + 200 1 7.7031181499999999 13.787440520000001 0.97152362000000003 + 201 1 7.7658652000000004 13.75111908 -0.58789811000000003 + 202 2 12.33368218 12.717508799999999 7.5134561700000004 + 203 1 11.407635409999999 12.75252948 7.9698256299999999 + 204 1 12.96425449 12.041109430000001 8.03410358 + 205 2 12.26854372 15.43521342 0.92760768999999998 + 206 1 12.907621049999999 14.872581220000001 1.4534281499999999 + 207 1 12.865496179999999 16.035567879999999 0.29331318000000001 + 208 2 12.90221786 15.64223565 7.5116050799999998 + 209 1 12.706402239999999 14.606324020000001 7.6816754899999999 + 210 1 13.607034000000001 15.79232427 8.2608874799999992 + 211 2 12.392416860000001 0.38980714999999999 12.73892144 + 212 1 12.48427109 1.06639963 11.949055080000001 + 213 1 12.70079894 -0.49388460000000001 12.282351869999999 + 214 2 9.4615563900000001 2.8948391999999998 1.72780015 + 215 1 9.1256480599999996 3.4688181 0.91797600000000001 + 216 1 9.5520498200000006 1.91155864 1.3675474400000001 + 217 2 1.8611088499999999 11.285563339999999 2.4377893400000001 + 218 1 2.5101820899999998 10.660394220000001 2.9564856000000002 + 219 1 0.99085502999999997 11.043820609999999 2.83544413 + 220 2 2.2592539299999999 6.4293760999999998 8.5361700099999993 + 221 1 2.6267509100000002 5.7603210699999998 7.8518059400000002 + 222 1 1.3328169400000001 6.6674966900000001 8.0909171200000003 + 223 2 13.53529165 7.9993730699999999 14.55909613 + 224 1 13.79174306 8.3533921000000007 15.47783858 + 225 1 13.559505939999999 7.0367547100000003 14.74970867 + 226 2 10.395237659999999 13.58001805 11.573533360000001 + 227 1 11.416940909999999 13.357086430000001 11.342797129999999 + 228 1 9.8384489199999994 12.822470770000001 11.198912180000001 + 229 2 7.1873936499999997 8.9055881299999999 7.7520970699999996 + 230 1 6.3478379599999997 8.5035507500000005 8.2457985699999998 + 231 1 6.7828648100000004 9.3942066200000003 6.9232376899999997 + 232 2 3.4481859099999999 3.93674437 12.868998250000001 + 233 1 3.4517380100000001 4.7396484299999999 12.18849646 + 234 1 4.3397523199999997 4.0784480399999996 13.376597950000001 + 235 2 9.6641960299999994 12.20350532 7.9361457399999997 + 236 1 9.86656552 11.241837520000001 7.6058507200000003 + 237 1 8.9874464599999992 12.1355652 8.6745717300000003 + 238 2 4.8317528100000002 9.6355491200000003 10.12067555 + 239 1 4.9556659700000001 10.430658579999999 9.4590649199999994 + 240 1 4.1524417299999996 9.0239279999999997 9.64597528 + 241 2 13.42892885 4.44088203 4.5870183100000004 + 242 1 13.24622097 3.6355765500000001 5.21004617 + 243 1 12.819869239999999 4.3235227399999996 3.6980734499999999 + 244 2 2.92893933 9.7771327100000001 5.19441694 + 245 1 3.2812373400000001 9.1199246800000004 5.9200153599999998 + 246 1 1.9203938599999999 9.7346176100000008 5.2781363700000004 + 247 2 14.68066791 5.38442913 14.56309849 + 248 1 14.89919694 5.1139494299999999 13.606833890000001 + 249 1 14.558495779999999 4.6077205399999999 15.222687929999999 + 250 2 5.9845034300000002 7.1218449499999998 10.517209680000001 + 251 1 5.8752689399999998 8.1330620099999997 10.339904990000001 + 252 1 5.0964590999999997 6.8641928300000004 11.009500340000001 + 253 2 8.1935877399999999 13.87299103 6.43303826 + 254 1 8.83146436 14.15225592 5.6802637999999996 + 255 1 8.8377680900000009 13.31095919 7.0055162700000002 + 256 2 8.5626956700000001 7.7512565799999997 10.798575810000001 + 257 1 8.3043031099999993 8.7377390300000002 10.73113599 + 258 1 7.5853086000000003 7.3088653700000004 10.85430871 + 259 2 12.95634982 7.7261517499999997 3.0904046699999999 + 260 1 11.964063940000001 7.6199390400000002 3.07288432 + 261 1 13.03519637 8.6419624800000001 3.6524264999999998 + 262 2 7.5312466799999997 5.2239643899999999 1.4892893199999999 + 263 1 7.3933152399999997 5.1703727400000004 2.49763468 + 264 1 7.6292045100000001 6.2519513399999997 1.21384669 + 265 2 4.3482173199999998 11.49798876 3.6136436000000001 + 266 1 5.2173304700000003 11.94045 3.88510388 + 267 1 4.0160612000000002 10.881324660000001 4.4016788800000004 + 268 2 3.8399672300000001 3.34317391 6.9900571400000002 + 269 1 3.41732769 3.2958359599999998 7.9318632100000004 + 270 1 4.7664542599999997 3.58871889 7.32210319 + 271 2 6.0734059199999999 4.7600104500000002 9.2178825199999999 + 272 1 5.8389975200000004 5.7714376300000003 9.2853923799999993 + 273 1 6.7313443900000003 4.6328053499999999 8.4133775100000001 + 274 2 15.023070069999999 11.574133720000001 15.62902785 + 275 1 15.12803205 11.3049748 14.64324581 + 276 1 15.13923866 10.64348423 16.05567976 + 277 2 3.3191197099999998 5.7755700699999997 10.97367919 + 278 1 2.8160826999999999 5.9645416500000001 10.041628879999999 + 279 1 3.0312597499999998 6.5755724200000003 11.558024209999999 + 280 2 12.75853302 13.21690366 4.8795410300000004 + 281 1 12.19710154 13.43313133 5.73844815 + 282 1 13.755221499999999 13.36248962 5.1021924900000002 + 283 2 6.7756105299999998 2.3982459999999999 0.70971203999999999 + 284 1 7.2404049500000003 2.89262789 1.49294148 + 285 1 7.5162078000000001 2.3891506300000001 0.033091740000000001 + 286 2 11.24303823 9.4834192999999996 14.114833819999999 + 287 1 12.04671274 8.8771013100000005 14.18387459 + 288 1 11.514998800000001 10.449569739999999 14.48505241 + 289 2 8.0714356200000008 1.6521254599999999 4.2478080299999998 + 290 1 8.2158809000000002 1.5533171299999999 3.2826281599999998 + 291 1 7.0328924300000004 1.2816267100000001 4.3660978799999999 + 292 2 8.3969077900000002 13.59002396 2.4974645799999999 + 293 1 9.0551764499999994 14.24060809 2.9635897899999999 + 294 1 9.0335736900000008 12.762435330000001 2.5196376699999998 + 295 2 3.3102644799999998 1.1498188899999999 12.221816130000001 + 296 1 4.2000598399999998 0.92570156000000003 11.92053825 + 297 1 3.31152522 2.2691998 12.39852046 + 298 2 14.065304579999999 0.88904492000000002 14.92281088 + 299 1 14.96043309 0.32304173000000003 14.805641700000001 + 300 1 13.5662099 0.71047948999999999 14.032985500000001 + 301 2 11.56833029 7.76364389 6.3304176700000001 + 302 1 10.94996519 7.5339482699999998 7.1365136099999997 + 303 1 11.32158461 6.7819642800000004 5.86992578 + 304 2 10.02301789 1.29023179 14.144451310000001 + 305 1 10.99559213 1.0338704299999999 13.873891560000001 + 306 1 9.5640669099999993 0.93863719999999995 13.317763210000001 + 307 2 6.1769170400000002 4.4702193499999998 13.86038359 + 308 1 6.5504175599999996 3.8957101399999998 14.62263364 + 309 1 6.3266054199999999 5.43483889 14.10502803 + 310 2 10.831995539999999 13.12344848 0.56713585 + 311 1 11.32728797 14.011572859999999 0.78072196000000005 + 312 1 10.126879219999999 13.307657239999999 -0.16475027 + 313 2 5.5215200700000002 9.0469115700000007 2.8870245899999998 + 314 1 6.3574236199999996 9.2645900900000004 3.4384601699999999 + 315 1 4.7960016999999997 9.7714093399999999 3.1609062899999998 + 316 2 11.90592962 3.8714858400000001 2.2786754 + 317 1 10.881925020000001 3.54668407 2.1140782200000001 + 318 1 11.966765540000001 4.80465681 1.8184736800000001 + 319 2 12.596537379999999 2.1852402299999998 10.576444649999999 + 320 1 13.073819179999999 1.51387384 9.9569488800000006 + 321 1 11.59144394 2.06959195 10.34841001 + 322 2 2.37246077 0.16278711000000001 9.4180306900000001 + 323 1 2.4586316500000001 0.31723230000000002 8.3387234299999999 + 324 1 2.3702794800000002 -0.82663407 9.52858597 + 325 2 7.14922112 5.0802495299999997 4.2426349800000001 + 326 1 6.49397424 5.8560976199999999 4.4670174600000001 + 327 1 7.49307414 4.9240973400000003 5.2037524499999996 + 328 2 5.1833904300000002 15.34996308 8.8415203000000009 + 329 1 5.6569100099999998 16.056180049999998 9.4121572199999992 + 330 1 4.15091082 15.596108409999999 9.0279603799999997 + 331 2 1.9555145899999999 0.19995205999999999 4.2243541899999997 + 332 1 2.0580651400000001 0.50692029999999999 5.1493203100000002 + 333 1 2.0735542900000001 1.0951966399999999 3.6592905600000001 + 334 2 12.2407273 4.5245914599999999 12.10554748 + 335 1 12.28575388 3.6454724000000001 11.62646462 + 336 1 11.797165400000001 5.2313787600000001 11.475175289999999 + 337 2 9.1110894600000005 0.33149072000000002 0.95172091999999997 + 338 1 9.4572138199999998 0.41707525000000001 0.02348447 + 339 1 8.2726444200000007 -0.24924515999999999 0.97086123000000002 + 340 2 6.8045276000000001 11.682197520000001 4.8935192799999996 + 341 1 7.47131129 11.85379884 4.1144693099999996 + 342 1 7.2368028300000002 12.26694277 5.6834356699999997 + 343 2 1.4671762699999999 13.255426399999999 6.4289058199999998 + 344 1 0.69730570999999997 13.38830486 5.75480781 + 345 1 2.10503288 12.716007919999999 5.8960211899999999 + 346 2 8.9252897600000001 13.28034111 13.933026480000001 + 347 1 8.1799797099999996 12.699298049999999 13.51588018 + 348 1 9.5604147600000005 13.264431719999999 13.10153554 + 349 2 0.37317333000000003 9.8637538599999992 4.2491188099999997 + 350 1 -0.61232253000000003 9.94836381 4.01134842 + 351 1 0.64683491000000004 8.8897587799999993 3.99484868 + 352 2 5.58267618 0.57868467000000001 4.7541069699999996 + 353 1 4.91739338 1.31567682 4.6341861599999996 + 354 1 5.2598355699999999 -0.21077945000000001 4.1850109599999996 + 355 2 0.7755379 3.48650854 9.7241814499999997 + 356 1 0.60280792000000005 2.9409364199999999 8.8383484299999999 + 357 1 1.8012935400000001 3.4963443500000002 9.8023375999999995 + 358 2 9.0801111700000003 3.7482430799999999 14.696677360000001 + 359 1 9.5839786700000005 4.6578801500000004 14.52277469 + 360 1 9.7113138499999998 2.9944680199999998 14.27592894 + 361 2 4.1995895599999997 8.0085885099999992 7.3822987299999996 + 362 1 3.4070916499999999 7.4806267899999996 7.7945121200000003 + 363 1 4.4902711899999996 7.3761050800000003 6.6246613999999999 + 364 2 4.2021510800000001 1.78439356 0.59228670000000005 + 365 1 4.2116366799999998 0.87903701000000001 1.1359006700000001 + 366 1 5.21227749 2.09180506 0.64250936000000003 + 367 2 7.3327995100000001 3.7677345799999999 11.56803011 + 368 1 6.9582383500000002 3.9986609299999998 12.493176350000001 + 369 1 6.8730380499999999 4.3040612500000002 10.78176588 + 370 2 2.3063717499999998 11.908731270000001 10.3978392 + 371 1 3.1140686400000002 11.8825158 11.120766039999999 + 372 1 2.3769434199999999 11.16839416 9.7070313200000005 + 373 2 10.30338343 10.115472479999999 6.2757253799999999 + 374 1 10.740841720000001 9.2137000499999999 6.0100284999999998 + 375 1 9.7552597999999993 10.214430910000001 5.4689390299999996 + 376 2 12.18779604 2.2360001999999999 5.8811423999999999 + 377 1 12.147172060000001 1.41232388 6.5503675299999999 + 378 1 12.023198860000001 1.77304686 4.9960398100000001 + 379 2 9.5975867099999999 15.10221681 4.3595139899999999 + 380 1 10.4992991 15.46363019 4.1135887899999997 + 381 1 9.0709557699999994 15.98683911 4.5525779799999997 + 382 2 11.041819419999999 5.3261847400000004 5.5174976999999998 + 383 1 10.621671360000001 4.4617643600000001 5.90999944 + 384 1 12.033705060000001 5.1937765599999999 5.1767265 diff --git a/run/water-128.xyz b/run/water-128.xyz new file mode 100644 index 00000000000..77326ee3692 --- /dev/null +++ b/run/water-128.xyz @@ -0,0 +1,386 @@ +384 +Lattice="15.659926093578173 0.0 0.0 0.0 15.659926093578173 0.0 0.0 0.0 15.659926093578173" Properties=species:S:1:pos:R:3 #=T CELL(abcABC):=T 15.65068=T 90.00000=T Traj:=T x_centroid=T Step:=T 4=T Bead:=T 0=T pbc="T T T" +O 0.06095749 5.65536910 4.96265010 +H 0.19179324 6.26730040 4.12967829 +H -0.85307168 5.14003483 4.76561376 +O 0.13982956 12.55431245 12.28025063 +H 0.90326131 12.45655473 11.59264465 +H -0.07948593 11.60785363 12.55481274 +O 0.26120722 13.00647942 9.07624889 +H 0.55911412 12.78564903 8.11707256 +H 1.08017777 12.59933903 9.58423882 +O 9.65985347 2.78663531 6.14488813 +H 10.66599753 2.46573584 6.05519517 +H 9.11097940 2.31254540 5.44415439 +O 8.55412061 0.07697615 12.08973815 +H 9.19999195 -0.66926415 11.99368143 +H 8.74526347 0.69452607 11.23813533 +O 0.73087553 4.79600170 1.67391833 +H -0.04313427 4.16284787 1.60388698 +H 1.42312025 4.46822818 0.94775959 +O 4.61609548 11.84719494 8.41697964 +H 4.91078948 12.66867997 7.85529801 +H 3.71464324 11.63897200 7.95986975 +O 7.18216056 11.14948299 14.25241506 +H 7.83618672 10.68670976 14.92120993 +H 6.27725628 10.90373790 14.58050877 +O 14.81854932 13.69468576 1.95286303 +H 14.64624759 12.98356589 1.25630176 +H 15.89478476 13.84267313 1.88685406 +O 1.71096020 13.63635131 1.33402765 +H 1.81581211 12.67008080 1.68700606 +H 1.35231845 13.46585065 0.37795215 +O 0.82906450 7.26163749 2.78868652 +H 0.49196547 6.35737359 2.34460433 +H 1.83037071 7.39379552 2.56979729 +O 14.68286921 6.56365538 9.69791594 +H 13.75512144 6.77015731 10.04583136 +H 14.90730172 5.83270380 10.40244192 +O 9.62273155 6.62487152 2.76420207 +H 9.32171382 5.80690857 2.23071708 +H 9.97468936 6.34709752 3.67409930 +O 9.75547993 7.50275986 13.09653259 +H 9.46860055 7.51758861 12.06002060 +H 10.17740905 8.39061407 13.36829304 +O 14.88448825 15.52956913 9.55797332 +H 15.46603161 15.76420766 10.40884570 +H 15.28962746 14.64894918 9.17832916 +O 7.45945429 7.80372756 0.69548464 +H 6.65017647 8.19252712 1.20846351 +H 7.30843512 7.94758249 -0.32432749 +O 15.44241767 13.91001289 4.52418121 +H 15.18386501 13.75642221 3.46728719 +H 16.32724010 14.42011407 4.28935256 +O 9.38324015 2.06964198 10.23384237 +H 8.90775941 2.80645702 10.78816966 +H 8.66424563 1.85093285 9.52239231 +O 13.84987739 11.09525097 9.05580682 +H 13.98385649 10.40874564 8.29032486 +H 14.74640672 11.57773585 9.10319480 +O 2.82385729 0.04728882 6.70932139 +H 2.18492004 -0.72179017 6.64456315 +H 3.67174791 -0.33898515 6.30400207 +O 3.55591952 7.14933118 2.32745420 +H 3.94763080 6.15341316 2.37160026 +H 4.45478024 7.63296673 2.26604794 +O 15.28342380 9.84856489 13.26573249 +H 15.58169991 9.42824672 12.33528312 +H 14.76641854 9.12506772 13.75992428 +O 13.17768050 13.77313207 11.18400337 +H 13.79404442 14.36628229 10.59075310 +H 13.77243166 12.88670870 11.24624012 +O 14.65675379 8.71926812 1.08116835 +H 14.02117853 8.26517001 1.80428530 +H 15.65174126 8.39669766 1.28407816 +O 13.24682132 10.12687922 4.53627836 +H 13.41231904 9.80524932 5.49721572 +H 13.04029939 11.11086019 4.70370721 +O 8.80583923 9.16319022 3.85793784 +H 9.19808082 9.80175725 3.17300344 +H 8.87874228 8.26623063 3.43454786 +O 5.23450061 14.07701149 6.56170423 +H 5.34636666 14.73880223 7.39770783 +H 6.08182089 14.23320371 6.02558769 +O 0.48216268 1.05342197 11.57323319 +H 1.46362417 0.87427220 11.50339195 +H 0.08184162 0.52683606 12.33318188 +O 7.51721839 1.64127906 7.83935859 +H 7.29498718 0.76083422 7.37303326 +H 8.30515361 2.11094637 7.44742719 +O 11.82538206 7.06222975 10.26706198 +H 11.14738175 6.84089907 9.50788374 +H 11.57733561 8.06804362 10.45477281 +O 4.31649859 12.72211152 12.27324650 +H 4.17897739 13.11464328 13.21940514 +H 5.11692118 13.31436120 11.88191544 +O 11.57023141 9.78385668 10.51070584 +H 11.14277903 9.87794224 11.42504569 +H 12.31997408 10.53682126 10.41604995 +O 12.46325868 11.90182720 14.61733051 +H 13.27423751 11.47937777 15.04958573 +H 12.02079744 12.30646611 15.48504284 +O 5.14601836 10.86651592 0.33847184 +H 4.93950643 11.87381066 0.40049246 +H 5.37601416 10.66769853 1.36780759 +O 2.58441592 7.92370840 12.34719015 +H 3.22439378 8.69570421 12.74262363 +H 2.10908527 7.60892254 13.24882251 +O 15.04558337 4.95094319 11.93804858 +H 14.00466878 4.75176559 11.98847836 +H 15.45932765 4.16778078 11.46206755 +O 9.29116579 7.22483576 8.12538747 +H 8.52975623 7.92216749 7.89913389 +H 9.39975990 7.23881401 9.13962631 +O 0.02521839 7.26799124 7.16293922 +H 0.04783104 6.55778191 6.37108168 +H -0.65213004 6.86869549 7.84163994 +O 14.28823621 3.17469444 0.78816636 +H 14.16766502 2.52236928 -0.05684386 +H 13.29545004 3.27247217 1.15676299 +O 6.60840180 14.13504576 11.10155469 +H 7.07059469 14.84486486 11.68019634 +H 6.12174446 14.61863128 10.39533772 +O 8.33072871 12.06292231 10.44336608 +H 7.81346330 12.91122318 10.49149450 +H 7.63656886 11.35770593 10.71242494 +O 4.42997559 13.18398422 15.09381184 +H 5.37490351 13.64445610 15.33405369 +H 3.71958616 13.90080746 15.27972161 +O 1.45538931 6.80219622 14.65004983 +H 0.52399238 6.29594732 14.70558262 +H 1.97930864 6.09532887 15.19607222 +O 7.27481527 7.41873024 13.75201961 +H 7.08769479 8.10844747 13.03639708 +H 8.26056729 7.17844837 13.46685124 +O 2.51776657 2.47724264 2.59014930 +H 3.09353652 2.44677465 1.70948933 +H 2.03545179 3.38828054 2.68487523 +O 0.54344186 8.77507107 10.88502685 +H 1.38606838 8.47951656 11.42714693 +H 0.04412515 7.89606207 10.50950513 +O 10.20802713 11.46056666 2.84671078 +H 11.00889999 11.41313866 3.47377102 +H 10.52301310 11.58363933 1.91239914 +O 2.38535839 9.54113337 15.63573181 +H 2.30239941 8.52055079 15.74489626 +H 2.49233155 9.98447514 16.57628714 +O 13.86278501 9.33606229 7.01230027 +H 14.65555308 8.66155404 6.83184373 +H 12.97325980 8.80233717 7.00133380 +O 4.23515056 15.36146988 2.28389848 +H 3.25722316 15.25270566 2.58545653 +H 4.42575310 14.52397539 1.76806392 +O 4.68082370 4.54732488 1.78288267 +H 5.68936918 4.58664810 1.68019204 +H 4.45910279 4.06537032 2.68790702 +O 2.71073050 15.61992247 14.48725371 +H 3.14032414 16.27340831 15.15875018 +H 2.89931184 16.06158324 13.59352603 +O 1.89816073 9.66450622 8.52727476 +H 1.10348153 9.35687458 9.13893590 +H 1.89986174 8.95440695 7.74336191 +O 8.97930165 9.98437508 0.41164505 +H 8.63665934 9.11400118 0.86859585 +H 9.61383630 9.65216893 -0.31845803 +O 0.29448387 14.66275734 14.30224448 +H 0.12338085 13.93252618 13.56150712 +H 1.32616301 14.85687195 14.32305677 +O 6.99641089 9.98580592 11.70841300 +H 6.13123006 9.87381980 11.27195530 +H 6.81268241 10.37052307 12.67008080 +O 12.06092113 0.42194913 3.70288630 +H 12.69719681 -0.46297235 3.86217034 +H 11.94395207 0.56285833 2.66914594 +O 3.61486433 2.88507343 9.73069530 +H 3.52147919 2.09891927 10.40764499 +H 4.06972289 3.61530459 10.35971669 +O 7.79525255 4.69447176 6.96422189 +H 8.15038223 5.59495343 7.35651351 +H 8.69358295 4.17630582 6.87314811 +O 5.06305938 6.76269290 4.91242044 +H 5.09535845 7.71603578 4.44742589 +H 4.03838438 6.46178523 4.73180380 +O 4.36940983 10.17140551 13.31676262 +H 4.10116145 11.07924152 12.94214143 +H 4.28373925 10.22773877 14.31175009 +O 4.80032426 3.39336354 4.39339399 +H 4.35450103 3.21892055 5.28227882 +H 5.67104836 3.83797606 4.59488296 +O 6.06567136 1.58331484 10.50960519 +H 6.71096235 2.22541395 11.04922380 +H 5.61010237 2.23018677 9.87900286 +O 2.70202536 5.45151874 5.82533946 +H 2.94338787 4.54006059 6.14949085 +H 1.70240515 5.42816495 5.58203580 +O 2.59070963 4.06674113 15.51726186 +H 2.89468911 3.93654425 14.53308077 +H 3.52119902 4.20497274 15.96872842 +O 11.09965357 5.49790613 14.39519936 +H 11.59524618 4.95243407 13.69128375 +H 10.85951178 6.42165154 13.95203770 +O 7.10268364 13.85427999 0.18459299 +H 7.70311815 13.78744052 0.97152362 +H 7.76586520 13.75111908 -0.58789811 +O 12.33368218 12.71750880 7.51345617 +H 11.40763541 12.75252948 7.96982563 +H 12.96425449 12.04110943 8.03410358 +O 12.26854372 15.43521342 0.92760769 +H 12.90762105 14.87258122 1.45342815 +H 12.86549618 16.03556788 0.29331318 +O 12.90221786 15.64223565 7.51160508 +H 12.70640224 14.60632402 7.68167549 +H 13.60703400 15.79232427 8.26088748 +O 12.39241686 0.38980715 12.73892144 +H 12.48427109 1.06639963 11.94905508 +H 12.70079894 -0.49388460 12.28235187 +O 9.46155639 2.89483920 1.72780015 +H 9.12564806 3.46881810 0.91797600 +H 9.55204982 1.91155864 1.36754744 +O 1.86110885 11.28556334 2.43778934 +H 2.51018209 10.66039422 2.95648560 +H 0.99085503 11.04382061 2.83544413 +O 2.25925393 6.42937610 8.53617001 +H 2.62675091 5.76032107 7.85180594 +H 1.33281694 6.66749669 8.09091712 +O 13.53529165 7.99937307 14.55909613 +H 13.79174306 8.35339210 15.47783858 +H 13.55950594 7.03675471 14.74970867 +O 10.39523766 13.58001805 11.57353336 +H 11.41694091 13.35708643 11.34279713 +H 9.83844892 12.82247077 11.19891218 +O 7.18739365 8.90558813 7.75209707 +H 6.34783796 8.50355075 8.24579857 +H 6.78286481 9.39420662 6.92323769 +O 3.44818591 3.93674437 12.86899825 +H 3.45173801 4.73964843 12.18849646 +H 4.33975232 4.07844804 13.37659795 +O 9.66419603 12.20350532 7.93614574 +H 9.86656552 11.24183752 7.60585072 +H 8.98744646 12.13556520 8.67457173 +O 4.83175281 9.63554912 10.12067555 +H 4.95566597 10.43065858 9.45906492 +H 4.15244173 9.02392800 9.64597528 +O 13.42892885 4.44088203 4.58701831 +H 13.24622097 3.63557655 5.21004617 +H 12.81986924 4.32352274 3.69807345 +O 2.92893933 9.77713271 5.19441694 +H 3.28123734 9.11992468 5.92001536 +H 1.92039386 9.73461761 5.27813637 +O 14.68066791 5.38442913 14.56309849 +H 14.89919694 5.11394943 13.60683389 +H 14.55849578 4.60772054 15.22268793 +O 5.98450343 7.12184495 10.51720968 +H 5.87526894 8.13306201 10.33990499 +H 5.09645910 6.86419283 11.00950034 +O 8.19358774 13.87299103 6.43303826 +H 8.83146436 14.15225592 5.68026380 +H 8.83776809 13.31095919 7.00551627 +O 8.56269567 7.75125658 10.79857581 +H 8.30430311 8.73773903 10.73113599 +H 7.58530860 7.30886537 10.85430871 +O 12.95634982 7.72615175 3.09040467 +H 11.96406394 7.61993904 3.07288432 +H 13.03519637 8.64196248 3.65242650 +O 7.53124668 5.22396439 1.48928932 +H 7.39331524 5.17037274 2.49763468 +H 7.62920451 6.25195134 1.21384669 +O 4.34821732 11.49798876 3.61364360 +H 5.21733047 11.94045000 3.88510388 +H 4.01606120 10.88132466 4.40167888 +O 3.83996723 3.34317391 6.99005714 +H 3.41732769 3.29583596 7.93186321 +H 4.76645426 3.58871889 7.32210319 +O 6.07340592 4.76001045 9.21788252 +H 5.83899752 5.77143763 9.28539238 +H 6.73134439 4.63280535 8.41337751 +O 15.02307007 11.57413372 15.62902785 +H 15.12803205 11.30497480 14.64324581 +H 15.13923866 10.64348423 16.05567976 +O 3.31911971 5.77557007 10.97367919 +H 2.81608270 5.96454165 10.04162888 +H 3.03125975 6.57557242 11.55802421 +O 12.75853302 13.21690366 4.87954103 +H 12.19710154 13.43313133 5.73844815 +H 13.75522150 13.36248962 5.10219249 +O 6.77561053 2.39824600 0.70971204 +H 7.24040495 2.89262789 1.49294148 +H 7.51620780 2.38915063 0.03309174 +O 11.24303823 9.48341930 14.11483382 +H 12.04671274 8.87710131 14.18387459 +H 11.51499880 10.44956974 14.48505241 +O 8.07143562 1.65212546 4.24780803 +H 8.21588090 1.55331713 3.28262816 +H 7.03289243 1.28162671 4.36609788 +O 8.39690779 13.59002396 2.49746458 +H 9.05517645 14.24060809 2.96358979 +H 9.03357369 12.76243533 2.51963767 +O 3.31026448 1.14981889 12.22181613 +H 4.20005984 0.92570156 11.92053825 +H 3.31152522 2.26919980 12.39852046 +O 14.06530458 0.88904492 14.92281088 +H 14.96043309 0.32304173 14.80564170 +H 13.56620990 0.71047949 14.03298550 +O 11.56833029 7.76364389 6.33041767 +H 10.94996519 7.53394827 7.13651361 +H 11.32158461 6.78196428 5.86992578 +O 10.02301789 1.29023179 14.14445131 +H 10.99559213 1.03387043 13.87389156 +H 9.56406691 0.93863720 13.31776321 +O 6.17691704 4.47021935 13.86038359 +H 6.55041756 3.89571014 14.62263364 +H 6.32660542 5.43483889 14.10502803 +O 10.83199554 13.12344848 0.56713585 +H 11.32728797 14.01157286 0.78072196 +H 10.12687922 13.30765724 -0.16475027 +O 5.52152007 9.04691157 2.88702459 +H 6.35742362 9.26459009 3.43846017 +H 4.79600170 9.77140934 3.16090629 +O 11.90592962 3.87148584 2.27867540 +H 10.88192502 3.54668407 2.11407822 +H 11.96676554 4.80465681 1.81847368 +O 12.59653738 2.18524023 10.57644465 +H 13.07381918 1.51387384 9.95694888 +H 11.59144394 2.06959195 10.34841001 +O 2.37246077 0.16278711 9.41803069 +H 2.45863165 0.31723230 8.33872343 +H 2.37027948 -0.82663407 9.52858597 +O 7.14922112 5.08024953 4.24263498 +H 6.49397424 5.85609762 4.46701746 +H 7.49307414 4.92409734 5.20375245 +O 5.18339043 15.34996308 8.84152030 +H 5.65691001 16.05618005 9.41215722 +H 4.15091082 15.59610841 9.02796038 +O 1.95551459 0.19995206 4.22435419 +H 2.05806514 0.50692030 5.14932031 +H 2.07355429 1.09519664 3.65929056 +O 12.24072730 4.52459146 12.10554748 +H 12.28575388 3.64547240 11.62646462 +H 11.79716540 5.23137876 11.47517529 +O 9.11108946 0.33149072 0.95172092 +H 9.45721382 0.41707525 0.02348447 +H 8.27264442 -0.24924516 0.97086123 +O 6.80452760 11.68219752 4.89351928 +H 7.47131129 11.85379884 4.11446931 +H 7.23680283 12.26694277 5.68343567 +O 1.46717627 13.25542640 6.42890582 +H 0.69730571 13.38830486 5.75480781 +H 2.10503288 12.71600792 5.89602119 +O 8.92528976 13.28034111 13.93302648 +H 8.17997971 12.69929805 13.51588018 +H 9.56041476 13.26443172 13.10153554 +O 0.37317333 9.86375386 4.24911881 +H -0.61232253 9.94836381 4.01134842 +H 0.64683491 8.88975878 3.99484868 +O 5.58267618 0.57868467 4.75410697 +H 4.91739338 1.31567682 4.63418616 +H 5.25983557 -0.21077945 4.18501096 +O 0.77553790 3.48650854 9.72418145 +H 0.60280792 2.94093642 8.83834843 +H 1.80129354 3.49634435 9.80233760 +O 9.08011117 3.74824308 14.69667736 +H 9.58397867 4.65788015 14.52277469 +H 9.71131385 2.99446802 14.27592894 +O 4.19958956 8.00858851 7.38229873 +H 3.40709165 7.48062679 7.79451212 +H 4.49027119 7.37610508 6.62466140 +O 4.20215108 1.78439356 0.59228670 +H 4.21163668 0.87903701 1.13590067 +H 5.21227749 2.09180506 0.64250936 +O 7.33279951 3.76773458 11.56803011 +H 6.95823835 3.99866093 12.49317635 +H 6.87303805 4.30406125 10.78176588 +O 2.30637175 11.90873127 10.39783920 +H 3.11406864 11.88251580 11.12076604 +H 2.37694342 11.16839416 9.70703132 +O 10.30338343 10.11547248 6.27572538 +H 10.74084172 9.21370005 6.01002850 +H 9.75525980 10.21443091 5.46893903 +O 12.18779604 2.23600020 5.88114240 +H 12.14717206 1.41232388 6.55036753 +H 12.02319886 1.77304686 4.99603981 +O 9.59758671 15.10221681 4.35951399 +H 10.49929910 15.46363019 4.11358879 +H 9.07095577 15.98683911 4.55257798 +O 11.04181942 5.32618474 5.51749770 +H 10.62167136 4.46176436 5.90999944 +H 12.03370506 5.19377656 5.17672650 diff --git a/src/KOKKOS/pair_metatomic_kokkos.cpp b/src/KOKKOS/pair_metatomic_kokkos.cpp index 996c60088ec..0085ad383c7 100644 --- a/src/KOKKOS/pair_metatomic_kokkos.cpp +++ b/src/KOKKOS/pair_metatomic_kokkos.cpp @@ -45,7 +45,7 @@ PairMetatomicKokkos::PairMetatomicKokkos(LAMMPS* lmp): PairMetatomic respa_enable = 0; kokkosable = 1; - execution_space = ExecutionSpaceFromDevice::space; + atomKK = (AtomKokkos *) atom; datamask_read = X_MASK | F_MASK | TYPE_MASK | TAG_MASK | ENERGY_MASK | VIRIAL_MASK; datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; diff --git a/src/ML-METATOMIC/fix_metatomic.cpp b/src/ML-METATOMIC/fix_metatomic.cpp new file mode 100644 index 00000000000..f6236aaad7f --- /dev/null +++ b/src/ML-METATOMIC/fix_metatomic.cpp @@ -0,0 +1,583 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ +#include "pair_metatomic.h" +#include "metatomic_types.h" +#include "metatomic_system.h" + +#include "fix_metatomic.h" + +#include "atom.h" +#include "memory.h" +#include "error.h" +#include "force.h" +#include "update.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "comm.h" + +#include +#include + +#include +#include + +using namespace LAMMPS_NS; +using namespace FixConst; + +/* ---------------------------------------------------------------------- */ + +FixMetatomic::FixMetatomic(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg) +{ + std::string energy_unit; + std::string length_unit; + if (strcmp(update->unit_style, "real") == 0) { + length_unit = "angstrom"; + energy_unit = "kcal/mol"; + } else if (strcmp(update->unit_style, "metal") == 0) { + length_unit = "angstrom"; + energy_unit = "eV"; + } else if (strcmp(update->unit_style, "si") == 0) { + length_unit = "meter"; + energy_unit = "joule"; + } else if (strcmp(update->unit_style, "electron") == 0) { + length_unit = "Bohr"; + energy_unit = "Hartree"; + } else { + error->all(FLERR, "unsupported units '{}' for fix metatomic ", update->unit_style); + } + + if (narg < 4) error->all(FLERR, "Illegal fix metatomic command"); + + bool types_are_set = false; + model_path = arg[3]; + std::string energy_model_path; + bool rescale_energy = false; + std::vector parsed_types; + + int iarg = 4; + while (iarg < narg) { + if (strcmp(arg[iarg], "types") == 0) { + types_are_set = true; + // try to run std::stoi on all the following arguments; if an exception is thrown, + // we stop parsing the types + int current_num_types = 0; + iarg++; + while (iarg < narg) { + int type = -1; + try { + type = std::stoi(arg[iarg]); + iarg++; + } catch (const std::invalid_argument &) { + break; // stop parsing types on invalid argument to std::stoi + } + if (type <= 0) { + error->all(FLERR, "Illegal fix metatomic command: type {} should be > 0", type); + } + parsed_types.push_back(type); + current_num_types++; + if (current_num_types > atom->ntypes) { + error->all(FLERR, "Illegal fix metatomic command: too many types specified"); + } + } + } else if (strcmp(arg[iarg], "energy") == 0) { + if (iarg + 1 > narg) error->all(FLERR, "Illegal fix metatomic command"); + energy_model_path = arg[iarg + 1]; + iarg += 2; + } else if (strcmp(arg[iarg], "device") == 0) { + if (iarg + 1 > narg) error->all(FLERR, "Illegal fix metatomic command"); + requested_device = arg[iarg + 1]; + iarg += 2; + } else if (strcmp(arg[iarg], "rescale_energy") == 0) { + if (iarg + 1 > narg) error->all(FLERR, "Illegal fix metatomic command"); + if (strcmp(arg[iarg + 1], "on") == 0) { + rescale_energy = true; + } else if (strcmp(arg[iarg + 1], "off") == 0) { + rescale_energy = false; + } else { + error->all(FLERR, "Illegal fix metatomic command: expected 'on' or 'off' after 'rescale_energy'"); + } + iarg += 2; + } else { + error->all(FLERR, "Illegal fix metatomic command"); + } + } + if (!types_are_set) { + error->all(FLERR, "Illegal fix metatomic command: no types specified"); + } + if ((int)parsed_types.size() != atom->ntypes) { + error->all(FLERR, "Illegal fix metatomic command: number of types does not match number of atom types"); + } + + // Allocate and fill the type-mapping (1-based indexing) + type_mapping = memory->create(type_mapping, atom->ntypes + 1, "FixMetatomic:type_mapping"); + for (int i = 1; i <= atom->ntypes; i++) { + type_mapping[i] = parsed_types[i - 1]; + } + + this->mta_data = new PairMetatomicData(std::move(length_unit), std::move(energy_unit), true); + + time_integrate = 1; // this tells LAMMPS that this fix advances simulation time + // Note: for now we don't allow dynamic groups (dynamic_group_allow variable) +} + +FixMetatomic::~FixMetatomic() { + memory->destroy(type_mapping); +} + +/* ---------------------------------------------------------------------- */ + +int FixMetatomic::setmask() +{ + int mask = 0; + mask |= INITIAL_INTEGRATE; + mask |= POST_FORCE; + mask |= FINAL_INTEGRATE; + // mask |= INITIAL_INTEGRATE_RESPA; // ?? + // mask |= FINAL_INTEGRATE_RESPA; // ?? + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixMetatomic::init() +{ + if (!type_mapping) { + error->all(FLERR, "FixMetatomic internal error: type_mapping not initialized"); + } + + const char *extensions_directory = nullptr; + + dt = update->dt; + // TODO: what to do with units if not metal???? + mta_data->load_model(this->lmp, model_path.c_str(), extensions_directory); + + // Select the device to use based on the model's preference, the user choice + // and what's available. + this->pick_device(&mta_data->device, requested_device.c_str()); + + // move all data to the correct device + mta_data->model->to(mta_data->device); + mta_data->selected_atoms_values = mta_data->selected_atoms_values.to(mta_data->device); + + auto message = "Running simulation on " + mta_data->device.str() + " device with " + mta_data->capabilities->dtype() + " data"; + if (screen) { + fprintf(screen, "%s\n", message.c_str()); + } + if (logfile) { + fprintf(logfile,"%s\n", message.c_str()); + } + + // get the model's interaction range + auto range = mta_data->capabilities->engine_interaction_range(mta_data->evaluation_options->length_unit()); + if (range < 0) { + error->all(FLERR, "interaction_range is negative for this model"); + } else if (!std::isfinite(range)) { + if (comm->nprocs > 1) { + error->all(FLERR, + "interaction_range is infinite for this model, " + "using multiple MPI domains is not supported" + ); + } + + // determine the maximal cutoff in the NL + auto requested_nl = mta_data->model->run_method("requested_neighbor_lists"); + for (const auto& ivalue: requested_nl.toList()) { + auto options = ivalue.get().toCustomClass(); + auto cutoff = options->engine_cutoff(mta_data->evaluation_options->length_unit()); + + mta_data->max_cutoff = std::max(mta_data->max_cutoff, cutoff); + } + } else { + mta_data->max_cutoff = range; + } + + // Initialize metatensor system object + auto options = MetatomicSystemOptions{ + this->type_mapping, + mta_data->max_cutoff, + mta_data->check_consistency, + !(mta_data->non_conservative), + }; + this->system_adaptor = std::make_unique(lmp, options); + + // We ask LAMMPS for a full neighbor lists because we need to know about + // ALL pairs, even if options->full_list() is false. We will then filter + // the pairs to only include each pair once where needed. + auto request = neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_GHOST); + request->set_cutoff(mta_data->max_cutoff); + + // Translate from the metatomic neighbor lists requests to LAMMPS neighbor + // lists requests. + auto requested_nl = mta_data->model->run_method("requested_neighbor_lists"); + for (const auto& ivalue: requested_nl.toList()) { + auto options = ivalue.get().toCustomClass(); + auto cutoff = options->engine_cutoff(mta_data->evaluation_options->length_unit()); + assert(cutoff <= mta_data->max_cutoff); + + this->system_adaptor->add_nl_request(cutoff, options); + } +} + +std::vector FixMetatomic::available_devices() { + auto devices = std::vector(); + for (const auto& supported: this->mta_data->capabilities->supported_devices) { + if (supported == "cpu") { + devices.push_back(torch::kCPU); + } else if (supported == "cuda" && torch::cuda::is_available()) { + devices.push_back(torch::kCUDA); + } else if (supported == "mps") { + #if TORCH_VERSION_MAJOR >= 2 + if (torch::mps::is_available()) { + devices.push_back(torch::kMPS); + } + #endif + } else { + error->warning(FLERR, + "the model declared support for unknown device '{}', it will be ignored", supported + ); + } + } + + if (devices.empty()) { + error->all(FLERR, + "failed to find a valid device for this model: " + "the model supports {}, none of these where available", + torch::str(this->mta_data->capabilities->supported_devices) + ); + } + + return devices; +} + +void FixMetatomic::pick_device(torch::Device* device, const char* requested) { + auto available_devices = this->available_devices(); + + auto picked_device_type = torch::kCPU; + if (requested == nullptr) { + // no user request, pick the device the model prefers + picked_device_type = available_devices[0]; + } else { + bool found_requested_device = false; + for (const auto& device_type: available_devices) { + if (device_type == torch::kCPU && strcmp(requested, "cpu") == 0) { + picked_device_type = device_type; + found_requested_device = true; + break; + } else if (device_type == torch::kCUDA && strcmp(requested, "cuda") == 0) { + picked_device_type = device_type; + found_requested_device = true; + break; + } else if (device_type == torch::kMPS && strcmp(requested, "mps") == 0) { + picked_device_type = device_type; + found_requested_device = true; + break; + } + } + + if (!found_requested_device) { + error->all(FLERR, + "failed to find requested device ({}): it is either " + "not supported by this model or not available on this machine", + requested + ); + } + } + + if (picked_device_type == torch::kCUDA) { + // distribute GPUs between multiple MPI processes on the same node + + // (1) get a MPI communicator for all processes on the current node + MPI_Comm local; + MPI_Comm_split_type(world, MPI_COMM_TYPE_SHARED, 0, MPI_INFO_NULL, &local); + // (2) get the rank of this MPI process on the current node + int local_rank; + MPI_Comm_rank(local, &local_rank); + + int size; + MPI_Comm_size(local, &size); + if (size < torch::cuda::device_count()) { + if (comm->me == 0) { + error->warning(FLERR, + "found {} CUDA-capable GPUs, but only {} MPI processes on the current node; the remaining GPUs will not be used", + torch::cuda::device_count(), size + ); + } + } + + // (3) split GPUs between node-local processes using round-robin allocation + int gpu_to_use = local_rank % torch::cuda::device_count(); + *device = torch::Device(picked_device_type, gpu_to_use); + } else { + *device = torch::Device(picked_device_type); + } +} + +void FixMetatomic::init_list(int id, NeighList *ptr) { + mta_list = ptr; +} + +void FixMetatomic::initial_integrate(int /*vflag*/) +{ + // update v and x of atoms in group + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + double *rmass = atom->rmass; + + int nlocal = atom->nlocal; + int nghost = atom->nghost; + int nall = nlocal + nghost; + + double *mass = atom->mass; + int *type = atom->type; + int *mask = atom->mask; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; + + auto dtype = torch::kFloat64; + if (mta_data->capabilities->dtype() == "float64") { + dtype = torch::kFloat64; + } else if (mta_data->capabilities->dtype() == "float32") { + dtype = torch::kFloat32; + } else { + error->all(FLERR, "the model requested an unsupported dtype '{}'", mta_data->capabilities->dtype()); + } + + // transform from LAMMPS to metatomic System + auto system = this->system_adaptor->system_from_lmp( + mta_list, + static_cast(vflag_global), + mta_data->remap_pairs, + dtype, + mta_data->device + ); + + // gather masses (per-atom) in a tensor and ship to device + auto float_tensor_options = torch::TensorOptions().dtype(torch::kFloat64).device(torch::kCPU); + torch::Tensor masses; + if (rmass) { + masses = torch::from_blob( + rmass, {nall}, + float_tensor_options.requires_grad(false) + ).to(mta_data->device); + } else { + // need to map from atom type to mass + std::vector masses_vector(nall); + for (int i=0; idevice); + } + + auto label_tensor_options = torch::TensorOptions().dtype(torch::kInt32).device(mta_data->device); + // add masses to system + { + metatensor_torch::Labels keys = metatensor_torch::LabelsHolder::single()->to(mta_data->device); + auto samples_tensor = torch::column_stack({ + torch::zeros(nall, label_tensor_options).unsqueeze(1), + torch::arange(nall, label_tensor_options).unsqueeze(1) + }); + metatensor_torch::Labels samples = torch::make_intrusive( + std::vector{"system","atom"}, samples_tensor); + auto properties = metatensor_torch::LabelsHolder::single()->to(mta_data->device); + auto block = torch::make_intrusive( + masses.to(torch::TensorOptions().dtype(torch::kFloat32)).unsqueeze(-1), // add property dimension + samples, + std::vector{}, + properties + ); + auto blocks = std::vector{block}; + auto tmap = torch::make_intrusive(keys, blocks); + system->add_data("masses", tmap, /*override=*/true); + } + + // add momenta to the system + { + // gather velocities in a tensor and ship to device + auto velocities = torch::from_blob( + // atom->v contains "real" and then ghost atoms, in that order + *v, {nall, 3}, + // since Metatomic is not a force field, there's no need to allocate space to store gradients + float_tensor_options.requires_grad(false) + ).to(mta_data->device); + + // compute momenta = mass * velocity + auto momenta = masses.unsqueeze(1) * velocities * (0.001 / 0.09822694743391452); + // std::cout << "Momenta before:" << std::endl; + // std::cout << momenta.index({torch::indexing::Slice(0, nlocal), torch::indexing::Slice()}) << std::endl; + // exit(0); + // auto momenta = masses.unsqueeze(1) * velocities * 0.0; + + // print only the first n_local momenta (i.e. excluding ghosts) + // std::cout << momenta.index({torch::indexing::Slice(0, nlocal), torch::indexing::Slice()}) << std::endl; + + // define TensorBlock + auto keys = metatensor_torch::LabelsHolder::single()->to(mta_data->device); + auto values = momenta.unsqueeze(-1); // add property dimension + + // define samples + auto sample_value_components = std::vector{ + torch::zeros(nall, label_tensor_options).unsqueeze(1), + torch::arange(nall, label_tensor_options).unsqueeze(1) + }; + auto sample_values = torch::column_stack(sample_value_components); + metatensor_torch::Labels samples = torch::make_intrusive( + std::vector{"system", "atom"}, sample_values + ); + + // define components + auto component_values = torch::arange(3, label_tensor_options).unsqueeze(1); + metatensor_torch::Labels components = torch::make_intrusive( + std::vector{"xyz"}, component_values + ); + + auto properties = metatensor_torch::LabelsHolder::single()->to(mta_data->device); + auto block = torch::make_intrusive( + // TODO: is there a way to check what dtype the model expects for input data? + values.to(torch::TensorOptions().dtype(torch::kFloat32)), + samples, + std::vector{components}, + properties + ); + auto blocks = std::vector{block}; + auto tmap = torch::make_intrusive(keys, blocks); + system->add_data("momenta", tmap, /*override=*/true); + } + + // only run the calculation for atoms actually in the current domain + mta_data->selected_atoms_values.resize_({atom->nlocal, 2}); + mta_data->selected_atoms_values.index_put_({torch::indexing::Slice(), 0}, 0); + auto options = mta_data->selected_atoms_values.options(); + mta_data->selected_atoms_values.index_put_( + {torch::indexing::Slice(), 1}, + torch::arange(atom->nlocal, options) + ); + + auto selected_atoms = torch::make_intrusive( + std::vector{"system", "atom"}, mta_data->selected_atoms_values + ); + mta_data->evaluation_options->set_selected_atoms(selected_atoms); + + // std::cout << system->positions() << std::endl; + // std::cout << metatensor_torch::TensorMapHolder::block_by_id(system->get_data("masses"), 0)->values() << std::endl; + // std::cout << metatensor_torch::TensorMapHolder::block_by_id(system->get_data("momenta"), 0)->values().squeeze(-1) << std::endl; + // exit(0); + // std::cout << system->types() << std::endl; + // std::cout << system->cell() << std::endl; + // std::cout << system->pbc() << std::endl; + + // call the model to get delta-positions and updated momenta + torch::IValue result_ivalue; + try { + // run the model + result_ivalue = mta_data->model->forward({ + std::vector{system}, + mta_data->evaluation_options, + mta_data->check_consistency + }); + } catch (const std::exception& e) { + error->all(FLERR, "error evaluating the torch model: {}", e.what()); + } + + // apply the results to LAMMPS atoms + auto result = result_ivalue.toGenericDict(); + + // extract position updates + auto positions_map = result.at("positions").toCustomClass(); + auto positions_block = metatensor_torch::TensorMapHolder::block_by_id(positions_map, 0); + auto positions = positions_block->values().squeeze(-1).to(torch::kCPU).to(torch::kFloat64); + + // extract momenta updates + auto momenta_map = result.at("momenta").toCustomClass(); + auto momenta_block = metatensor_torch::TensorMapHolder::block_by_id(momenta_map, 0); + auto momenta = momenta_block->values().squeeze(-1).to(torch::kCPU).to(torch::kFloat64); + + // std::cout << positions << std::endl; + // std::cout << momenta << std::endl; + // exit(0); + // jdgfkakjd + + // std::cout << momenta << std::endl; + // exit(0); + + momenta = momenta / (0.001 / 0.09822694743391452); + + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + // update positions + x[i][0] = positions[i][0].item(); + x[i][1] = positions[i][1].item(); + x[i][2] = positions[i][2].item(); + + // std::cout << "Before: " << v[i][0]; + + // update velocities based on new momenta + v[i][0] = momenta[i][0].item() / masses[i].item(); + v[i][1] = momenta[i][1].item() / masses[i].item(); + v[i][2] = momenta[i][2].item() / masses[i].item(); + + // std::cout << " After: " << v[i][0] << std::endl; + } + } +} + +void FixMetatomic::post_force(int /*vflag*/) +{ + // take a snapshot of forces + this->ensure_capacity(); + + double **f = atom->f; + int nlocal = atom->nlocal; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; + + for (int i = 0; i < nlocal; i++) { + f_pre[i][0] = f[i][0]; + f_pre[i][1] = f[i][1]; + f_pre[i][2] = f[i][2]; + } +} + +void FixMetatomic::final_integrate() +{ + double dtf = update->dt * force->ftm2v; + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + double *rmass = atom->rmass; + int nlocal = atom->nlocal; + int *mask = atom->mask; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; + + for (int i = 0; i < nlocal; i++) { + v[i][0] += (f[i][0] - f_pre[i][0]) * dtf / (rmass ? rmass[i] : atom->mass[atom->type[i]]); + v[i][1] += (f[i][1] - f_pre[i][1]) * dtf / (rmass ? rmass[i] : atom->mass[atom->type[i]]); + v[i][2] += (f[i][2] - f_pre[i][2]) * dtf / (rmass ? rmass[i] : atom->mass[atom->type[i]]); + } +} + + +void FixMetatomic::ensure_capacity() +{ + if (atom->nmax > nmax) { + this->nmax = atom->nmax; + if (f_pre) memory->destroy(f_pre); + memory->create(f_pre, this->nmax, 3, "FixMetatomic::f_pre"); + } +} diff --git a/src/ML-METATOMIC/fix_metatomic.h b/src/ML-METATOMIC/fix_metatomic.h new file mode 100644 index 00000000000..bf24be9fed4 --- /dev/null +++ b/src/ML-METATOMIC/fix_metatomic.h @@ -0,0 +1,67 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef FIX_CLASS +// clang-format off +FixStyle(metatomic,FixMetatomic); +// clang-format on +#else + +#ifndef LMP_FIX_FLASHMD_H +#define LMP_FIX_FLASHMD_H + +#include "fix.h" + +#include + +namespace LAMMPS_NS { +class MetatomicSystemAdaptor; +class PairMetatomicData; + +class FixMetatomic : public Fix { + public: + FixMetatomic(class LAMMPS *, int, char **); + ~FixMetatomic(); + + int setmask() override; + void init() override; + std::vector available_devices(); + void pick_device(torch::Device* device, const char* requested); + void initial_integrate(int) override; + void post_force(int) override; + void final_integrate() override; + void init_list(int id, NeighList *ptr) override; + + protected: + double dt; + std::string model_path; + std::string requested_device; + + PairMetatomicData* mta_data; + NeighList *mta_list; + int mta_list_reqid; + + double **f_pre = nullptr; // snapshot of forces at post_force() time + void ensure_capacity(); + int nmax = 0; + + // mapping from LAMMPS types to metatomic types + int32_t *type_mapping; + // Helper class to convert between LAMMPS and metatomic. + std::unique_ptr system_adaptor; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/ML-METATOMIC/metatomic_system.cpp b/src/ML-METATOMIC/metatomic_system.cpp index 8fa0ca907a8..764bc70fa18 100644 --- a/src/ML-METATOMIC/metatomic_system.cpp +++ b/src/ML-METATOMIC/metatomic_system.cpp @@ -44,6 +44,9 @@ MetatomicSystemAdaptor::MetatomicSystemAdaptor(LAMMPS *lmp, MetatomicSystemOptio MetatomicSystemAdaptor::~MetatomicSystemAdaptor() {} void MetatomicSystemAdaptor::add_nl_request(double cutoff, metatomic_torch::NeighborListOptions request) { + std::cout << "cutoff = " << cutoff << std::endl; + std::cout << "request.cutoff() = " << request->cutoff() << std::endl; + if (cutoff > options_.interaction_range) { error->all(FLERR, "Invalid metatomic model: one of the requested neighbor lists " diff --git a/src/ML-METATOMIC/metatomic_types.cpp b/src/ML-METATOMIC/metatomic_types.cpp index 1bfcc6be8a0..fd92b11a08a 100644 --- a/src/ML-METATOMIC/metatomic_types.cpp +++ b/src/ML-METATOMIC/metatomic_types.cpp @@ -22,7 +22,7 @@ using namespace LAMMPS_NS; -PairMetatomicData::PairMetatomicData(std::string length_unit, std::string energy_unit): +PairMetatomicData::PairMetatomicData(std::string length_unit, std::string energy_unit, bool flash): device(torch::kCPU), check_consistency(false), remap_pairs(true), @@ -36,13 +36,32 @@ PairMetatomicData::PairMetatomicData(std::string length_unit, std::string energy this->evaluation_options = torch::make_intrusive(); this->evaluation_options->set_length_unit(std::move(length_unit)); - auto output = torch::make_intrusive(); - output->explicit_gradients = {}; - output->set_quantity("energy"); - output->set_unit(std::move(energy_unit)); - output->per_atom = false; - - this->evaluation_options->outputs.insert("energy", output); + if(!flash) { + auto output = torch::make_intrusive(); + output->explicit_gradients = {}; + output->set_quantity("energy"); + output->set_unit(std::move(energy_unit)); + output->per_atom = false; + + this->evaluation_options->outputs.insert("energy", output); + } else { + // FlashMD needs position change delta-q and momenta p + auto positions = torch::make_intrusive(); + positions->explicit_gradients = {}; + positions->set_quantity("length"); + positions->set_unit("Angstrom"); + positions->per_atom = true; + + this->evaluation_options->outputs.insert("positions", positions); + + auto momenta = torch::make_intrusive(); + momenta->explicit_gradients = {}; + momenta->set_quantity("momentum"); + momenta->set_unit("(eV*u)^1/2"); + momenta->per_atom = true; + + this->evaluation_options->outputs.insert("momenta", momenta); + } } void PairMetatomicData::load_model( @@ -72,9 +91,10 @@ void PairMetatomicData::load_model( auto capabilities_ivalue = this->model->run_method("capabilities"); this->capabilities = capabilities_ivalue.toCustomClass(); - if (!this->capabilities->outputs().contains("energy")) { - lmp->error->all(FLERR, "the model at '{}' does not have an \"energy\" output, we can not use it in pair_style metatomic", path); - } + +// if (!this->capabilities->outputs().contains("energy")) { +// lmp->error->all(FLERR, "the model at '{}' does not have an \"energy\" output, we can not use it in pair_style metatomic", path); +// } if (lmp->comm->me == 0) { auto metadata_ivalue = this->model->run_method("metadata"); diff --git a/src/ML-METATOMIC/metatomic_types.h b/src/ML-METATOMIC/metatomic_types.h index b7416751219..e20e34da8b6 100644 --- a/src/ML-METATOMIC/metatomic_types.h +++ b/src/ML-METATOMIC/metatomic_types.h @@ -26,7 +26,7 @@ namespace LAMMPS_NS { struct PairMetatomicData { - PairMetatomicData(std::string length_unit, std::string energy_unit); + PairMetatomicData(std::string length_unit, std::string energy_unit, bool flash = false); void load_model(LAMMPS* lmp, const char* path, const char* extensions_directory);