From 81b0bb47be24eda4acb7e3a73fb943245c93fb28 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 25 Feb 2023 12:03:05 -0500 Subject: [PATCH 01/58] allow dynamic groups with fix oneway --- src/EXTRA-FIX/fix_oneway.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/EXTRA-FIX/fix_oneway.cpp b/src/EXTRA-FIX/fix_oneway.cpp index d514a081f1..f31781d936 100644 --- a/src/EXTRA-FIX/fix_oneway.cpp +++ b/src/EXTRA-FIX/fix_oneway.cpp @@ -35,6 +35,7 @@ FixOneWay::FixOneWay(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), region(nullptr), idregion(nullptr) { direction = NONE; + dynamic_group_allow = 1; if (narg < 6) error->all(FLERR, "Illegal fix oneway command"); From 828b70fbfa45b43ef88852beb51c4891fa2cfc8b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 25 Feb 2023 13:58:58 -0500 Subject: [PATCH 02/58] silence warning --- doc/src/fix_pimd.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/fix_pimd.rst b/doc/src/fix_pimd.rst index 0a4f9a38fb..84c6e47c1f 100644 --- a/doc/src/fix_pimd.rst +++ b/doc/src/fix_pimd.rst @@ -1,7 +1,7 @@ .. index:: fix pimd/nvt fix pimd/nvt command -================ +==================== Syntax """""" From 666be5c3d90268fc80baa3e5427ce1432b11685e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 25 Feb 2023 23:46:58 -0500 Subject: [PATCH 03/58] add log files for example run --- .../pimd/para-h2/log.25Feb23.scp.g++.8 | 2 + .../pimd/para-h2/log.25Feb23.scp.g++.8.0 | 199 ++++++++++++++++++ .../pimd/para-h2/log.25Feb23.scp.g++.8.1 | 197 +++++++++++++++++ .../pimd/para-h2/log.25Feb23.scp.g++.8.2 | 197 +++++++++++++++++ .../pimd/para-h2/log.25Feb23.scp.g++.8.3 | 197 +++++++++++++++++ .../pimd/para-h2/log.25Feb23.scp.g++.8.4 | 197 +++++++++++++++++ .../pimd/para-h2/log.25Feb23.scp.g++.8.5 | 197 +++++++++++++++++ .../pimd/para-h2/log.25Feb23.scp.g++.8.6 | 197 +++++++++++++++++ .../pimd/para-h2/log.25Feb23.scp.g++.8.7 | 197 +++++++++++++++++ 9 files changed, 1580 insertions(+) create mode 100644 examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8 create mode 100644 examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.0 create mode 100644 examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.1 create mode 100644 examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.2 create mode 100644 examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.3 create mode 100644 examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.4 create mode 100644 examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.5 create mode 100644 examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.6 create mode 100644 examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.7 diff --git a/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8 b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8 new file mode 100644 index 0000000000..14b41c14f3 --- /dev/null +++ b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8 @@ -0,0 +1,2 @@ +LAMMPS (8 Feb 2023) +Running on 8 partitions of processors diff --git a/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.0 b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.0 new file mode 100644 index 0000000000..037ad3f2d3 --- /dev/null +++ b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.0 @@ -0,0 +1,199 @@ +LAMMPS (8 Feb 2023) +Processor partition = 0 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 32 pad +variable out_freq string 100 +variable job_name string H2 + +units real +atom_style full +pair_style table linear 10000 + +neighbor 2.0 bin +neigh_modify every 1 delay 0 check no + +read_data H2.data +Reading data file ... + orthogonal box = (0 0 0) to (19.71219 19.71219 19.71219) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 180 atoms +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.003 seconds + +pair_coeff 1 * pair.table PAIR_H2 +WARNING: 5852 of 18000 force values in table PAIR_H2 are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) + +timestep 0.001 + +velocity all create 1.0 1985 rot yes dist gaussian + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 25.0 nhc 4 + +thermo_style custom step temp pe etotal pzz f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +thermo ${out_freq} +thermo 100 + +#dump dcd all dcd ${out_freq} ${job_name}_${ibead}.dcd + +#restart ${out_freq} ${job_name}_${ibead}.restart1 ${job_name}_${ibead}.restart2 + +run 10000 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Fix pimd/nvt -P/(beta^2 * hbar^2) = -2.0510430e-01 (kcal/mol/A^2) + +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11.55117 + ghost atom cutoff = 11.55117 + binsize = 5.775585, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 11.97 | 11.97 | 11.97 Mbytes + Step Temp PotEng TotEng Pzz espring T_ring virial + 0 1 -50.292986 -49.759421 16.18218 0 2.4190752e-312 4.331435e-14 + 100 1.0017926 -50.292812 -49.758291 16.197861 4.265072e-05 0.99622709 -0.027624534 + 200 1.0071966 -50.292414 -49.755009 16.235286 0.00017002327 1.0016011 -0.055248299 + 300 1.0162913 -50.291757 -49.7495 16.297361 0.00038044032 1.0106453 -0.082873452 + 400 1.0292116 -50.290849 -49.741697 16.38451 0.00067129747 1.0234938 -0.11047807 + 500 1.046152 -50.289692 -49.731502 16.497053 0.0010393068 1.0403401 -0.13806207 + 600 1.0673727 -50.288298 -49.718785 16.634959 0.0014807685 1.0614428 -0.16561253 + 700 1.0932075 -50.286675 -49.703378 16.798983 0.0019918311 1.0871342 -0.19314289 + 800 1.1240754 -50.284828 -49.68506 16.990234 0.0025687136 1.1178306 -0.22065895 + 900 1.1604938 -50.28276 -49.663562 17.210179 0.0032078786 1.1540466 -0.24818038 + 1000 1.2030968 -50.280481 -49.638551 17.460167 0.0039061562 1.196413 -0.27572028 + 1100 1.2526583 -50.277991 -49.609616 17.742341 0.0046608267 1.2456991 -0.30331246 + 1200 1.3101204 -50.275294 -49.576259 18.059364 0.0054696709 1.3028419 -0.33099732 + 1300 1.3766308 -50.272386 -49.537864 18.415203 0.0063309999 1.3689828 -0.35880748 + 1400 1.4535894 -50.269262 -49.493677 18.814095 0.007243672 1.4455139 -0.38678366 + 1500 1.5427084 -50.265919 -49.442783 19.261431 0.0082071044 1.5341378 -0.41499269 + 1600 1.6460882 -50.262344 -49.384049 19.763852 0.0092212862 1.6369433 -0.44348166 + 1700 1.7663158 -50.25853 -49.316086 20.329991 0.010286796 1.756503 -0.47232409 + 1800 1.9065905 -50.254461 -49.237171 20.96974 0.01140483 1.8959983 -0.50158483 + 1900 2.0708856 -50.250115 -49.145163 21.696809 0.012577241 2.0593807 -0.53134846 + 2000 2.2641571 -50.245477 -49.037402 22.525956 0.013806592 2.2515785 -0.5617101 + 2100 2.4926123 -50.240516 -48.910546 23.477847 0.015096239 2.4787644 -0.59276642 + 2200 2.7640541 -50.2352 -48.760398 24.577541 0.01645042 2.7486983 -0.62463764 + 2300 3.088323 -50.229491 -48.58167 25.856282 0.017874391 3.0711656 -0.65745388 + 2400 3.4778567 -50.223344 -48.367681 27.353194 0.01937458 3.4585353 -0.69135912 + 2500 3.9483938 -50.216703 -48.109978 29.11873 0.020958791 3.9264583 -0.72652121 + 2600 4.5198403 -50.209503 -47.797875 31.215234 0.02263645 4.4947301 -0.76313188 + 2700 5.2173107 -50.201663 -47.417889 33.721815 0.024418904 5.1883257 -0.80140558 + 2800 6.0723283 -50.193089 -46.953107 36.73757 0.026319777 6.0385931 -0.84159436 + 2900 7.1241213 -50.183668 -46.382487 40.38551 0.028355393 7.0845429 -0.88396874 + 3000 8.4208727 -50.173266 -45.680183 44.816478 0.030545255 8.3740901 -0.9288431 + 3100 10.020649 -50.161717 -44.81505 50.212214 0.032912578 9.9649788 -0.97656436 + 3200 11.991558 -50.148837 -43.750561 56.786471 0.035484852 11.924938 -1.0275116 + 3300 14.410456 -50.134392 -42.445477 64.781319 0.038294377 14.330398 -1.0821007 + 3400 17.359303 -50.11813 -40.855813 74.455919 0.041378722 17.262863 -1.14076 + 3500 20.918126 -50.099744 -38.938564 86.068376 0.044780961 20.801915 -1.2039443 + 3600 25.153676 -50.078895 -36.657774 99.840861 0.048549564 25.013933 -1.2720773 + 3700 30.103431 -50.055212 -33.993075 115.91254 0.052737712 29.93619 -1.3455663 + 3800 35.755845 -50.028299 -30.950232 134.28175 0.057401834 35.557201 -1.4247605 + 3900 42.029581 -49.997746 -27.572232 154.74519 0.062599126 41.796084 -1.5098692 + 4000 48.756702 -49.963159 -23.948289 176.84543 0.06838392 48.485832 -1.6010084 + 4100 55.676392 -49.924188 -20.217214 199.84979 0.074802896 55.367079 -1.6980754 + 4200 62.445716 -49.880563 -16.561714 222.7783 0.081889414 62.098795 -1.8007866 + 4300 68.671023 -49.832118 -13.191664 244.49021 0.089657516 68.289518 -1.9086164 + 4400 73.957826 -49.778843 -10.317535 263.82539 0.098096488 73.546949 -2.0208305 + 4500 77.969954 -49.7209 -8.1188616 279.77238 0.10716704 77.536788 -2.1364913 + 4600 80.483598 -49.658617 -6.7153862 291.6285 0.11680011 80.036467 -2.254524 + 4700 81.421471 -49.592506 -6.1488596 299.10183 0.12689894 80.969129 -2.3737378 + 4800 80.857888 -49.523204 -6.3802649 302.3328 0.13734453 80.408677 -2.492954 + 4900 78.994781 -49.451459 -7.3026086 301.83334 0.14800388 78.555921 -2.6110228 + 5000 76.117367 -49.378045 -8.7644823 298.36557 0.15873983 75.694493 -2.7269278 + 5100 72.542745 -49.303735 -10.597466 292.79593 0.16942116 72.139729 -2.8398052 + 5200 68.573953 -49.22923 -12.640569 285.96472 0.17993138 68.192987 -2.949009 + 5300 64.467624 -49.155126 -14.757458 278.59037 0.19017535 64.10947 -3.0540851 + 5400 60.41785 -49.081671 -16.844821 271.22804 0.20008281 60.082195 -3.1546148 + 5500 56.554431 -49.009666 -18.834201 264.2355 0.20960898 56.24024 -3.250862 + 5600 52.95111 -48.938861 -20.686002 257.84121 0.21873248 52.656937 -3.3428291 + 5700 49.638794 -48.869827 -22.384304 252.12886 0.22745138 49.363023 -3.4305128 + 5800 46.619514 -48.801888 -23.927347 247.13356 0.23577844 46.360517 -3.5141755 + 5900 43.878389 -48.73593 -25.323958 242.80111 0.24373625 43.634621 -3.5942967 + 6000 41.392437 -48.671406 -26.585851 239.09246 0.25135296 41.162479 -3.6710953 + 6100 39.136252 -48.60798 -27.726246 235.9541 0.25865905 38.918828 -3.7449553 + 6200 37.085195 -48.545774 -28.758412 233.32233 0.26568495 36.879167 -3.8159439 + 6300 35.216896 -48.484909 -29.694407 231.1392 0.27245965 35.021246 -3.884503 + 6400 33.511732 -48.42458 -30.543893 229.37842 0.2790099 33.325556 -3.9507385 + 6500 31.952789 -48.365385 -31.316496 227.98228 0.2853599 31.775274 -4.0149897 + 6600 30.525576 -48.307233 -32.019853 226.91697 0.29153132 30.35599 -4.0774486 + 6700 29.217672 -48.24981 -32.660283 226.16022 0.29754342 29.055351 -4.1382338 + 6800 28.018378 -48.192803 -33.243177 225.69366 0.30341329 27.862721 -4.1974677 + 6900 26.918418 -48.136622 -33.773896 225.48194 0.30915615 26.768871 -4.2553485 + 7000 25.909681 -48.08096 -34.256461 225.51257 0.31478562 25.765738 -4.311968 + 7100 24.985015 -48.025534 -34.694405 225.77479 0.32031392 24.84621 -4.3675242 + 7200 24.138072 -47.970746 -35.091516 226.24048 0.32575216 24.003972 -4.4219335 + 7300 23.36317 -47.916089 -35.450319 226.90757 0.33111051 23.233375 -4.4754578 + 7400 22.655198 -47.861976 -35.773956 227.75054 0.33639834 22.529336 -4.5280134 + 7500 22.009532 -47.808135 -36.064618 228.76407 0.34162439 21.887257 -4.5797622 + 7600 21.421974 -47.754508 -36.324492 229.93785 0.34679689 21.302963 -4.6307739 + 7700 20.888691 -47.700827 -36.555352 231.26801 0.35192361 20.772643 -4.6812057 + 7800 20.406177 -47.64705 -36.759028 232.73618 0.35701201 20.292809 -4.7306795 + 7900 19.971205 -47.593833 -36.937897 234.33449 0.36206923 19.860254 -4.7798815 + 8000 19.580795 -47.540435 -37.092808 236.06384 0.36710221 19.472013 -4.8285632 + 8100 19.232176 -47.487281 -37.225665 237.90655 0.37211768 19.125331 -4.8768578 + 8200 18.922755 -47.4341 -37.33758 239.86116 0.37712221 18.817628 -4.9247735 + 8300 18.650078 -47.380856 -37.429827 241.92202 0.38212226 18.546466 -4.972363 + 8400 18.4118 -47.327508 -37.503616 244.08393 0.38712418 18.309512 -5.0196756 + 8500 18.205651 -47.273789 -37.559891 246.34742 0.3921342 18.104508 -5.06671 + 8600 18.029398 -47.219424 -37.599568 248.71065 0.39715848 17.929235 -5.1133124 + 8700 17.880815 -47.165549 -37.624972 251.14475 0.4022031 17.781477 -5.1600447 + 8800 17.757645 -47.110958 -37.636101 253.66312 0.40727406 17.658991 -5.2066259 + 8900 17.657573 -47.056554 -37.635091 256.25454 0.41237724 17.559475 -5.2531731 + 9000 17.578197 -47.001835 -37.622724 258.91696 0.41751847 17.48054 -5.2996769 + 9100 17.517006 -46.946535 -37.600073 261.64727 0.42270345 17.41969 -5.3462575 + 9200 17.471368 -46.890625 -37.568515 264.44427 0.42793776 17.374305 -5.3925966 + 9300 17.438519 -46.834765 -37.530181 267.28872 0.43322691 17.341639 -5.4391596 + 9400 17.415579 -46.778464 -37.486121 270.18178 0.43857628 17.318826 -5.485798 + 9500 17.399563 -46.721685 -37.437887 273.11812 0.44399119 17.302899 -5.5325337 + 9600 17.387425 -46.664405 -37.387083 276.08982 0.44947693 17.290829 -5.5793912 + 9700 17.376109 -46.606364 -37.335081 279.09236 0.45503878 17.279575 -5.6264788 + 9800 17.362615 -46.547755 -37.283671 282.11747 0.46068208 17.266156 -5.6736623 + 9900 17.344087 -46.488783 -37.234585 285.15699 0.46641232 17.247731 -5.7209993 + 10000 17.317913 -46.42918 -37.188947 288.20641 0.4722352 17.221703 -5.7685405 +Loop time of 14.691 on 1 procs for 10000 steps with 180 atoms + +Performance: 0.059 ns/day, 408.083 hours/ns, 680.689 timesteps/s, 122.524 katom-step/s +96.5% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.0453 | 3.0453 | 3.0453 | 0.0 | 20.73 +Bond | 0.00108 | 0.00108 | 0.00108 | 0.0 | 0.01 +Neigh | 6.6815 | 6.6815 | 6.6815 | 0.0 | 45.48 +Comm | 0.55477 | 0.55477 | 0.55477 | 0.0 | 3.78 +Output | 0.0028885 | 0.0028885 | 0.0028885 | 0.0 | 0.02 +Modify | 4.3341 | 4.3341 | 4.3341 | 0.0 | 29.50 +Other | | 0.07136 | | | 0.49 + +Nlocal: 180 ave 180 max 180 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1510 ave 1510 max 1510 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 13729 ave 13729 max 13729 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 13729 +Ave neighs/atom = 76.272222 +Ave special neighs/atom = 0 +Neighbor list builds = 10000 +Dangerous builds not checked +Total wall time: 0:00:14 diff --git a/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.1 b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.1 new file mode 100644 index 0000000000..cd5ea56a2e --- /dev/null +++ b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.1 @@ -0,0 +1,197 @@ +LAMMPS (8 Feb 2023) +Processor partition = 1 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 32 pad +variable out_freq string 100 +variable job_name string H2 + +units real +atom_style full +pair_style table linear 10000 + +neighbor 2.0 bin +neigh_modify every 1 delay 0 check no + +read_data H2.data +Reading data file ... + orthogonal box = (0 0 0) to (19.71219 19.71219 19.71219) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 180 atoms +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.003 seconds + +pair_coeff 1 * pair.table PAIR_H2 +WARNING: 5852 of 18000 force values in table PAIR_H2 are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) + +timestep 0.001 + +velocity all create 1.0 1985 rot yes dist gaussian + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 25.0 nhc 4 + +thermo_style custom step temp pe etotal pzz f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +thermo ${out_freq} +thermo 100 + +#dump dcd all dcd ${out_freq} ${job_name}_${ibead}.dcd + +#restart ${out_freq} ${job_name}_${ibead}.restart1 ${job_name}_${ibead}.restart2 + +run 10000 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11.55117 + ghost atom cutoff = 11.55117 + binsize = 5.775585, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 11.97 | 11.97 | 11.97 Mbytes + Step Temp PotEng TotEng Pzz espring T_ring virial + 0 1 -50.292986 -49.759421 16.18218 0 0 4.331435e-14 + 100 1.0008585 -50.292908 -49.758885 16.189586 7.3078196e-06 4.6642574 -0.013945396 + 200 1.0034473 -50.292787 -49.757382 16.20341 2.9015288e-05 4.6763219 -0.027851725 + 300 1.0078065 -50.292593 -49.754863 16.225711 6.4500006e-05 4.6966366 -0.041662754 + 400 1.0140035 -50.29233 -49.751293 16.257176 0.00011280318 4.7255165 -0.055352542 + 500 1.022135 -50.292004 -49.746629 16.297097 0.000172727 4.7634112 -0.068879202 + 600 1.0323282 -50.291621 -49.740807 16.346105 0.00024293886 4.810914 -0.082221014 + 700 1.044744 -50.291188 -49.733749 16.404167 0.00032206529 4.8687751 -0.095360512 + 800 1.0595808 -50.290712 -49.725357 16.471712 0.00040876559 4.9379182 -0.10826526 + 900 1.0770788 -50.290199 -49.715507 16.549069 0.00050178229 5.0194635 -0.1209272 + 1000 1.0975268 -50.289655 -49.704053 16.636751 0.00059997025 5.1147563 -0.13335203 + 1100 1.1212697 -50.289087 -49.690817 16.735749 0.00070230922 5.2254045 -0.14552504 + 1200 1.1487191 -50.288499 -49.675582 16.846901 0.00080790454 5.3533259 -0.15745048 + 1300 1.1803661 -50.287894 -49.658092 16.971484 0.00091598038 5.5008089 -0.16912662 + 1400 1.2167975 -50.287272 -49.638032 17.111786 0.001025869 5.6705884 -0.18056175 + 1500 1.2587169 -50.286644 -49.615037 17.26922 0.0011369979 5.8659438 -0.19176702 + 1600 1.3069713 -50.286008 -49.588654 17.446637 0.0012488773 6.0908216 -0.20274823 + 1700 1.3625842 -50.285365 -49.558338 17.646978 0.0013610874 6.349992 -0.21351296 + 1800 1.4267987 -50.284719 -49.523429 17.874056 0.0014732674 6.6492481 -0.2240754 + 1900 1.5011316 -50.284073 -49.483122 18.132347 0.0015851058 6.9956586 -0.23443788 + 2000 1.5874426 -50.283426 -49.436422 18.428012 0.0016963317 7.3978897 -0.24461477 + 2100 1.6880217 -50.282783 -49.382113 18.767914 0.0018067084 7.866614 -0.25461336 + 2200 1.805701 -50.282144 -49.318685 19.160875 0.0019160281 8.4150298 -0.26443254 + 2300 1.9439951 -50.281509 -49.244262 19.617751 0.0020241086 9.0595157 -0.27408815 + 2400 2.1072772 -50.280879 -49.15651 20.152728 0.0021307926 9.8204522 -0.28357876 + 2500 2.3009976 -50.28026 -49.052528 20.78256 0.0022359485 10.723239 -0.29290505 + 2600 2.5319494 -50.279651 -48.928691 21.528586 0.0023394759 11.799534 -0.30206821 + 2700 2.8085834 -50.279048 -48.780486 22.417919 0.0024413142 13.088719 -0.31106836 + 2800 3.1413661 -50.278457 -48.602334 23.483643 0.0025414581 14.639572 -0.31990395 + 2900 3.5431594 -50.277876 -48.38737 24.766603 0.0026399801 16.512032 -0.32855403 + 3000 4.029577 -50.277305 -48.127264 26.316279 0.0027370628 18.778862 -0.33702346 + 3100 4.6192292 -50.276739 -47.81208 28.192254 0.0028330445 21.526793 -0.3452905 + 3200 5.333716 -50.276174 -47.43029 30.464107 0.0029284791 24.856485 -0.35332773 + 3300 6.1971481 -50.275605 -46.969024 33.208128 0.0030242128 28.8803 -0.36114465 + 3400 7.2349012 -50.27502 -46.41473 36.506582 0.0031214781 33.716495 -0.36868512 + 3500 8.4712457 -50.274401 -45.754441 40.437918 0.0032219998 39.478178 -0.37595678 + 3600 9.9255066 -50.273728 -44.977825 45.065017 0.0033281047 46.255407 -0.38292345 + 3700 11.606561 -50.27297 -44.080116 50.41841 0.0034428151 54.089554 -0.38955061 + 3800 13.505865 -50.272095 -43.065838 56.472981 0.0035698989 62.940797 -0.39583139 + 3900 15.589837 -50.271059 -41.952868 63.125206 0.0037138374 72.652639 -0.40173444 + 4000 17.793286 -50.26982 -40.775945 70.171007 0.0038796665 82.921278 -0.40724146 + 4100 20.016352 -50.26833 -39.588305 77.297059 0.0040726574 93.281337 -0.350557 + 4200 22.127692 -50.266548 -38.459986 84.091411 0.0042978175 103.12072 -0.42427987 + 4300 23.975875 -50.264442 -37.471754 90.07826 0.0045592402 111.73373 -0.44332019 + 4400 25.408871 -50.262001 -36.704717 94.780152 0.0048593802 118.41186 -0.4712594 + 4500 26.298516 -50.259233 -36.227265 97.796601 0.0051983826 122.55783 -0.48751932 + 4600 26.564146 -50.256176 -36.082477 98.874143 0.0055736202 123.79574 -0.50751557 + 4700 26.188683 -50.252888 -36.279523 97.96053 0.0059795748 122.04598 -0.53463961 + 4800 25.22218 -50.249455 -36.791783 95.211762 0.0064081371 117.54183 -0.56057187 + 4900 23.771743 -50.245971 -37.562201 90.960801 0.0068493041 110.78242 -0.58649549 + 5000 21.981009 -50.242542 -38.514245 85.651619 0.0072921623 102.43714 -0.58569676 + 5100 20.005118 -50.239262 -39.565231 79.762203 0.0077259803 93.228984 -0.58814947 + 5200 17.987555 -50.236217 -40.638687 73.732022 0.0081412203 83.826622 -0.64456631 + 5300 16.043551 -50.23346 -41.673183 67.91308 0.0085303062 74.767062 -0.66253179 + 5400 14.252123 -50.231042 -42.626609 62.542995 0.0088880521 66.418547 -0.67647833 + 5500 12.656267 -50.228973 -43.476032 57.750687 0.0092117291 58.981452 -0.69035428 + 5600 11.269006 -50.227253 -44.214506 53.573237 0.0095008225 52.516458 -0.70182381 + 5700 10.082247 -50.225863 -44.846329 49.983875 0.0097565822 46.985857 -0.71107461 + 5800 9.075711 -50.224777 -45.382295 46.920816 0.0099814848 42.295142 -0.72796918 + 5900 8.2241323 -50.223954 -45.835845 44.308503 0.010178713 38.326566 -0.7341011 + 6000 7.5020778 -50.223364 -46.220518 42.071534 0.010351726 34.961607 -0.73860614 + 6100 6.8865776 -50.222972 -46.548535 40.142111 0.010503944 32.093218 -0.74169302 + 6200 6.3581625 -50.222743 -46.83025 38.464555 0.010638555 29.630669 -0.74355815 + 6300 5.9009471 -50.222651 -47.074112 36.993223 0.010758413 27.499927 -0.72351831 + 6400 5.5022478 -50.222668 -47.286861 35.692229 0.010866003 25.641886 -0.72491142 + 6500 5.1520445 -50.222775 -47.473825 34.533075 0.010963451 24.009849 -0.72550196 + 6600 4.842444 -50.222956 -47.639197 33.493966 0.011052555 22.567032 -0.72539576 + 6700 4.5672154 -50.223194 -47.786287 32.557859 0.011134828 21.284396 -0.72468094 + 6800 4.3214112 -50.22348 -47.917726 31.710288 0.011211542 20.138885 -0.69977477 + 6900 4.1010719 -50.223805 -48.035616 30.941022 0.011283771 19.112047 -0.6977173 + 7000 3.9029992 -50.224161 -48.141657 30.240625 0.011352422 18.188977 -0.69521625 + 7100 3.7245829 -50.22454 -48.237233 29.602229 0.011418274 17.357512 -0.69232721 + 7200 3.5636708 -50.224941 -48.323491 29.019374 0.011482 16.60762 -0.68909561 + 7300 3.4184697 -50.225359 -48.401383 28.487117 0.011544187 15.930946 -0.68553322 + 7400 3.2874703 -50.225791 -48.471712 28.00136 0.011605358 15.320455 -0.68167743 + 7500 3.1693898 -50.226236 -48.53516 27.5579 0.01166598 14.77017 -0.67389187 + 7600 3.0631284 -50.226689 -48.592311 27.15399 0.011726479 14.274964 -0.66987688 + 7700 2.9677349 -50.227151 -48.643671 26.786563 0.011787244 13.830406 -0.66561073 + 7800 2.8823804 -50.227616 -48.689679 26.453373 0.011848631 13.432632 -0.66110134 + 7900 2.8063371 -50.228091 -48.730728 26.151709 0.011910973 13.078251 -0.65637083 + 8000 2.7389612 -50.228567 -48.767153 25.879876 0.011974573 12.764262 -0.65142182 + 8100 2.6796793 -50.229048 -48.799265 25.636155 0.01203971 12.487993 -0.64626697 + 8200 2.6279769 -50.229528 -48.827332 25.418653 0.012106636 12.247046 -0.64092634 + 8300 2.583388 -50.230009 -48.851603 25.225967 0.012175578 12.039251 -0.63576886 + 8400 2.5454874 -50.230488 -48.872305 25.056681 0.012246734 11.862624 -0.63004687 + 8500 2.5138825 -50.230965 -48.889645 24.909342 0.012320275 11.715337 -0.62413585 + 8600 2.4882074 -50.231439 -48.903818 24.782526 0.012396346 11.595685 -0.65229004 + 8700 2.468117 -50.231904 -48.915003 24.674923 0.012475068 11.502059 -0.64624002 + 8800 2.4532823 -50.232364 -48.923378 24.585268 0.012556541 11.432925 -0.6399876 + 8900 2.4433865 -50.232811 -48.929106 24.512562 0.012640854 11.386808 -0.63354 + 9000 2.4381226 -50.233249 -48.932352 24.45498 0.012728083 11.362277 -0.62690844 + 9100 2.4371917 -50.233668 -48.933268 24.411953 0.012818306 11.357939 -0.62009589 + 9200 2.4403031 -50.234074 -48.932014 24.381442 0.012911605 11.372438 -0.61311776 + 9300 2.4471754 -50.234458 -48.928731 24.362769 0.013008072 11.404465 -0.60599097 + 9400 2.4575396 -50.234822 -48.923565 24.354135 0.013107819 11.452765 -0.60061336 + 9500 2.4711435 -50.235157 -48.916642 24.354998 0.013210974 11.516163 -0.59323525 + 9600 2.4877569 -50.235465 -48.908085 24.363855 0.013317688 11.593585 -0.58576008 + 9700 2.5071778 -50.235743 -48.898 24.380012 0.013428136 11.684092 -0.57821051 + 9800 2.5292388 -50.235983 -48.886469 24.402788 0.013542514 11.786902 -0.57061067 + 9900 2.5538131 -50.236185 -48.873559 24.431609 0.013661041 11.901424 -0.56299206 + 10000 2.5808184 -50.236346 -48.859312 24.466316 0.013783954 12.027276 -0.55538687 +Loop time of 14.691 on 1 procs for 10000 steps with 180 atoms + +Performance: 0.059 ns/day, 408.083 hours/ns, 680.690 timesteps/s, 122.524 katom-step/s +98.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 | 2.8924 | 2.8924 | 2.8924 | 0.0 | 19.69 +Bond | 0.00092288 | 0.00092288 | 0.00092288 | 0.0 | 0.01 +Neigh | 6.5718 | 6.5718 | 6.5718 | 0.0 | 44.73 +Comm | 0.55162 | 0.55162 | 0.55162 | 0.0 | 3.75 +Output | 0.0029431 | 0.0029431 | 0.0029431 | 0.0 | 0.02 +Modify | 4.6104 | 4.6104 | 4.6104 | 0.0 | 31.38 +Other | | 0.06102 | | | 0.42 + +Nlocal: 180 ave 180 max 180 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1510 ave 1510 max 1510 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 13680 ave 13680 max 13680 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 13680 +Ave neighs/atom = 76 +Ave special neighs/atom = 0 +Neighbor list builds = 10000 +Dangerous builds not checked +Total wall time: 0:00:14 diff --git a/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.2 b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.2 new file mode 100644 index 0000000000..5ac1655e40 --- /dev/null +++ b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.2 @@ -0,0 +1,197 @@ +LAMMPS (8 Feb 2023) +Processor partition = 2 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 32 pad +variable out_freq string 100 +variable job_name string H2 + +units real +atom_style full +pair_style table linear 10000 + +neighbor 2.0 bin +neigh_modify every 1 delay 0 check no + +read_data H2.data +Reading data file ... + orthogonal box = (0 0 0) to (19.71219 19.71219 19.71219) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 180 atoms +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.003 seconds + +pair_coeff 1 * pair.table PAIR_H2 +WARNING: 5852 of 18000 force values in table PAIR_H2 are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) + +timestep 0.001 + +velocity all create 1.0 1985 rot yes dist gaussian + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 25.0 nhc 4 + +thermo_style custom step temp pe etotal pzz f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +thermo ${out_freq} +thermo 100 + +#dump dcd all dcd ${out_freq} ${job_name}_${ibead}.dcd + +#restart ${out_freq} ${job_name}_${ibead}.restart1 ${job_name}_${ibead}.restart2 + +run 10000 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11.55117 + ghost atom cutoff = 11.55117 + binsize = 5.775585, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 11.97 | 11.97 | 11.97 Mbytes + Step Temp PotEng TotEng Pzz espring T_ring virial + 0 1 -50.292986 -49.759421 16.18218 0 0 4.331435e-14 + 100 1.0008585 -50.292972 -49.758949 16.185544 6.2619058e-07 4.6642574 -0.0025876701 + 200 1.0034473 -50.292959 -49.757555 16.193637 2.4778684e-06 4.6763219 -0.0051513312 + 300 1.0078065 -50.292946 -49.755216 16.20654 5.4785827e-06 4.6966366 -0.0076677455 + 400 1.0140035 -50.292935 -49.751898 16.224472 9.5136721e-06 4.7255165 -0.010116117 + 500 1.022135 -50.292924 -49.747548 16.247769 1.4445387e-05 4.7634112 -0.012478816 + 600 1.0323281 -50.292913 -49.742099 16.276857 2.0128019e-05 4.810914 -0.014741354 + 700 1.044744 -50.292903 -49.735464 16.312269 2.6420278e-05 4.868775 -0.01689316 + 800 1.0595807 -50.292893 -49.727538 16.354636 3.3193675e-05 4.9379181 -0.018925599 + 900 1.0770788 -50.292883 -49.718191 16.404759 4.0337059e-05 5.0194633 -0.020834008 + 1000 1.0975267 -50.292873 -49.707271 16.463535 4.7758112e-05 5.114756 -0.022615739 + 1100 1.1212696 -50.292864 -49.694594 16.532005 5.5382858e-05 5.2254042 -0.024272115 + 1200 1.1487191 -50.292855 -49.679939 16.611504 6.3154057e-05 5.3533255 -0.025805429 + 1300 1.180366 -50.292847 -49.663045 16.703525 7.1029151e-05 5.5008084 -0.027221135 + 1400 1.2167974 -50.292839 -49.643599 16.809904 7.8978147e-05 5.6705878 -0.028525093 + 1500 1.2587168 -50.292831 -49.621224 16.932872 8.6981686e-05 5.8659431 -0.029723588 + 1600 1.3069711 -50.292824 -49.59547 17.075101 9.5029394e-05 6.0908207 -0.030823313 + 1700 1.362584 -50.292817 -49.56579 17.239763 0.00010311856 6.3499909 -0.031831844 + 1800 1.4267984 -50.29281 -49.53152 17.430752 0.00011125314 6.6492468 -0.032756757 + 1900 1.5011313 -50.292803 -49.491852 17.652797 0.00011944307 6.995657 -0.033606551 + 2000 1.5874422 -50.292796 -49.445792 17.911722 0.00012770381 7.3978879 -0.034390022 + 2100 1.6880212 -50.292789 -49.39212 18.214723 0.00013605623 7.866612 -0.035116463 + 2200 1.8057005 -50.292782 -49.329324 18.570726 0.00014452669 8.4150275 -0.035795677 + 2300 1.9439945 -50.292774 -49.255527 18.990774 0.00015314733 9.0595131 -0.036438481 + 2400 2.1072765 -50.292765 -49.168396 19.488686 0.00016195668 9.8204493 -0.037057048 + 2500 2.3009969 -50.292755 -49.065024 20.081627 0.00017100046 10.723236 -0.037663926 + 2600 2.5319487 -50.292742 -48.941783 20.791154 0.00018033268 11.799531 -0.038274916 + 2700 2.8085828 -50.292725 -48.794164 21.644055 0.00019001711 13.088716 -0.038907942 + 2800 3.1413656 -50.292704 -48.616581 22.673549 0.00020012896 14.63957 -0.039579122 + 2900 3.5431592 -50.292679 -48.402173 23.920341 0.00021075711 16.512031 -0.040310879 + 3000 4.0295773 -50.292645 -48.142604 25.434299 0.00022200654 18.778864 -0.041129941 + 3100 4.6192303 -50.292603 -47.827943 27.274622 0.00023400135 21.526798 -0.042063049 + 3200 5.3337183 -50.292548 -47.446663 29.510189 0.00024688797 24.856495 -0.043138944 + 3300 6.1971521 -50.292476 -46.985893 32.218076 0.00026083874 28.880319 -0.044388363 + 3400 7.2349077 -50.292383 -46.432089 35.479408 0.00027605543 33.716526 -0.04584988 + 3500 8.4712558 -50.292263 -45.772298 39.371841 0.00029277252 39.478225 -0.04755723 + 3600 9.9255215 -50.292106 -44.996195 43.95768 0.00031125948 46.255476 -0.04955234 + 3700 11.606583 -50.291907 -44.099041 49.265647 0.00033182131 54.089653 -0.051868152 + 3800 13.505895 -50.291653 -43.08538 55.269674 0.00035479603 62.940934 -0.060893692 + 3900 15.589876 -50.291332 -41.973119 61.864426 0.00038054772 72.652823 -0.064129637 + 4000 17.793337 -50.290932 -40.79703 68.843904 0.00040945342 82.921517 -0.070448746 + 4100 20.016417 -50.290444 -39.610385 75.893194 0.0004418827 93.281639 -0.087116518 + 4200 22.127771 -50.289857 -38.483253 82.59793 0.00047816979 103.12109 -0.097527157 + 4300 23.975968 -50.289169 -37.496432 88.481352 0.00051857989 111.73416 -0.10722194 + 4400 25.408977 -50.288385 -36.731045 93.065749 0.00056327427 118.41235 -0.11892611 + 4500 26.298632 -50.287506 -36.255477 95.950674 0.0006122807 122.55837 -0.1303584 + 4600 26.564268 -50.286547 -36.112784 96.88563 0.00066547749 123.79631 -0.14166752 + 4700 26.188807 -50.285529 -36.312099 95.820823 0.00072259756 122.04656 -0.15261419 + 4800 25.222299 -50.284475 -36.826739 92.916226 0.00078325554 117.54238 -0.16209083 + 4900 23.771855 -50.283413 -37.599583 88.509238 0.00084699472 110.78294 -0.17260047 + 5000 21.98111 -50.282357 -38.554006 83.049726 0.00091334478 102.43761 -0.18258656 + 5100 20.005206 -50.281326 -39.607248 77.020285 0.0009818775 93.229392 -0.17186696 + 5200 17.987631 -50.28033 -40.68276 70.86497 0.0010522474 83.826973 -0.18260146 + 5300 16.043616 -50.279377 -41.719065 64.938011 0.0011242079 74.767366 -0.18655435 + 5400 14.252181 -50.278457 -42.673992 59.48099 0.0011976018 66.41882 -0.20222138 + 5500 12.656323 -50.277568 -43.524597 54.622777 0.0012723319 58.981714 -0.21168712 + 5600 11.269064 -50.276696 -44.263917 50.401002 0.0013483229 52.516731 -0.20187998 + 5700 10.082312 -50.275828 -44.896259 46.788408 0.0014254889 46.986161 -0.22324171 + 5800 9.0757866 -50.274951 -45.432429 43.722025 0.0015037137 42.295494 -0.23860695 + 5900 8.2242212 -50.274058 -45.885902 41.123761 0.0015828465 38.326981 -0.25414759 + 6000 7.5021821 -50.273138 -46.270236 38.916656 0.0016627103 34.962093 -0.26976048 + 6100 6.8866987 -50.272182 -46.597681 37.031655 0.0017431162 32.093783 -0.28539248 + 6200 6.3583012 -50.27119 -46.878623 35.410368 0.0018238791 29.631315 -0.30095674 + 6300 5.9011035 -50.270159 -47.121537 34.005676 0.0019048302 27.500656 -0.31640935 + 6400 5.502422 -50.269086 -47.333186 32.779933 0.0019858256 25.642698 -0.33171137 + 6500 5.1522361 -50.267972 -47.518919 31.703747 0.0020667509 24.010742 -0.34682514 + 6600 4.8426527 -50.266817 -47.682947 30.753955 0.0021475225 22.568004 -0.36173006 + 6700 4.5674405 -50.265625 -47.828599 29.911814 0.0022280866 21.285445 -0.37640709 + 6800 4.3216522 -50.264395 -47.958513 29.163452 0.0023084174 20.140008 -0.39085666 + 6900 4.1013282 -50.26313 -48.074805 28.496518 0.0023885139 19.113242 -0.40506248 + 7000 3.9032702 -50.261831 -48.179183 27.90194 0.0024683969 18.19024 -0.41901469 + 7100 3.724868 -50.2605 -48.273041 27.371896 0.0025481062 17.35884 -0.43272933 + 7200 3.5639695 -50.259138 -48.357529 26.89966 0.0026276974 16.609012 -0.44620638 + 7300 3.4187816 -50.257743 -48.433601 26.480439 0.0027072396 15.932399 -0.45945212 + 7400 3.2877948 -50.256318 -48.502066 26.109145 0.0027868133 15.321967 -0.47246434 + 7500 3.1697267 -50.254865 -48.56361 25.781971 0.0028665077 14.77174 -0.48526006 + 7600 3.0634774 -50.25338 -48.618816 25.495767 0.0029464195 14.276591 -0.49784679 + 7700 2.9680959 -50.251868 -48.668196 25.247434 0.0030266508 13.832088 -0.51022378 + 7800 2.8827533 -50.250324 -48.712188 25.034584 0.0031073072 13.43437 -0.52242006 + 7900 2.8067218 -50.248752 -48.751183 24.854648 0.0031884966 13.080044 -0.53441576 + 8000 2.739358 -50.247146 -48.78552 24.705902 0.0032703269 12.766111 -0.54625728 + 8100 2.6800884 -50.245512 -48.815511 24.586269 0.003352905 12.4899 -0.55792685 + 8200 2.6283988 -50.243847 -48.841426 24.493934 0.0034363346 12.249013 -0.56944906 + 8300 2.5838233 -50.242148 -48.86351 24.42802 0.0035207151 12.041279 -0.58082697 + 8400 2.5459368 -50.240416 -48.881994 24.386467 0.0036061405 11.864719 -0.59207404 + 8500 2.5143471 -50.23866 -48.897093 24.367425 0.0036926982 11.717503 -0.6031939 + 8600 2.4886884 -50.236867 -48.90899 24.370737 0.0037804687 11.597926 -0.61420631 + 8700 2.4686158 -50.235045 -48.917878 24.393872 0.003869526 11.504383 -0.62511248 + 8800 2.4538005 -50.233192 -48.92393 24.436221 0.0039599381 11.43534 -0.63592614 + 8900 2.4439261 -50.231311 -48.927318 24.495987 0.0040517678 11.389323 -0.64665221 + 9000 2.4386859 -50.229399 -48.928202 24.571919 0.0041450744 11.364902 -0.65730127 + 9100 2.4377812 -50.227462 -48.926747 24.662499 0.0042399143 11.360686 -0.66787619 + 9200 2.4409216 -50.225498 -48.923108 24.766278 0.0043363422 11.375321 -0.67839903 + 9300 2.447826 -50.223507 -48.917432 24.882071 0.0044344105 11.407497 -0.68886647 + 9400 2.4582258 -50.22149 -48.909866 25.008577 0.0045341695 11.455963 -0.69927895 + 9500 2.471869 -50.219451 -48.900548 25.143849 0.0046356651 11.519544 -0.70966102 + 9600 2.4885255 -50.217386 -48.889596 25.286999 0.004738938 11.597167 -0.6940583 + 9700 2.5079938 -50.215302 -48.877125 25.436871 0.0048440213 11.687895 -0.70437543 + 9800 2.5301066 -50.213198 -48.863222 25.59205 0.0049509399 11.790946 -0.71464807 + 9900 2.5547371 -50.211072 -48.847954 25.752316 0.0050597095 11.90573 -0.72487926 + 10000 2.5818031 -50.208928 -48.831368 25.916904 0.0051703368 12.031865 -0.73506701 +Loop time of 14.691 on 1 procs for 10000 steps with 180 atoms + +Performance: 0.059 ns/day, 408.083 hours/ns, 680.690 timesteps/s, 122.524 katom-step/s +96.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 | 2.9104 | 2.9104 | 2.9104 | 0.0 | 19.81 +Bond | 0.00098079 | 0.00098079 | 0.00098079 | 0.0 | 0.01 +Neigh | 6.6139 | 6.6139 | 6.6139 | 0.0 | 45.02 +Comm | 0.55394 | 0.55394 | 0.55394 | 0.0 | 3.77 +Output | 0.0030074 | 0.0030074 | 0.0030074 | 0.0 | 0.02 +Modify | 4.5374 | 4.5374 | 4.5374 | 0.0 | 30.89 +Other | | 0.07132 | | | 0.49 + +Nlocal: 180 ave 180 max 180 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1510 ave 1510 max 1510 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 13680 ave 13680 max 13680 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 13680 +Ave neighs/atom = 76 +Ave special neighs/atom = 0 +Neighbor list builds = 10000 +Dangerous builds not checked +Total wall time: 0:00:14 diff --git a/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.3 b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.3 new file mode 100644 index 0000000000..c105df63e9 --- /dev/null +++ b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.3 @@ -0,0 +1,197 @@ +LAMMPS (8 Feb 2023) +Processor partition = 3 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 32 pad +variable out_freq string 100 +variable job_name string H2 + +units real +atom_style full +pair_style table linear 10000 + +neighbor 2.0 bin +neigh_modify every 1 delay 0 check no + +read_data H2.data +Reading data file ... + orthogonal box = (0 0 0) to (19.71219 19.71219 19.71219) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 180 atoms +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.003 seconds + +pair_coeff 1 * pair.table PAIR_H2 +WARNING: 5852 of 18000 force values in table PAIR_H2 are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) + +timestep 0.001 + +velocity all create 1.0 1985 rot yes dist gaussian + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 25.0 nhc 4 + +thermo_style custom step temp pe etotal pzz f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +thermo ${out_freq} +thermo 100 + +#dump dcd all dcd ${out_freq} ${job_name}_${ibead}.dcd + +#restart ${out_freq} ${job_name}_${ibead}.restart1 ${job_name}_${ibead}.restart2 + +run 10000 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11.55117 + ghost atom cutoff = 11.55117 + binsize = 5.775585, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 11.97 | 11.97 | 11.97 Mbytes + Step Temp PotEng TotEng Pzz espring T_ring virial + 0 1 -50.292986 -49.759421 16.18218 0 0 4.331435e-14 + 100 0.99799183 -50.292972 -49.760479 16.176371 6.2763683e-07 15.879159 -0.0023935093 + 200 0.99208279 -50.292959 -49.763618 16.157336 2.500618e-06 15.785139 -0.0047805057 + 300 0.98260503 -50.292946 -49.768662 16.126279 5.5906177e-06 15.634338 -0.0071546335 + 400 0.97006821 -50.292934 -49.775339 16.085102 9.8548762e-06 15.434863 -0.0095106986 + 500 0.955104 -50.292922 -49.783311 16.036202 1.5241599e-05 15.196766 -0.011844212 + 600 0.93840578 -50.292908 -49.792208 15.982141 2.1695575e-05 14.931079 -0.014152859 + 700 0.92067359 -50.292894 -49.801655 15.925466 2.9163075e-05 14.64894 -0.016435757 + 800 0.90257158 -50.292879 -49.811298 15.868564 3.7595562e-05 14.360917 -0.018694156 + 900 0.88470062 -50.292862 -49.820817 15.813472 4.6952156e-05 14.07657 -0.020928907 + 1000 0.8675856 -50.292845 -49.829932 15.761951 5.7201072e-05 13.804251 -0.02314186 + 1100 0.85167476 -50.292826 -49.838402 15.715517 6.8320318e-05 13.551092 -0.025333843 + 1200 0.83734746 -50.292806 -49.846027 15.675218 8.0297954e-05 13.323129 -0.027508552 + 1300 0.8249274 -50.292785 -49.852632 15.642038 9.3132154e-05 13.125512 -0.0296698 + 1400 0.81469844 -50.292762 -49.858068 15.616792 0.00010683122 12.962757 -0.031821941 + 1500 0.80692178 -50.292739 -49.862194 15.600226 0.00012141373 12.839022 -0.033969494 + 1600 0.80185336 -50.292715 -49.864874 15.593117 0.0001369088 12.758378 -0.03611606 + 1700 0.79976156 -50.29269 -49.865965 15.596227 0.00015335664 12.725095 -0.038264652 + 1800 0.80094541 -50.292664 -49.865307 15.610404 0.00017080942 12.743931 -0.040416801 + 1900 0.80575383 -50.292637 -49.862715 15.636702 0.00018933238 12.820439 -0.042573524 + 2000 0.81460711 -50.292611 -49.857965 15.67644 0.00020900552 12.961304 -0.044736822 + 2100 0.82802133 -50.292583 -49.85078 15.731301 0.0002299256 13.174739 -0.046906382 + 2200 0.84663738 -50.292556 -49.84082 15.80341 0.00025220879 13.470941 -0.049081478 + 2300 0.87125571 -50.292527 -49.827656 15.895377 0.00027599404 13.862646 -0.051261652 + 2400 0.90287869 -50.292499 -49.810754 16.010541 0.00030144708 14.365803 -0.053443791 + 2500 0.94276179 -50.29247 -49.789446 16.15309 0.00032876555 15.000388 -0.055625674 + 2600 0.99247509 -50.292441 -49.762891 16.328426 0.00035818508 15.791381 -0.05780423 + 2700 1.0539754 -50.292412 -49.730048 16.543118 0.00038998665 16.76992 -0.059974442 + 2800 1.1296876 -50.292383 -49.689621 16.805367 0.00042450539 17.974586 -0.062128128 + 2900 1.2225906 -50.292352 -49.640021 17.125302 0.00046214072 19.452774 -0.064255792 + 3000 1.3362969 -50.292321 -49.57932 17.515126 0.000503368 21.261968 -0.066348705 + 3100 1.4751081 -50.292289 -49.505223 17.989435 0.0005487512 23.47061 -0.068394944 + 3200 1.6440125 -50.292255 -49.415068 18.56525 0.00059895625 26.158066 -0.070379528 + 3300 1.8485766 -50.292217 -49.305881 19.26156 0.00065476359 29.412908 -0.0722905 + 3400 2.0946636 -50.292172 -49.174533 20.098518 0.0007170785 33.328425 -0.070298499 + 3500 2.3878963 -50.292118 -49.01802 21.095116 0.00078693603 37.994084 -0.072718799 + 3600 2.7327825 -50.29205 -48.833933 22.267046 0.00086549715 43.481606 -0.071117313 + 3700 3.1314509 -50.291962 -48.621129 23.621508 0.00095403112 49.824863 -0.073902505 + 3800 3.5820285 -50.29185 -48.380605 25.151938 0.0010538788 56.994053 -0.082019029 + 3900 4.0768347 -50.291704 -48.116448 26.832847 0.0011663922 64.86697 -0.093365693 + 4000 4.6007622 -50.291519 -47.836714 28.612446 0.0012928467 73.203239 -0.10732489 + 4100 5.1304133 -50.29129 -47.553881 30.411364 0.0014343275 81.630577 -0.1197723 + 4200 5.6346502 -50.291011 -47.284558 32.123915 0.0015915962 89.653545 -0.13080997 + 4300 6.0770777 -50.290676 -47.04816 33.627475 0.0017649532 96.693059 -0.14165463 + 4400 6.4205234 -50.29029 -46.864523 34.796349 0.0019541156 102.15766 -0.15242678 + 4500 6.6328782 -50.28986 -46.750789 35.522716 0.0021581361 105.53646 -0.16280564 + 4600 6.692974 -50.289399 -46.718262 35.736356 0.0023753855 106.49265 -0.17244062 + 4700 6.5948627 -50.28892 -46.770133 35.418562 0.0026036121 104.93159 -0.18097864 + 4800 6.3491738 -50.288443 -46.900746 34.606797 0.0028400768 101.02241 -0.18808564 + 4900 5.981108 -50.287983 -47.096673 33.387033 0.0030817487 95.166073 -0.19348598 + 5000 5.5256727 -50.287549 -47.339243 31.878041 0.0033255323 87.919593 -0.19697013 + 5100 5.0215378 -50.287155 -47.607839 30.209726 0.0035684934 79.898246 -0.19841014 + 5200 4.5051017 -50.286803 -47.883038 28.504102 0.0038080527 71.681174 -0.19776394 + 5300 4.0060458 -50.286489 -48.149003 26.860164 0.0040421233 63.74064 -0.19507702 + 5400 3.5450327 -50.286205 -48.394699 25.34642 0.0042691817 56.405409 -0.17980245 + 5500 3.1335349 -50.28594 -48.613996 23.999815 0.0044882701 49.858022 -0.17499889 + 5600 2.7752591 -50.28568 -48.804899 22.832197 0.0046989433 44.157456 -0.1804676 + 5700 2.468384 -50.285415 -48.968371 21.836436 0.0049011768 39.274732 -0.17203381 + 5800 2.2078676 -50.285131 -49.10709 20.994608 0.0050952576 35.129626 -0.17967923 + 5900 1.9873283 -50.284819 -49.22445 20.285865 0.0052816779 31.620602 -0.18651596 + 6000 1.8003086 -50.284474 -49.323892 19.687668 0.0054610429 28.64491 -0.19262321 + 6100 1.640963 -50.284092 -49.408531 19.181029 0.0056340011 26.109545 -0.1982684 + 6200 1.50433 -50.283675 -49.481017 18.749125 0.0058011964 23.935562 -0.19911595 + 6300 1.3863531 -50.283219 -49.543509 18.379087 0.0059632392 22.058419 -0.20020649 + 6400 1.2837837 -50.28273 -49.597748 18.059898 0.0061206908 20.426426 -0.20439271 + 6500 1.1940433 -50.282206 -49.645106 17.783505 0.0062740588 18.998556 -0.19989782 + 6600 1.1150882 -50.281655 -49.686683 17.543117 0.0064237975 17.742293 -0.20427813 + 6700 1.0452925 -50.281076 -49.723345 17.333683 0.0065703119 16.631765 -0.20875566 + 6800 0.98335363 -50.28048 -49.755796 17.150648 0.0067139628 15.646249 -0.21165511 + 6900 0.92821916 -50.279858 -49.784593 16.991122 0.0068550735 14.768998 -0.21447191 + 7000 0.87903062 -50.279219 -49.810199 16.85215 0.0069939349 13.986354 -0.21690274 + 7100 0.83508106 -50.27857 -49.833 16.730809 0.0071308114 13.287068 -0.21879935 + 7200 0.79578318 -50.277905 -49.853302 16.625931 0.007265945 12.661795 -0.24086146 + 7300 0.76064516 -50.277227 -49.871373 16.535639 0.0073995599 12.10271 -0.24389998 + 7400 0.72925259 -50.27654 -49.887437 16.458538 0.0075318653 11.603219 -0.24724178 + 7500 0.70125479 -50.275848 -49.901683 16.39318 0.0076630586 11.157743 -0.24974257 + 7600 0.67635448 -50.275145 -49.914266 16.338958 0.0077933274 10.761551 -0.26938357 + 7700 0.65430014 -50.274434 -49.925322 16.294582 0.0079228516 10.410642 -0.27182741 + 7800 0.63488023 -50.273717 -49.934967 16.259573 0.0080518043 10.10165 -0.27327965 + 7900 0.61791898 -50.272993 -49.943293 16.233056 0.0081803536 9.8317776 -0.23270163 + 8000 0.60327334 -50.272261 -49.950375 16.214226 0.0083086629 9.5987492 -0.21174158 + 8100 0.59083054 -50.271521 -49.956274 16.203107 0.008436892 9.4007703 -0.20591477 + 8200 0.580506 -50.270774 -49.961036 16.198733 0.0085651973 9.2364955 -0.20633623 + 8300 0.57224102 -50.270016 -49.964688 16.201153 0.0086937323 9.1049904 -0.21200577 + 8400 0.56599941 -50.26925 -49.967252 16.209734 0.0088226478 9.0056795 -0.21499276 + 8500 0.56176264 -50.268474 -49.968737 16.224404 0.0089520921 8.9382678 -0.22565885 + 8600 0.55952259 -50.267687 -49.969145 16.244765 0.0090822109 8.9026261 -0.23453558 + 8700 0.55927158 -50.26689 -49.968482 16.270388 0.0092131476 8.8986323 -0.23126478 + 8800 0.56098987 -50.266078 -49.966754 16.301455 0.009345043 8.9259722 -0.23759225 + 8900 0.56463156 -50.265253 -49.963985 16.338219 0.0094780352 8.9839155 -0.25830691 + 9000 0.57011105 -50.264414 -49.960222 16.379852 0.0096122592 9.0711003 -0.24455142 + 9100 0.57729304 -50.263559 -49.955536 16.42695 0.0097478463 9.1853737 -0.25035816 + 9200 0.5859895 -50.262689 -49.950026 16.479216 0.0098849239 9.3237441 -0.2560083 + 9300 0.59596674 -50.261803 -49.943816 16.536984 0.010023615 9.482493 -0.26141076 + 9400 0.60696386 -50.2609 -49.937045 16.600194 0.010164037 9.6574694 -0.26654733 + 9500 0.61872142 -50.259982 -49.929854 16.669166 0.010306303 9.8445453 -0.2741745 + 9600 0.63101587 -50.259043 -49.922355 16.744325 0.010450522 10.040164 -0.27940426 + 9700 0.64369292 -50.258089 -49.914637 16.82549 0.010596798 10.24187 -0.28435931 + 9800 0.65669202 -50.257118 -49.906731 16.913131 0.010745233 10.4487 -0.28904477 + 9900 0.67005575 -50.256133 -49.898615 17.007446 0.01089593 10.661331 -0.29344272 + 10000 0.68392108 -50.25513 -49.890213 17.108905 0.011048996 10.881944 -0.29755711 +Loop time of 14.691 on 1 procs for 10000 steps with 180 atoms + +Performance: 0.059 ns/day, 408.083 hours/ns, 680.690 timesteps/s, 122.524 katom-step/s +98.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 | 2.8325 | 2.8325 | 2.8325 | 0.0 | 19.28 +Bond | 0.0010203 | 0.0010203 | 0.0010203 | 0.0 | 0.01 +Neigh | 6.5808 | 6.5808 | 6.5808 | 0.0 | 44.80 +Comm | 0.55003 | 0.55003 | 0.55003 | 0.0 | 3.74 +Output | 0.0030145 | 0.0030145 | 0.0030145 | 0.0 | 0.02 +Modify | 4.6599 | 4.6599 | 4.6599 | 0.0 | 31.72 +Other | | 0.06363 | | | 0.43 + +Nlocal: 180 ave 180 max 180 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1510 ave 1510 max 1510 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 13680 ave 13680 max 13680 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 13680 +Ave neighs/atom = 76 +Ave special neighs/atom = 0 +Neighbor list builds = 10000 +Dangerous builds not checked +Total wall time: 0:00:14 diff --git a/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.4 b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.4 new file mode 100644 index 0000000000..cf64a9f262 --- /dev/null +++ b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.4 @@ -0,0 +1,197 @@ +LAMMPS (8 Feb 2023) +Processor partition = 4 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 32 pad +variable out_freq string 100 +variable job_name string H2 + +units real +atom_style full +pair_style table linear 10000 + +neighbor 2.0 bin +neigh_modify every 1 delay 0 check no + +read_data H2.data +Reading data file ... + orthogonal box = (0 0 0) to (19.71219 19.71219 19.71219) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 180 atoms +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.003 seconds + +pair_coeff 1 * pair.table PAIR_H2 +WARNING: 5852 of 18000 force values in table PAIR_H2 are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) + +timestep 0.001 + +velocity all create 1.0 1985 rot yes dist gaussian + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 25.0 nhc 4 + +thermo_style custom step temp pe etotal pzz f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +thermo ${out_freq} +thermo 100 + +#dump dcd all dcd ${out_freq} ${job_name}_${ibead}.dcd + +#restart ${out_freq} ${job_name}_${ibead}.restart1 ${job_name}_${ibead}.restart2 + +run 10000 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11.55117 + ghost atom cutoff = 11.55117 + binsize = 5.775585, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 11.97 | 11.97 | 11.97 Mbytes + Step Temp PotEng TotEng Pzz espring T_ring virial + 0 1 -50.292986 -49.759421 16.18218 0 0 4.331435e-14 + 100 0.99799183 -50.292972 -49.760479 16.17637 1.1826193e-13 15.879159 -0.0025913805 + 200 0.99208279 -50.292959 -49.763618 16.157337 7.489305e-12 15.785139 -0.0051808234 + 300 0.98260503 -50.292946 -49.768662 16.126285 8.3895453e-11 15.634338 -0.0077662384 + 400 0.97006821 -50.292933 -49.775339 16.085117 4.6129385e-10 15.434863 -0.010346287 + 500 0.955104 -50.292921 -49.783311 16.036242 1.7157587e-09 15.196766 -0.012920943 + 600 0.93840577 -50.292907 -49.792206 15.982224 4.9828406e-09 14.931079 -0.015491155 + 700 0.92067358 -50.292891 -49.801652 15.925608 1.2201305e-08 14.64894 -0.018055916 + 800 0.90257157 -50.292875 -49.811294 15.868782 2.6375763e-08 14.360917 -0.020616424 + 900 0.88470061 -50.292856 -49.820811 15.813794 5.1849593e-08 14.07657 -0.02317448 + 1000 0.86758559 -50.292836 -49.829923 15.762447 9.4579685e-08 13.804251 -0.025732882 + 1100 0.85167475 -50.292814 -49.83839 15.716171 1.6240678e-07 13.551092 -0.028294045 + 1200 0.83734745 -50.29279 -49.846011 15.676049 2.6532099e-07 13.323128 -0.030863385 + 1300 0.82492738 -50.292764 -49.852612 15.643102 4.1573034e-07 13.125511 -0.033446749 + 1400 0.81469842 -50.292737 -49.858042 15.618114 6.287493e-07 12.962757 -0.036050518 + 1500 0.80692176 -50.292706 -49.862161 15.601972 9.2253166e-07 12.839022 -0.038681006 + 1600 0.80185333 -50.292674 -49.864833 15.595319 1.3186783e-06 12.758377 -0.041346087 + 1700 0.79976154 -50.292639 -49.865914 15.598922 1.8427553e-06 12.725095 -0.044055451 + 1800 0.80094538 -50.2926 -49.865244 15.613674 2.524964e-06 12.743931 -0.046819731 + 1900 0.80575381 -50.292559 -49.862637 15.640669 3.4010112e-06 12.820438 -0.049651934 + 2000 0.81460709 -50.292514 -49.857868 15.681364 4.5132409e-06 12.961304 -0.052564979 + 2100 0.82802133 -50.292465 -49.850661 15.73743 5.9121027e-06 13.174739 -0.055577058 + 2200 0.84663739 -50.29241 -49.840674 15.810925 7.658054e-06 13.470942 -0.058707326 + 2300 0.87125574 -50.292349 -49.827477 15.904535 9.82402e-06 13.862647 -0.061977077 + 2400 0.90287875 -50.29228 -49.810536 16.021749 1.2498571e-05 14.365804 -0.065412927 + 2500 0.94276188 -50.292203 -49.789178 16.16688 1.5790021e-05 15.000389 -0.069043572 + 2600 0.99247524 -50.292117 -49.762567 16.345151 1.9831692e-05 15.791384 -0.072902664 + 2700 1.0539756 -50.292019 -49.729655 16.56334 2.4788664e-05 16.769923 -0.077026939 + 2800 1.1296879 -50.291903 -49.689141 16.830177 3.0866362e-05 17.97459 -0.081462018 + 2900 1.222591 -50.29177 -49.639438 17.155398 3.8321389e-05 19.45278 -0.086262136 + 3000 1.3362974 -50.291614 -49.578613 17.551553 4.7474995e-05 21.261976 -0.091484095 + 3100 1.4751088 -50.291433 -49.504367 18.033555 5.872952e-05 23.47062 -0.097184337 + 3200 1.6440134 -50.291218 -49.41403 18.618802 7.2587889e-05 26.158079 -0.10344427 + 3300 1.8485776 -50.290963 -49.304627 19.3265 8.9675809e-05 29.412924 -0.11033444 + 3400 2.0946648 -50.290659 -49.17302 20.177003 0.00011076549 33.328444 -0.11794183 + 3500 2.3878978 -50.290296 -49.016197 21.189599 0.00013679846 37.994106 -0.12634541 + 3600 2.7327842 -50.289862 -48.831744 22.380493 0.0001689033 43.481633 -0.13563052 + 3700 3.1314527 -50.289342 -48.618508 23.757417 0.00020840179 49.824892 -0.1458703 + 3800 3.5820304 -50.288721 -48.377475 25.31432 0.00025679499 56.994084 -0.15714078 + 3900 4.0768367 -50.287983 -48.112726 27.026228 0.0003157187 64.867001 -0.1694959 + 4000 4.6007641 -50.287108 -47.832302 28.841926 0.0003868587 73.203268 -0.18296156 + 4100 5.1304148 -50.286087 -47.548677 30.682328 0.00047181946 81.6306 -0.19756083 + 4200 5.6346511 -50.284903 -47.278451 32.442736 0.00057194846 89.653559 -0.21328268 + 4300 6.0770778 -50.283545 -47.041029 33.999964 0.00068813116 96.69306 -0.23008376 + 4400 6.4205225 -50.282013 -46.856246 35.229403 0.00082058594 102.15765 -0.24791296 + 4500 6.6328762 -50.280301 -46.74123 36.023883 0.0009687004 105.53643 -0.26668503 + 4600 6.6929711 -50.278423 -46.707288 36.312847 0.0011309529 106.49261 -0.28630381 + 4700 6.5948589 -50.27639 -46.757604 36.078132 0.0013049526 104.93153 -0.3066628 + 4800 6.3491697 -50.274211 -46.886517 35.357678 0.0014876083 101.02235 -0.32764627 + 4900 5.9811042 -50.271915 -47.080607 34.23668 0.0016754063 95.166014 -0.34912704 + 5000 5.5256699 -50.269516 -47.321212 32.833829 0.001864752 87.919547 -0.37098454 + 5100 5.0215364 -50.267032 -47.587716 31.279327 0.002052314 79.898224 -0.39310129 + 5200 4.5051023 -50.264473 -47.860708 29.694368 0.0022353117 71.681183 -0.41536062 + 5300 4.0060486 -50.261854 -48.124367 28.177158 0.0024117009 63.740684 -0.43765657 + 5400 3.5450378 -50.259179 -48.367671 26.795368 0.0025802379 56.405491 -0.45989585 + 5500 3.1335423 -50.256452 -48.584504 25.585853 0.0027404289 49.858139 -0.48198401 + 5600 2.7752685 -50.253675 -48.772889 24.559285 0.0028923937 44.157606 -0.50383681 + 5700 2.4683952 -50.250848 -48.933799 23.707506 0.0030366865 39.27491 -0.52540813 + 5800 2.2078802 -50.247975 -49.069927 23.012724 0.0031741148 35.129826 -0.54664422 + 5900 1.987342 -50.245052 -49.184676 22.453088 0.0033055867 31.62082 -0.56749825 + 6000 1.8003231 -50.242086 -49.281496 22.005599 0.0034320005 28.645141 -0.5879444 + 6100 1.6409782 -50.239078 -49.363509 21.650929 0.0035541789 26.109787 -0.6079799 + 6200 1.5043457 -50.236031 -49.433365 21.372354 0.0036728367 23.935811 -0.62757526 + 6300 1.3863692 -50.23295 -49.493232 21.15608 0.0037885737 22.058674 -0.64672985 + 6400 1.2838 -50.229836 -49.544845 20.99171 0.0039018814 20.426685 -0.66545129 + 6500 1.1940599 -50.2267 -49.589591 20.870492 0.0040131566 18.998819 -0.68374953 + 6600 1.115105 -50.223537 -49.628556 20.785791 0.0041227168 17.742559 -0.70162987 + 6700 1.0453095 -50.220351 -49.66261 20.732525 0.0042308155 16.632035 -0.7190951 + 6800 0.98337083 -50.217149 -49.692456 20.706334 0.0043376557 15.646523 -0.73616716 + 6900 0.92823665 -50.213933 -49.718658 20.703509 0.0044434008 14.769276 -0.75286641 + 7000 0.87904844 -50.210704 -49.741675 20.721268 0.0045481845 13.986637 -0.7692006 + 7100 0.83509929 -50.207463 -49.761883 20.757758 0.0046521178 13.287358 -0.78517926 + 7200 0.79580187 -50.204208 -49.779596 20.810709 0.0047552948 12.662092 -0.80082697 + 7300 0.76066442 -50.200945 -49.795082 20.878241 0.0048577976 12.103016 -0.8161606 + 7400 0.72927251 -50.197671 -49.808557 20.959362 0.0049596993 11.603536 -0.83120088 + 7500 0.70127548 -50.194387 -49.820211 21.052437 0.0050610673 11.158072 -0.84595004 + 7600 0.67637608 -50.191091 -49.830201 21.156826 0.005161965 10.761895 -0.86043159 + 7700 0.65432278 -50.187783 -49.838659 21.271416 0.0052624536 10.411002 -0.87466503 + 7800 0.63490405 -50.184459 -49.845696 21.395737 0.0053625933 10.102029 -0.88866261 + 7900 0.61794415 -50.181125 -49.851412 21.52846 0.0054624448 9.8321781 -0.90243744 + 8000 0.60330004 -50.177777 -49.855877 21.669443 0.0055620701 9.599174 -0.91600112 + 8100 0.59085898 -50.174411 -49.859149 21.81797 0.0056615336 9.4012229 -0.92936588 + 8200 0.58053641 -50.171025 -49.861271 21.974141 0.0057609033 9.2369793 -0.94255403 + 8300 0.57227364 -50.16762 -49.862274 22.13688 0.0058602524 9.1055094 -0.95557385 + 8400 0.5660345 -50.164193 -49.862177 22.306138 0.0059596607 9.0062378 -0.9684373 + 8500 0.56180048 -50.160744 -49.860987 22.48185 0.0060592167 8.9388698 -0.98115048 + 8600 0.55956345 -50.15727 -49.858706 22.663291 0.0061590199 8.9032763 -0.9937296 + 8700 0.55931575 -50.15377 -49.855339 22.850832 0.0062591826 8.899335 -1.0061868 + 8800 0.56103758 -50.150241 -49.850891 23.043918 0.006359832 8.9267313 -1.0185265 + 8900 0.564683 -50.146681 -49.845386 23.242887 0.0064611118 8.984734 -1.0307694 + 9000 0.57016633 -50.143095 -49.838874 23.44706 0.0065631821 9.0719798 -1.0429186 + 9100 0.57735215 -50.139473 -49.831418 23.657034 0.0066662188 9.1863142 -1.0549883 + 9200 0.58605231 -50.13582 -49.823123 23.872662 0.0067704103 9.3247434 -1.0669874 + 9300 0.59603298 -50.132131 -49.814109 24.094175 0.0068759533 9.483547 -1.078929 + 9400 0.60703315 -50.128412 -49.80452 24.321354 0.0069830466 9.6585719 -1.0908215 + 9500 0.61879332 -50.124656 -49.79449 24.554693 0.0070918841 9.8456893 -1.1026826 + 9600 0.63108995 -50.120866 -49.784139 24.794372 0.0072026473 10.041342 -1.1145246 + 9700 0.64376884 -50.117043 -49.773551 25.040354 0.0073154993 10.243078 -1.1263585 + 9800 0.6567696 -50.113185 -49.762755 25.293643 0.00743058 10.449934 -1.1381891 + 9900 0.67013503 -50.109296 -49.751736 25.553866 0.0075480045 10.662593 -1.150037 + 10000 0.68400233 -50.105373 -49.740413 25.821695 0.007667864 10.883237 -1.1619081 +Loop time of 14.691 on 1 procs for 10000 steps with 180 atoms + +Performance: 0.059 ns/day, 408.083 hours/ns, 680.690 timesteps/s, 122.524 katom-step/s +96.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 | 2.9541 | 2.9541 | 2.9541 | 0.0 | 20.11 +Bond | 0.00096595 | 0.00096595 | 0.00096595 | 0.0 | 0.01 +Neigh | 6.6965 | 6.6965 | 6.6965 | 0.0 | 45.58 +Comm | 0.55386 | 0.55386 | 0.55386 | 0.0 | 3.77 +Output | 0.0030352 | 0.0030352 | 0.0030352 | 0.0 | 0.02 +Modify | 4.4131 | 4.4131 | 4.4131 | 0.0 | 30.04 +Other | | 0.06945 | | | 0.47 + +Nlocal: 180 ave 180 max 180 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1510 ave 1510 max 1510 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 13680 ave 13680 max 13680 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 13680 +Ave neighs/atom = 76 +Ave special neighs/atom = 0 +Neighbor list builds = 10000 +Dangerous builds not checked +Total wall time: 0:00:14 diff --git a/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.5 b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.5 new file mode 100644 index 0000000000..46e98fcbe1 --- /dev/null +++ b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.5 @@ -0,0 +1,197 @@ +LAMMPS (8 Feb 2023) +Processor partition = 5 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 32 pad +variable out_freq string 100 +variable job_name string H2 + +units real +atom_style full +pair_style table linear 10000 + +neighbor 2.0 bin +neigh_modify every 1 delay 0 check no + +read_data H2.data +Reading data file ... + orthogonal box = (0 0 0) to (19.71219 19.71219 19.71219) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 180 atoms +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.003 seconds + +pair_coeff 1 * pair.table PAIR_H2 +WARNING: 5852 of 18000 force values in table PAIR_H2 are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) + +timestep 0.001 + +velocity all create 1.0 1985 rot yes dist gaussian + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 25.0 nhc 4 + +thermo_style custom step temp pe etotal pzz f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +thermo ${out_freq} +thermo 100 + +#dump dcd all dcd ${out_freq} ${job_name}_${ibead}.dcd + +#restart ${out_freq} ${job_name}_${ibead}.restart1 ${job_name}_${ibead}.restart2 + +run 10000 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11.55117 + ghost atom cutoff = 11.55117 + binsize = 5.775585, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 11.97 | 11.97 | 11.97 Mbytes + Step Temp PotEng TotEng Pzz espring T_ring virial + 0 1 -50.292986 -49.759421 16.18218 0 0 4.331435e-14 + 100 0.9951423 -50.292972 -49.761999 16.167253 6.8948763e-13 27.030021 -0.0025924671 + 200 0.98099313 -50.292959 -49.769535 16.12199 4.364663e-11 26.645702 -0.0051895017 + 300 0.95873287 -50.292945 -49.781399 16.050646 4.8814317e-10 26.041069 -0.0077954546 + 400 0.93006021 -50.292933 -49.796685 15.959334 2.6734695e-09 25.262263 -0.010415337 + 500 0.89689329 -50.29292 -49.814369 15.854928 9.8711643e-09 24.361385 -0.013055676 + 600 0.86110024 -50.292904 -49.833451 15.743908 2.8339559e-08 23.389175 -0.015723485 + 700 0.82431428 -50.292887 -49.853062 15.63173 6.8290594e-08 22.389996 -0.018423373 + 800 0.78784526 -50.292868 -49.872501 15.522613 1.4463127e-07 21.399426 -0.021164155 + 900 0.7526687 -50.292845 -49.891248 15.419533 2.77427e-07 20.443961 -0.023953669 + 1000 0.71946253 -50.29282 -49.90894 15.324327 4.9211825e-07 19.542016 -0.026800589 + 1100 0.6886647 -50.29279 -49.925343 15.237994 8.1957891e-07 18.705487 -0.029714543 + 1200 0.66053403 -50.292757 -49.940319 15.160974 1.2961277e-06 17.941403 -0.032707733 + 1300 0.63520454 -50.292719 -49.953796 15.093459 1.963599e-06 17.253404 -0.035794247 + 1400 0.61273022 -50.292676 -49.965745 15.035373 2.869563e-06 16.642957 -0.03898766 + 1500 0.59312003 -50.292628 -49.976159 14.9866 4.0677665e-06 16.110306 -0.042305977 + 1600 0.57636482 -50.292572 -49.985044 14.947135 5.6188557e-06 15.655201 -0.045764398 + 1700 0.56245786 -50.292508 -49.992401 14.916846 7.5914412e-06 15.277461 -0.049383169 + 1800 0.55141125 -50.292438 -49.998224 14.895701 1.0063569e-05 14.977413 -0.053180653 + 1900 0.54326954 -50.292356 -50.002487 14.8841 1.3124682e-05 14.756269 -0.057185281 + 2000 0.53812235 -50.292262 -50.005139 14.882365 1.6878177e-05 14.616461 -0.06142508 + 2100 0.53611706 -50.292157 -50.006103 14.891003 2.1444699e-05 14.561993 -0.065932846 + 2200 0.5374728 -50.292036 -50.005259 14.911208 2.6966349e-05 14.598818 -0.070740681 + 2300 0.54249683 -50.291895 -50.002438 14.944078 3.3612057e-05 14.73528 -0.075893774 + 2400 0.55160424 -50.291734 -49.997418 14.991434 4.1584413e-05 14.982655 -0.081441387 + 2500 0.56534189 -50.291548 -49.989902 15.055565 5.1128356e-05 15.355797 -0.08743341 + 2600 0.58441729 -50.291332 -49.979508 15.139015 6.2542191e-05 15.873922 -0.093934223 + 2700 0.60973261 -50.291079 -49.965747 15.245349 7.6191529e-05 16.561536 -0.10101976 + 2800 0.64242331 -50.290782 -49.948007 15.379156 9.2526793e-05 17.44948 -0.10876973 + 2900 0.68389894 -50.290432 -49.925527 15.54557 0.00011210502 18.576039 -0.11728634 + 3000 0.7358813 -50.29002 -49.89738 15.751474 0.00013561664 19.987983 -0.12666711 + 3100 0.80043068 -50.289531 -49.862449 16.004894 0.00016391766 21.741271 -0.13702882 + 3200 0.87994476 -50.288947 -49.819439 16.314811 0.00019806723 23.901029 -0.14852041 + 3300 0.97710684 -50.288249 -49.766899 16.691936 0.00023936963 26.540142 -0.16126751 + 3400 1.0947513 -50.287415 -49.703294 17.14741 0.00028941795 29.735596 -0.17542667 + 3500 1.2356068 -50.286413 -49.627136 17.692223 0.00035013447 33.561511 -0.19115489 + 3600 1.401879 -50.285209 -49.537215 18.336419 0.00042379924 38.077789 -0.20858771 + 3700 1.5946465 -50.283764 -49.432917 19.085164 0.00051305445 43.313732 -0.22786881 + 3800 1.8130867 -50.282042 -49.314643 19.93789 0.00062086813 49.246998 -0.24911566 + 3900 2.0536114 -50.279989 -49.184254 20.885144 0.0007504384 55.780123 -0.27238956 + 4000 2.3090877 -50.277563 -49.045514 21.903844 0.00090502091 62.71936 -0.29774099 + 4100 2.5684074 -50.274725 -48.904312 22.957566 0.00108767 69.762993 -0.32513211 + 4200 2.8167154 -50.271434 -48.768533 23.996177 0.0013008998 76.507527 -0.35448596 + 4300 3.036538 -50.267666 -48.647475 24.959984 0.0015462956 82.478341 -0.38565277 + 4400 3.2098498 -50.263408 -48.550744 25.787127 0.0018241308 87.185831 -0.41841744 + 4500 3.3207993 -50.258668 -48.486806 26.421384 0.0021330655 90.199435 -0.45253018 + 4600 3.3584953 -50.253474 -48.461498 26.823507 0.0024700053 91.223334 -0.48770345 + 4700 3.3191098 -50.247864 -48.476903 26.979088 0.002830177 90.153547 -0.523627 + 4800 3.2066723 -50.24189 -48.530922 26.900395 0.0032074389 87.099523 -0.55998518 + 4900 3.032313 -50.235626 -48.61769 26.623396 0.0035947863 82.363581 -0.59650144 + 5000 2.8121843 -50.229136 -48.728653 26.202501 0.0039849754 76.384452 -0.63291394 + 5100 2.5646536 -50.222488 -48.854078 25.698898 0.0043711592 69.661033 -0.66900289 + 5200 2.3074927 -50.215744 -48.984547 25.172075 0.0047474367 62.676038 -0.70458409 + 5300 2.0556743 -50.208948 -49.112112 24.671889 0.0051092373 55.836155 -0.73953676 + 5400 1.8201204 -50.202145 -49.230993 24.233676 0.0054535012 49.438049 -0.77374738 + 5500 1.6074397 -50.195362 -49.337688 23.877579 0.0057786579 43.661222 -0.80716644 + 5600 1.4204402 -50.188613 -49.430716 23.612103 0.0060844379 38.581947 -0.83975723 + 5700 1.2590781 -50.181911 -49.510111 23.435375 0.0063715815 34.199035 -0.8715173 + 5800 1.1215024 -50.175255 -49.576861 23.340009 0.0066415095 30.462209 -0.90243963 + 5900 1.0049565 -50.168645 -49.632435 23.316226 0.0068960167 27.296594 -0.93254359 + 6000 0.90642655 -50.162073 -49.678436 23.35333 0.0071370232 24.620327 -0.96187362 + 6100 0.82303426 -50.15554 -49.716398 23.441044 0.0073664003 22.355228 -0.99044001 + 6200 0.75222945 -50.149036 -49.747672 23.571168 0.0075858646 20.432031 -1.0182716 + 6300 0.69185157 -50.142555 -49.773408 23.736184 0.0077969274 18.792049 -1.0454141 + 6400 0.64011849 -50.1361 -49.794555 23.930273 0.0080008828 17.386876 -1.0718977 + 6500 0.59558258 -50.129659 -49.811877 24.148617 0.0081988179 16.177194 -1.0977481 + 6600 0.55707711 -50.123229 -49.825992 24.387764 0.0083916354 15.131309 -1.1230042 + 6700 0.52366443 -50.11681 -49.837401 24.644278 0.0085800803 14.223755 -1.1476911 + 6800 0.49459087 -50.110398 -49.846502 24.915585 0.0087647672 13.43406 -1.1718456 + 6900 0.46924933 -50.103993 -49.853618 25.199975 0.0089462046 12.745734 -1.1954836 + 7000 0.44714908 -50.09759 -49.859007 25.495663 0.0091248169 12.145448 -1.2186489 + 7100 0.42789171 -50.09119 -49.862882 25.801204 0.0093009621 11.62238 -1.2413589 + 7200 0.41115213 -50.084791 -49.865415 26.115435 0.0094749465 11.1677 -1.2636357 + 7300 0.39666341 -50.078389 -49.866743 26.43778 0.0096470373 10.774158 -1.2855199 + 7400 0.38420469 -50.071981 -49.866983 26.767492 0.0098174711 10.435755 -1.3070246 + 7500 0.37359146 -50.065568 -49.866233 27.103933 0.0099864621 10.147478 -1.3281809 + 7600 0.36466763 -50.059148 -49.864574 27.446285 0.010154207 9.9050896 -1.3490095 + 7700 0.35729911 -50.052716 -49.862074 27.794551 0.010320892 9.7049462 -1.3695395 + 7800 0.35136861 -50.046271 -49.858793 28.148371 0.010486691 9.5438621 -1.3897895 + 7900 0.34677153 -50.039813 -49.854788 28.507205 0.010651775 9.4189963 -1.4097881 + 8000 0.34341297 -50.033336 -49.850103 28.870887 0.010816309 9.3277714 -1.4295506 + 8100 0.34120579 -50.026841 -49.844785 29.238802 0.010980456 9.2678199 -1.4491058 + 8200 0.3400696 -50.020321 -49.838872 29.611242 0.011144377 9.2369587 -1.4684765 + 8300 0.33993073 -50.013777 -49.832402 29.987651 0.011308235 9.2331869 -1.4876802 + 8400 0.34072278 -50.007208 -49.82541 30.367811 0.011472193 9.2547003 -1.5067423 + 8500 0.34238718 -50.000608 -49.817922 30.75172 0.011636417 9.2999089 -1.5256766 + 8600 0.34487349 -49.993976 -49.809964 31.138912 0.011801076 9.3674418 -1.5445114 + 8700 0.34813839 -49.987308 -49.801554 31.529558 0.011966343 9.4561231 -1.5632615 + 8800 0.35214326 -49.980605 -49.792714 31.923412 0.012132398 9.5649031 -1.5819515 + 8900 0.35684992 -49.973862 -49.783459 32.320438 0.012299427 9.6927453 -1.6005873 + 9000 0.36221521 -49.967079 -49.773813 32.720589 0.012467623 9.8384771 -1.6191906 + 9100 0.36818518 -49.96025 -49.763799 33.12412 0.012637186 10.000633 -1.6377754 + 9200 0.3746904 -49.953378 -49.753456 33.530521 0.012808324 10.177328 -1.6563518 + 9300 0.3816439 -49.946457 -49.742826 33.940033 0.01298125 10.366198 -1.6749285 + 9400 0.3889426 -49.939487 -49.73196 34.352706 0.013156185 10.564445 -1.6935206 + 9500 0.39647284 -49.932468 -49.720924 34.768109 0.01333335 10.768982 -1.712126 + 9600 0.40411904 -49.925391 -49.709767 35.186397 0.013512971 10.976668 -1.7307508 + 9700 0.41177414 -49.918266 -49.698558 35.606965 0.013695276 11.184595 -1.7493922 + 9800 0.41934973 -49.911084 -49.687333 36.03058 0.013880493 11.390363 -1.7680484 + 9900 0.42678411 -49.903846 -49.676129 36.456503 0.014068856 11.592295 -1.7867244 + 10000 0.43404714 -49.896555 -49.664963 36.884919 0.014260602 11.789574 -1.8054063 +Loop time of 14.691 on 1 procs for 10000 steps with 180 atoms + +Performance: 0.059 ns/day, 408.083 hours/ns, 680.690 timesteps/s, 122.524 katom-step/s +98.3% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.9459 | 2.9459 | 2.9459 | 0.0 | 20.05 +Bond | 0.0010983 | 0.0010983 | 0.0010983 | 0.0 | 0.01 +Neigh | 6.4646 | 6.4646 | 6.4646 | 0.0 | 44.00 +Comm | 0.54538 | 0.54538 | 0.54538 | 0.0 | 3.71 +Output | 0.0030317 | 0.0030317 | 0.0030317 | 0.0 | 0.02 +Modify | 4.662 | 4.662 | 4.662 | 0.0 | 31.73 +Other | | 0.06897 | | | 0.47 + +Nlocal: 180 ave 180 max 180 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1510 ave 1510 max 1510 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 13680 ave 13680 max 13680 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 13680 +Ave neighs/atom = 76 +Ave special neighs/atom = 0 +Neighbor list builds = 10000 +Dangerous builds not checked +Total wall time: 0:00:14 diff --git a/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.6 b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.6 new file mode 100644 index 0000000000..ae27b84d32 --- /dev/null +++ b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.6 @@ -0,0 +1,197 @@ +LAMMPS (8 Feb 2023) +Processor partition = 6 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 32 pad +variable out_freq string 100 +variable job_name string H2 + +units real +atom_style full +pair_style table linear 10000 + +neighbor 2.0 bin +neigh_modify every 1 delay 0 check no + +read_data H2.data +Reading data file ... + orthogonal box = (0 0 0) to (19.71219 19.71219 19.71219) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 180 atoms +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.003 seconds + +pair_coeff 1 * pair.table PAIR_H2 +WARNING: 5852 of 18000 force values in table PAIR_H2 are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) + +timestep 0.001 + +velocity all create 1.0 1985 rot yes dist gaussian + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 25.0 nhc 4 + +thermo_style custom step temp pe etotal pzz f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +thermo ${out_freq} +thermo 100 + +#dump dcd all dcd ${out_freq} ${job_name}_${ibead}.dcd + +#restart ${out_freq} ${job_name}_${ibead}.restart1 ${job_name}_${ibead}.restart2 + +run 10000 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11.55117 + ghost atom cutoff = 11.55117 + binsize = 5.775585, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 11.97 | 11.97 | 11.97 Mbytes + Step Temp PotEng TotEng Pzz espring T_ring virial + 0 1 -50.292986 -49.759421 16.18218 0 0 4.331435e-14 + 100 0.9951423 -50.292972 -49.761999 16.167254 3.663073e-06 27.030021 -0.0025950927 + 200 0.98099313 -50.292958 -49.769535 16.121999 1.4652294e-05 26.645702 -0.0052104718 + 300 0.95873287 -50.292945 -49.781399 16.050672 3.2966429e-05 26.041069 -0.0078660339 + 400 0.93006021 -50.292932 -49.796684 15.959387 5.8599875e-05 25.262263 -0.010582044 + 500 0.89689329 -50.292917 -49.814366 15.855074 9.1539141e-05 24.361385 -0.013380753 + 600 0.86110024 -50.292898 -49.833445 15.744205 0.00013176059 23.389175 -0.016282487 + 700 0.82431428 -50.292877 -49.853052 15.632253 0.00017923062 22.389996 -0.019305323 + 800 0.78784526 -50.29285 -49.872483 15.523595 0.00023390859 21.399426 -0.022473781 + 900 0.7526687 -50.292816 -49.891219 15.421094 0.00029575217 20.443961 -0.025805439 + 1000 0.71946253 -50.292776 -49.908896 15.326586 0.0003647244 19.542016 -0.029318877 + 1100 0.6886647 -50.292726 -49.925279 15.241234 0.00044080156 18.705487 -0.033035613 + 1200 0.66053404 -50.292668 -49.94023 15.165485 0.00052398138 17.941403 -0.036980816 + 1300 0.63520455 -50.292595 -49.953672 15.099745 0.00061429107 17.253404 -0.041183239 + 1400 0.61273022 -50.292511 -49.965579 15.043883 0.00071179519 16.642957 -0.045662316 + 1500 0.59312004 -50.29241 -49.975942 14.99787 0.00081660341 16.110306 -0.050440479 + 1600 0.57636482 -50.292289 -49.984761 14.961722 0.00092887845 15.655202 -0.055550832 + 1700 0.56245787 -50.292149 -49.992041 14.935319 0.0010488445 15.277461 -0.061027295 + 1800 0.55141126 -50.291984 -49.99777 14.919091 0.0011767964 14.977414 -0.066900795 + 1900 0.54326956 -50.291792 -50.001923 14.913094 0.0013131107 14.756269 -0.073216193 + 2000 0.53812238 -50.29157 -50.004447 14.917947 0.0014582582 14.616462 -0.080017237 + 2100 0.53611709 -50.291312 -50.005259 14.934473 0.0016128191 14.561994 -0.087363239 + 2200 0.53747284 -50.291009 -50.004233 14.964038 0.0017775021 14.598819 -0.095297839 + 2300 0.54249688 -50.290657 -50.001199 15.008081 0.0019531669 14.735282 -0.10390758 + 2400 0.5516043 -50.290246 -49.995929 15.068555 0.0021408527 14.982657 -0.11326027 + 2500 0.56534197 -50.289766 -49.988119 15.147769 0.0023418123 15.355799 -0.12345646 + 2600 0.58441738 -50.289207 -49.977382 15.249155 0.0025575544 15.873925 -0.13459188 + 2700 0.60973272 -50.28855 -49.963218 15.376625 0.0027898943 16.561539 -0.14680402 + 2800 0.64242344 -50.287778 -49.945003 15.535379 0.0030410156 17.449483 -0.16021499 + 2900 0.68389909 -50.286869 -49.921964 15.731194 0.003313542 18.576043 -0.1749965 + 3000 0.73588147 -50.28579 -49.893149 15.972304 0.0036106211 19.987987 -0.19131687 + 3100 0.80043087 -50.284508 -49.857426 16.267625 0.0039360184 21.741276 -0.20938994 + 3200 0.87994497 -50.282984 -49.813476 16.627323 0.0042942181 23.901035 -0.229419 + 3300 0.97710707 -50.281162 -49.759812 17.064318 0.0046905236 26.540149 -0.25165651 + 3400 1.0947515 -50.278979 -49.694858 17.591402 0.0051311469 29.735603 -0.27634359 + 3500 1.2356071 -50.276358 -49.617081 18.222808 0.0056232657 33.561517 -0.30373125 + 3600 1.4018792 -50.273211 -49.525217 18.97057 0.0061750242 38.077795 -0.33406344 + 3700 1.5946467 -50.269438 -49.41859 19.844391 0.0067954397 43.313738 -0.36756248 + 3800 1.8130868 -50.264926 -49.297526 20.847335 0.0074941739 49.247003 -0.4044001 + 3900 2.0536116 -50.259558 -49.163823 21.972799 0.0082811282 55.780127 -0.44468343 + 4000 2.3090877 -50.253214 -49.021165 23.203274 0.0091658295 62.719362 -0.48844585 + 4100 2.5684074 -50.245778 -48.875365 24.50535 0.010156603 69.762993 -0.53559997 + 4200 2.8167153 -50.237155 -48.734254 25.832794 0.011259571 76.507524 -0.58595872 + 4300 3.0365377 -50.22728 -48.607089 27.128084 0.012477576 82.478334 -0.63920669 + 4400 3.2098494 -50.216129 -48.503465 28.32938 0.013809186 87.18582 -0.69492156 + 4500 3.3207987 -50.203729 -48.431867 29.380289 0.015247971 90.19942 -0.75258375 + 4600 3.3584946 -50.190151 -48.398176 30.239405 0.016782256 91.223315 -0.81162394 + 4700 3.319109 -50.175529 -48.404569 30.887433 0.01839546 90.153525 -0.87142276 + 4800 3.2066714 -50.160034 -48.449067 31.329923 0.020067061 87.099499 -0.93139568 + 4900 3.0323121 -50.14386 -48.525924 31.596801 0.021774071 82.363558 -0.99098372 + 5000 2.8121835 -50.127216 -48.626733 31.734704 0.02349282 76.384432 -1.04971 + 5100 2.5646531 -50.11031 -48.741901 31.798135 0.025200765 69.661019 -1.1071803 + 5200 2.3074925 -50.093317 -48.86212 31.840218 0.026878076 62.676032 -1.16309 + 5300 2.0556744 -50.076391 -48.979555 31.905031 0.028508785 55.836159 -1.217247 + 5400 1.820121 -50.059654 -49.088501 32.023732 0.030081384 49.438064 -1.2695269 + 5500 1.6074407 -50.04318 -49.185506 32.214415 0.031588873 43.661248 -1.319891 + 5600 1.4204416 -50.02701 -49.269112 32.484092 0.033028319 38.581985 -1.3683615 + 5700 1.2590798 -50.011162 -49.339361 32.830285 0.034400107 34.199083 -1.4149934 + 5800 1.1215045 -49.995631 -49.397236 33.245821 0.035707041 30.462267 -1.4598878 + 5900 1.0049589 -49.980399 -49.444188 33.721747 0.03695346 27.29666 -1.5031416 + 6000 0.90642926 -49.965438 -49.4818 34.248321 0.038144494 24.620401 -1.5448741 + 6100 0.82303723 -49.950718 -49.511574 34.817039 0.039285497 22.355309 -1.585191 + 6200 0.75223267 -49.936211 -49.534846 35.419814 0.040381668 20.432118 -1.6242074 + 6300 0.69185501 -49.921889 -49.552739 36.050843 0.041437835 18.792142 -1.6620216 + 6400 0.64012215 -49.907725 -49.566179 36.704661 0.042458347 17.386976 -1.6987306 + 6500 0.59558646 -49.893699 -49.575915 37.378286 0.04344705 16.177299 -1.7344148 + 6600 0.55708121 -49.879794 -49.582555 38.067181 0.044407312 15.131421 -1.7691453 + 6700 0.52366875 -49.865988 -49.586576 38.769884 0.045342063 14.223873 -1.8030059 + 6800 0.49459542 -49.852276 -49.588377 39.48355 0.046253857 13.434184 -1.8360506 + 6900 0.46925412 -49.838637 -49.58826 40.206955 0.047144922 12.745864 -1.8683386 + 7000 0.44715411 -49.825066 -49.58648 40.938794 0.048017218 12.145585 -1.8999205 + 7100 0.427897 -49.811553 -49.583243 41.677982 0.048872484 11.622524 -1.9308529 + 7200 0.4111577 -49.798086 -49.578707 42.423605 0.049712274 11.167851 -1.9611851 + 7300 0.39666926 -49.784662 -49.573013 43.175155 0.050538 10.774317 -1.9909515 + 7400 0.38421083 -49.771272 -49.56627 43.931762 0.051350953 10.435921 -2.0202015 + 7500 0.37359789 -49.757907 -49.558568 44.69348 0.052152332 10.147653 -2.0489622 + 7600 0.36467436 -49.744563 -49.549985 45.459725 0.052943262 9.9052723 -2.0772881 + 7700 0.35730613 -49.731235 -49.540589 46.229921 0.053724811 9.7051368 -2.1052027 + 7800 0.3513759 -49.717911 -49.530429 47.004627 0.054498005 9.54406 -2.1327445 + 7900 0.34677906 -49.704589 -49.51956 47.78318 0.055263836 9.419201 -2.1599468 + 8000 0.34342073 -49.691262 -49.508025 48.565675 0.056023277 9.327982 -2.1868375 + 8100 0.34121371 -49.677922 -49.495862 49.351802 0.056777286 9.2680351 -2.2134444 + 8200 0.34007764 -49.664566 -49.483112 50.141603 0.057526819 9.2371771 -2.2397997 + 8300 0.33993883 -49.651181 -49.469802 50.935241 0.05827283 9.2334067 -2.2659331 + 8400 0.34073085 -49.637766 -49.455963 51.732654 0.059016284 9.2549196 -2.2918688 + 8500 0.34239516 -49.62431 -49.441619 52.534019 0.059758157 9.3001256 -2.317626 + 8600 0.3448813 -49.610812 -49.426796 53.338612 0.060499441 9.367654 -2.3432261 + 8700 0.34814597 -49.597265 -49.411506 54.147073 0.061241149 9.4563288 -2.3686991 + 8800 0.35215054 -49.583658 -49.395763 54.959512 0.061984314 9.5651009 -2.3940587 + 8900 0.35685687 -49.569985 -49.379579 55.776434 0.062729991 9.692934 -2.419329 + 9000 0.36222181 -49.556241 -49.362972 56.597626 0.063479254 9.8386562 -2.4445253 + 9100 0.36819143 -49.54242 -49.345966 57.423306 0.064233198 10.000803 -2.469667 + 9200 0.37469636 -49.528518 -49.328593 58.253634 0.064992931 10.17749 -2.4947681 + 9300 0.38164964 -49.514521 -49.310886 59.088869 0.065759574 10.366354 -2.5198522 + 9400 0.38894823 -49.500427 -49.292898 59.929378 0.066534253 10.564598 -2.5449285 + 9500 0.3964785 -49.486229 -49.274681 60.775174 0.067318101 10.769135 -2.5700196 + 9600 0.4041249 -49.471917 -49.25629 61.626259 0.068112253 10.976827 -2.5951326 + 9700 0.41178035 -49.457494 -49.237782 62.482132 0.06891785 11.184764 -2.6202815 + 9800 0.41935645 -49.44294 -49.219186 63.343831 0.069736042 11.390545 -2.6454805 + 9900 0.42679147 -49.428257 -49.200536 64.211037 0.070567996 11.592495 -2.670741 + 10000 0.43405521 -49.413432 -49.181835 65.08463 0.071414903 11.789793 -2.6960774 +Loop time of 14.691 on 1 procs for 10000 steps with 180 atoms + +Performance: 0.059 ns/day, 408.083 hours/ns, 680.690 timesteps/s, 122.524 katom-step/s +95.3% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.1084 | 3.1084 | 3.1084 | 0.0 | 21.16 +Bond | 0.0010414 | 0.0010414 | 0.0010414 | 0.0 | 0.01 +Neigh | 6.6306 | 6.6306 | 6.6306 | 0.0 | 45.13 +Comm | 0.56093 | 0.56093 | 0.56093 | 0.0 | 3.82 +Output | 0.002951 | 0.002951 | 0.002951 | 0.0 | 0.02 +Modify | 4.3177 | 4.3177 | 4.3177 | 0.0 | 29.39 +Other | | 0.06942 | | | 0.47 + +Nlocal: 180 ave 180 max 180 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1510 ave 1510 max 1510 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 13680 ave 13680 max 13680 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 13680 +Ave neighs/atom = 76 +Ave special neighs/atom = 0 +Neighbor list builds = 10000 +Dangerous builds not checked +Total wall time: 0:00:14 diff --git a/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.7 b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.7 new file mode 100644 index 0000000000..ac54d52847 --- /dev/null +++ b/examples/PACKAGES/pimd/para-h2/log.25Feb23.scp.g++.8.7 @@ -0,0 +1,197 @@ +LAMMPS (8 Feb 2023) +Processor partition = 7 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 32 pad +variable out_freq string 100 +variable job_name string H2 + +units real +atom_style full +pair_style table linear 10000 + +neighbor 2.0 bin +neigh_modify every 1 delay 0 check no + +read_data H2.data +Reading data file ... + orthogonal box = (0 0 0) to (19.71219 19.71219 19.71219) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 180 atoms +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.002 seconds + +pair_coeff 1 * pair.table PAIR_H2 +WARNING: 5852 of 18000 force values in table PAIR_H2 are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) + +timestep 0.001 + +velocity all create 1.0 1985 rot yes dist gaussian + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 25.0 nhc 4 + +thermo_style custom step temp pe etotal pzz f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +thermo ${out_freq} +thermo 100 + +#dump dcd all dcd ${out_freq} ${job_name}_${ibead}.dcd + +#restart ${out_freq} ${job_name}_${ibead}.restart1 ${job_name}_${ibead}.restart2 + +run 10000 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11.55117 + ghost atom cutoff = 11.55117 + binsize = 5.775585, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 11.97 | 11.97 | 11.97 Mbytes + Step Temp PotEng TotEng Pzz espring T_ring virial + 0 1 -50.292986 -49.759421 16.18218 0 0 4.331435e-14 + 100 0.99396717 -50.292908 -49.762562 16.16754 3.6546345e-06 31.630244 -0.01511026 + 200 0.97647843 -50.292785 -49.77177 16.117482 1.4519126e-05 31.073714 -0.030258999 + 300 0.94920978 -50.292584 -49.786119 16.040198 3.2307193e-05 30.205965 -0.045469889 + 400 0.91451321 -50.292301 -49.804349 15.94486 5.6578376e-05 29.101843 -0.060775514 + 500 0.87495051 -50.291935 -49.825092 15.839811 8.6783378e-05 27.84287 -0.07621024 + 600 0.83290521 -50.291484 -49.847075 15.733867 0.00012231241 26.504895 -0.091795014 + 700 0.79035049 -50.290943 -49.869239 15.633262 0.0001625386 25.150709 -0.10756384 + 800 0.74877056 -50.29031 -49.890792 15.542706 0.00020685191 23.827543 -0.12353621 + 900 0.70918842 -50.289582 -49.911184 15.465561 0.00025468227 22.567951 -0.13974782 + 1000 0.67224667 -50.288756 -49.930069 15.403036 0.00030551305 21.392383 -0.15621567 + 1100 0.63830199 -50.287828 -49.947252 15.356514 0.00035888685 20.312188 -0.17298512 + 1200 0.60751172 -50.286791 -49.962644 15.325845 0.0004144061 19.332373 -0.19008041 + 1300 0.57990404 -50.285641 -49.976225 15.311509 0.00047173031 18.453835 -0.20753645 + 1400 0.5554312 -50.284374 -49.988015 15.313263 0.00053057146 17.675055 -0.22539174 + 1500 0.53400813 -50.282975 -49.998047 15.33133 0.00059068877 16.993325 -0.24369544 + 1600 0.51553984 -50.281444 -50.00637 15.365561 0.00065188331 16.405623 -0.26248285 + 1700 0.49994085 -50.279767 -50.013016 15.416271 0.00071399304 15.909229 -0.28182209 + 1800 0.48714931 -50.277932 -50.018006 15.48387 0.00077688833 15.502174 -0.30176215 + 1900 0.47713797 -50.275928 -50.021344 15.569019 0.00084046832 15.183591 -0.32238808 + 2000 0.46992375 -50.273735 -50.023 15.673314 0.00090465799 14.954018 -0.3437631 + 2100 0.46557711 -50.271332 -50.022917 15.797801 0.00096940607 14.815698 -0.36598703 + 2200 0.46423244 -50.2687 -50.021002 15.944553 0.0010346838 14.772908 -0.38915619 + 2300 0.46610038 -50.26581 -50.017115 16.115839 0.0011004847 14.83235 -0.41338963 + 2400 0.47148286 -50.262625 -50.011058 16.314677 0.0011668255 15.003632 -0.43882597 + 2500 0.48079165 -50.259109 -50.002575 16.545079 0.0012337477 15.299859 -0.46562537 + 2600 0.49457102 -50.255212 -49.991327 16.811386 0.0013013219 15.738349 -0.49395245 + 2700 0.51352449 -50.250875 -49.976877 17.11979 0.0013696525 16.341491 -0.52401609 + 2800 0.53854543 -50.246032 -49.958683 17.477089 0.0014388859 17.137712 -0.55604082 + 2900 0.57074936 -50.240596 -49.936064 17.892199 0.0015092207 18.162513 -0.59030618 + 3000 0.61150422 -50.234467 -49.90819 18.375616 0.001580922 19.459423 -0.62708735 + 3100 0.66245096 -50.227523 -49.874062 18.939819 0.0016543394 21.080662 -0.66672955 + 3200 0.72550205 -50.219616 -49.832514 19.60023 0.0017299293 23.087088 -0.70958417 + 3300 0.80279929 -50.210579 -49.782233 20.37383 0.0018082826 25.546857 -0.75603924 + 3400 0.89660476 -50.200203 -49.721806 21.28012 0.0018901552 28.531956 -0.80651501 + 3500 1.0090938 -50.188252 -49.649835 22.340233 0.0019765002 32.111606 -0.86141363 + 3600 1.1420183 -50.174459 -49.565118 23.57558 0.0020684981 36.34156 -0.92115194 + 3700 1.2962221 -50.158518 -49.466899 25.006266 0.0021675754 41.248667 -0.98609175 + 3800 1.4710194 -50.140107 -49.355223 26.648455 0.0022754045 46.811106 -1.0565325 + 3900 1.6635051 -50.118886 -49.231298 28.511102 0.0023938687 52.936429 -1.1326688 + 4000 1.8679372 -50.094526 -49.097861 30.592386 0.0025249809 59.441913 -1.214555 + 4100 2.075405 -50.066723 -48.95936 32.878933 0.0026707445 66.044 -1.3020682 + 4200 2.2740293 -50.035234 -48.821891 35.342354 0.0028329538 72.364666 -1.394874 + 4300 2.449883 -49.999912 -48.69274 37.94169 0.0030129483 77.96072 -1.4924536 + 4400 2.5886538 -49.960721 -48.579506 40.62924 0.0032113484 82.376716 -1.5940701 + 4500 2.6778127 -49.917775 -48.488988 43.35421 0.0034278221 85.21395 -1.6987968 + 4600 2.7088053 -49.871336 -48.426012 46.071925 0.0036609337 86.200203 -1.8055903 + 4700 2.6786752 -49.821807 -48.39256 48.749456 0.0039081229 85.241397 -1.9133555 + 4800 2.5906421 -49.769708 -48.387433 51.369043 0.0041658356 82.439989 -2.0209603 + 4900 2.4534656 -49.71564 -48.406557 53.929171 0.0044297991 78.074727 -2.1273728 + 5000 2.2797967 -49.660246 -48.443826 56.439389 0.0046953978 72.548196 -2.2316692 + 5100 2.0839917 -49.60414 -48.492195 58.917167 0.0049580886 66.317246 -2.3330819 + 5200 1.8799454 -49.547898 -48.544825 61.38072 0.0052137855 59.824039 -2.4310487 + 5300 1.6794028 -49.492001 -48.59593 63.845702 0.0054591569 53.442329 -2.5251887 + 5400 1.4910004 -49.436812 -48.641266 66.323664 0.0056917984 47.446947 -2.6153153 + 5500 1.3200581 -49.382602 -48.678265 68.81759 0.0059102724 42.007182 -2.7013892 + 5600 1.1689597 -49.32954 -48.705824 71.326608 0.0061140319 37.198896 -2.7834961 + 5700 1.0378669 -49.277687 -48.723917 73.847293 0.0063032634 33.027232 -2.8618238 + 5800 0.92551081 -49.227051 -48.733231 76.373912 0.0064786911 29.451811 -2.9366159 + 5900 0.82988009 -49.177354 -48.734559 78.907054 0.0066413821 26.408629 -3.0079862 + 6000 0.74872148 -49.128988 -48.729496 81.429069 0.0067925784 23.825981 -3.0765541 + 6100 0.6798481 -49.081399 -48.718656 83.949013 0.0069335708 21.634277 -3.1425093 + 6200 0.62129621 -49.034965 -48.703463 86.450184 0.0070656124 19.771026 -3.2059256 + 6300 0.5713815 -48.989354 -48.684484 88.938306 0.0071898691 18.182629 -3.2671248 + 6400 0.52869861 -48.944483 -48.662388 91.411964 0.0073073957 16.824365 -3.326325 + 6500 0.49209369 -48.900284 -48.63772 93.869881 0.00741913 15.659515 -3.383704 + 6600 0.4606278 -48.85645 -48.610675 96.319181 0.0075258972 14.6582 -3.4393879 + 6700 0.4335401 -48.813153 -48.581831 98.754093 0.0076284202 13.796209 -3.4935699 + 6800 0.41021495 -48.770575 -48.551698 101.16784 0.0077273325 13.053951 -3.546418 + 6900 0.39015391 -48.728202 -48.520029 103.57385 0.0078231904 12.415565 -3.5980989 + 7000 0.37295279 -48.686464 -48.487469 105.95986 0.0079164859 11.868187 -3.6485312 + 7100 0.35828286 -48.645075 -48.453908 108.33347 0.008007657 11.401357 -3.6979091 + 7200 0.34587564 -48.603786 -48.419239 110.70102 0.0080970974 11.006532 -3.7462688 + 7300 0.33551045 -48.563011 -48.383994 113.05147 0.0081851643 10.676688 -3.7937749 + 7400 0.32700405 -48.5225 -48.348023 115.39114 0.008272185 10.405996 -3.8404567 + 7500 0.32020193 -48.481991 -48.311143 117.72756 0.0083584619 10.189537 -3.8863461 + 7600 0.31497086 -48.441913 -48.273856 120.0495 0.008444277 10.023073 -3.9315862 + 7700 0.31119256 -48.401778 -48.235736 122.37022 0.0085298943 9.9028389 -3.9761586 + 7800 0.30875834 -48.362027 -48.197284 124.67777 0.0086155626 9.8253766 -4.020194 + 7900 0.30756489 -48.322398 -48.158292 126.9798 0.0087015164 9.7873982 -4.0637137 + 8000 0.30751134 -48.282865 -48.118788 129.27742 0.0087879767 9.7856943 -4.1067668 + 8100 0.30849789 -48.243167 -48.078563 131.57737 0.0088751511 9.8170884 -4.1492332 + 8200 0.31042593 -48.203515 -48.037882 133.87491 0.0089632335 9.8784428 -4.1915847 + 8300 0.31319977 -48.163874 -47.996762 136.17056 0.0090524039 9.9667128 -4.2336145 + 8400 0.3167294 -48.124228 -47.955232 138.46555 0.0091428273 10.079033 -4.2753558 + 8500 0.32093339 -48.084773 -47.913534 140.75426 0.0092346543 10.212814 -4.3167737 + 8600 0.32574097 -48.045251 -47.871447 143.04447 0.0093280205 10.365802 -4.3579897 + 8700 0.33109202 -48.005633 -47.828974 145.33751 0.0094230472 10.536084 -4.3990428 + 8800 0.33693414 -47.965895 -47.786118 147.63516 0.0095198428 10.721993 -4.4399711 + 8900 0.34321684 -47.926004 -47.742875 149.9379 0.009618504 10.921922 -4.4808086 + 9000 0.34988367 -47.885934 -47.699248 152.24678 0.0097191181 11.134076 -4.5215921 + 9100 0.35686443 -47.845658 -47.655247 154.56358 0.0098217652 11.356219 -4.5623394 + 9200 0.3640698 -47.805147 -47.610893 156.88915 0.0099265208 11.58551 -4.6030874 + 9300 0.37139091 -47.764138 -47.565977 159.23099 0.010033457 11.818484 -4.6439479 + 9400 0.37870543 -47.722844 -47.52078 161.5788 0.010142648 12.051248 -4.6846276 + 9500 0.38588975 -47.68146 -47.475562 163.93728 0.010254165 12.279869 -4.7255143 + 9600 0.39283543 -47.639735 -47.430132 166.30871 0.010368088 12.500896 -4.7664862 + 9700 0.39946605 -47.597406 -47.384265 168.70114 0.010484497 12.711897 -4.8075181 + 9800 0.40575037 -47.55491 -47.338416 171.10373 0.010603483 12.911878 -4.848721 + 9900 0.41170816 -47.511756 -47.292083 173.53055 0.010725141 13.101469 -4.8900195 + 10000 0.41740707 -47.468384 -47.245671 175.97095 0.010849577 13.282821 -4.9315123 +Loop time of 14.691 on 1 procs for 10000 steps with 180 atoms + +Performance: 0.059 ns/day, 408.083 hours/ns, 680.690 timesteps/s, 122.524 katom-step/s +97.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.9822 | 2.9822 | 2.9822 | 0.0 | 20.30 +Bond | 0.00090722 | 0.00090722 | 0.00090722 | 0.0 | 0.01 +Neigh | 6.5119 | 6.5119 | 6.5119 | 0.0 | 44.33 +Comm | 0.55377 | 0.55377 | 0.55377 | 0.0 | 3.77 +Output | 0.0024523 | 0.0024523 | 0.0024523 | 0.0 | 0.02 +Modify | 4.5713 | 4.5713 | 4.5713 | 0.0 | 31.12 +Other | | 0.06845 | | | 0.47 + +Nlocal: 180 ave 180 max 180 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1510 ave 1510 max 1510 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 13712 ave 13712 max 13712 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 13712 +Ave neighs/atom = 76.177778 +Ave special neighs/atom = 0 +Neighbor list builds = 10000 +Dangerous builds not checked +Total wall time: 0:00:14 From 3e2b5dd9d30acef544af055c588cab71ef689312 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 25 Feb 2023 23:47:11 -0500 Subject: [PATCH 04/58] small cleanup --- src/REPLICA/fix_pimd_nvt.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/REPLICA/fix_pimd_nvt.cpp b/src/REPLICA/fix_pimd_nvt.cpp index 89d9a4127f..8f34df0b83 100644 --- a/src/REPLICA/fix_pimd_nvt.cpp +++ b/src/REPLICA/fix_pimd_nvt.cpp @@ -29,6 +29,7 @@ #include "error.h" #include "force.h" #include "math_const.h" +#include "math_special.h" #include "memory.h" #include "universe.h" #include "update.h" @@ -40,6 +41,8 @@ using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; +using MathSpecial::powint; + enum { PIMD, NMPIMD, CMD }; /* ---------------------------------------------------------------------- */ @@ -234,7 +237,7 @@ void FixPIMDNVT::init() if (method == CMD || method == NMPIMD) nmpimd_init(); else - for (int i = 1; i <= atom->ntypes; i++) mass[i] = atom->mass[i] / np * fmass; + for (int i = 1; i <= atom->ntypes; i++) mass[i] = atom->mass[i] * inverse_np * fmass; if (!nhc_ready) nhc_init(); } @@ -468,8 +471,8 @@ void FixPIMDNVT::nmpimd_init() // Set up eigenvectors for non-degenerated modes for (int i = 0; i < np; i++) { - M_x2xp[0][i] = 1.0 / np; - if (np % 2 == 0) M_x2xp[np - 1][i] = 1.0 / np * pow(-1.0, i); + M_x2xp[0][i] = inverse_np; + if (np % 2 == 0) M_x2xp[np - 1][i] = inverse_np * powint(-1.0, i); } // Set up eigenvectors for degenerated modes @@ -880,8 +883,8 @@ int FixPIMDNVT::size_restart(int /*nlocal*/) double FixPIMDNVT::compute_vector(int n) { - if (n == 0) { return spring_energy; } - if (n == 1) { return t_sys; } - if (n == 2) { return virial; } + if (n == 0) return spring_energy; + if (n == 1) return t_sys; + if (n == 2) return virial; return 0.0; } From 76c879c388c32e2bc62d879c9496a77c6c27c177 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 26 Feb 2023 00:16:03 -0500 Subject: [PATCH 05/58] make sure that output variables are initialized --- src/REPLICA/fix_pimd_nvt.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/REPLICA/fix_pimd_nvt.cpp b/src/REPLICA/fix_pimd_nvt.cpp index 8f34df0b83..1f2f29f35c 100644 --- a/src/REPLICA/fix_pimd_nvt.cpp +++ b/src/REPLICA/fix_pimd_nvt.cpp @@ -72,6 +72,8 @@ FixPIMDNVT::FixPIMDNVT(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) nhc_eta_dotdot = nullptr; nhc_eta_mass = nullptr; + spring_energy = t_sys = virial = 0.0; + method = PIMD; fmass = 1.0; nhc_temp = 298.15; From 2bd6cde4e822b51af6e6e4d796cffb8a8fff2f65 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 26 Feb 2023 00:19:39 -0500 Subject: [PATCH 06/58] add reference output --- .../pimd/prot-hairpin/log.25Feb23.scp.g++.8 | 2 + .../pimd/prot-hairpin/log.25Feb23.scp.g++.8.0 | 148 ++++++++++++++++++ .../pimd/prot-hairpin/log.25Feb23.scp.g++.8.1 | 146 +++++++++++++++++ .../pimd/prot-hairpin/log.25Feb23.scp.g++.8.2 | 146 +++++++++++++++++ .../pimd/prot-hairpin/log.25Feb23.scp.g++.8.3 | 146 +++++++++++++++++ .../pimd/prot-hairpin/log.25Feb23.scp.g++.8.4 | 146 +++++++++++++++++ .../pimd/prot-hairpin/log.25Feb23.scp.g++.8.5 | 146 +++++++++++++++++ .../pimd/prot-hairpin/log.25Feb23.scp.g++.8.6 | 146 +++++++++++++++++ .../pimd/prot-hairpin/log.25Feb23.scp.g++.8.7 | 146 +++++++++++++++++ 9 files changed, 1172 insertions(+) create mode 100644 examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8 create mode 100644 examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.0 create mode 100644 examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.1 create mode 100644 examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.2 create mode 100644 examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.3 create mode 100644 examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.4 create mode 100644 examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.5 create mode 100644 examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.6 create mode 100644 examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.7 diff --git a/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8 b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8 new file mode 100644 index 0000000000..14b41c14f3 --- /dev/null +++ b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8 @@ -0,0 +1,2 @@ +LAMMPS (8 Feb 2023) +Running on 8 partitions of processors diff --git a/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.0 b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.0 new file mode 100644 index 0000000000..873d412bf1 --- /dev/null +++ b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.0 @@ -0,0 +1,148 @@ +LAMMPS (8 Feb 2023) +Processor partition = 0 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 8 pad + +units real +neigh_modify delay 2 every 1 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmm +improper_style harmonic + +pair_style lj/charmm/coul/long 11 12 +pair_modify mix arithmetic +kspace_style pppm 1e-4 + +read_data system.data +Reading data file ... + orthogonal box = (-23.109 -22.733 -23.141) to (22.853 22.912 22.8) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8674 atoms + reading velocities ... + 8674 velocities + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 6 = max angles/atom + scanning dihedrals ... + 18 = max dihedrals/atom + scanning impropers ... + 1 = max impropers/atom + reading bonds ... + 5869 bonds + reading angles ... + 3264 angles + reading dihedrals ... + 708 dihedrals + reading impropers ... + 38 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.004 seconds + read_data CPU = 0.138 seconds +#read_restart system_${ibead}.rest1 +special_bonds charmm + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 300.0 nhc 4 sp 2.0 + +thermo 10 +thermo_style custom step temp pe etotal f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +timestep 0.08 + +# restart 100 system_${ibead}.rest1 system_${ibead}.rest2 + +group prot id <= 256 +256 atoms in group prot +# dump 1 prot dcd 100 prot_${ibead}.dcd + +run 200 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 0.22071363 + grid = 20 20 20 + stencil order = 5 + estimated absolute RMS force accuracy = 0.024910591 + estimated relative force accuracy = 7.5017505e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 15625 8000 +Generated 231 of 231 mixed pair_coeff terms from arithmetic mixing rule +Fix pimd/nvt -P/(beta^2 * hbar^2) = -2.9535019e+01 (kcal/mol/A^2) + +Neighbor list info ... + update: every = 1 steps, delay = 2 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmm/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Inconsistent image flags (src/domain.cpp:815) +Per MPI rank memory allocation (min/avg/max) = 84.59 | 84.59 | 84.59 Mbytes + Step Temp PotEng TotEng espring T_ring virial + 0 306.20099 -26166.171 -18250.089 0 0 -676.31071 + 10 131.27164 -24353.129 -20959.421 307.69774 131.25651 -622.84631 + 20 173.87922 -20639.595 -16144.371 903.19698 173.85917 -146.32235 + 30 174.36894 -14805.957 -10298.072 2123.5094 174.34883 1001.9707 + 40 209.39721 -9107.42 -3693.9648 3643.8992 209.37307 2169.6179 + 50 224.56543 -4755.7551 1049.8374 5433.6153 224.53954 3077.7538 + 60 236.84365 -1848.0123 4275.0036 7420.6008 236.81634 3690.4423 + 70 251.60145 -545.63452 5958.9084 9472.1666 251.57244 3930.8483 + 80 259.97884 -310.2814 6410.8387 11592.586 259.94887 4052.0897 + 90 266.56259 -619.03771 6272.2892 13763.979 266.53186 3895.0106 + 100 277.74387 -1327.8055 5852.5862 15788.989 277.71185 3691.775 + 110 278.73044 -1998.5 5207.397 17723.605 278.69831 2838.6857 + 120 286.74106 -2688.0018 4724.9903 19437.173 286.70801 2354.3367 + 130 284.45763 -3484.7277 3869.2319 20933.859 284.42484 2037.2135 + 140 290.24681 -4412.7819 3090.8428 22113.049 290.21335 1802.8857 + 150 294.32521 -5490.1829 2118.8788 23005.855 294.29127 1927.3626 + 160 293.9109 -6586.1293 1012.2214 23597.9 293.87701 2198.3058 + 170 290.52772 -7737.8309 -226.94392 23882.219 290.49423 2454.2765 + 180 289.91516 -8766.2419 -1271.1912 23875.129 289.88174 2549.258 + 190 292.57992 -9618.0848 -2054.1432 23580.482 292.54619 2605.4823 + 200 295.4078 -10200.536 -2563.4865 23028.461 295.37374 2587.5531 +Loop time of 35.3333 on 1 procs for 200 steps with 8674 atoms + +Performance: 0.039 ns/day, 613.425 hours/ns, 5.660 timesteps/s, 49.098 katom-step/s +99.3% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 27.689 | 27.689 | 27.689 | 0.0 | 78.37 +Bond | 0.1312 | 0.1312 | 0.1312 | 0.0 | 0.37 +Kspace | 2.4446 | 2.4446 | 2.4446 | 0.0 | 6.92 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.12014 | 0.12014 | 0.12014 | 0.0 | 0.34 +Output | 0.0020193 | 0.0020193 | 0.0020193 | 0.0 | 0.01 +Modify | 4.886 | 4.886 | 4.886 | 0.0 | 13.83 +Other | | 0.05992 | | | 0.17 + +Nlocal: 8674 ave 8674 max 8674 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 27366 ave 27366 max 27366 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 4.48585e+06 ave 4.48585e+06 max 4.48585e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 4485849 +Ave neighs/atom = 517.16036 +Ave special neighs/atom = 2.2573207 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:35 diff --git a/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.1 b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.1 new file mode 100644 index 0000000000..51a69030c2 --- /dev/null +++ b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.1 @@ -0,0 +1,146 @@ +LAMMPS (8 Feb 2023) +Processor partition = 1 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 8 pad + +units real +neigh_modify delay 2 every 1 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmm +improper_style harmonic + +pair_style lj/charmm/coul/long 11 12 +pair_modify mix arithmetic +kspace_style pppm 1e-4 + +read_data system.data +Reading data file ... + orthogonal box = (-23.109 -22.733 -23.141) to (22.853 22.912 22.8) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8674 atoms + reading velocities ... + 8674 velocities + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 6 = max angles/atom + scanning dihedrals ... + 18 = max dihedrals/atom + scanning impropers ... + 1 = max impropers/atom + reading bonds ... + 5869 bonds + reading angles ... + 3264 angles + reading dihedrals ... + 708 dihedrals + reading impropers ... + 38 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.004 seconds + read_data CPU = 0.139 seconds +#read_restart system_${ibead}.rest1 +special_bonds charmm + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 300.0 nhc 4 sp 2.0 + +thermo 10 +thermo_style custom step temp pe etotal f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +timestep 0.08 + +# restart 100 system_${ibead}.rest1 system_${ibead}.rest2 + +group prot id <= 256 +256 atoms in group prot +# dump 1 prot dcd 100 prot_${ibead}.dcd + +run 200 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 0.22071363 + grid = 20 20 20 + stencil order = 5 + estimated absolute RMS force accuracy = 0.024910591 + estimated relative force accuracy = 7.5017505e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 15625 8000 +Generated 231 of 231 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 2 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmm/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Inconsistent image flags (src/domain.cpp:815) +Per MPI rank memory allocation (min/avg/max) = 84.59 | 84.59 | 84.59 Mbytes + Step Temp PotEng TotEng espring T_ring virial + 0 306.20099 -26166.171 -18250.089 0 0 -676.31071 + 10 64.17217 -26206.83 -24547.814 19.798491 300.69483 -715.39964 + 20 68.220475 -26516.716 -24753.042 40.042407 319.66418 -514.11207 + 30 57.966715 -26566.219 -25067.631 92.36071 271.61761 32.199121 + 40 49.627434 -26115.147 -24832.15 156.77313 232.54181 589.56751 + 50 50.238512 -24830.72 -23531.926 251.81147 235.40517 1098.4708 + 60 56.338925 -22753.456 -21296.951 361.53524 263.99019 1897.4199 + 70 54.380851 -19964.7 -18558.815 512.1854 254.81514 2327.9231 + 80 56.718808 -16822.195 -15355.868 692.48978 265.77022 2784.4839 + 90 57.350586 -13726.44 -12243.78 926.0914 268.73058 3260.3863 + 100 57.262365 -11280.793 -9800.4136 1186.0078 268.3172 3554.7754 + 110 58.507688 -9681.3843 -8168.8105 1483.328 274.15247 3368.3688 + 120 58.690757 -9008.7198 -7491.4132 1803.3617 275.01029 2974.5497 + 130 58.623212 -9097.3273 -7581.7669 2143.6544 274.69379 2535.9822 + 140 59.453502 -9689.6967 -8152.6711 2490.8635 278.58432 1947.3155 + 150 59.231787 -10601.929 -9070.635 2837.9543 277.54542 1774.9432 + 160 58.39319 -11413.85 -9904.2362 3183.3024 273.61596 1744.3579 + 170 60.201493 -12074.462 -10518.099 3515.6508 282.08922 1744.1497 + 180 59.592955 -12415.79 -10875.16 3827.6991 279.23776 1935.0884 + 190 59.698333 -12625.161 -11081.806 4120.4275 279.73154 1962.5444 + 200 59.87495 -12794.677 -11246.756 4387.202 280.55912 1854.7836 +Loop time of 35.3334 on 1 procs for 200 steps with 8674 atoms + +Performance: 0.039 ns/day, 613.427 hours/ns, 5.660 timesteps/s, 49.098 katom-step/s +97.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 27.948 | 27.948 | 27.948 | 0.0 | 79.10 +Bond | 0.12842 | 0.12842 | 0.12842 | 0.0 | 0.36 +Kspace | 2.4577 | 2.4577 | 2.4577 | 0.0 | 6.96 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.11986 | 0.11986 | 0.11986 | 0.0 | 0.34 +Output | 0.0021166 | 0.0021166 | 0.0021166 | 0.0 | 0.01 +Modify | 4.617 | 4.617 | 4.617 | 0.0 | 13.07 +Other | | 0.06042 | | | 0.17 + +Nlocal: 8674 ave 8674 max 8674 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 27366 ave 27366 max 27366 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 4.48585e+06 ave 4.48585e+06 max 4.48585e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 4485849 +Ave neighs/atom = 517.16036 +Ave special neighs/atom = 2.2573207 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:35 diff --git a/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.2 b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.2 new file mode 100644 index 0000000000..03d6c04804 --- /dev/null +++ b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.2 @@ -0,0 +1,146 @@ +LAMMPS (8 Feb 2023) +Processor partition = 2 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 8 pad + +units real +neigh_modify delay 2 every 1 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmm +improper_style harmonic + +pair_style lj/charmm/coul/long 11 12 +pair_modify mix arithmetic +kspace_style pppm 1e-4 + +read_data system.data +Reading data file ... + orthogonal box = (-23.109 -22.733 -23.141) to (22.853 22.912 22.8) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8674 atoms + reading velocities ... + 8674 velocities + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 6 = max angles/atom + scanning dihedrals ... + 18 = max dihedrals/atom + scanning impropers ... + 1 = max impropers/atom + reading bonds ... + 5869 bonds + reading angles ... + 3264 angles + reading dihedrals ... + 708 dihedrals + reading impropers ... + 38 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.004 seconds + read_data CPU = 0.139 seconds +#read_restart system_${ibead}.rest1 +special_bonds charmm + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 300.0 nhc 4 sp 2.0 + +thermo 10 +thermo_style custom step temp pe etotal f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +timestep 0.08 + +# restart 100 system_${ibead}.rest1 system_${ibead}.rest2 + +group prot id <= 256 +256 atoms in group prot +# dump 1 prot dcd 100 prot_${ibead}.dcd + +run 200 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 0.22071363 + grid = 20 20 20 + stencil order = 5 + estimated absolute RMS force accuracy = 0.024910591 + estimated relative force accuracy = 7.5017505e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 15625 8000 +Generated 231 of 231 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 2 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmm/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Inconsistent image flags (src/domain.cpp:815) +Per MPI rank memory allocation (min/avg/max) = 84.59 | 84.59 | 84.59 Mbytes + Step Temp PotEng TotEng espring T_ring virial + 0 306.20099 -26166.171 -18250.089 0 0 -676.31071 + 10 64.17182 -26152.123 -24493.117 2.6867435 300.69318 -871.30328 + 20 68.223719 -26376.797 -24613.039 8.6943178 319.67938 -734.6258 + 30 57.962426 -26437.775 -24939.297 20.196606 271.59751 -442.97527 + 40 49.527052 -26345.74 -25065.339 36.486067 232.07145 -109.57718 + 50 50.00573 -26013.669 -24720.893 64.828577 234.31441 90.23132 + 60 56.176816 -25453.583 -24001.268 104.35099 263.23058 350.85294 + 70 54.335616 -24764.408 -23359.692 168.84911 254.60318 370.58559 + 80 56.386432 -24068.851 -22611.117 255.96556 264.21279 359.85013 + 90 57.394261 -23487.859 -22004.071 377.57122 268.93523 350.57006 + 100 56.595909 -23070.567 -21607.418 531.24569 265.19435 380.72648 + 110 56.785626 -22692.803 -21224.749 716.4839 266.08332 119.53289 + 120 57.068588 -22142.475 -20667.105 936.74977 267.4092 53.114976 + 130 57.211273 -21289.908 -19810.849 1184.7712 268.0778 165.3536 + 140 58.110208 -20136.125 -18633.827 1461.5509 272.28998 268.40059 + 150 57.980844 -18752.784 -17253.831 1762.042 271.68381 732.81511 + 160 58.120526 -17237.742 -15735.177 2083.496 272.33833 1353.819 + 170 58.192327 -15808.132 -14303.711 2418.0799 272.67477 1963.8895 + 180 59.169638 -14676.59 -13146.903 2755.6611 277.2542 2483.717 + 190 60.190674 -13997.692 -12441.609 3096.3553 282.03852 2865.7644 + 200 60.619191 -13706.35 -12139.188 3426.2396 284.04645 2830.1842 +Loop time of 35.3333 on 1 procs for 200 steps with 8674 atoms + +Performance: 0.039 ns/day, 613.425 hours/ns, 5.660 timesteps/s, 49.098 katom-step/s +99.2% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 27.558 | 27.558 | 27.558 | 0.0 | 77.99 +Bond | 0.1313 | 0.1313 | 0.1313 | 0.0 | 0.37 +Kspace | 2.4344 | 2.4344 | 2.4344 | 0.0 | 6.89 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.11913 | 0.11913 | 0.11913 | 0.0 | 0.34 +Output | 0.0022372 | 0.0022372 | 0.0022372 | 0.0 | 0.01 +Modify | 5.0291 | 5.0291 | 5.0291 | 0.0 | 14.23 +Other | | 0.05932 | | | 0.17 + +Nlocal: 8674 ave 8674 max 8674 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 27366 ave 27366 max 27366 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 4.48585e+06 ave 4.48585e+06 max 4.48585e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 4485849 +Ave neighs/atom = 517.16036 +Ave special neighs/atom = 2.2573207 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:35 diff --git a/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.3 b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.3 new file mode 100644 index 0000000000..5e15398b16 --- /dev/null +++ b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.3 @@ -0,0 +1,146 @@ +LAMMPS (8 Feb 2023) +Processor partition = 3 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 8 pad + +units real +neigh_modify delay 2 every 1 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmm +improper_style harmonic + +pair_style lj/charmm/coul/long 11 12 +pair_modify mix arithmetic +kspace_style pppm 1e-4 + +read_data system.data +Reading data file ... + orthogonal box = (-23.109 -22.733 -23.141) to (22.853 22.912 22.8) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8674 atoms + reading velocities ... + 8674 velocities + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 6 = max angles/atom + scanning dihedrals ... + 18 = max dihedrals/atom + scanning impropers ... + 1 = max impropers/atom + reading bonds ... + 5869 bonds + reading angles ... + 3264 angles + reading dihedrals ... + 708 dihedrals + reading impropers ... + 38 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.015 seconds + read_data CPU = 0.153 seconds +#read_restart system_${ibead}.rest1 +special_bonds charmm + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 300.0 nhc 4 sp 2.0 + +thermo 10 +thermo_style custom step temp pe etotal f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +timestep 0.08 + +# restart 100 system_${ibead}.rest1 system_${ibead}.rest2 + +group prot id <= 256 +256 atoms in group prot +# dump 1 prot dcd 100 prot_${ibead}.dcd + +run 200 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 0.22071363 + grid = 20 20 20 + stencil order = 5 + estimated absolute RMS force accuracy = 0.024910591 + estimated relative force accuracy = 7.5017505e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 15625 8000 +Generated 231 of 231 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 2 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmm/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Inconsistent image flags (src/domain.cpp:815) +Per MPI rank memory allocation (min/avg/max) = 84.59 | 84.59 | 84.59 Mbytes + Step Temp PotEng TotEng espring T_ring virial + 0 306.20099 -26166.171 -18250.089 0 0 -676.31071 + 10 23.892089 -26194.747 -25577.075 6.0651132 382.22935 -806.80519 + 20 27.051257 -26510.555 -25811.21 19.798054 432.77021 -722.7628 + 30 27.053581 -26558.283 -25858.879 46.409761 432.8074 -314.77439 + 40 19.1336 -26301.271 -25806.618 80.715535 306.1023 33.240778 + 50 19.277021 -25564.199 -25065.839 122.0411 308.39678 420.32166 + 60 20.762569 -24490.516 -23953.751 171.68786 332.16281 922.0134 + 70 18.895283 -23277.775 -22789.283 228.13302 302.28967 1340.4892 + 80 20.103678 -22119.758 -21600.026 293.69148 321.62176 1692.277 + 90 18.733051 -21236.09 -20751.793 371.14173 299.69426 2111.5887 + 100 18.287299 -20684.674 -20211.9 458.53118 292.56305 2434.0418 + 110 18.012563 -20345.727 -19880.056 560.10663 288.16778 2560.064 + 120 17.92092 -19998.225 -19534.923 676.3247 286.70167 2752.7643 + 130 17.494577 -19524.549 -19072.269 808.35795 279.88096 3081.7784 + 140 17.122298 -18815.761 -18373.106 957.14076 273.92518 3209.6451 + 150 17.447826 -17981.659 -17530.588 1123.5613 279.13303 3627.9284 + 160 17.6202 -17066.393 -16610.866 1310.1872 281.8907 4230.0427 + 170 17.370561 -16269.055 -15819.981 1507.5411 277.89693 4602.925 + 180 17.444401 -15692.511 -15241.529 1720.5033 279.07824 5000.4081 + 190 17.587192 -15476.239 -15021.565 1938.8703 281.36263 5063.6159 + 200 18.000638 -15470.948 -15005.586 2164.2187 287.977 4707.0585 +Loop time of 35.3335 on 1 procs for 200 steps with 8674 atoms + +Performance: 0.039 ns/day, 613.428 hours/ns, 5.660 timesteps/s, 49.098 katom-step/s +99.5% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 27.094 | 27.094 | 27.094 | 0.0 | 76.68 +Bond | 0.1276 | 0.1276 | 0.1276 | 0.0 | 0.36 +Kspace | 2.3873 | 2.3873 | 2.3873 | 0.0 | 6.76 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.11312 | 0.11312 | 0.11312 | 0.0 | 0.32 +Output | 0.0020657 | 0.0020657 | 0.0020657 | 0.0 | 0.01 +Modify | 5.5507 | 5.5507 | 5.5507 | 0.0 | 15.71 +Other | | 0.05892 | | | 0.17 + +Nlocal: 8674 ave 8674 max 8674 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 27366 ave 27366 max 27366 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 4.48585e+06 ave 4.48585e+06 max 4.48585e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 4485849 +Ave neighs/atom = 517.16036 +Ave special neighs/atom = 2.2573207 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:35 diff --git a/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.4 b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.4 new file mode 100644 index 0000000000..997a4c1acd --- /dev/null +++ b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.4 @@ -0,0 +1,146 @@ +LAMMPS (8 Feb 2023) +Processor partition = 4 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 8 pad + +units real +neigh_modify delay 2 every 1 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmm +improper_style harmonic + +pair_style lj/charmm/coul/long 11 12 +pair_modify mix arithmetic +kspace_style pppm 1e-4 + +read_data system.data +Reading data file ... + orthogonal box = (-23.109 -22.733 -23.141) to (22.853 22.912 22.8) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8674 atoms + reading velocities ... + 8674 velocities + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 6 = max angles/atom + scanning dihedrals ... + 18 = max dihedrals/atom + scanning impropers ... + 1 = max impropers/atom + reading bonds ... + 5869 bonds + reading angles ... + 3264 angles + reading dihedrals ... + 708 dihedrals + reading impropers ... + 38 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.004 seconds + read_data CPU = 0.138 seconds +#read_restart system_${ibead}.rest1 +special_bonds charmm + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 300.0 nhc 4 sp 2.0 + +thermo 10 +thermo_style custom step temp pe etotal f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +timestep 0.08 + +# restart 100 system_${ibead}.rest1 system_${ibead}.rest2 + +group prot id <= 256 +256 atoms in group prot +# dump 1 prot dcd 100 prot_${ibead}.dcd + +run 200 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 0.22071363 + grid = 20 20 20 + stencil order = 5 + estimated absolute RMS force accuracy = 0.024910591 + estimated relative force accuracy = 7.5017505e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 15625 8000 +Generated 231 of 231 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 2 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmm/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Inconsistent image flags (src/domain.cpp:815) +Per MPI rank memory allocation (min/avg/max) = 84.59 | 84.59 | 84.59 Mbytes + Step Temp PotEng TotEng espring T_ring virial + 0 306.20099 -26166.171 -18250.089 0 0 -676.31071 + 10 23.892095 -26119.899 -25502.227 4.2771563 382.22944 -813.96512 + 20 27.051103 -26287.602 -25588.262 15.607084 432.76775 -745.77933 + 30 27.042026 -26290.973 -25591.867 35.550734 432.62253 -326.69805 + 40 19.133546 -26173.654 -25679.002 70.11544 306.10144 -11.324153 + 50 19.302675 -25883.61 -25384.586 121.68648 308.8072 290.09295 + 60 20.704866 -25425.468 -24890.194 201.50535 331.23967 650.74045 + 70 18.95281 -24809.575 -24319.596 321.84847 303.21 967.87686 + 80 20.178541 -24115.258 -23593.591 491.86818 322.81943 1230.7506 + 90 18.755289 -23448.841 -22963.969 726.07287 300.05003 1426.7932 + 100 18.159265 -22868.418 -22398.954 1013.598 290.51475 1609.3405 + 110 17.922985 -22283.38 -21820.025 1355.5366 286.7347 1483.5981 + 120 17.617358 -21583.469 -21128.015 1747.6539 281.84524 1444.208 + 130 17.233206 -20748.165 -20302.643 2173.0115 275.6995 1597.8139 + 140 17.06066 -19726.034 -19284.972 2629.6918 272.9391 1704.3744 + 150 17.004216 -18648.306 -18208.703 3099.2098 272.0361 2025.6026 + 160 17.414218 -17588.638 -17138.435 3580.8838 278.59537 2747.2565 + 170 17.295959 -16669.449 -16222.304 4058.5589 276.70344 3432.2976 + 180 17.706054 -15991.367 -15533.62 4524.6837 283.26421 4008.5413 + 190 17.649786 -15623.329 -15167.037 4968.3076 282.36402 4251.4209 + 200 17.914982 -15484.434 -15021.286 5382.5961 286.60667 4187.5146 +Loop time of 35.3335 on 1 procs for 200 steps with 8674 atoms + +Performance: 0.039 ns/day, 613.428 hours/ns, 5.660 timesteps/s, 49.098 katom-step/s +98.1% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 27.644 | 27.644 | 27.644 | 0.0 | 78.24 +Bond | 0.1292 | 0.1292 | 0.1292 | 0.0 | 0.37 +Kspace | 2.4108 | 2.4108 | 2.4108 | 0.0 | 6.82 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.12913 | 0.12913 | 0.12913 | 0.0 | 0.37 +Output | 0.0021704 | 0.0021704 | 0.0021704 | 0.0 | 0.01 +Modify | 4.959 | 4.959 | 4.959 | 0.0 | 14.03 +Other | | 0.05951 | | | 0.17 + +Nlocal: 8674 ave 8674 max 8674 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 27366 ave 27366 max 27366 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 4.48585e+06 ave 4.48585e+06 max 4.48585e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 4485849 +Ave neighs/atom = 517.16036 +Ave special neighs/atom = 2.2573207 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:35 diff --git a/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.5 b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.5 new file mode 100644 index 0000000000..840f0e9011 --- /dev/null +++ b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.5 @@ -0,0 +1,146 @@ +LAMMPS (8 Feb 2023) +Processor partition = 5 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 8 pad + +units real +neigh_modify delay 2 every 1 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmm +improper_style harmonic + +pair_style lj/charmm/coul/long 11 12 +pair_modify mix arithmetic +kspace_style pppm 1e-4 + +read_data system.data +Reading data file ... + orthogonal box = (-23.109 -22.733 -23.141) to (22.853 22.912 22.8) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8674 atoms + reading velocities ... + 8674 velocities + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 6 = max angles/atom + scanning dihedrals ... + 18 = max dihedrals/atom + scanning impropers ... + 1 = max impropers/atom + reading bonds ... + 5869 bonds + reading angles ... + 3264 angles + reading dihedrals ... + 708 dihedrals + reading impropers ... + 38 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.004 seconds + read_data CPU = 0.139 seconds +#read_restart system_${ibead}.rest1 +special_bonds charmm + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 300.0 nhc 4 sp 2.0 + +thermo 10 +thermo_style custom step temp pe etotal f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +timestep 0.08 + +# restart 100 system_${ibead}.rest1 system_${ibead}.rest2 + +group prot id <= 256 +256 atoms in group prot +# dump 1 prot dcd 100 prot_${ibead}.dcd + +run 200 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 0.22071363 + grid = 20 20 20 + stencil order = 5 + estimated absolute RMS force accuracy = 0.024910591 + estimated relative force accuracy = 7.5017505e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 15625 8000 +Generated 231 of 231 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 2 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmm/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Inconsistent image flags (src/domain.cpp:815) +Per MPI rank memory allocation (min/avg/max) = 84.59 | 84.59 | 84.59 Mbytes + Step Temp PotEng TotEng espring T_ring virial + 0 306.20099 -26166.171 -18250.089 0 0 -676.31071 + 10 14.020019 -26051.605 -25689.152 7.3596437 382.89455 -789.8534 + 20 15.752865 -25975.95 -25568.698 25.331469 430.21956 -594.00538 + 30 17.181375 -25873.108 -25428.926 57.426817 469.23297 -181.78718 + 40 11.772036 -25785.82 -25481.483 101.0172 321.50089 318.12089 + 50 11.907234 -25813.038 -25505.205 157.46734 325.19321 630.72419 + 60 12.407378 -25738.74 -25417.978 232.72881 338.85245 1042.2805 + 70 11.569463 -25485.646 -25186.546 331.59654 315.9685 1219.4474 + 80 12.423569 -25007.927 -24686.746 455.84829 339.29462 1585.4189 + 90 11.222078 -24360.128 -24070.009 610.51406 306.48124 1770.0165 + 100 10.746584 -23649.481 -23371.654 794.88729 293.49524 1751.0868 + 110 10.688659 -22906.499 -22630.17 1011.4935 291.91326 1164.4167 + 120 10.413653 -22131.25 -21862.03 1258.7802 284.40268 494.75639 + 130 10.207431 -21354.621 -21090.733 1532.012 278.77066 -85.33744 + 140 9.9484212 -20506.422 -20249.23 1833.2006 271.69695 -582.25635 + 150 9.8592991 -19641.288 -19386.399 2150.5002 269.26298 -860.97106 + 160 9.9476229 -18750.371 -18493.199 2484.32 271.67515 -781.67257 + 170 9.9050652 -17855.648 -17599.576 2822.3305 270.51287 -564.01235 + 180 9.9461836 -17049.565 -16792.431 3164.947 271.63584 -414.44888 + 190 9.9650455 -16346.398 -16088.776 3500.8641 272.15097 -250.509 + 200 10.114117 -15721.822 -15460.346 3824.3372 276.22219 -539.50977 +Loop time of 35.3336 on 1 procs for 200 steps with 8674 atoms + +Performance: 0.039 ns/day, 613.431 hours/ns, 5.660 timesteps/s, 49.098 katom-step/s +98.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 27.569 | 27.569 | 27.569 | 0.0 | 78.03 +Bond | 0.13166 | 0.13166 | 0.13166 | 0.0 | 0.37 +Kspace | 2.4398 | 2.4398 | 2.4398 | 0.0 | 6.91 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.12114 | 0.12114 | 0.12114 | 0.0 | 0.34 +Output | 0.0022707 | 0.0022707 | 0.0022707 | 0.0 | 0.01 +Modify | 5.0103 | 5.0103 | 5.0103 | 0.0 | 14.18 +Other | | 0.05914 | | | 0.17 + +Nlocal: 8674 ave 8674 max 8674 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 27366 ave 27366 max 27366 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 4.48585e+06 ave 4.48585e+06 max 4.48585e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 4485849 +Ave neighs/atom = 517.16036 +Ave special neighs/atom = 2.2573207 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:35 diff --git a/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.6 b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.6 new file mode 100644 index 0000000000..a98694339b --- /dev/null +++ b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.6 @@ -0,0 +1,146 @@ +LAMMPS (8 Feb 2023) +Processor partition = 6 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 8 pad + +units real +neigh_modify delay 2 every 1 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmm +improper_style harmonic + +pair_style lj/charmm/coul/long 11 12 +pair_modify mix arithmetic +kspace_style pppm 1e-4 + +read_data system.data +Reading data file ... + orthogonal box = (-23.109 -22.733 -23.141) to (22.853 22.912 22.8) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8674 atoms + reading velocities ... + 8674 velocities + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 6 = max angles/atom + scanning dihedrals ... + 18 = max dihedrals/atom + scanning impropers ... + 1 = max impropers/atom + reading bonds ... + 5869 bonds + reading angles ... + 3264 angles + reading dihedrals ... + 708 dihedrals + reading impropers ... + 38 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.004 seconds + read_data CPU = 0.139 seconds +#read_restart system_${ibead}.rest1 +special_bonds charmm + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 300.0 nhc 4 sp 2.0 + +thermo 10 +thermo_style custom step temp pe etotal f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +timestep 0.08 + +# restart 100 system_${ibead}.rest1 system_${ibead}.rest2 + +group prot id <= 256 +256 atoms in group prot +# dump 1 prot dcd 100 prot_${ibead}.dcd + +run 200 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 0.22071363 + grid = 20 20 20 + stencil order = 5 + estimated absolute RMS force accuracy = 0.024910591 + estimated relative force accuracy = 7.5017505e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 15625 8000 +Generated 231 of 231 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 2 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmm/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Inconsistent image flags (src/domain.cpp:815) +Per MPI rank memory allocation (min/avg/max) = 84.59 | 84.59 | 84.59 Mbytes + Step Temp PotEng TotEng espring T_ring virial + 0 306.20099 -26166.171 -18250.089 0 0 -676.31071 + 10 14.02002 -25861.333 -25498.879 45.268744 382.8946 -722.47561 + 20 15.752886 -25289.441 -24882.188 135.42322 430.22014 -482.48877 + 30 17.181691 -24659.071 -24214.881 316.76011 469.24159 115.80651 + 40 11.76983 -24165.345 -23861.065 544.21259 321.44065 710.32531 + 50 11.904289 -24034.29 -23726.534 812.12301 325.1128 1057.7309 + 60 12.409559 -23964.986 -23644.167 1115.614 338.91201 1490.6948 + 70 11.53241 -23718.204 -23420.061 1442.0767 314.95657 1654.3805 + 80 12.377693 -23123.366 -22803.371 1794.1167 338.04173 2019.537 + 90 11.21341 -22129.26 -21839.365 2172.5974 306.24451 2037.5349 + 100 10.778526 -20922.126 -20643.474 2553.3173 294.36759 1922.6067 + 110 10.656113 -19666.579 -19391.091 2944.1884 291.02442 1115.4533 + 120 10.374573 -18508.305 -18240.096 3331.7564 283.3354 401.15223 + 130 10.057534 -17613.953 -17353.939 3714.254 274.67688 -248.49945 + 140 9.7972276 -16953.726 -16700.443 4076.4386 267.56777 -841.79062 + 150 9.8266474 -16502.516 -16248.472 4422.7241 268.37124 -1155.8854 + 160 9.9655308 -16127.142 -15869.507 4748.4514 272.16422 -1094.1994 + 170 9.9292831 -15818.923 -15562.225 5045.9331 271.17428 -884.00102 + 180 10.157102 -15473.205 -15210.618 5313.5511 277.39613 -553.25499 + 190 10.068063 -15095.751 -14835.466 5545.0144 274.96443 -237.36247 + 200 10.155151 -14754.017 -14491.48 5742.1288 277.34285 -332.89648 +Loop time of 35.3338 on 1 procs for 200 steps with 8674 atoms + +Performance: 0.039 ns/day, 613.434 hours/ns, 5.660 timesteps/s, 49.098 katom-step/s +97.5% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 27.875 | 27.875 | 27.875 | 0.0 | 78.89 +Bond | 0.12707 | 0.12707 | 0.12707 | 0.0 | 0.36 +Kspace | 2.4348 | 2.4348 | 2.4348 | 0.0 | 6.89 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.11906 | 0.11906 | 0.11906 | 0.0 | 0.34 +Output | 0.0021503 | 0.0021503 | 0.0021503 | 0.0 | 0.01 +Modify | 4.7164 | 4.7164 | 4.7164 | 0.0 | 13.35 +Other | | 0.05955 | | | 0.17 + +Nlocal: 8674 ave 8674 max 8674 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 27366 ave 27366 max 27366 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 4.48585e+06 ave 4.48585e+06 max 4.48585e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 4485849 +Ave neighs/atom = 517.16036 +Ave special neighs/atom = 2.2573207 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:35 diff --git a/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.7 b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.7 new file mode 100644 index 0000000000..55f561c6ec --- /dev/null +++ b/examples/PACKAGES/pimd/prot-hairpin/log.25Feb23.scp.g++.8.7 @@ -0,0 +1,146 @@ +LAMMPS (8 Feb 2023) +Processor partition = 7 +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +variable ibead uloop 8 pad + +units real +neigh_modify delay 2 every 1 + +atom_style full +bond_style harmonic +angle_style charmm +dihedral_style charmm +improper_style harmonic + +pair_style lj/charmm/coul/long 11 12 +pair_modify mix arithmetic +kspace_style pppm 1e-4 + +read_data system.data +Reading data file ... + orthogonal box = (-23.109 -22.733 -23.141) to (22.853 22.912 22.8) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8674 atoms + reading velocities ... + 8674 velocities + scanning bonds ... + 4 = max bonds/atom + scanning angles ... + 6 = max angles/atom + scanning dihedrals ... + 18 = max dihedrals/atom + scanning impropers ... + 1 = max impropers/atom + reading bonds ... + 5869 bonds + reading angles ... + 3264 angles + reading dihedrals ... + 708 dihedrals + reading impropers ... + 38 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 9 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 21 = max # of special neighbors + special bonds CPU = 0.004 seconds + read_data CPU = 0.138 seconds +#read_restart system_${ibead}.rest1 +special_bonds charmm + +fix 1 all pimd/nvt method nmpimd fmass 1.0 temp 300.0 nhc 4 sp 2.0 + +thermo 10 +thermo_style custom step temp pe etotal f_1[1] f_1[2] f_1[3] +thermo_modify colname f_1[1] espring colname f_1[2] T_ring colname f_1[3] virial +timestep 0.08 + +# restart 100 system_${ibead}.rest1 system_${ibead}.rest2 + +group prot id <= 256 +256 atoms in group prot +# dump 1 prot dcd 100 prot_${ibead}.dcd + +run 200 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 0.22071363 + grid = 20 20 20 + stencil order = 5 + estimated absolute RMS force accuracy = 0.024910591 + estimated relative force accuracy = 7.5017505e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 15625 8000 +Generated 231 of 231 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 2 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 14 + ghost atom cutoff = 14 + binsize = 7, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmm/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Inconsistent image flags (src/domain.cpp:815) +Per MPI rank memory allocation (min/avg/max) = 84.59 | 84.59 | 84.59 Mbytes + Step Temp PotEng TotEng espring T_ring virial + 0 306.20099 -26166.171 -18250.089 0 0 -676.31071 + 10 11.858328 -24949.912 -24643.343 11.21746 379.42274 -589.42772 + 20 13.313433 -22332.782 -21988.595 25.891404 425.98075 -189.42618 + 30 14.492332 -18605.094 -18230.43 60.87232 463.70115 853.22726 + 40 10.100576 -15158.156 -14897.03 103.87947 323.18115 1870.5664 + 50 10.437976 -12976.762 -12706.913 161.50852 333.97672 2649.3283 + 60 10.544993 -11868.561 -11595.946 225.58416 337.40089 3264.9267 + 70 9.756396 -11851.23 -11599.002 303.66274 312.16868 3549.9084 + 80 10.642372 -12316.225 -12041.092 392.92619 340.51663 3853.3301 + 90 9.3834726 -12853.33 -12610.744 501.5373 300.2365 3943.7218 + 100 8.9858656 -13254.517 -13022.21 619.67563 287.51455 3852.5038 + 110 8.9674385 -13407.55 -13175.719 752.87088 286.92495 3047.0516 + 120 8.7200626 -13430.184 -13204.748 897.34682 279.00983 2614.6547 + 130 8.4404226 -13413.462 -13195.256 1051.1979 270.06239 2361.7563 + 140 8.1867868 -13405.663 -13194.013 1215.2723 261.94697 2042.4666 + 150 8.26024 -13427.11 -13213.561 1389.0864 264.29721 2179.5219 + 160 8.2139102 -13403.956 -13191.605 1573.9454 262.81482 2489.6486 + 170 8.2258918 -13367.291 -13154.631 1768.2198 263.19819 2793.6911 + 180 8.4548603 -13245.62 -13027.04 1968.4468 270.52434 3070.2942 + 190 8.4589955 -12920.954 -12702.268 2174.1321 270.65665 3360.4993 + 200 8.537811 -12448.973 -12228.248 2382.746 273.17846 3370.2077 +Loop time of 35.3334 on 1 procs for 200 steps with 8674 atoms + +Performance: 0.039 ns/day, 613.428 hours/ns, 5.660 timesteps/s, 49.098 katom-step/s +99.1% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 27.709 | 27.709 | 27.709 | 0.0 | 78.42 +Bond | 0.13165 | 0.13165 | 0.13165 | 0.0 | 0.37 +Kspace | 2.4416 | 2.4416 | 2.4416 | 0.0 | 6.91 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.12826 | 0.12826 | 0.12826 | 0.0 | 0.36 +Output | 0.002116 | 0.002116 | 0.002116 | 0.0 | 0.01 +Modify | 4.863 | 4.863 | 4.863 | 0.0 | 13.76 +Other | | 0.05754 | | | 0.16 + +Nlocal: 8674 ave 8674 max 8674 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 27366 ave 27366 max 27366 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 4.48585e+06 ave 4.48585e+06 max 4.48585e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 4485849 +Ave neighs/atom = 517.16036 +Ave special neighs/atom = 2.2573207 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:35 From 0b5acdca51fe8f1de48914ee0a6fd6831ff49fe4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 26 Feb 2023 13:47:11 -0500 Subject: [PATCH 07/58] convert hard error about invalid atom masses from EAM potentials to warning --- src/atom.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/atom.cpp b/src/atom.cpp index 32285758c0..610ac809fe 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -1914,11 +1914,15 @@ void Atom::set_mass(const char *file, int line, const char *str, int type_offset void Atom::set_mass(const char *file, int line, int itype, double value) { - if (mass == nullptr) error->all(file,line, "Cannot set mass for atom style {}", atom_style); + if (mass == nullptr) + error->all(file,line, "Cannot set per-type mass for atom style {}", atom_style); if (itype < 1 || itype > ntypes) error->all(file,line,"Invalid type {} for atom mass {}", itype, value); - if (value <= 0.0) error->all(file,line,"Invalid atom mass value {}", value); - + if (value <= 0.0) { + if (comm->me == 0) + error->warning(file,line,"Ignoring invalid mass value {} for atom type {}", value, itype); + return; + } mass[itype] = value; mass_setflag[itype] = 1; } From 8368b78f23d25ba6643684c8fd8d11aea0501bc0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 26 Feb 2023 13:52:31 -0500 Subject: [PATCH 08/58] document the change in mass handling --- doc/src/pair_eam.rst | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/src/pair_eam.rst b/doc/src/pair_eam.rst index 27347b77f0..654f49c166 100644 --- a/doc/src/pair_eam.rst +++ b/doc/src/pair_eam.rst @@ -116,11 +116,12 @@ are parameterized in terms of LAMMPS :doc:`metal units `. .. note:: - Note that unlike for other potentials, cutoffs for EAM - potentials are not set in the pair_style or pair_coeff command; they - are specified in the EAM potential files themselves. Likewise, the - EAM potential files list atomic masses; thus you do not need to use - the :doc:`mass ` command to specify them. + Note that unlike for other potentials, cutoffs for EAM potentials are not + set in the pair_style or pair_coeff command; they are specified in the EAM + potential files themselves. Likewise, valid EAM potential files usually + contain atomic masses; thus you may not need to use the :doc:`mass ` + command to specify them, unless the potential file uses a dummy value (e.g. + 0.0). LAMMPS will print a warning, if this is the case. There are web sites that distribute and document EAM potentials stored in DYNAMO or other formats: From 095f1d328e15993cff962163a1be5371ef5e5ae0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 24 Feb 2023 12:05:14 -0500 Subject: [PATCH 09/58] make non-polymorph functions and all data members protected. --- src/REPLICA/fix_pimd_nvt.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/REPLICA/fix_pimd_nvt.h b/src/REPLICA/fix_pimd_nvt.h index 6f1321bbda..2cd1397562 100644 --- a/src/REPLICA/fix_pimd_nvt.h +++ b/src/REPLICA/fix_pimd_nvt.h @@ -52,6 +52,8 @@ class FixPIMDNVT : public Fix { int pack_forward_comm(int, int *, double *, int, int *) override; void unpack_forward_comm(int, int, double *) override; + protected: + int method; int np; double inverse_np; From a6eac92cd59016f72d71a95626bbce39d69f12a1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 Feb 2023 11:20:33 -0500 Subject: [PATCH 10/58] update list of pair styles that support fix adapt --- doc/src/fix_adapt.rst | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/doc/src/fix_adapt.rst b/doc/src/fix_adapt.rst index a3e851faf0..8dda1b3bb6 100644 --- a/doc/src/fix_adapt.rst +++ b/doc/src/fix_adapt.rst @@ -139,7 +139,7 @@ formulas for the meaning of these parameters: +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`buck/mdf ` | a,c | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ -| :doc:`coul/cut ` | scale | type pairs | +| :doc:`coul/cut, coul/cut/global ` | scale | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`coul/cut/soft ` | lambda | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ @@ -151,10 +151,16 @@ formulas for the meaning of these parameters: +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`coul/long/soft ` | scale, lambda, coulombic_cutoff | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ +| :doc:`coul/slater/long ` | scale | type pairs | ++------------------------------------------------------------------------------+--------------------------------------------------+-------------+ +| :doc:`coul/streitz ` | scale | type pairs | ++------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`eam, eam/alloy, eam/fs ` | scale | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`gauss ` | a | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ +| :doc:`harmonic/cut ` | k, cutoff | type pairs | ++------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`lennard/mdf ` | A,B | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`lj/class2 ` | epsilon,sigma | type pairs | @@ -181,6 +187,8 @@ formulas for the meaning of these parameters: +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`lubricate ` | mu | global | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ +| :doc:`meam ` | scale | type pairs | ++------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`mie/cut ` | epsilon,sigma,gamma_repulsive,gamma_attractive | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`morse, morse/smooth/linear ` | D0,R0,alpha | type pairs | @@ -191,7 +199,7 @@ formulas for the meaning of these parameters: +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`nm/cut/coul/cut, nm/cut/coul/long ` | E0,R0,m,n,coulombic_cutoff | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ -| :doc:`reaxff ` | chi, eta, gamma | type global | +| :doc:`pace, pace/extrapolation ` | scale | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`snap ` | scale | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ @@ -203,11 +211,13 @@ formulas for the meaning of these parameters: +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`spin/neel ` | coulombic_cutoff | type global | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ +| :doc:`soft ` | a | type pairs | ++------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`table ` | table_cutoff | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`ufm ` | epsilon,sigma | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ -| :doc:`soft ` | a | type pairs | +| :doc:`wf/cut ` | epsilon,sigma,nu,mu | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ .. note:: From 02190b82c2dbec001731a7b8668e3583d3b4bfe0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 Feb 2023 11:22:14 -0500 Subject: [PATCH 11/58] link pair style hybrid/scaled to fix adapt and fix alchemy --- doc/src/pair_hybrid.rst | 3 ++- src/ML-SNAP/pair_snap.cpp | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/src/pair_hybrid.rst b/doc/src/pair_hybrid.rst index 5ba5fb51d2..a33991e43e 100644 --- a/doc/src/pair_hybrid.rst +++ b/doc/src/pair_hybrid.rst @@ -91,7 +91,8 @@ contributions from sub-styles are weighted by their scale factors, which may be fractional or even negative. Furthermore the scale factors may be variables that may change during a simulation. This enables switching smoothly between two different pair styles or two different -parameter sets during a run. +parameter sets during a run in a similar fashion as could be done +with :doc:`fix adapt ` or :doc:`fix alchemy `. All pair styles that will be used are listed as "sub-styles" following the *hybrid* or *hybrid/overlay* keyword, in any order. In case of the diff --git a/src/ML-SNAP/pair_snap.cpp b/src/ML-SNAP/pair_snap.cpp index 034f76b13a..3029e9212d 100644 --- a/src/ML-SNAP/pair_snap.cpp +++ b/src/ML-SNAP/pair_snap.cpp @@ -796,6 +796,8 @@ double PairSNAP::memory_usage() return bytes; } +/* ---------------------------------------------------------------------- */ + void *PairSNAP::extract(const char *str, int &dim) { dim = 2; From a98c497dbb282fe1b0b73c5b9ca96f81a743985a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 Feb 2023 18:10:45 -0500 Subject: [PATCH 12/58] redesign the Howto pages on water models and add inputs and molecule files --- doc/src/Howto.rst | 1 + doc/src/Howto_spc.rst | 114 ++++++- doc/src/Howto_tip3p.rst | 244 ++++++++++++--- doc/src/Howto_tip4p.rst | 325 +++++++++++++++----- doc/src/Howto_tip5p.rst | 161 ++++++++++ doc/utils/sphinx-config/false_positives.txt | 3 + 6 files changed, 718 insertions(+), 130 deletions(-) create mode 100644 doc/src/Howto_tip5p.rst diff --git a/doc/src/Howto.rst b/doc/src/Howto.rst index f229deafb3..1366ecb839 100644 --- a/doc/src/Howto.rst +++ b/doc/src/Howto.rst @@ -70,6 +70,7 @@ Force fields howto Howto_amoeba Howto_tip3p Howto_tip4p + Howto_tip5p Howto_spc Packages howto diff --git a/doc/src/Howto_spc.rst b/doc/src/Howto_spc.rst index 520942547e..6414d3b846 100644 --- a/doc/src/Howto_spc.rst +++ b/doc/src/Howto_spc.rst @@ -20,7 +20,6 @@ atoms and the water molecule to run a rigid SPC model. | LJ :math:`\epsilon`, :math:`\sigma` of OH, HH = 0.0 | :math:`r_0` of OH bond = 1.0 | :math:`\theta_0` of HOH angle = 109.47\ :math:`^{\circ}` -| Note that as originally proposed, the SPC model was run with a 9 Angstrom cutoff for both LJ and Coulomb terms. It can also be used @@ -33,16 +32,123 @@ the partial charge assignments change: | O charge = -0.8476 | H charge = 0.4238 -| See the :ref:`(Berendsen) ` reference for more details on both the SPC and SPC/E models. +Below is the code for a LAMMPS input file and a molecule file +(``spce.mol``) of SPC/E water for use with the :doc:`molecule command +` demonstrating how to set up a small bulk water system for +SPC/E with rigid bonds. + +.. code-block:: LAMMPS + + units real + atom_style full + region box block -5 5 -5 5 -5 5 + create_box 2 box bond/types 1 angle/types 1 & + extra/bond/per/atom 2 extra/angle/per/atom 1 extra/special/per/atom 2 + + mass 1 15.9994 + mass 2 1.008 + + pair_style lj/cut/coul/cut 10.0 + pair_coeff 1 1 0.1553 3.166 + pair_coeff 1 2 0.0 1.0 + pair_coeff 2 2 0.0 1.0 + + bond_style zero + bond_coeff 1 1.0 + + angle_style zero + angle_coeff 1 109.47 + + molecule water spce.mol + create_atoms 0 random 33 34564 NULL mol water 25367 overlap 1.33 + + timestep 1.0 + fix rigid all shake 0.0001 10 10000 b 1 a 1 + minimize 0.0 0.0 1000 10000 + run 0 post no + reset_timestep 0 + velocity all create 300.0 5463576 + fix integrate all nvt temp 300.0 300.0 1.0 + + thermo_style custom step temp press etotal density pe ke + thermo 1000 + run 20000 upto + write_data tip4p.data nocoeff + +.. _spce_molecule: +.. code-block:: + + # Water molecule. SPC/E geometry + + 3 atoms + 2 bonds + 1 angles + + Coords + + 1 0.00000 -0.06461 0.00000 + 2 0.81649 0.51275 0.00000 + 3 -0.81649 0.51275 0.00000 + + Types + + 1 1 # O + 2 2 # H + 3 2 # H + + Charges + + 1 -0.8476 + 2 0.4238 + 3 0.4238 + + Bonds + + 1 1 1 2 + 2 1 1 3 + + Angles + + 1 1 2 1 3 + + Shake Flags + + 1 1 + 2 1 + 3 1 + + Shake Atoms + + 1 1 2 3 + 2 1 2 3 + 3 1 2 3 + + Shake Bond Types + + 1 1 1 1 + 2 1 1 1 + 3 1 1 1 + + Special Bond Counts + + 1 2 0 0 + 2 1 1 0 + 3 1 1 0 + + Special Bonds + + 1 2 3 + 2 1 3 + 3 1 2 + Wikipedia also has a nice article on `water models `_. ---------- .. _howto-Berendsen: -**(Berendsen)** Berendsen, Grigera, Straatsma, J Phys Chem, 91, -6269-6271 (1987). +**(Berendsen)** Berendsen, Grigera, Straatsma, J Phys Chem, 91, 6269-6271 (1987). diff --git a/doc/src/Howto_tip3p.rst b/doc/src/Howto_tip3p.rst index 5571b3291a..682c7f2640 100644 --- a/doc/src/Howto_tip3p.rst +++ b/doc/src/Howto_tip3p.rst @@ -1,53 +1,211 @@ TIP3P water model ================= -The TIP3P water model as implemented in CHARMM -:ref:`(MacKerell) ` specifies a 3-site rigid water molecule with -charges and Lennard-Jones parameters assigned to each of the 3 atoms. -In LAMMPS the :doc:`fix shake ` command can be used to hold -the two O-H bonds and the H-O-H angle rigid. A bond style of -*harmonic* and an angle style of *harmonic* or *charmm* should also be -used. +The TIP3P water model as implemented in CHARMM :ref:`(MacKerell) +` specifies a 3-site rigid water molecule with charges and +Lennard-Jones parameters assigned to each of the 3 atoms. -These are the additional parameters (in real units) to set for O and H -atoms and the water molecule to run a rigid TIP3P-CHARMM model with a -cutoff. The K values can be used if a flexible TIP3P model (without -fix shake) is desired. If the LJ epsilon and sigma for HH and OH are -set to 0.0, it corresponds to the original 1983 TIP3P model -:ref:`(Jorgensen) `. +A suitable pair style with cutoff Coulomb would be: -| O mass = 15.9994 -| H mass = 1.008 -| O charge = -0.834 -| H charge = 0.417 -| LJ :math:`\epsilon` of OO = 0.1521 -| LJ :math:`\sigma` of OO = 3.1507 -| LJ :math:`\epsilon` of HH = 0.0460 -| LJ :math:`\sigma` of HH = 0.4000 -| LJ :math:`\epsilon` of OH = 0.0836 -| LJ :math:`\sigma` of OH = 1.7753 -| K of OH bond = 450 -| :math:`r_0` of OH bond = 0.9572 -| K of HOH angle = 55 -| :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}` -| +* :doc:`pair_style lj/cut/coul/cut ` -These are the parameters to use for TIP3P with a long-range Coulomb -solver (e.g. Ewald or PPPM in LAMMPS), see :ref:`(Price) ` for -details: +or these commands for a long-range Coulomb model: + +* :doc:`pair_style lj/cut/coul/long ` +* :doc:`pair_style lj/cut/coul/long/soft ` +* :doc:`kspace_style pppm ` +* :doc:`kspace_style pppm/disp ` + +In LAMMPS the :doc:`fix shake or fix rattle ` command can be +used to hold the two O-H bonds and the H-O-H angle rigid. A bond style +of :doc:`harmonic ` and an angle style of :doc:`harmonic +` or :doc:`charmm ` should also be used. +In case of rigid bonds also bond style :doc:`zero ` and angle +style :doc:`zero ` can be used. + +The table below lists the force field parameters (in real :doc:`units +`) to for the water molecule atoms to run a rigid or flexible +TIP3P-CHARMM model with a cutoff, the original 1983 TIP3P model +:ref:`(Jorgensen) `, or a TIP3P model with parameters +optimized for a long-range Coulomb solver (e.g. Ewald or PPPM in LAMMPS) +:ref:`(Price) `. The K values can be used if a flexible TIP3P +model (without fix shake) is desired, for rigid bonds/angles they are +ignored. + + .. list-table:: + :header-rows: 1 + :widths: auto + + * - Parameter + - TIP3P-CHARMM + - TIP3P (original) + - TIP3P (Ewald) + * - O mass (amu) + - 15.9994 + - 15.9994 + - 15.9994 + * - H mass (amu) + - 1.008 + - 1.008 + - 1.008 + * - O charge (:math:`e`) + - -0.834 + - -0.834 + - -0.834 + * - H charge (:math:`e`) + - 0.417 + - 0.417 + - 0.417 + * - LJ :math:`\epsilon` of OO (kcal/mole) + - 0.1521 + - 0.1521 + - 0.1020 + * - LJ :math:`\sigma` of OO (:math:`\AA`) + - 3.1507 + - 3.1507 + - 3.188 + * - LJ :math:`\epsilon` of HH (kcal/mole) + - 0.0460 + - 0.0 + - 0.0 + * - LJ :math:`\sigma` of HH (:math:`\AA`) + - 0.4 + - 1.0 + - 1.0 + * - LJ :math:`\epsilon` of OH (kcal/mole) + - 0.0836 + - 0.0 + - 0.0 + * - LJ :math:`\sigma` of OH (:math:`\AA`) + - 1.7753 + - 1.0 + - 1.0 + * - K of OH bond (kcal/mole/:math:`\AA^2`) + - 450 + - 450 + - 450 + * - :math:`r_0` of OH bond (:math:`\AA`) + - 0.9572 + - 0.9572 + - 0.9572 + * - K of HOH angle (kcal/mole) + - 55.0 + - 55.0 + - 55.0 + * - :math:`\theta_0` of HOH angle + - 104.52\ :math:`^{\circ}` + - 104.52\ :math:`^{\circ}` + - 104.52\ :math:`^{\circ}` + +Below is the code for a LAMMPS input file and a molecule file +(``tip3p.mol``) of TIP3P water for use with the :doc:`molecule command +` demonstrating how to set up a small bulk water system for +TIP3P with rigid bonds. + +.. code-block:: LAMMPS + + units real + atom_style full + region box block -5 5 -5 5 -5 5 + create_box 2 box bond/types 1 angle/types 1 & + extra/bond/per/atom 2 extra/angle/per/atom 1 extra/special/per/atom 2 + + mass 1 15.9994 + mass 2 1.008 + + pair_style lj/cut/coul/cut 8.0 + pair_coeff 1 1 0.1521 3.1507 + pair_coeff 2 2 0.0 1.0 + + bond_style zero + bond_coeff 1 0.9574 + + angle_style zero + angle_coeff 1 104.52 + + molecule water tip3p.mol + create_atoms 0 random 33 34564 NULL mol water 25367 overlap 1.33 + + fix rigid all shake 0.001 10 10000 b 1 a 1 + minimize 0.0 0.0 1000 10000 + run 0 post no + + reset_timestep 0 + velocity all create 300.0 5463576 + fix integrate all nvt temp 300 300 1.0 + + thermo_style custom step temp press etotal pe + + thermo 1000 + run 20000 + write_data tip3p.data nocoeff + +.. _tip3p_molecule: +.. code-block:: + + # Water molecule. TIP3P geometry + + 3 atoms + 2 bonds + 1 angles + + Coords + + 1 0.00000 -0.06556 0.00000 + 2 0.75695 0.52032 0.00000 + 3 -0.75695 0.52032 0.00000 + + Types + + 1 1 # O + 2 2 # H + 3 2 # H + + Charges + + 1 -0.834 + 2 0.417 + 3 0.417 + + Bonds + + 1 1 1 2 + 2 1 1 3 + + Angles + + 1 1 2 1 3 + + Shake Flags + + 1 1 + 2 1 + 3 1 + + Shake Atoms + + 1 1 2 3 + 2 1 2 3 + 3 1 2 3 + + Shake Bond Types + + 1 1 1 1 + 2 1 1 1 + 3 1 1 1 + + Special Bond Counts + + 1 2 0 0 + 2 1 1 0 + 3 1 1 0 + + Special Bonds + + 1 2 3 + 2 1 3 + 3 1 2 -| O mass = 15.9994 -| H mass = 1.008 -| O charge = -0.830 -| H charge = 0.415 -| LJ :math:`\epsilon` of OO = 0.102 -| LJ :math:`\sigma` of OO = 3.188 -| LJ :math:`\epsilon`, :math:`\sigma` of OH, HH = 0.0 -| K of OH bond = 450 -| :math:`r_0` of OH bond = 0.9572 -| K of HOH angle = 55 -| :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}` -| Wikipedia also has a nice article on `water models `_. diff --git a/doc/src/Howto_tip4p.rst b/doc/src/Howto_tip4p.rst index 19b811a282..7912557e61 100644 --- a/doc/src/Howto_tip4p.rst +++ b/doc/src/Howto_tip4p.rst @@ -2,100 +2,138 @@ TIP4P water model ================= The four-point TIP4P rigid water model extends the traditional -three-point TIP3P model by adding an additional site, usually -massless, where the charge associated with the oxygen atom is placed. -This site M is located at a fixed distance away from the oxygen along -the bisector of the HOH bond angle. A bond style of *harmonic* and an -angle style of *harmonic* or *charmm* should also be used. +:doc:`three-point TIP3P ` model by adding an additional +site M, usually massless, where the charge associated with the oxygen +atom is placed. This site M is located at a fixed distance away from +the oxygen along the bisector of the HOH bond angle. A bond style of +:doc:`harmonic ` and an angle style of :doc:`harmonic +` or :doc:`charmm ` should also be used. +In case of rigid bonds also bond style :doc:`zero ` and angle +style :doc:`zero ` can be used. -A TIP4P model is run with LAMMPS using either these commands -for a cutoff model: +There are two ways to implement TIP4P water in LAMMPS: -* :doc:`pair_style tip4p/cut ` -* :doc:`pair_style lj/cut/tip4p/cut ` +#. Use a specially written pair style that uses the :ref:`TIP3P geometry + ` without the point M. The point M location is then + implicitly derived from the other atoms or each water molecule and + used during the force computation. The forces on M are then + projected on the oxygen and the two hydrogen atoms. This is + computationally very efficient, but the charge distribution in space + is only correct within the tip4p labeled styles. So all other + computations using charges will "see" the negative charge incorrectly + on the oxygen atom. -or these commands for a long-range model: + This can be done with the following pair styles for Coulomb with a cutoff: -* :doc:`pair_style tip4p/long ` -* :doc:`pair_style lj/cut/tip4p/long ` -* :doc:`pair_style lj/long/tip4p/long ` -* :doc:`pair_style tip4p/long/soft ` -* :doc:`pair_style lj/cut/tip4p/long/soft ` -* :doc:`kspace_style pppm/tip4p ` -* :doc:`kspace_style pppm/disp/tip4p ` + * :doc:`pair_style tip4p/cut ` + * :doc:`pair_style lj/cut/tip4p/cut ` -The bond lengths and bond angles should be held fixed using the -:doc:`fix shake ` or :doc:`fix rattle ` command, -unless a parameterization for a flexible TIP4P model is used. The -parameter sets listed below are all for rigid TIP4P model variants and -thus the bond and angle force constants are not used and can be set to -any legal value; only equilibrium length and angle are used. + or these commands for a long-range Coulomb treatment: -These are the additional parameters (in real units) to set for O and H -atoms and the water molecule to run a rigid TIP4P model with a cutoff -:ref:`(Jorgensen) `. Note that the OM distance is specified in -the :doc:`pair_style ` command, not as part of the pair -coefficients. + * :doc:`pair_style tip4p/long ` + * :doc:`pair_style lj/cut/tip4p/long ` + * :doc:`pair_style lj/long/tip4p/long ` + * :doc:`pair_style tip4p/long/soft ` + * :doc:`pair_style lj/cut/tip4p/long/soft ` + * :doc:`kspace_style pppm/tip4p ` + * :doc:`kspace_style pppm/disp/tip4p ` -| O mass = 15.9994 -| H mass = 1.008 -| O charge = -1.040 -| H charge = 0.520 -| :math:`r_0` of OH bond = 0.9572 -| :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}` -| OM distance = 0.15 -| LJ :math:`\epsilon` of O-O = 0.1550 -| LJ :math:`\sigma` of O-O = 3.1536 -| LJ :math:`\epsilon`, :math:`\sigma` of OH, HH = 0.0 -| Coulomb cutoff = 8.5 -| + The bond lengths and bond angles should be held fixed using the + :doc:`fix shake ` or :doc:`fix rattle ` command, + unless a parameterization for a flexible TIP4P model is used. The + parameter sets listed below are all for rigid TIP4P model variants and + thus the bond and angle force constants are not used and can be set to + any legal value; only equilibrium length and angle are used. -For the TIP4/Ice model (J Chem Phys, 122, 234511 (2005); -https://doi.org/10.1063/1.1931662) these values can be used: +#. Use an :ref:`explicit 4 point TIP4P geometry ` where + the oxygen atom carries no charge and the M point no Lennard-Jones + interactions. Since :doc:`fix shake ` or :doc:`fix rattle + ` may not be applied to this kind of geometry, :doc:`fix + rigid or fix rigid/small ` or its thermostatted variants + are required to maintain a rigid geometry. This avoids some of the + issues with respect to analysis and non-tip4p styles, but it is a + more costly force computation (more atoms in the same volume and thus + more neighbors in the neighbor lists) and requires a much shorter + timestep for stable integration of the rigid body motion. Since no + bonds or angles are required, they do not need to be defined and atom + style charge would be sufficient for a bulk TIP4P water system. In + order to avoid that LAMMPS produces an error due to the massless M + site a tiny non-zero mass needs to be assigned. -| O mass = 15.9994 -| H mass = 1.008 -| O charge = -1.1794 -| H charge = 0.5897 -| :math:`r_0` of OH bond = 0.9572 -| :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}` -| OM distance = 0.1577 -| LJ :math:`\epsilon` of O-O = 0.21084 -| LJ :math:`\sigma` of O-O = 3.1668 -| LJ :math:`\epsilon`, :math:`\sigma` of OH, HH = 0.0 -| Coulomb cutoff = 8.5 -| +The table below lists the force field parameters (in real :doc:`units +`) to for a selection of popular variants of the TIP4P model. +There is the rigid TIP4P model with a cutoff :ref:`(Jorgensen) +`, the TIP4/Ice model :ref:`(Abascal1) `, the +TIP4P/2005 model :ref:`(Abascal2) ` and a version of TIP4P +parameters adjusted for use with a long-range Coulombic solver +(e.g. Ewald or PPPM in LAMMPS). Note that for implicit TIP4P models the +OM distance is specified in the :doc:`pair_style ` command, +not as part of the pair coefficients. -For the TIP4P/2005 model (J Chem Phys, 123, 234505 (2005); -https://doi.org/10.1063/1.2121687), these values can be used: + .. list-table:: + :header-rows: 1 + :widths: auto -| O mass = 15.9994 -| H mass = 1.008 -| O charge = -1.1128 -| H charge = 0.5564 -| :math:`r_0` of OH bond = 0.9572 -| :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}` -| OM distance = 0.1546 -| LJ :math:`\epsilon` of O-O = 0.1852 -| LJ :math:`\sigma` of O-O = 3.1589 -| LJ :math:`\epsilon`, :math:`\sigma` of OH, HH = 0.0 -| Coulomb cutoff = 8.5 -| - -These are the parameters to use for TIP4P with a long-range Coulombic -solver (e.g. Ewald or PPPM in LAMMPS): - -| O mass = 15.9994 -| H mass = 1.008 -| O charge = -1.0484 -| H charge = 0.5242 -| :math:`r_0` of OH bond = 0.9572 -| :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}` -| OM distance = 0.1250 -| LJ :math:`\epsilon` of O-O = 0.16275 -| LJ :math:`\sigma` of O-O = 3.16435 -| LJ :math:`\epsilon`, :math:`\sigma` of OH, HH = 0.0 -| + * - Parameter + - TIP4P (original) + - TIP4P/Ice + - TIP4P/2005 + - TIP4P (Ewald) + * - O mass (amu) + - 15.9994 + - 15.9994 + - 15.9994 + - 15.9994 + * - H mass (amu) + - 1.008 + - 1.008 + - 1.008 + - 1.008 + * - O or M charge (:math:`e`) + - -1.040 + - -1.1794 + - -1.1128 + - -1.04844 + * - H charge (:math:`e`) + - 0.520 + - 0.5897 + - 0.5564 + - 0.52422 + * - LJ :math:`\epsilon` of OO (kcal/mole) + - 0.1550 + - 0.1577 + - 0.1852 + - 0.16275 + * - LJ :math:`\sigma` of OO (:math:`\AA`) + - 3.1536 + - 3.1668 + - 3.1589 + - 3.16435 + * - LJ :math:`\epsilon` of HH, MM, OH, OM, HM (kcal/mole) + - 0.0 + - 0.0 + - 0.0 + - 0.0 + * - LJ :math:`\sigma` of HH, MM, OH, OM, HM (:math:`\AA`) + - 1.0 + - 1.0 + - 1.0 + - 1.0 + * - :math:`r_0` of OH bond (:math:`\AA`) + - 0.9572 + - 0.9572 + - 0.9572 + - 0.9572 + * - :math:`\theta_0` of HOH angle + - 104.52\ :math:`^{\circ}` + - 104.52\ :math:`^{\circ}` + - 104.52\ :math:`^{\circ}` + - 104.52\ :math:`^{\circ}` + * - OM distance (:math:`\AA`) + - 0.15 + - 0.1577 + - 0.1546 + - 0.1250 Note that the when using the TIP4P pair style, the neighbor list cutoff for Coulomb interactions is effectively extended by a distance 2 \* (OM @@ -108,6 +146,117 @@ trade-off for your model. The OM distance and the LJ and Coulombic cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long ` command. +Below is the code for a LAMMPS input file using the implicit method and +the :ref:`TIP3P molecule file `. Because the TIP4P +charges are different from TIP3P they need to be reset (or the molecule +file changed): + +.. code-block:: LAMMPS + + units real + atom_style full + region box block -5 5 -5 5 -5 5 + create_box 2 box bond/types 1 angle/types 1 & + extra/bond/per/atom 2 extra/angle/per/atom 1 extra/special/per/atom 2 + + mass 1 15.9994 + mass 2 1.008 + + pair_style lj/cut/tip4p/cut 1 2 1 1 0.15 8.0 + pair_coeff 1 1 0.1550 3.1536 + pair_coeff 2 2 0.0 1.0 + + bond_style zero + bond_coeff 1 0.9574 + + angle_style zero + angle_coeff 1 104.52 + + molecule water tip3p.mol # this uses the TIP3P geometry + create_atoms 0 random 33 34564 NULL mol water 25367 overlap 1.33 + # must change charges for TIP4P + set type 1 charge -1.040 + set type 2 charge 0.520 + + fix rigid all shake 0.001 10 10000 b 1 a 1 + minimize 0.0 0.0 1000 10000 + run 0 post no + + reset_timestep 0 + velocity all create 300.0 5463576 + fix integrate all nvt temp 300 300 1.0 + + thermo_style custom step temp press etotal pe + + thermo 1000 + run 20000 + write_data tip3p.data nocoeff + +Below is the code for a LAMMPS input file using the explicit method and +a TIP4P molecule file. Because of using :doc:`fix rigid/nvt/small +` no bonds need to be defined and thus no extra storage needs +to be reserved for them, but we need to switch to atom style full or use +:doc:`fix property/atom mol ` so that fix +rigid/nvt/small can identify rigid bodies by their molecule ID: + +.. code-block:: LAMMPS + + units real + atom_style charge + region box block -5 5 -5 5 -5 5 + create_box 3 box + + mass 1 15.9994 + mass 2 1.008 + mass 3 1.0e-100 + + pair_style lj/cut/coul/cut 8.0 + pair_coeff 1 1 0.1550 3.1536 + pair_coeff 2 2 0.0 1.0 + pair_coeff 3 3 0.0 1.0 + + fix mol all property/atom mol + molecule water tip4p.mol + create_atoms 0 random 33 34564 NULL mol water 25367 overlap 1.33 + + timestep 0.1 + fix integrate all rigid/nvt/small molecule temp 300.0 300.0 1.0 + velocity all create 300.0 5463576 + + thermo_style custom step temp press etotal density pe ke + thermo 1000 + run 20000 + write_data tip4p.data nocoeff + +.. _tip4p_molecule: +.. code-block:: + + # Water molecule. Explicit TIP4P geometry for use with fix rigid + + 4 atoms + + Coords + + 1 0.00000 -0.06556 0.00000 + 2 0.75695 0.52032 0.00000 + 2 -0.75695 0.52032 0.00000 + 4 0.00000 0.08444 0.00000 + + Types + + 1 1 # O + 2 2 # H + 3 2 # H + 4 3 # M + + Charges + + 1 0.000 + 2 0.520 + 3 0.520 + 4 -1.040 + + Wikipedia also has a nice article on `water models `_. ---------- @@ -116,3 +265,13 @@ Wikipedia also has a nice article on `water models ` by adding two additional sites L, usually +massless, where the charge associated with the oxygen atom is placed. +These sites L are located at a fixed distance away from the oxygen atom, +forming a tetrahedral angle that is rotated by 90 degrees from the HOH +plane. Those sites thus somewhat approximate lone pairs of the oxygen +and consequently improve the water structure to become even more +"tetrahedral" in comparison to the :doc:`four-point TIP4P model +`. + +A suitable pair style with cutoff Coulomb would be: + +* :doc:`pair_style lj/cut/coul/cut ` + +or these commands for a long-range model: + +* :doc:`pair_style lj/cut/coul/long ` +* :doc:`pair_style lj/cut/coul/long/soft ` +* :doc:`kspace_style pppm ` +* :doc:`kspace_style pppm/disp ` + +A TIP5P model *must* be run using a :doc:`rigid fix ` since +there is no other option to keep this kind of structure rigid in LAMMPS. +In order to avoid that LAMMPS produces an error due to the massless L +sites, those need to be assigned a tiny non-zero mass. + +The table below lists the force field parameters (in real :doc:`units +`) to for a the TIP5P model with a cutoff :ref:`(Mahoney) +` and the TIP5P-E model :ref:`(Rick) ` for use with a +long-range Coulombic solver (e.g. Ewald or PPPM in LAMMPS). + + .. list-table:: + :header-rows: 1 + :widths: auto + + * - Parameter + - TIP5P + - TIP5P-E + * - O mass (amu) + - 15.9994 + - 15.9994 + * - H mass (amu) + - 1.008 + - 1.008 + * - O charge (:math:`e`) + - 0.0 + - 0.0 + * - L charge (:math:`e`) + - -0.241 + - -0.241 + * - H charge (:math:`e`) + - 0.241 + - 0.241 + * - LJ :math:`\epsilon` of OO (kcal/mole) + - 0.1600 + - 0.1780 + * - LJ :math:`\sigma` of OO (:math:`\AA`) + - 3.1200 + - 3.0970 + * - LJ :math:`\epsilon` of HH, LL, OH, OL, HL (kcal/mole) + - 0.0 + - 0.0 + * - LJ :math:`\sigma` of HH, LL, OH, OL, HL (:math:`\AA`) + - 1.0 + - 1.0 + * - :math:`r_0` of OH bond (:math:`\AA`) + - 0.9572 + - 0.9572 + * - :math:`\theta_0` of HOH angle + - 104.52\ :math:`^{\circ}` + - 104.52\ :math:`^{\circ}` + * - OL distance (:math:`\AA`) + - 0.70 + - 0.70 + * - :math:`\theta_0` of LOL angle + - 109.47\ :math:`^{\circ}` + - 109.47\ :math:`^{\circ}` + +Below is the code for a LAMMPS input file for setting up a simulation of +TIP5P water with a molecule file. Because of using :doc:`fix +rigid/nvt/small ` no bonds need to be defined and thus no +extra storage needs to be reserved for them, but we need to switch to +atom style full or use :doc:`fix property/atom mol ` +so that fix rigid/nvt/small can identify rigid bodies by their molecule +ID: + +.. code-block:: LAMMPS + + units real + atom_style charge + region box block -5 5 -5 5 -5 5 + create_box 3 box + + mass 1 15.9994 + mass 2 1.008 + mass 3 1.0e-100 + + pair_style lj/cut/coul/cut 8.0 + pair_coeff 1 1 0.160 3.12 + pair_coeff 2 2 0.0 1.0 + pair_coeff 3 3 0.0 1.0 + + fix mol all property/atom mol + molecule water tip5p.mol + create_atoms 0 random 33 34564 NULL mol water 25367 overlap 1.33 + + timestep 0.20 + fix integrate all rigid/nvt/small molecule temp 300.0 300.0 1.0 + reset_timestep 0 + velocity all create 300.0 5463576 + + thermo_style custom step temp press etotal density pe ke + thermo 1000 + run 20000 + write_data tip5p.data nocoeff + +.. _tip5p_molecule: +.. code-block:: + + # Water molecule. Explicit TIP5P geometry for use with fix rigid + + 5 atoms + + Coords + + 1 0.00000 -0.06556 0.00000 + 2 0.75695 0.52032 0.00000 + 3 -0.75695 0.52032 0.00000 + 4 0.00000 -0.46971 0.57154 + 5 0.00000 -0.46971 -0.57154 + + Types + + 1 1 # O + 2 2 # H + 3 2 # H + 4 3 # L + 5 3 # L + + Charges + + 1 0.000 + 2 0.241 + 3 0.241 + 4 -0.241 + 5 -0.241 + +Wikipedia also has a nice article on `water models `_. + +---------- + +.. _Mahoney: + +**(Mahoney)** Mahoney, Jorgensen, J Chem Phys 112, 8910 (2000) + +.. _Rick: + +**(Rick)** Rick, J Chem Phys 120, 6085 (2004) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index fdacbf9c4c..0349c894a2 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1,5 +1,6 @@ aa aat +Abascal abc abf ABI @@ -1985,6 +1986,7 @@ magelec Maginn magneton magnetons +Mahoney mainboard mainboards makefile @@ -3186,6 +3188,7 @@ Sandia sandybrown sanitizer Sanyal +Sanz Sarath sc scafacos From 2507e414d9e4c38f4c7d0bc9cfdee4daf51c5538 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 Feb 2023 18:11:05 -0500 Subject: [PATCH 13/58] fix broken link --- doc/src/fix_adapt.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/fix_adapt.rst b/doc/src/fix_adapt.rst index 8dda1b3bb6..926b8ed0c6 100644 --- a/doc/src/fix_adapt.rst +++ b/doc/src/fix_adapt.rst @@ -153,7 +153,7 @@ formulas for the meaning of these parameters: +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`coul/slater/long ` | scale | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ -| :doc:`coul/streitz ` | scale | type pairs | +| :doc:`coul/streitz ` | scale | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`eam, eam/alloy, eam/fs ` | scale | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ From 103e63eca532476df63abb586ca4b716aaf1aa35 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 Feb 2023 18:58:57 -0500 Subject: [PATCH 14/58] more careful checks and print error messages to global root. --- src/REPLICA/fix_alchemy.cpp | 83 +++++++++++++++++++++++++------------ src/variable.cpp | 2 +- 2 files changed, 58 insertions(+), 27 deletions(-) diff --git a/src/REPLICA/fix_alchemy.cpp b/src/REPLICA/fix_alchemy.cpp index 2f99f667b6..c6617c4600 100644 --- a/src/REPLICA/fix_alchemy.cpp +++ b/src/REPLICA/fix_alchemy.cpp @@ -35,12 +35,12 @@ using namespace FixConst; FixAlchemy::FixAlchemy(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), commbuf(nullptr) { - if (narg != 4) error->all(FLERR, "Incorrect number of arguments for fix alchemy"); - if (universe->nworlds != 2) error->all(FLERR, "Must use exactly two partitions"); + if (narg != 4) error->universe_all(FLERR, "Incorrect number of arguments for fix alchemy"); + if (universe->nworlds != 2) error->universe_all(FLERR, "Must use exactly two partitions"); if (utils::strmatch(arg[3], "^v_")) id_lambda = arg[3] + 2; else - error->all(FLERR, "Must use variable as lambda argument to fix alchemy"); + error->universe_all(FLERR, "Must use variable as lambda argument to fix alchemy"); lambda = epot[0] = epot[1] = epot[2] = 0.0; progress = 0; @@ -73,7 +73,9 @@ FixAlchemy::FixAlchemy(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), int allfail = 0; MPI_Allreduce(&fail, &allfail, 1, MPI_INT, MPI_MAX, universe->uworld); if (allfail) - error->all(FLERR, "Number of atoms and domain decomposition must match for both partitions"); + error->universe_all(FLERR, + "Number of atoms and domain decomposition must be the same " + "on all partitions"); id_pe = std::string(id) + "_pe"; pe = modify->add_compute(id_pe + " all pe"); @@ -130,17 +132,19 @@ void FixAlchemy::init() memory->create(commbuf, sizeof(double) * nmax, "alchemy:nmax"); if (modify->get_fix_by_style("^balance").size() > 0) - error->all(FLERR, "Fix alchemy is not compatible with load balancing"); + error->universe_all(FLERR, "Fix alchemy is not compatible with load balancing"); if (modify->get_fix_by_style("^alchemy").size() > 1) - error->all(FLERR, "There may only one fix alchemy at a time"); + error->universe_all(FLERR, "There may only one fix alchemy at a time"); + + if (utils::strmatch(update->integrate_style, "^respa")) + error->universe_all(FLERR, "Must not use run style respa with fix alchemy"); ivar = input->variable->find(id_lambda.c_str()); if (ivar < 0) - error->universe_one(FLERR, fmt::format("Variable {} for fix alchemy does not exist", id_lambda)); + error->universe_one(FLERR, fmt::format("Fix alchemy variable {} does not exist", id_lambda)); if (!input->variable->equalstyle(ivar)) - error->universe_one(FLERR, - fmt::format("Variable {} for fix alchemy is invalid style", id_lambda)); + error->universe_one(FLERR, fmt::format("Fix alchemy variable {} is invalid style", id_lambda)); lambda = input->variable->compute_equal(ivar); // synchronize box dimensions, determine if resync during run will be needed. @@ -156,33 +160,60 @@ void FixAlchemy::init() void FixAlchemy::setup(int vflag) { - if (utils::strmatch(update->integrate_style, "^respa")) { - auto respa = dynamic_cast(update->integrate); - respa->copy_flevel_f(ilevel_respa); - post_force_respa(vflag, ilevel_respa, 0); - respa->copy_f_flevel(ilevel_respa); - } else { - post_force(vflag); - } - if (universe->me == 0) { - double delta = update->ntimestep - update->beginstep; - if ((delta != 0.0) && (update->beginstep != update->endstep)) - delta /= update->endstep - update->beginstep; - progress = static_cast(delta*100.0); - auto msg = fmt::format("Starting alchemical transformation at {:>3d}%\n", progress); + progress = 0; + auto msg = fmt::format("Starting alchemical run\n"); if (universe->uscreen) fmt::print(universe->uscreen, msg); if (universe->ulogfile) fmt::print(universe->ulogfile, msg); } + + // recheck domain decomposition, atom ordering, and synchronize positions + + post_integrate(); + + // mix initial forces + + post_force(vflag); } /* ---------------------------------------------------------------------- */ void FixAlchemy::post_integrate() { + // re-check that we have the same domain decomposition on all ranks + const int nlocal = atom->nlocal; + int my_nlocal[2] = {0, 0}; + int all_nlocal[2] = {0, 0}; + my_nlocal[universe->iworld] = nlocal; + MPI_Allreduce(my_nlocal, all_nlocal, 2, MPI_INT, MPI_SUM, samerank); + int fail = (all_nlocal[0] == all_nlocal[1]) ? 0 : 1; + int allfail = 0; + MPI_Allreduce(&fail, &allfail, 1, MPI_INT, MPI_MAX, universe->uworld); + if (allfail) + error->universe_all(FLERR, + "Number of atoms and domain decomposition must be the same on " + "all partitions"); + + // check that we have the same atom order on all ranks + // re-use communication buffer for positions and forces + + tagint *tagbuf = (tagint *) commbuf; + tagint *tag = atom->tag; + if (universe->iworld == 0) { + for (int i = 0; i < nlocal; ++i) tagbuf[i] = tag[i]; + } + MPI_Bcast(tagbuf, nlocal, MPI_LMP_TAGINT, 0, samerank); + fail = allfail = 0; + if (universe->iworld > 0) { + for (int i = 0; i < nlocal; ++i) + if (tag[i] != tagbuf[i]) fail = 1; + } + MPI_Allreduce(&fail, &allfail, 1, MPI_INT, MPI_MAX, universe->uworld); + if (allfail) error->universe_all(FLERR, "Atoms must have the same order on all partitions"); + // synchronize atom positions - const int nall = atom->nlocal + atom->nghost; + const int nall = atom->nlocal; MPI_Bcast(&atom->x[0][0], 3 * nall, MPI_DOUBLE, 0, samerank); // synchronize box dimensions, if needed @@ -228,10 +259,10 @@ void FixAlchemy::post_force(int /*vflag*/) double delta = update->ntimestep - update->beginstep; if ((delta != 0.0) && (update->beginstep != update->endstep)) delta /= update->endstep - update->beginstep; - int status = static_cast(delta*100.0); + int status = static_cast(delta * 100.0); if ((status / 10) > (progress / 10)) { progress = status; - auto msg = fmt::format(" Alchemical transformation progress: {:>3d}%\n", progress); + auto msg = fmt::format(" Alchemical run progress: {:>3d}%\n", progress); if (universe->uscreen) fmt::print(universe->uscreen, msg); if (universe->ulogfile) fmt::print(universe->ulogfile, msg); } diff --git a/src/variable.cpp b/src/variable.cpp index 2ac9bd0364..fffd9b35c3 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -239,7 +239,7 @@ void Variable::set(int narg, char **arg) style[nvar] = WORLD; num[nvar] = narg - 2; if (num[nvar] != universe->nworlds) - error->all(FLERR,"World variable count doesn't match # of partitions"); + error->universe_all(FLERR,"World variable count doesn't match # of partitions"); which[nvar] = universe->iworld; pad[nvar] = 0; data[nvar] = new char*[num[nvar]]; From bc4da2afef42a5c9d23d87cf22422cd3ec81f115 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 Feb 2023 19:26:18 -0500 Subject: [PATCH 15/58] roll back change causing unittest failures --- src/variable.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/variable.cpp b/src/variable.cpp index fffd9b35c3..2ac9bd0364 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -239,7 +239,7 @@ void Variable::set(int narg, char **arg) style[nvar] = WORLD; num[nvar] = narg - 2; if (num[nvar] != universe->nworlds) - error->universe_all(FLERR,"World variable count doesn't match # of partitions"); + error->all(FLERR,"World variable count doesn't match # of partitions"); which[nvar] = universe->iworld; pad[nvar] = 0; data[nvar] = new char*[num[nvar]]; From a715a56afebcd35a7548ee6f1afd0f520ca2596e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 1 Mar 2023 20:41:00 -0500 Subject: [PATCH 16/58] fix typo --- doc/src/fix_wall.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/fix_wall.rst b/doc/src/fix_wall.rst index 7b38b6035c..2ca215bf71 100644 --- a/doc/src/fix_wall.rst +++ b/doc/src/fix_wall.rst @@ -371,7 +371,7 @@ is *no*, which means the system must be non-periodic when using a wall. But you may wish to use a periodic box. E.g. to allow some particles to interact with the wall via the fix group-ID, and others to pass through it and wrap around a periodic box. In this case you should ensure that -the wall if sufficiently far enough away from the box boundary. If you +the wall is sufficiently far enough away from the box boundary. If you do not, then particles may interact with both the wall and with periodic images on the other side of the box, which is probably not what you want. From 04d30329145047c0df69573a1ecd9ba35ef09cdb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 1 Mar 2023 20:41:13 -0500 Subject: [PATCH 17/58] improve error messages --- src/read_data.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/read_data.cpp b/src/read_data.cpp index 59db1b6937..6785e51ecc 100644 --- a/src/read_data.cpp +++ b/src/read_data.cpp @@ -1985,7 +1985,8 @@ void ReadData::paircoeffs() next = strchr(buf, '\n'); *next = '\0'; parse_coeffs(buf, nullptr, 1, 2, toffset, tlabelflag, lmap->lmap2lmap.atom); - if (ncoeffarg == 0) error->all(FLERR, "Unexpected empty line in PairCoeffs section"); + if (ncoeffarg == 0) + error->all(FLERR, "Unexpected empty line in PairCoeffs section. Expected {} lines.", ntypes); force->pair->coeff(ncoeffarg, coeffarg); buf = next + 1; } @@ -2016,7 +2017,9 @@ void ReadData::pairIJcoeffs() next = strchr(buf, '\n'); *next = '\0'; parse_coeffs(buf, nullptr, 0, 2, toffset, tlabelflag, lmap->lmap2lmap.atom); - if (ncoeffarg == 0) error->all(FLERR, "Unexpected empty line in PairCoeffs section"); + if (ncoeffarg == 0) + error->all(FLERR, "Unexpected empty line in PairIJCoeffs section. " + "Expected {} lines.", (ntypes-1)*ntypes); force->pair->coeff(ncoeffarg, coeffarg); buf = next + 1; } @@ -2045,7 +2048,8 @@ void ReadData::bondcoeffs() next = strchr(buf, '\n'); *next = '\0'; parse_coeffs(buf, nullptr, 0, 1, boffset, blabelflag, lmap->lmap2lmap.bond); - if (ncoeffarg == 0) error->all(FLERR, "Unexpected empty line in BondCoeffs section"); + if (ncoeffarg == 0) + error->all(FLERR, "Unexpected empty line in BondCoeffs section. Expected {} lines.", nbondtypes); force->bond->coeff(ncoeffarg, coeffarg); buf = next + 1; } From c5c787ca5c04075507de7c0c8bc9d99baea9b00f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 1 Mar 2023 20:41:36 -0500 Subject: [PATCH 18/58] better align with docs bundled with the MSCG library --- doc/src/fix_mscg.rst | 66 ++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/doc/src/fix_mscg.rst b/doc/src/fix_mscg.rst index 5e9bc520b5..3255f3fbe9 100644 --- a/doc/src/fix_mscg.rst +++ b/doc/src/fix_mscg.rst @@ -40,15 +40,15 @@ Description This fix applies the Multi-Scale Coarse-Graining (MSCG) method to snapshots from a dump file to generate potentials for coarse-grained -simulations from all-atom simulations, using a force-matching -technique (:ref:`Izvekov `, :ref:`Noid `). +simulations from all-atom simulations, using a force-matching technique +(:ref:`Izvekov `, :ref:`Noid `). -It makes use of the MS-CG library, written and maintained by Greg -Voth's group at the University of Chicago, which is freely available -on their `MS-CG GitHub site `_. See instructions -on obtaining and installing the MS-CG library in the src/MSCG/README -file, which must be done before you build LAMMPS with this fix command -and use the command in a LAMMPS input script. +It makes use of the MS-CG library, written and maintained by Greg Voth's +group at the University of Chicago, which is freely available on their +`MS-CG GitHub site `_. +See instructions on obtaining and installing the MS-CG library in the +src/MSCG/README file, which must be done before you build LAMMPS with +this fix command and use the command in a LAMMPS input script. An example script using this fix is provided the examples/mscg directory. @@ -65,15 +65,18 @@ simulations is as follows: 6. Check the results of the force matching. 7. Run coarse-grained simulations using the new coarse-grained potentials. -This fix can perform the range finding and force matching steps 4 and -5 of the above workflow when used in conjunction with the -:doc:`rerun ` command. It does not perform steps 1-3 and 6-7. +This fix can perform the range finding and force matching steps 4 and 5 +of the above workflow when used in conjunction with the :doc:`rerun +` command. It does not perform steps 1-3 and 6-7. -Step 2 can be performed using a Python script (what is the name?) -provided with the MS-CG library which defines the coarse-grained model -and converts a standard LAMMPS dump file for an all-atom simulation -(step 1) into a LAMMPS dump file which has the positions of and forces -on the coarse-grained beads. +Step 2 can be performed using a Python script (cgmap), which defines the +coarse-grained model and converts a standard LAMMPS dump file for an +all-atom simulation (step 1) into a LAMMPS dump file which has the +positions of and forces on the coarse-grained beads. To use cgmap the +following repositories need to be downloaded and installed. + +#. The custom lammpsdata branch of mdtraj from https://github.com/hockyg/mdtraj/tree/lammpsdata +#. The master branch of cgmap from https://github.com/uchicago-voth/cgmap In step 3, an input file named "control.in" is needed by the MS-CG library which sets parameters for the range finding and force matching @@ -83,12 +86,12 @@ info on this file. When this fix is used to perform steps 4 and 5, the MS-CG library also produces additional output files. The range finder functionality -(step 4) outputs files defining pair and bonded interaction ranges. -The force matching functionality (step 5) outputs tabulated force -files for every interaction in the system. Other diagnostic files can -also be output depending on the parameters in the MS-CG library input -script. Again, see the documentation provided with the MS-CG library -for more info. +(step 4) outputs files defining pair and bonded interaction ranges. The +force matching functionality (step 5) outputs tabulated force files for +every interaction in the system. Other diagnostic files can also be +output depending on the parameters in the MS-CG library input script. +Again, see the documentation provided with the MS-CG library for more +info. ---------- @@ -97,8 +100,8 @@ be invoked. If *on*, the step 4 range finder functionality is invoked. *off*, the step 5 force matching functionality is invoked. If the *name* keyword is used, string names are defined to associate -with the integer atom types in LAMMPS. *Ntype* names must be -provided, one for each atom type (1-Ntype). +with the integer atom types in LAMMPS. *Ntype* names must be provided, +one for each atom type (1-Ntype). The *max* keyword specifies the maximum number of bonds, angles, and dihedrals a bead can have in the coarse-grained model. @@ -107,16 +110,13 @@ Restrictions """""""""""" This fix is part of the MSCG package. It is only enabled if LAMMPS was -built with that package. See the :doc:`Build package ` -doc page for more info. +built with that package. Building the MSCG package also requires +external libraries. See the :doc:`Build_package` and :doc:`Build_extras` +pages for more info. -The MS-CG library uses C++11, which may not be supported by older -compilers. The MS-CG library also has some additional numeric library -dependencies, which are described in its documentation. - -Currently, the MS-CG library is not setup to run in parallel with MPI, -so this fix can only be used in a serial LAMMPS build and run -on a single processor. +Currently, the MS-CG library is not set up to run in parallel with MPI, +so this fix can only be used in a serial LAMMPS build and run on a +single processor. Related commands """""""""""""""" From 8a1771aa61011195e14f8e1c6b640b1159cc6310 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 1 Mar 2023 20:52:15 -0500 Subject: [PATCH 19/58] implement documented pair style requirements for DPD-MESO intgreation fixes --- doc/src/fix_mvv_dpd.rst | 30 +++++++++++++++++------------- doc/src/pair_mesodpd.rst | 2 +- src/DPD-MESO/fix_mvv_dpd.cpp | 9 +++++++-- src/DPD-MESO/fix_mvv_edpd.cpp | 9 +++++++-- src/DPD-MESO/fix_mvv_tdpd.cpp | 8 ++++++-- 5 files changed, 38 insertions(+), 20 deletions(-) diff --git a/doc/src/fix_mvv_dpd.rst b/doc/src/fix_mvv_dpd.rst index efabab2183..c2f8a50391 100644 --- a/doc/src/fix_mvv_dpd.rst +++ b/doc/src/fix_mvv_dpd.rst @@ -65,33 +65,37 @@ a default value of 0.5 is used, which effectively reproduces the standard velocity-Verlet (VV) scheme. For more details, see :ref:`Groot `. -Fix *mvv/dpd* updates the position and velocity of each atom. It can -be used with the :doc:`pair_style mdpd ` command or other +Fix *mvv/dpd* updates the position and velocity of each atom. It can be +used with the :doc:`pair_style mdpd ` command or other pair styles such as :doc:`pair dpd `. -Fix *mvv/edpd* updates the per-atom temperature, in addition to -position and velocity, and must be used with the :doc:`pair_style edpd ` command. +Fix *mvv/edpd* updates the per-atom temperature, in addition to position +and velocity, and must be used with the :doc:`pair_style edpd +` command. -Fix *mvv/tdpd* updates the per-atom chemical concentration, in -addition to position and velocity, and must be used with the -:doc:`pair_style tdpd ` command. +Fix *mvv/tdpd* updates the per-atom chemical concentration, in addition +to position and velocity, and must be used with the :doc:`pair_style +tdpd ` command. ---------- Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. None of the :doc:`fix_modify ` options -are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various :doc:`output commands `. +No information about this fix is written to :doc:`binary restart files +`. None of the :doc:`fix_modify ` options are +relevant to this fix. No global or per-atom quantities are stored by +this fix for access by various :doc:`output commands `. No parameter of this fix can be used with the *start/stop* keywords of -the :doc:`run ` command. This fix is not invoked during :doc:`energy minimization `. +the :doc:`run ` command. This fix is not invoked during +:doc:`energy minimization `. Restrictions """""""""""" -This fix is part of the DPD-MESO package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` page for more info. +These fixes are part of the DPD-MESO package. They are only enabled if +LAMMPS was built with that package. See the :doc:`Build package +` page for more info. Related commands """""""""""""""" diff --git a/doc/src/pair_mesodpd.rst b/doc/src/pair_mesodpd.rst index e5cd2643dd..5d244f3b1d 100644 --- a/doc/src/pair_mesodpd.rst +++ b/doc/src/pair_mesodpd.rst @@ -299,7 +299,7 @@ Restrictions """""""""""" The pair styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* are part of -the DPD-MESO package. It is only enabled if LAMMPS was built with +the DPD-MESO package. They are only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. diff --git a/src/DPD-MESO/fix_mvv_dpd.cpp b/src/DPD-MESO/fix_mvv_dpd.cpp index c475fa6651..18c88bd293 100644 --- a/src/DPD-MESO/fix_mvv_dpd.cpp +++ b/src/DPD-MESO/fix_mvv_dpd.cpp @@ -22,11 +22,13 @@ ------------------------------------------------------------------------- */ #include "fix_mvv_dpd.h" -#include + #include "atom.h" +#include "error.h" #include "force.h" #include "update.h" -#include "error.h" + +#include using namespace LAMMPS_NS; using namespace FixConst; @@ -65,6 +67,9 @@ void FixMvvDPD::init() dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; + + if (!force->pair_match("^edpd",0) && !force->pair_match("^dpd",0)) + error->all(FLERR, "Must use a dpd or edpd pair style with fix mvv/edpd"); } /* ---------------------------------------------------------------------- diff --git a/src/DPD-MESO/fix_mvv_edpd.cpp b/src/DPD-MESO/fix_mvv_edpd.cpp index ac8ee858e3..03dd048119 100644 --- a/src/DPD-MESO/fix_mvv_edpd.cpp +++ b/src/DPD-MESO/fix_mvv_edpd.cpp @@ -31,11 +31,13 @@ ------------------------------------------------------------------------- */ #include "fix_mvv_edpd.h" -#include + #include "atom.h" +#include "error.h" #include "force.h" #include "update.h" -#include "error.h" + +#include using namespace LAMMPS_NS; using namespace FixConst; @@ -71,6 +73,9 @@ void FixMvvEDPD::init() { dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; + + if (!force->pair_match("^edpd",0)) + error->all(FLERR, "Must use pair style edpd with fix mvv/edpd"); } /* ---------------------------------------------------------------------- diff --git a/src/DPD-MESO/fix_mvv_tdpd.cpp b/src/DPD-MESO/fix_mvv_tdpd.cpp index d579dc778a..f3894da214 100644 --- a/src/DPD-MESO/fix_mvv_tdpd.cpp +++ b/src/DPD-MESO/fix_mvv_tdpd.cpp @@ -27,11 +27,13 @@ ------------------------------------------------------------------------- */ #include "fix_mvv_tdpd.h" -#include + #include "atom.h" +#include "error.h" #include "force.h" #include "update.h" -#include "error.h" + +#include using namespace LAMMPS_NS; using namespace FixConst; @@ -69,6 +71,8 @@ void FixMvvTDPD::init() { dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; + if (!force->pair_match("^tdpd",0)) + error->all(FLERR, "Must use pair style tdpd with fix mvv/tdpd"); } /* ---------------------------------------------------------------------- From e4e994f1b1bf9d57912dd26833eeed2280574635 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 1 Mar 2023 20:59:48 -0500 Subject: [PATCH 20/58] add missing versionadded tags --- doc/src/fix_wall.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/src/fix_wall.rst b/doc/src/fix_wall.rst index 2ca215bf71..cdf3c16cef 100644 --- a/doc/src/fix_wall.rst +++ b/doc/src/fix_wall.rst @@ -194,6 +194,8 @@ For style *wall/morse*, the energy E is given by a Morse potential: E = D_0 \left[ e^{- 2 \alpha (r - r_0)} - 2 e^{- \alpha (r - r_0)} \right] \qquad r < r_c +.. versionadded:: TBD + For style *wall/lepton*, the energy E is provided as an Lepton expression string using "r" as the distance variable. The `Lepton library `_, that the *wall/lepton* @@ -213,6 +215,8 @@ spring as in fix *wall/harmonic* with a force constant *K* (same as :math:`\epsilon` above) of 100 energy units. More details on the Lepton expression strings are given below. +.. versionadded:: TBD + For style *wall/table*, the energy E and forces are determined from interpolation tables listed in one or more files as a function of distance. The interpolation tables are used to evaluate energy and From 63a391a649511a28aad1d3b3041a6dc3fe06403a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 1 Mar 2023 21:05:22 -0500 Subject: [PATCH 21/58] replace leftover -DCUDA_PROXY --- doc/src/Build_extras.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index c4f9bf6aff..ac6a27464b 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -274,7 +274,7 @@ To enable GPU binning via CUDA performance primitives set the Makefile variable most modern GPUs. To support the CUDA multiprocessor server you can set the define -``-DCUDA_PROXY``. Please note that in this case you must **not** use +``-DCUDA_MPS_SUPPORT``. Please note that in this case you must **not** use the CUDA performance primitives and thus set the variable ``CUDPP_OPT`` to empty. From de466cf998d20c8689d4c6773c4011b6379f4c3d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 2 Mar 2023 07:31:33 -0500 Subject: [PATCH 22/58] improve documentation of the use of verlet/split run style. reformat. --- doc/src/run_style.rst | 154 +++++++++++++++++++++++------------------- 1 file changed, 86 insertions(+), 68 deletions(-) diff --git a/doc/src/run_style.rst b/doc/src/run_style.rst index 423ab762b3..0804ce5c82 100644 --- a/doc/src/run_style.rst +++ b/doc/src/run_style.rst @@ -78,27 +78,41 @@ processors. See the :doc:`-partition command-line switch ` for info on how to run LAMMPS with multiple partitions. Specifically, this style performs all computation except the -:doc:`kspace_style ` portion of the force field on the first -partition. This include the :doc:`pair style `, :doc:`bond style `, :doc:`neighbor list building `, -:doc:`fixes ` including time integration, and output. The -:doc:`kspace_style ` portion of the calculation is +:doc:`kspace_style ` portion of the force field on the +first partition. This include the :doc:`pair style `, +:doc:`bond style `, :doc:`neighbor list building +`, :doc:`fixes ` including time integration, and output. +The :doc:`kspace_style ` portion of the calculation is performed on the second partition. -This is most useful for the PPPM kspace_style when its performance on -a large number of processors degrades due to the cost of communication -in its 3d FFTs. In this scenario, splitting your P total processors -into 2 subsets of processors, P1 in the first partition and P2 in the -second partition, can enable your simulation to run faster. This is -because the long-range forces in PPPM can be calculated at the same -time as pairwise and bonded forces are being calculated, and the FFTs -can actually speed up when running on fewer processors. +This can lead to a significant speedup, if the number of processors can +be easily increased and the fraction of time is spent in computing +Kspace interactions is significant, too. The two partitions may have a +different number of processors. This is most useful for the PPPM +kspace_style when its performance on a large number of processors +degrades due to the cost of communication in its 3d FFTs. In this +scenario, splitting your P total processors into 2 subsets of +processors, P1 in the first partition and P2 in the second partition, +can enable your simulation to run faster. This is because the +long-range forces in PPPM can be calculated at the same time as pairwise +and bonded forces are being calculated *and* the parallel 3d FFTs can be +faster to compute when running on fewer processors. Please note that +the scenario of using fewer MPI processes to reduce communication +overhead can also be implemented through using MPI with OpenMP threads +via the INTEL, KOKKOS, or OPENMP package. This alternative option is +typically more effective in case of a fixed number of available +processors and less complex to execute. -To use this style, you must define 2 partitions where P1 is a multiple -of P2. Typically having P1 be 3x larger than P2 is a good choice. -The 3d processor layouts in each partition must overlay in the -following sense. If P1 is a Px1 by Py1 by Pz1 grid, and P2 = Px2 by -Py2 by Pz2, then Px1 must be an integer multiple of Px2, and similarly -for Py1 a multiple of Py2, and Pz1 a multiple of Pz2. +To use the *verlet/split* style, you must define 2 partitions with the +:doc:`-partition command-line switch `, where partition P1 +is either the same size or an integer multiple of the size of the +partition P2. Typically having P1 be 3x larger than P2 is a good +choice, since the (serial) performance of LAMMPS is often best if the +time spent in the ``Pair`` computation versus ``Kspace`` is a 3:1 split. +The 3d processor layouts in each partition must overlay in the following +sense. If P1 is a Px1 by Py1 by Pz1 grid, and P2 = Px2 by Py2 by Pz2, +then Px1 must be an integer multiple of Px2, and similarly for Py1 a +multiple of Py2, and Pz1 a multiple of Pz2. Typically the best way to do this is to let the first partition choose its own optimal layout, then require the second partition's layout to @@ -122,9 +136,10 @@ of 60 and 15 processors each: When you run in 2-partition mode with the *verlet/split* style, the thermodynamic data for the entire simulation will be output to the log and screen file of the first partition, which are log.lammps.0 and -screen.0 by default; see the :doc:`-plog and -pscreen command-line switches ` to change this. The log and screen file -for the second partition will not contain thermodynamic output beyond the -first timestep of the run. +screen.0 by default; see the :doc:`-plog and -pscreen command-line +switches ` to change this. The log and screen file for the +second partition will not contain thermodynamic output beyond the first +timestep of the run. See the :doc:`Accelerator packages ` page for performance details of the speed-up offered by the *verlet/split* @@ -137,70 +152,73 @@ options to support this, and strategies are discussed in :doc:`Section ---------- The *respa* style implements the rRESPA multi-timescale integrator -:ref:`(Tuckerman) ` with N hierarchical levels, where level 1 is -the innermost loop (shortest timestep) and level N is the outermost +:ref:`(Tuckerman) ` with N hierarchical levels, where level +1 is the innermost loop (shortest timestep) and level N is the outermost loop (largest timestep). The loop factor arguments specify what the -looping factor is between levels. N1 specifies the number of -iterations of level 1 for a single iteration of level 2, N2 is the -iterations of level 2 per iteration of level 3, etc. N-1 looping -parameters must be specified. +looping factor is between levels. N1 specifies the number of iterations +of level 1 for a single iteration of level 2, N2 is the iterations of +level 2 per iteration of level 3, etc. N-1 looping parameters must be +specified. -Thus with a 4-level respa setting of "2 2 2" for the 3 loop factors, -you could choose to have bond interactions computed 8x per large -timestep, angle interactions computed 4x, pair interactions computed -2x, and long-range interactions once per large timestep. +Thus with a 4-level respa setting of "2 2 2" for the 3 loop factors, you +could choose to have bond interactions computed 8x per large timestep, +angle interactions computed 4x, pair interactions computed 2x, and +long-range interactions once per large timestep. The :doc:`timestep ` command sets the large timestep for the outermost rRESPA level. Thus if the 3 loop factors are "2 2 2" for -4-level rRESPA, and the outer timestep is set to 4.0 fs, then the -inner timestep would be 8x smaller or 0.5 fs. All other LAMMPS -commands that specify number of timesteps (e.g. :doc:`thermo ` -for thermo output every N steps, :doc:`neigh_modify delay/every ` parameters, :doc:`dump ` every N -steps, etc) refer to the outermost timesteps. +4-level rRESPA, and the outer timestep is set to 4.0 fs, then the inner +timestep would be 8x smaller or 0.5 fs. All other LAMMPS commands that +specify number of timesteps (e.g. :doc:`thermo ` for thermo +output every N steps, :doc:`neigh_modify delay/every ` +parameters, :doc:`dump ` every N steps, etc) refer to the +outermost timesteps. -The rRESPA keywords enable you to specify at what level of the -hierarchy various forces will be computed. If not specified, the -defaults are that bond forces are computed at level 1 (innermost -loop), angle forces are computed where bond forces are, dihedral -forces are computed where angle forces are, improper forces are -computed where dihedral forces are, pair forces are computed at the -outermost level, and kspace forces are computed where pair forces are. -The inner, middle, outer forces have no defaults. +The rRESPA keywords enable you to specify at what level of the hierarchy +various forces will be computed. If not specified, the defaults are +that bond forces are computed at level 1 (innermost loop), angle forces +are computed where bond forces are, dihedral forces are computed where +angle forces are, improper forces are computed where dihedral forces +are, pair forces are computed at the outermost level, and kspace forces +are computed where pair forces are. The inner, middle, outer forces +have no defaults. For fixes that support it, the rRESPA level at which a given fix is -active, can be selected through the :doc:`fix_modify ` command. +active, can be selected through the :doc:`fix_modify ` +command. -The *inner* and *middle* keywords take additional arguments for -cutoffs that are used by the pairwise force computations. If the 2 -cutoffs for *inner* are 5.0 and 6.0, this means that all pairs up to -6.0 apart are computed by the inner force. Those between 5.0 and 6.0 -have their force go ramped to 0.0 so the overlap with the next regime -(middle or outer) is smooth. The next regime (middle or outer) will -compute forces for all pairs from 5.0 outward, with those from 5.0 to -6.0 having their value ramped in an inverse manner. +The *inner* and *middle* keywords take additional arguments for cutoffs +that are used by the pairwise force computations. If the 2 cutoffs for +*inner* are 5.0 and 6.0, this means that all pairs up to 6.0 apart are +computed by the inner force. Those between 5.0 and 6.0 have their force +go ramped to 0.0 so the overlap with the next regime (middle or outer) +is smooth. The next regime (middle or outer) will compute forces for +all pairs from 5.0 outward, with those from 5.0 to 6.0 having their +value ramped in an inverse manner. Note that you can use *inner* and *outer* without using *middle* to split the pairwise computations into two portions instead of three. -Unless you are using a very long pairwise cutoff, a 2-way split is -often faster than a 3-way split, since it avoids too much duplicate +Unless you are using a very long pairwise cutoff, a 2-way split is often +faster than a 3-way split, since it avoids too much duplicate computation of pairwise interactions near the intermediate cutoffs. -Also note that only a few pair potentials support the use of the -*inner* and *middle* and *outer* keywords. If not, only the *pair* -keyword can be used with that pair style, meaning all pairwise forces -are computed at the same rRESPA level. See the doc pages for -individual pair styles for details. +Also note that only a few pair potentials support the use of the *inner* +and *middle* and *outer* keywords. If not, only the *pair* keyword can +be used with that pair style, meaning all pairwise forces are computed +at the same rRESPA level. See the doc pages for individual pair styles +for details. Another option for using pair potentials with rRESPA is with the -*hybrid* keyword, which requires the use of the :doc:`pair_style hybrid or hybrid/overlay ` command. In this scenario, different +*hybrid* keyword, which requires the use of the :doc:`pair_style hybrid +or hybrid/overlay ` command. In this scenario, different sub-styles of the hybrid pair style are evaluated at different rRESPA -levels. This can be useful, for example, to set different timesteps -for hybrid coarse-grained/all-atom models. The *hybrid* keyword -requires as many level assignments as there are hybrid sub-styles, -which assigns each sub-style to a rRESPA level, following their order -of definition in the pair_style command. Since the *hybrid* keyword -operates on pair style computations, it is mutually exclusive with -either the *pair* or the *inner*\ /\ *middle*\ /\ *outer* keywords. +levels. This can be useful, for example, to set different timesteps for +hybrid coarse-grained/all-atom models. The *hybrid* keyword requires as +many level assignments as there are hybrid sub-styles, which assigns +each sub-style to a rRESPA level, following their order of definition in +the pair_style command. Since the *hybrid* keyword operates on pair +style computations, it is mutually exclusive with either the *pair* or +the *inner*\ /\ *middle*\ /\ *outer* keywords. When using rRESPA (or for any MD simulation) care must be taken to choose a timestep size(s) that ensures the Hamiltonian for the chosen From da79aadc8d9f3f16facd2a31e7ab9d4498f739b6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 2 Mar 2023 07:31:38 -0500 Subject: [PATCH 23/58] spelling --- doc/utils/sphinx-config/false_positives.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 0a5e58e86b..e46b5dd28b 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -438,6 +438,7 @@ cfile CFL cgdna CGDNA +cgmap cgs cgsdk CGSDK @@ -1792,6 +1793,7 @@ lammps Lammps LAMMPS lammpsbin +lammpsdata lammpsplot lammpsplugin Lamoureux @@ -2072,6 +2074,7 @@ mdi MDI mdpd mDPD +mdtraj meam MEAM meamf From fa38047749bcb349e0a97a97efea8ec10f9013f1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 2 Mar 2023 18:29:05 -0500 Subject: [PATCH 24/58] use sin(x+pi/2) instead of cos(x) on Intel OpenCL with double precision --- lib/gpu/lal_soft.cu | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/gpu/lal_soft.cu b/lib/gpu/lal_soft.cu index 74ac0e0c97..bc96a861df 100644 --- a/lib/gpu/lal_soft.cu +++ b/lib/gpu/lal_soft.cu @@ -22,6 +22,15 @@ _texture_2d( pos_tex,int4); #endif #else #define pos_tex x_ +// hack for Intel GPU with double precision +#if defined(_DOUBLE_DOUBLE) && (CONFIG_ID == 500) +#define MY_PI_HALF (acctyp)1.57079632679489661923 +#define my_cos(x) sin(x+MY_PI_HALF) +#endif +#endif + +#if !defined(my_cos) +#define my_cos(x) cos(x) #endif #define MY_PI (acctyp)3.14159265358979323846 @@ -95,7 +104,7 @@ __kernel void k_soft(const __global numtyp4 *restrict x_, f.z+=delz*force; if (EVFLAG && eflag) { - numtyp e=coeff[mtype].x * ((numtyp)1.0+cos(arg)); + numtyp e=coeff[mtype].x * ((numtyp)1.0+my_cos(arg)); energy+=factor_lj*e; } if (EVFLAG && vflag) { @@ -186,7 +195,7 @@ __kernel void k_soft_fast(const __global numtyp4 *restrict x_, f.z+=delz*force; if (EVFLAG && eflag) { - numtyp e=coeff[mtype].x * ((numtyp)1.0+cos(arg)); + numtyp e=coeff[mtype].x * ((numtyp)1.0+my_cos(arg)); energy+=factor_lj*e; } if (EVFLAG && vflag) { From cfb967d309165587af11f3847f82313ff566f975 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 3 Mar 2023 02:01:25 -0500 Subject: [PATCH 25/58] silence static code analysis warnings --- src/REPLICA/compute_pressure_alchemy.cpp | 2 +- src/REPLICA/fix_alchemy.cpp | 2 +- src/REPLICA/fix_alchemy.h | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/REPLICA/compute_pressure_alchemy.cpp b/src/REPLICA/compute_pressure_alchemy.cpp index d19ea1b893..bad2785fb8 100644 --- a/src/REPLICA/compute_pressure_alchemy.cpp +++ b/src/REPLICA/compute_pressure_alchemy.cpp @@ -24,7 +24,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ ComputePressureAlchemy::ComputePressureAlchemy(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg) + Compute(lmp, narg, arg), fix(nullptr) { if (narg != 4) error->all(FLERR, "Illegal compute pressure/alchemy command"); if (igroup) error->all(FLERR, "Compute pressure/alchemy must use group all"); diff --git a/src/REPLICA/fix_alchemy.cpp b/src/REPLICA/fix_alchemy.cpp index c6617c4600..29801d5c8d 100644 --- a/src/REPLICA/fix_alchemy.cpp +++ b/src/REPLICA/fix_alchemy.cpp @@ -53,8 +53,8 @@ FixAlchemy::FixAlchemy(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), vector_flag = 1; size_vector = 3; extvector = 1; - ilevel_respa = 0; nmax = 6; + ivar = -1; sync_box = 0; // set up rank-to-rank communicator for inter-partition communication diff --git a/src/REPLICA/fix_alchemy.h b/src/REPLICA/fix_alchemy.h index 677a29b643..53c369d551 100644 --- a/src/REPLICA/fix_alchemy.h +++ b/src/REPLICA/fix_alchemy.h @@ -48,7 +48,6 @@ class FixAlchemy : public Fix { double pressure[6]; // joined pressure int progress; // for progress indicator int sync_box; // 1 of box dimensions need to be synchronized - int ilevel_respa; int nmax; int ivar; }; From 9cdb9283cab29f782411f803f5c697f2c22a2c9a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 3 Mar 2023 03:00:35 -0500 Subject: [PATCH 26/58] another workaround for Intel GPU with OpenCL and double precision --- lib/gpu/lal_device.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/gpu/lal_device.cpp b/lib/gpu/lal_device.cpp index 891d67913e..c98253ba4c 100644 --- a/lib/gpu/lal_device.cpp +++ b/lib/gpu/lal_device.cpp @@ -389,7 +389,12 @@ int DeviceT::set_ocl_params(std::string s_config, const std::string &extra_args) #ifdef CL_VERSION_2_0 _ocl_compile_string+="-cl-std=CL2.0 "; #endif - if (params[4]!="0") _ocl_compile_string+="-cl-fast-relaxed-math "; + // workaround for double precision with Intel OpenCL + #ifdef _DOUBLE_DOUBLE + if ((params[4] != "0") && (params[0] != "500")) _ocl_compile_string+="-cl-fast-relaxed-math "; + #else + if (params[4] != "0") _ocl_compile_string+="-cl-fast-relaxed-math "; + #endif _ocl_compile_string+=std::string(OCL_INT_TYPE)+" "+ std::string(OCL_PRECISION_COMPILE); if (gpu->has_subgroup_support()) From 13f82be0353c66d1ecfed2cba66dfd5a6d6e6201 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 3 Mar 2023 09:12:57 -0500 Subject: [PATCH 27/58] fix typo --- src/fix_store_force.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fix_store_force.cpp b/src/fix_store_force.cpp index 09406bb4f1..b6e2f4d8a1 100644 --- a/src/fix_store_force.cpp +++ b/src/fix_store_force.cpp @@ -29,7 +29,7 @@ FixStoreForce::FixStoreForce(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), foriginal(nullptr) { - if (narg < 3) error->all(FLERR,"Illegal fix store/coord command"); + if (narg < 3) error->all(FLERR,"Illegal fix store/force command"); peratom_flag = 1; size_peratom_cols = 3; From a136283312d6231ddd515804ec346feb1651986e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 3 Mar 2023 17:17:07 -0500 Subject: [PATCH 28/58] update/correct section header (this is not a fix) --- doc/src/bond_table.rst | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/doc/src/bond_table.rst b/doc/src/bond_table.rst index 51e677d74a..1924774693 100644 --- a/doc/src/bond_table.rst +++ b/doc/src/bond_table.rst @@ -112,8 +112,9 @@ are estimated (less accurately) by the first two and last two force values in the table. The "EQ" parameter is also optional. If used, it is followed by a the -equilibrium bond length, which is used, for example, by the :doc:`fix shake ` command. If not used, the equilibrium bond -length is to the distance in the table with the lowest potential energy. +equilibrium bond length, which is used, for example, by the :doc:`fix +shake ` command. If not used, the equilibrium bond length is +to the distance in the table with the lowest potential energy. Following a blank line, the next N lines list the tabulated values. On each line, the first value is the index from 1 to N, the second value is @@ -135,16 +136,15 @@ one that matches the specified keyword. ---------- -Restart, fix_modify, output, run start/stop, minimize info -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Restart info +"""""""""""" -This bond style writes the settings for the "bond_style table" -command to :doc:`binary restart files `, so a bond_style -command does not need to specified in an input script that reads a -restart file. However, the coefficient information is not stored in -the restart file, since it is tabulated in the potential files. Thus, -bond_coeff commands do need to be specified in the restart input -script. +This bond style writes the settings for the "bond_style table" command +to :doc:`binary restart files `, so a bond_style command does +not need to specified in an input script that reads a restart file. +However, the coefficient information is not stored in the restart file, +since it is tabulated in the potential files. Thus, bond_coeff commands +do need to be specified in the restart input script. Restrictions """""""""""" From de182aeeed33e3ad7cd62d6ebceb6a9ce28c4e20 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 3 Mar 2023 17:25:28 -0500 Subject: [PATCH 29/58] fix issues due to incomplete conversion form txt2html markup --- doc/src/pair_gauss.rst | 13 +++++++------ doc/src/pair_tersoff_mod.rst | 2 +- doc/src/read_data.rst | 10 ++++++---- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/doc/src/pair_gauss.rst b/doc/src/pair_gauss.rst index f6d8134467..5ac8f2aff4 100644 --- a/doc/src/pair_gauss.rst +++ b/doc/src/pair_gauss.rst @@ -103,12 +103,13 @@ Mixing, shift, table, tail correction, restart, rRESPA info For atom type pairs I,J and I != J, the A, B, H, sigma_h, r_mh parameters, and the cutoff distance for these pair styles can be mixed: -A (energy units) -sqrt(1/B) (distance units, see below) -H (energy units) -sigma_h (distance units) -r_mh (distance units) -cutoff (distance units):ul + +* A (energy units) +* :math:`\sqrt{\frac{1}{B}}` (distance units, see below) +* H (energy units) +* :math:`r_{mh}` (distance units) +* :math:`\sigma_h` (distance units) +* cutoff (distance units) The default mix value is *geometric*\ . Only *arithmetic* and *geometric* mix values are supported. diff --git a/doc/src/pair_tersoff_mod.rst b/doc/src/pair_tersoff_mod.rst index 8c9605d62c..a667ae6605 100644 --- a/doc/src/pair_tersoff_mod.rst +++ b/doc/src/pair_tersoff_mod.rst @@ -145,7 +145,7 @@ coefficients in the formulae above: * c3 * c4 * c5 -* c0 (energy units, tersoff/mod/c only):ul +* c0 (energy units, tersoff/mod/c only) The n, :math:`\eta`, :math:`\lambda_2`, B, :math:`\lambda_1`, and A parameters are only used for two-body interactions. The :math:`\beta`, :math:`\alpha`, c1, c2, c3, c4, c5, h diff --git a/doc/src/read_data.rst b/doc/src/read_data.rst index 7c08802228..0ecd2b6fa2 100644 --- a/doc/src/read_data.rst +++ b/doc/src/read_data.rst @@ -1477,10 +1477,12 @@ The *Triangles* section must appear after the *Atoms* section. where the keywords have these meanings: -vx,vy,vz = translational velocity of atom -lx,ly,lz = angular momentum of aspherical atom -wx,wy,wz = angular velocity of spherical atom -ervel = electron radial velocity (0 for fixed-core):ul + .. parsed-literal:: + + vx,vy,vz = translational velocity of atom + lx,ly,lz = angular momentum of aspherical atom + wx,wy,wz = angular velocity of spherical atom + ervel = electron radial velocity (0 for fixed-core) The velocity lines can appear in any order. This section can only be used after an *Atoms* section. This is because the *Atoms* section From 76387d003bc9236fecd244b93234ac5e645c220f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 3 Mar 2023 23:12:17 -0500 Subject: [PATCH 30/58] fine tune package check directory matching to not match bogus entries --- doc/utils/check-packages.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/utils/check-packages.py b/doc/utils/check-packages.py index cb64259f15..8fc17f28df 100644 --- a/doc/utils/check-packages.py +++ b/doc/utils/check-packages.py @@ -49,7 +49,9 @@ pkgs = [] # folder, and is not called 'MAKE' is a package for d in pkgdirs: - pkg = dirs.match(d).group(1) + match = dirs.match(d) + if not match: continue + pkg = match.group(1) if not os.path.isdir(os.path.join(src_dir, pkg)): continue if pkg in ['DEPEND','MAKE','STUBS']: continue pkgs.append(pkg) From 3df51305df8819244df62a42c73a18e58ee5d478 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 4 Mar 2023 00:32:18 -0500 Subject: [PATCH 31/58] integrate updates for fix alchemy documentation from @sjplimp --- doc/src/fix_alchemy.rst | 140 +++++++++++++++++++++++++--------------- 1 file changed, 89 insertions(+), 51 deletions(-) diff --git a/doc/src/fix_alchemy.rst b/doc/src/fix_alchemy.rst index 90c436139e..056cf60369 100644 --- a/doc/src/fix_alchemy.rst +++ b/doc/src/fix_alchemy.rst @@ -12,7 +12,7 @@ Syntax * ID, group-ID are documented in :doc:`fix ` command * alchemy = style name of this fix command -* v_name = variable with name that determines the :math:`\lambda_p` value +* v_name = variable with name that determines the :math:`\lambda_R` value Examples """""""" @@ -26,80 +26,121 @@ Description .. versionadded:: TBD -This fix command enables running an "alchemical transformation" MD -simulation between two topologies (i.e. the same number and positions of -atoms, but differences in atom parameters like type, charge, bonds, -angles and so on). For this a :ref:`multi-partition run ` is -required with exactly two partitions. During the MD run, the fix will -will determine a factor, :math:`\lambda_p`, for each partition *p* that -will be taken from an equal style or equivalent :doc:`variable -`. Typically, this variable would be chose to linearly ramp -*down* from 1.0 to 0.0 for the *first* partition (*p=0*) and linearly -ramp *up* from 0.0 to 1.0 for the *second* partition (*p=1*). The -forces used for the propagation of the atoms will be the sum of the -forces of the two systems combined and scaled with their respective -:math:`\lambda_p` factor. This allows to perform transformations that -are not easily possible with :doc:`pair style hybrid/scaled -`, :doc:`fix adapt ` or :doc:`fix adapt/fep -`. +This fix command enables an "alchemical transformation" to be performed +between two systems, whereby one system slowly transforms into the other +over the course of a molecular dynamics run. This is useful for +measuring thermodynamic differences between two different systems. It +also allows transformations that are not easily possible with the +:doc:`pair style hybrid/scaled `, :doc:`fix adapt +` or :doc:`fix adapt/fep ` commmands. -.. note:: +Example inputs are included in the ``examples/PACKAGES/alchemy`` +directory for (a) transforming a pure copper system into a +copper/aluminum bronze alloy and (b) transforming two water molecules +into a hydronium plus hydroxyl ion. - Since the definition of the variable to provide the :math:`\lambda_p` is - independent in the two partitions, no check is made that the two values - remain between 0.0 and 1.0 and that they add up to 1.0. So care needs to - be taken when defining those variables that this is the case. +The two systems must be defined in :doc:`separate replicas +` and run in separate partitions of processors using the +:doc:`-partition ` command-line switch. Exacty two +partitions must be specified and each partition must use the same number +of processors and the same domain decomposition. -Due to the specifics of the implementation, the initial geometry and -dimensions of the system must be exactly the same and the fix will -synchronize them during the run. It is thus not possible to initialize -the two partitions by reading different data files or creating different -systems from scratch, but rather they have to be started from the same -system and then the desired modifications need to be applied to the -system of the second partition. The commands :doc:`pair style -hybrid/scaled `, :doc:`fix adapt ` or :doc:`fix -adapt/fep ` could be used for simulations where the -requirements for fix alchemy are not given. +Because the forces applied to the atoms are the same mix of the forces +from each partition and the simulation starts with the same atom +positions across both partitions, they will generate the same trajectory +of coordinates for each atom, and the same simulation box size and +shape. The latter two conditions are *enforced* by this fix; it +exchanges coordinates and box information between the replicas. This is +not strictly required, but since MD simulations are an example of a +chaotic system, even the tiniest random difference will eventually grow +exponentially into an unwanted divergence. -The commands below demonstrate how the setup for the second partition -can be done for the example of transforming a pure copper system into a -copper/aluminum bronze. +Otherwise the properties of each atom (type, charge, bond and angle +partners, etc), as well as energy and forces between interacting atoms +(pair, bond, angle styles, etc) can be different in the two systems. -.. code-block:: LAMMPS +This can be initialized in the same input script by using commands which +only apply to one or the other replica. The example scripts use a +world-style :doc:`variable ` command along with +:doc:`if/then/else ` commmands for this purpose. The +:doc:`partition ` command can also be used. variable name world pure alloy +.. code-block:: LAMMPS + create_box 2 box create_atoms 1 box pair_style eam/alloy pair_coeff * * AlCu.eam.alloy Cu Al # replace 5% of copper with aluminum on the second partition only + variable name world pure alloy if "${name} == alloy" then & "set type 1 type/fraction 2 0.05 6745234" - # define ramp variable to combine the two different partitions - if "${name} == pure" then & - "variable ramp equal ramp(1.0,0.0)" & - else & - "variable ramp equal ramp(0.0,1.0)" +Both replicas must define an instance of this fix, but with a different +*v_name* variable. The named variable must be an equal-style or +equivalent :doc:`variable `. The two variables should be +defined so that one ramps *down* from 1.0 to 0.0 for the *first* replica +(*R=0*) and the other ramps *up* from 0.0 to 1.0 for the *second* +replica (*R=1*). A simple way is to do this is lineraly, which can be +done using the ramp() function of the :doc:`variable ` +command. You could also define a variable which returns a value between +0.0 and 1.0 as a non-linear function of the timestep. Here is a linear +example: +.. code-block:: LAMMPS + + partition yes 1 variable ramp equal ramp(1.0,0.0) + partition yes 2 variable ramp equal ramp(0.0,1.0) fix 2 all alchemy v_ramp +.. note:: -The ``examples/PACKAGES/alchemy`` folder contains complete example -inputs for this command. + For an alchemical transformation, the two variables should sum to + exactly 1.0 at any timestep. LAMMPS does *NOT* check that this is + the case. + +If you use the ``ramp()`` function to define the two variables, this fix +can easily be used across successive runs in the same input script by +ensuring each instance of the :doc:`run ` command specifies the +appropriate *start* or *stop* options. + +At each timestep of an MD run, the two instances of this fix evaluate +their respective variables as a :math:`\lambda_R` factor, where *R* = 0 +or 1 for each replica. The forces used by each system for the +propagation of theire atoms is set to the sum of the forces for the two +systems, each scaled by their respective :math:`\lambda_R` factor. Thus +during the MD run, the system will transform incrementally from from the +first system to the second system. + +.. note:: + + As mentioned above, the coordinates of the atoms and box size/shape + must be exactly the same in the two replicas. Thus it is generally + not a good idea to initialize the two replicas by reading different + data files or creating them from scratch. Rather, a single system + should be initialized and desired modifications applied to the system + of the second replica. If your input script somehow induces the two + systems to become different (e.g. by performing :doc:`atom_modify + sort ` differently, or by adding or depositing a + different number of atoms), then LAMMPS will detect the mismatchand + generate an error. This is done by ensuring that each step the + number and ordering of atoms is identical within each pair of + processors in the two replicas. ---------- Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. -None of the :doc:`fix_modify ` options are relevant to this fix. +No information about this fix is written to :doc:`binary restart files +`. None of the :doc:`fix_modify ` options are +relevant to this fix. -This fix stores a global scalar (the current value of :math:`\lambda_p`) +This fix stores a global scalar (the current value of :math:`\lambda_R`) and a global vector of length 3 which contains the potential energy of the first partition, the second partition and the combined value, respectively. The global scalar is unitless and "intensive", the vector @@ -117,12 +158,9 @@ This fix is part of the REPLICA package. It is only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. -There may be only one instance of this fix in use at any time. +There may be only one instance of this fix in use at a time within +each replica. -This fix requires to perform a :ref:`multi-partition run ` -with *exactly* two partitions. - -This fix is *not* compatible with :doc:`load balancing `. Related commands """""""""""""""" From 6640e8b647384382937ea4c0bbe78e3dee5cce61 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 4 Mar 2023 00:43:43 -0500 Subject: [PATCH 32/58] address some spelling and grammar issues flagged by languagetool.org --- doc/src/fix_alchemy.rst | 54 ++++++++++----------- doc/utils/sphinx-config/false_positives.txt | 1 + 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/doc/src/fix_alchemy.rst b/doc/src/fix_alchemy.rst index 056cf60369..37c49fed47 100644 --- a/doc/src/fix_alchemy.rst +++ b/doc/src/fix_alchemy.rst @@ -32,17 +32,17 @@ over the course of a molecular dynamics run. This is useful for measuring thermodynamic differences between two different systems. It also allows transformations that are not easily possible with the :doc:`pair style hybrid/scaled `, :doc:`fix adapt -` or :doc:`fix adapt/fep ` commmands. +` or :doc:`fix adapt/fep ` commands. Example inputs are included in the ``examples/PACKAGES/alchemy`` directory for (a) transforming a pure copper system into a copper/aluminum bronze alloy and (b) transforming two water molecules -into a hydronium plus hydroxyl ion. +in a box of water into a hydronium and a hydroxyl ion. -The two systems must be defined in :doc:`separate replicas +The two systems must be defined as :doc:`separate replica ` and run in separate partitions of processors using the -:doc:`-partition ` command-line switch. Exacty two -partitions must be specified and each partition must use the same number +:doc:`-partition ` command-line switch. Exactly two +partitions must be specified, and each partition must use the same number of processors and the same domain decomposition. Because the forces applied to the atoms are the same mix of the forces @@ -55,18 +55,16 @@ not strictly required, but since MD simulations are an example of a chaotic system, even the tiniest random difference will eventually grow exponentially into an unwanted divergence. -Otherwise the properties of each atom (type, charge, bond and angle -partners, etc), as well as energy and forces between interacting atoms -(pair, bond, angle styles, etc) can be different in the two systems. +Otherwise, the properties of each atom (type, charge, bond and angle +partners, etc.), as well as energy and forces between interacting atoms +(pair, bond, angle styles, etc.) can be different in the two systems. This can be initialized in the same input script by using commands which only apply to one or the other replica. The example scripts use a world-style :doc:`variable ` command along with -:doc:`if/then/else ` commmands for this purpose. The +:doc:`if/then/else ` commands for this purpose. The :doc:`partition ` command can also be used. - variable name world pure alloy - .. code-block:: LAMMPS create_box 2 box @@ -85,7 +83,7 @@ Both replicas must define an instance of this fix, but with a different equivalent :doc:`variable `. The two variables should be defined so that one ramps *down* from 1.0 to 0.0 for the *first* replica (*R=0*) and the other ramps *up* from 0.0 to 1.0 for the *second* -replica (*R=1*). A simple way is to do this is lineraly, which can be +replica (*R=1*). A simple way is to do this is linearly, which can be done using the ramp() function of the :doc:`variable ` command. You could also define a variable which returns a value between 0.0 and 1.0 as a non-linear function of the timestep. Here is a linear @@ -111,25 +109,25 @@ appropriate *start* or *stop* options. At each timestep of an MD run, the two instances of this fix evaluate their respective variables as a :math:`\lambda_R` factor, where *R* = 0 or 1 for each replica. The forces used by each system for the -propagation of theire atoms is set to the sum of the forces for the two -systems, each scaled by their respective :math:`\lambda_R` factor. Thus -during the MD run, the system will transform incrementally from from the +propagation of their atoms is set to the sum of the forces for the two +systems, each scaled by their respective :math:`\lambda_R` factor. Thus, +during the MD run, the system will transform incrementally from the first system to the second system. .. note:: As mentioned above, the coordinates of the atoms and box size/shape - must be exactly the same in the two replicas. Thus it is generally - not a good idea to initialize the two replicas by reading different - data files or creating them from scratch. Rather, a single system - should be initialized and desired modifications applied to the system - of the second replica. If your input script somehow induces the two - systems to become different (e.g. by performing :doc:`atom_modify - sort ` differently, or by adding or depositing a - different number of atoms), then LAMMPS will detect the mismatchand - generate an error. This is done by ensuring that each step the - number and ordering of atoms is identical within each pair of - processors in the two replicas. + must be exactly the same in the two replicas. Therefore, it is + generally not a good idea to initialize the two replicas by reading + different data files or creating them individually from scratch. + Rather, a single system should be initialized and then desired + modifications applied to the system to either replica. If your + input script somehow induces the two systems to become different + (e.g. by performing :doc:`atom_modify sort ` + differently, or by adding or depositing a different number of atoms), + then LAMMPS will detect the mismatch and generate an error. This is + done by ensuring that each step the number and ordering of atoms is + identical within each pair of processors in the two replicas. ---------- @@ -146,8 +144,8 @@ the first partition, the second partition and the combined value, respectively. The global scalar is unitless and "intensive", the vector is in :doc:`energy units ` and "extensive". These values can be used by any command that uses a global value from a fix as input. See -the :doc:`Howto output ` doc page for an overview of -LAMMPS output options. +the :doc:`output howto ` page for an overview of LAMMPS +output options. This fix is not invoked during :doc:`energy minimization `. diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index e46b5dd28b..0f18e6822f 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1444,6 +1444,7 @@ hux hwloc hx hy +hydronium hydrophobicity hydrostatic hydrostatically From 02f36f4e72baea82c2208c4384cf0677c8f44875 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 4 Mar 2023 06:30:47 -0500 Subject: [PATCH 33/58] whitespace --- doc/src/fix_alchemy.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/fix_alchemy.rst b/doc/src/fix_alchemy.rst index 37c49fed47..367b6d1cca 100644 --- a/doc/src/fix_alchemy.rst +++ b/doc/src/fix_alchemy.rst @@ -66,7 +66,7 @@ world-style :doc:`variable ` command along with :doc:`partition ` command can also be used. .. code-block:: LAMMPS - + create_box 2 box create_atoms 1 box pair_style eam/alloy @@ -115,7 +115,7 @@ during the MD run, the system will transform incrementally from the first system to the second system. .. note:: - + As mentioned above, the coordinates of the atoms and box size/shape must be exactly the same in the two replicas. Therefore, it is generally not a good idea to initialize the two replicas by reading From fcf8fc503fc71fd204af0d3c48bc217453209e0d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 4 Mar 2023 16:24:58 -0500 Subject: [PATCH 34/58] fix broken links --- doc/src/fix_shake.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/fix_shake.rst b/doc/src/fix_shake.rst index e6fbad7fdc..32cb5a2d19 100644 --- a/doc/src/fix_shake.rst +++ b/doc/src/fix_shake.rst @@ -275,8 +275,8 @@ reducing the :doc:`timestep `. Related commands """""""""""""""" -`fix rigid `, `fix ehex `, -`fix nve/manifold/rattle ` +:doc:`fix rigid `, :doc:`fix ehex `, +:doc:`fix nve/manifold/rattle ` Default From 8aad97ca4ab4cebdaf94e1c4912a27cdbb9e16d6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 4 Mar 2023 17:03:07 -0500 Subject: [PATCH 35/58] fix broken doc links --- doc/src/Build_extras.rst | 4 ++-- doc/src/Howto_mdi.rst | 22 +++++++++++----------- doc/src/Intro_features.rst | 2 +- doc/src/bond_write.rst | 2 +- doc/src/dump.rst | 2 +- doc/src/fix_nh_uef.rst | 9 +++++---- doc/src/fix_shake.rst | 16 ++++++++-------- doc/src/minimize.rst | 14 +++++++------- doc/src/pair_ylz.rst | 9 +++++---- 9 files changed, 41 insertions(+), 39 deletions(-) diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index ac6a27464b..4dd8c10b3f 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -1964,10 +1964,10 @@ OPENMP package Apple offers the `Xcode package and IDE `_ for compiling software on macOS, so you have likely installed it to compile LAMMPS. Their - compiler is based on `Clang `, but while it + compiler is based on `Clang `_, but while it is capable of processing OpenMP directives, the necessary header files and OpenMP runtime library are missing. The `R developers - ` have figured out a way to build those + `_ have figured out a way to build those in a compatible fashion. One can download them from `https://mac.r-project.org/openmp/ `_. Simply adding those files as diff --git a/doc/src/Howto_mdi.rst b/doc/src/Howto_mdi.rst index 0e09ff2841..7567462397 100644 --- a/doc/src/Howto_mdi.rst +++ b/doc/src/Howto_mdi.rst @@ -63,18 +63,18 @@ The package also provides a :doc:`mdi plugin ` command, which enables LAMMPS to operate as an MDI driver and load an MDI engine as a plugin library. -The package furthermore includes a `fix mdi/qm ` command, in -which LAMMPS operates as an MDI driver in conjunction with a quantum -mechanics code as an MDI engine. The post_force() method of the -``fix_mdi_qm.cpp`` file shows how a driver issues MDI commands to another -code. This command can be used to couple to an MDI engine, which is -either a stand-alone code or a plugin library. +The package furthermore includes a :doc:`fix mdi/qm ` +command, in which LAMMPS operates as an MDI driver in conjunction with a +quantum mechanics code as an MDI engine. The post_force() method of the +``fix_mdi_qm.cpp`` file shows how a driver issues MDI commands to +another code. This command can be used to couple to an MDI engine, +which is either a stand-alone code or a plugin library. -As explained in the `fix mdi/qm ` command documentation, it -can be used to perform *ab initio* MD simulations or energy -minimizations, or to evaluate the quantum energy and forces for a series -of independent systems. The ``examples/mdi`` directory has example -input scripts for all of these use cases. +As explained in the :doc:`fix mdi/qm ` command +documentation, it can be used to perform *ab initio* MD simulations or +energy minimizations, or to evaluate the quantum energy and forces for a +series of independent systems. The ``examples/mdi`` directory has +example input scripts for all of these use cases. ---------- diff --git a/doc/src/Intro_features.rst b/doc/src/Intro_features.rst index 76b989ad69..d8fb2269e5 100644 --- a/doc/src/Intro_features.rst +++ b/doc/src/Intro_features.rst @@ -195,7 +195,7 @@ Multi-replica models * :doc:`parallel replica dynamics ` * :doc:`temperature accelerated dynamics ` * :doc:`parallel tempering ` -* path-integral MD: `first variant `, `second variant ` +* path-integral MD: :doc:`first variant `, :doc:`second variant ` * multi-walker collective variables with :doc:`Colvars ` and :doc:`Plumed ` .. _prepost: diff --git a/doc/src/bond_write.rst b/doc/src/bond_write.rst index 43015e25e7..bd63ebea29 100644 --- a/doc/src/bond_write.rst +++ b/doc/src/bond_write.rst @@ -70,7 +70,7 @@ be specified even if the potential has a finite value at r = 0.0. Related commands """""""""""""""" -:doc:`bond_style table `, `angle_write `, +:doc:`bond_style table `, :doc:`angle_write `, :doc:`bond_style `, :doc:`bond_coeff ` Default diff --git a/doc/src/dump.rst b/doc/src/dump.rst index 01fcc2e7e1..7993ae985f 100644 --- a/doc/src/dump.rst +++ b/doc/src/dump.rst @@ -375,7 +375,7 @@ output with each snapshot: nx ny nz The value dim will be 2 or 3 for 2d or 3d simulations. It is included -so that post-processing tools like `OVITO `, +so that post-processing tools like `OVITO `_, which can visualize grid-based quantities know how to draw each grid cell. The grid size will match the input script parameters for grid(s) created by the computes or fixes which are referenced by the diff --git a/doc/src/fix_nh_uef.rst b/doc/src/fix_nh_uef.rst index cf20d56ce7..922c2d515a 100644 --- a/doc/src/fix_nh_uef.rst +++ b/doc/src/fix_nh_uef.rst @@ -218,10 +218,11 @@ use :doc:`change_box ` before invoking the fix. Related commands """""""""""""""" -:doc:`fix nvt `, :doc:`fix npt `, `fix nvt/sllod -:doc:`, `compute temp/uef `, -:doc::doc:`compute pressure/uef `, `dump cfg/uef -:doc:` +:doc:`fix nvt `, :doc:`fix npt `, +:doc:`fix nvt/sllod `, +:doc:`compute temp/uef `, +:doc:`compute pressure/uef `, +:doc:`dump cfg/uef ` Default """"""" diff --git a/doc/src/fix_shake.rst b/doc/src/fix_shake.rst index 32cb5a2d19..4688fcbf2a 100644 --- a/doc/src/fix_shake.rst +++ b/doc/src/fix_shake.rst @@ -133,9 +133,9 @@ constraint lists atom types. All bonds connected to an atom of the specified type will be constrained. The *m* constraint lists atom masses. All bonds connected to atoms of the specified masses will be constrained (within a fudge factor of MASSDELTA specified in -fix_shake.cpp). The *a* constraint lists angle types. If both bonds -in the angle are constrained then the angle will also be constrained -if its type is in the list. +``src/RIGID/fix_shake.cpp``). The *a* constraint lists angle types. If +both bonds in the angle are constrained then the angle will also be +constrained if its type is in the list. For all constraints, a particular bond is only constrained if both atoms in the bond are in the group specified with the SHAKE fix. @@ -205,11 +205,11 @@ LAMMPS closely follows (:ref:`Andersen (1983) `). The *fix rattle* command modifies forces and velocities and thus should be defined after all other integration fixes in your input script. If you define other fixes that modify velocities or forces - after *fix rattle* operates, then *fix rattle* will not take them into - account and the overall time integration will typically not satisfy - the RATTLE constraints. You can check whether the constraints work - correctly by setting the value of RATTLE_DEBUG in src/fix_rattle.cpp - to 1 and recompiling LAMMPS. + after *fix rattle* operates, then *fix rattle* will not take them + into account and the overall time integration will typically not + satisfy the RATTLE constraints. You can check whether the + constraints work correctly by setting the value of RATTLE_DEBUG in + ``src/RIGID/fix_rattle.cpp`` to 1 and recompiling LAMMPS. ---------- diff --git a/doc/src/minimize.rst b/doc/src/minimize.rst index 5143cab5d5..6221d33aad 100644 --- a/doc/src/minimize.rst +++ b/doc/src/minimize.rst @@ -49,19 +49,19 @@ and forces) by pushing the atoms off of each other. The distance that atoms can move during individual minimization steps can be quite large, especially at the beginning of a minimization. - Thus `neighbor list settings ` of *every = 1* and + Thus :doc:`neighbor list settings ` of *every = 1* and *delay = 0* are **required**. This may be combined with either *check = no* (always update the neighbor list) or *check = yes* (only update the neighbor list if at least one atom has moved more than - half the `neighbor list skin ` distance since the last + half the :doc:`neighbor list skin ` distance since the last reneighboring). Using *check = yes* is recommended since it avoids unneeded reneighboring steps when the system is closer to the minimum - and thus atoms move only small distances. Using *check = no* may - be required for debugging or when coupling LAMMPS with external - codes that require a predictable sequence of neighbor list updates. + and thus atoms move only small distances. Using *check = no* may be + required for debugging or when coupling LAMMPS with external codes + that require a predictable sequence of neighbor list updates. - If the settings are **not** *every = 1* and *delay = 0*, LAMMPS - will temporarily apply a `neigh_modify every 1 delay 0 check yes + If the settings are **not** *every = 1* and *delay = 0*, LAMMPS will + temporarily apply a :doc:`neigh_modify every 1 delay 0 check yes ` setting during the minimization and restore the original setting at the end of the minimization. A corresponding message will be printed to the screen and log file, if this happens. diff --git a/doc/src/pair_ylz.rst b/doc/src/pair_ylz.rst index 17cf0ca639..22a707e9cb 100644 --- a/doc/src/pair_ylz.rst +++ b/doc/src/pair_ylz.rst @@ -142,10 +142,11 @@ the :doc:`atom_style ellipsoid ` command. Related commands """""""""""""""" -:doc:`pair_coeff `, :doc:`fix nve/asphere -:doc:`, `compute temp/asphere `, -:doc::doc:`pair_style resquared `, :doc:`pair_style -:doc:gayberne ` +:doc:`pair_coeff `, +:doc:`fix nve/asphere `, +:doc:`compute temp/asphere `, +:doc:`pair_style resquared `, +:doc:`pair_style gayberne ` Default """"""" From 7f934e3b2515ffa05579a19dc9697e66dd3600d9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 4 Mar 2023 17:09:17 -0500 Subject: [PATCH 36/58] add check for broken doc links to doc makefile --- doc/Makefile | 15 +++++++++------ doc/src/Install_linux.rst | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/doc/Makefile b/doc/Makefile index ad80017b7e..2a4edc70f3 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -94,10 +94,11 @@ html: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX) rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\ echo "############################################" ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \ rst_anchor_check src/*.rst ;\ - python $(BUILDDIR)/utils/check-packages.py -s ../src -d src ;\ + $(PYTHON) $(BUILDDIR)/utils/check-packages.py -s ../src -d src ;\ env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst ;\ env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst ;\ - python $(BUILDDIR)/utils/check-styles.py -s ../src -d src ;\ + env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst ;\ + $(PYTHON) $(BUILDDIR)/utils/check-styles.py -s ../src -d src ;\ echo "############################################" ;\ deactivate ;\ ) @@ -174,10 +175,11 @@ pdf: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\ echo "############################################" ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \ rst_anchor_check src/*.rst ;\ - python utils/check-packages.py -s ../src -d src ;\ + $(PYTHON) utils/check-packages.py -s ../src -d src ;\ env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst ;\ env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst ;\ - python utils/check-styles.py -s ../src -d src ;\ + env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst ;\ + $(PYTHON) utils/check-styles.py -s ../src -d src ;\ echo "############################################" ;\ deactivate ;\ ) @@ -208,14 +210,14 @@ anchor_check : $(ANCHORCHECK) style_check : $(VENV) @(\ . $(VENV)/bin/activate ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \ - python utils/check-styles.py -s ../src -d src ;\ + $(PYTHON) utils/check-styles.py -s ../src -d src ;\ deactivate ;\ ) package_check : $(VENV) @(\ . $(VENV)/bin/activate ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \ - python utils/check-packages.py -s ../src -d src ;\ + $(PYTHON) utils/check-packages.py -s ../src -d src ;\ deactivate ;\ ) @@ -224,6 +226,7 @@ char_check : role_check : @( env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst && exit 1 || : ) + @( env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst && exit 1 || : ) link_check : $(VENV) html @(\ diff --git a/doc/src/Install_linux.rst b/doc/src/Install_linux.rst index f902b1b987..91e7529879 100644 --- a/doc/src/Install_linux.rst +++ b/doc/src/Install_linux.rst @@ -42,7 +42,7 @@ static linkage, there is no ``liblammps.so`` library file and thus also the LAMMPS python module, which depends on it, is not included. The compressed tar archives available for download have names following -the pattern `lammps-linux-x86_64-.tar.gz` and will all unpack +the pattern ``lammps-linux-x86_64-.tar.gz`` and will all unpack into a ``lammps-static`` folder. The executables are then in the ``lammps-static/bin/`` folder. Since they do not depend on any other software, they may be freely moved or copied around. From 2aff3211877ce17f4c4d9e0a22885602f7adb69d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 5 Mar 2023 07:04:20 -0500 Subject: [PATCH 37/58] Revert "use sin(x+pi/2) instead of cos(x) on Intel OpenCL with double precision" This reverts commit fa38047749bcb349e0a97a97efea8ec10f9013f1 It is no longer needed since we disable fast math with Intel OpenCL and double precision setting. --- lib/gpu/lal_soft.cu | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/lib/gpu/lal_soft.cu b/lib/gpu/lal_soft.cu index bc96a861df..74ac0e0c97 100644 --- a/lib/gpu/lal_soft.cu +++ b/lib/gpu/lal_soft.cu @@ -22,15 +22,6 @@ _texture_2d( pos_tex,int4); #endif #else #define pos_tex x_ -// hack for Intel GPU with double precision -#if defined(_DOUBLE_DOUBLE) && (CONFIG_ID == 500) -#define MY_PI_HALF (acctyp)1.57079632679489661923 -#define my_cos(x) sin(x+MY_PI_HALF) -#endif -#endif - -#if !defined(my_cos) -#define my_cos(x) cos(x) #endif #define MY_PI (acctyp)3.14159265358979323846 @@ -104,7 +95,7 @@ __kernel void k_soft(const __global numtyp4 *restrict x_, f.z+=delz*force; if (EVFLAG && eflag) { - numtyp e=coeff[mtype].x * ((numtyp)1.0+my_cos(arg)); + numtyp e=coeff[mtype].x * ((numtyp)1.0+cos(arg)); energy+=factor_lj*e; } if (EVFLAG && vflag) { @@ -195,7 +186,7 @@ __kernel void k_soft_fast(const __global numtyp4 *restrict x_, f.z+=delz*force; if (EVFLAG && eflag) { - numtyp e=coeff[mtype].x * ((numtyp)1.0+my_cos(arg)); + numtyp e=coeff[mtype].x * ((numtyp)1.0+cos(arg)); energy+=factor_lj*e; } if (EVFLAG && vflag) { From 646ef15d8345a5d75002276dc23179afdee80fad Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 5 Mar 2023 07:18:12 -0500 Subject: [PATCH 38/58] more consistent way to disable fast math for Intel OpenCL with double precision --- lib/gpu/lal_device.cpp | 5 ++--- lib/gpu/lal_preprocessor.h | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/gpu/lal_device.cpp b/lib/gpu/lal_device.cpp index c98253ba4c..8d2211481d 100644 --- a/lib/gpu/lal_device.cpp +++ b/lib/gpu/lal_device.cpp @@ -391,10 +391,9 @@ int DeviceT::set_ocl_params(std::string s_config, const std::string &extra_args) #endif // workaround for double precision with Intel OpenCL #ifdef _DOUBLE_DOUBLE - if ((params[4] != "0") && (params[0] != "500")) _ocl_compile_string+="-cl-fast-relaxed-math "; - #else - if (params[4] != "0") _ocl_compile_string+="-cl-fast-relaxed-math "; + if (params[0] == "500") params[4] = "0"; #endif + if (params[4] != "0") _ocl_compile_string+="-cl-fast-relaxed-math "; _ocl_compile_string+=std::string(OCL_INT_TYPE)+" "+ std::string(OCL_PRECISION_COMPILE); if (gpu->has_subgroup_support()) diff --git a/lib/gpu/lal_preprocessor.h b/lib/gpu/lal_preprocessor.h index b3243c3b2e..30dec214e8 100644 --- a/lib/gpu/lal_preprocessor.h +++ b/lib/gpu/lal_preprocessor.h @@ -169,7 +169,7 @@ #define ucl_abs fabs #define ucl_erfc erfc -#if defined(FAST_MATH) && !defined(_DOUBLE_DOUBLE) +#if defined(FAST_MATH) && (FAST_MATH > 0) && !defined(_DOUBLE_DOUBLE) #define ucl_exp native_exp #define ucl_pow pow From 4f420f8454a2780efa4f8d87fb0bcb85080a3b56 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 6 Mar 2023 12:14:57 -0500 Subject: [PATCH 39/58] incorporate changes to fix alchemy from @sjplimp --- src/REPLICA/fix_alchemy.cpp | 93 ++++++++++++++++++++++++------------- src/REPLICA/fix_alchemy.h | 2 + 2 files changed, 62 insertions(+), 33 deletions(-) diff --git a/src/REPLICA/fix_alchemy.cpp b/src/REPLICA/fix_alchemy.cpp index 29801d5c8d..4b29da5250 100644 --- a/src/REPLICA/fix_alchemy.cpp +++ b/src/REPLICA/fix_alchemy.cpp @@ -109,7 +109,51 @@ int FixAlchemy::setmask() return mask; } -/* ---------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + check consistency of owned atom count and ordering + compare each pair of replica procs + checked before each exchange of atom coords or forces + to ensure the replicas have not become out of sync +---------------------------------------------------------------------- */ + +void FixAlchemy::check_consistency_atoms() +{ + // check that owned atom count is same for each pair of replica procs + + const int nlocal = atom->nlocal; + int my_nlocal[2] = {0, 0}; + int all_nlocal[2] = {0, 0}; + my_nlocal[universe->iworld] = nlocal; + MPI_Allreduce(my_nlocal, all_nlocal, 2, MPI_INT, MPI_SUM, samerank); + + int fail = (all_nlocal[0] == all_nlocal[1]) ? 0 : 1; + int allfail = 0; + MPI_Allreduce(&fail, &allfail, 1, MPI_INT, MPI_MAX, universe->uworld); + if (allfail) error->universe_all(FLERR, "Fix alchemy local atom count is inconsistent"); + + // check that owned atom ordering is same for each pair of replica procs + // re-use communication buffer for positions and forces + + tagint *tagbuf = (tagint *) commbuf; + tagint *tag = atom->tag; + if (universe->iworld == 0) { + for (int i = 0; i < nlocal; ++i) tagbuf[i] = tag[i]; + } + MPI_Bcast(tagbuf, nlocal, MPI_LMP_TAGINT, 0, samerank); + + fail = allfail = 0; + if (universe->iworld > 0) { + for (int i = 0; i < nlocal; ++i) + if (tag[i] != tagbuf[i]) fail = 1; + } + MPI_Allreduce(&fail, &allfail, 1, MPI_INT, MPI_MAX, universe->uworld); + if (allfail) error->universe_all(FLERR, "Fix alchemy local atom ordering is inconsistent"); +} + +/* ---------------------------------------------------------------------- + force simulation box size and shape to be identical for 2 replicas + invoked by post_integrate() after integration may have changed box +---------------------------------------------------------------------- */ static void synchronize_box(Domain *domain, MPI_Comm samerank) { @@ -180,36 +224,9 @@ void FixAlchemy::setup(int vflag) void FixAlchemy::post_integrate() { - // re-check that we have the same domain decomposition on all ranks - const int nlocal = atom->nlocal; - int my_nlocal[2] = {0, 0}; - int all_nlocal[2] = {0, 0}; - my_nlocal[universe->iworld] = nlocal; - MPI_Allreduce(my_nlocal, all_nlocal, 2, MPI_INT, MPI_SUM, samerank); - int fail = (all_nlocal[0] == all_nlocal[1]) ? 0 : 1; - int allfail = 0; - MPI_Allreduce(&fail, &allfail, 1, MPI_INT, MPI_MAX, universe->uworld); - if (allfail) - error->universe_all(FLERR, - "Number of atoms and domain decomposition must be the same on " - "all partitions"); + // check owned atom count and ordering between replicas - // check that we have the same atom order on all ranks - // re-use communication buffer for positions and forces - - tagint *tagbuf = (tagint *) commbuf; - tagint *tag = atom->tag; - if (universe->iworld == 0) { - for (int i = 0; i < nlocal; ++i) tagbuf[i] = tag[i]; - } - MPI_Bcast(tagbuf, nlocal, MPI_LMP_TAGINT, 0, samerank); - fail = allfail = 0; - if (universe->iworld > 0) { - for (int i = 0; i < nlocal; ++i) - if (tag[i] != tagbuf[i]) fail = 1; - } - MPI_Allreduce(&fail, &allfail, 1, MPI_INT, MPI_MAX, universe->uworld); - if (allfail) error->universe_all(FLERR, "Atoms must have the same order on all partitions"); + check_consistency_atoms(); // synchronize atom positions @@ -225,15 +242,25 @@ void FixAlchemy::post_integrate() void FixAlchemy::post_force(int /*vflag*/) { + // grow commbuf if necessary + if (3 * atom->nmax > nmax) { nmax = 3 * atom->nmax; memory->grow(commbuf, sizeof(double) * atom->nmax, "alchemy:commbuf"); } - const int nall = 3 * atom->nlocal; - double *f = &atom->f[0][0]; + // check owned atom count and ordering between replicas + + check_consistency_atoms(); + + // evaluate lambda variable + lambda = input->variable->compute_equal(ivar); + // sum forces multiplied by lambda across 2 replicas + + const int nall = 3 * atom->nlocal; + double *f = &atom->f[0][0]; for (int i = 0; i < nall; ++i) commbuf[i] = f[i] * lambda; MPI_Allreduce(commbuf, f, nall, MPI_DOUBLE, MPI_SUM, samerank); @@ -253,7 +280,7 @@ void FixAlchemy::post_force(int /*vflag*/) MPI_Allreduce(commbuf, pressure, 6, MPI_DOUBLE, MPI_SUM, universe->uworld); press->addstep(update->ntimestep + 1); - // print progress info + // print progress info to universe screen/logfile if (universe->me == 0) { double delta = update->ntimestep - update->beginstep; diff --git a/src/REPLICA/fix_alchemy.h b/src/REPLICA/fix_alchemy.h index 53c369d551..f14d1b05ca 100644 --- a/src/REPLICA/fix_alchemy.h +++ b/src/REPLICA/fix_alchemy.h @@ -50,6 +50,8 @@ class FixAlchemy : public Fix { int sync_box; // 1 of box dimensions need to be synchronized int nmax; int ivar; + + void check_consistency_atoms(); }; } // namespace LAMMPS_NS From 5909a0527bce12b1c81e73bea064d19149ced445 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 6 Mar 2023 13:39:50 -0500 Subject: [PATCH 40/58] update list of packages included into the Windows builds. --- doc/src/Install_windows.rst | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/src/Install_windows.rst b/doc/src/Install_windows.rst index da9441fc49..f23092941a 100644 --- a/doc/src/Install_windows.rst +++ b/doc/src/Install_windows.rst @@ -17,11 +17,12 @@ install the Windows MPI package (MPICH2 from Argonne National Labs), needed to run in parallel with MPI. The LAMMPS binaries contain *all* :doc:`optional packages ` -included in the source distribution except: KIM, KOKKOS, MSCG, PYTHON, -ADIOS, H5MD, NETCDF, QMMM, ML-QUIP, and VTK. -The serial version also does not include the MPIIO and -LATBOLTZ packages. The GPU package is compiled for OpenCL with -mixed precision kernels. +included in the source distribution except: ADIOS, H5MD, KIM, ML-PACE, +ML-QUIP, MSCG, NETCDF, PLUMED, QMMM, SCAFACOS, and VTK. The serial +version also does not include the MPIIO and LATBOLTZ packages. The +PYTHON package is only available in the Python installaers that bundle a +Python runtime. The GPU package is compiled for OpenCL with mixed +precision kernels. The LAMMPS library is compiled as a shared library and the :doc:`LAMMPS Python module ` is installed, so that From 76cbc6f48dcacfe294c48624f02b276c41185fe7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 6 Mar 2023 22:40:27 -0500 Subject: [PATCH 41/58] whitespace --- doc/src/fix_deposit.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/fix_deposit.rst b/doc/src/fix_deposit.rst index 0199ae98ce..7d19e93148 100644 --- a/doc/src/fix_deposit.rst +++ b/doc/src/fix_deposit.rst @@ -221,9 +221,9 @@ options choose a z-coordinate for insertion independently. The vx, vy, and vz components of velocity for the inserted particle are set by sampling a uniform distribution between the bounds set by -the values specified for the *vx*, *vy*, and *vz* keywords. Note that -normally, new particles should be a assigned a negative vertical -velocity so that they move towards the surface. For molecules, the +the values specified for the *vx*, *vy*, and *vz* keywords. Note that +normally, new particles should be a assigned a negative vertical +velocity so that they move towards the surface. For molecules, the same velocity is given to every particle (no rotation or bond vibration). If the *target* option is used, the velocity vector of the inserted From 0b204c8cb3d1aac4eb7d43b7824b9a1391ceea16 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 6 Mar 2023 22:17:12 -0500 Subject: [PATCH 42/58] avoid including accelerator_kokkos.h in main.cpp --- cmake/Modules/Packages/KOKKOS.cmake | 3 --- src/KOKKOS/kokkos.cpp | 9 +++++++++ src/accelerator_kokkos.h | 5 +++++ src/main.cpp | 15 +++++++++------ 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/cmake/Modules/Packages/KOKKOS.cmake b/cmake/Modules/Packages/KOKKOS.cmake index b4eb227d61..00486e73db 100644 --- a/cmake/Modules/Packages/KOKKOS.cmake +++ b/cmake/Modules/Packages/KOKKOS.cmake @@ -72,13 +72,11 @@ if(DOWNLOAD_KOKKOS) set_target_properties(LAMMPS::KOKKOSCONTAINERS PROPERTIES IMPORTED_LOCATION "${INSTALL_DIR}/lib/libkokkoscontainers.a") target_link_libraries(lammps PRIVATE LAMMPS::KOKKOSCORE LAMMPS::KOKKOSCONTAINERS) - target_link_libraries(lmp PRIVATE LAMMPS::KOKKOSCORE LAMMPS::KOKKOSCONTAINERS) add_dependencies(LAMMPS::KOKKOSCORE kokkos_build) add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build) elseif(EXTERNAL_KOKKOS) find_package(Kokkos 3.7.01 REQUIRED CONFIG) target_link_libraries(lammps PRIVATE Kokkos::kokkos) - target_link_libraries(lmp PRIVATE Kokkos::kokkos) else() set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos) set(LAMMPS_LIB_KOKKOS_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/kokkos) @@ -98,7 +96,6 @@ else() ${LAMMPS_LIB_KOKKOS_BIN_DIR}) target_include_directories(lammps PRIVATE ${Kokkos_INCLUDE_DIRS}) target_link_libraries(lammps PRIVATE kokkos) - target_link_libraries(lmp PRIVATE kokkos) if(BUILD_SHARED_LIBS_WAS_ON) set(BUILD_SHARED_LIBS ON) endif() diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 8b45c786e5..4e96e3218c 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -33,6 +33,10 @@ #include // for getpid() #endif +namespace LAMMPS_NS { + void kokkos_lmp_finalize(); +} + #ifdef LMP_KOKKOS_GPU // for detecting GPU-aware MPI support: @@ -80,6 +84,11 @@ using namespace LAMMPS_NS; int KokkosLMP::is_finalized = 0; int KokkosLMP::init_ngpus = 0; +void LAMMPS_NS::kokkos_lmp_finalize() +{ + KokkosLMP::finalize(); +} + /* ---------------------------------------------------------------------- */ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) diff --git a/src/accelerator_kokkos.h b/src/accelerator_kokkos.h index 36a376bff8..37d86a89e3 100644 --- a/src/accelerator_kokkos.h +++ b/src/accelerator_kokkos.h @@ -61,6 +61,11 @@ class KokkosLMP { int neigh_count(int) { return 0; } }; +void kokkos_lmp_finalize() +{ + KokkosLMP::finalize(); +} + class AtomKokkos : public Atom { public: tagint **k_special; diff --git a/src/main.cpp b/src/main.cpp index e263938e57..606f31274d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,7 +13,6 @@ #include "lammps.h" -#include "accelerator_kokkos.h" #include "input.h" #include "lmppython.h" @@ -33,6 +32,10 @@ #include #endif +namespace LAMMPS_NS { +extern void kokkos_lmp_finalize(); +} + using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- @@ -76,18 +79,18 @@ int main(int argc, char **argv) lammps->input->file(); delete lammps; } catch (LAMMPSAbortException &ae) { - KokkosLMP::finalize(); + kokkos_lmp_finalize(); Python::finalize(); MPI_Abort(ae.universe, 1); } catch (LAMMPSException &) { - KokkosLMP::finalize(); + kokkos_lmp_finalize(); Python::finalize(); MPI_Barrier(lammps_comm); MPI_Finalize(); exit(1); } catch (fmt::format_error &fe) { fprintf(stderr, "fmt::format_error: %s\n", fe.what()); - KokkosLMP::finalize(); + kokkos_lmp_finalize(); Python::finalize(); MPI_Abort(MPI_COMM_WORLD, 1); exit(1); @@ -99,13 +102,13 @@ int main(int argc, char **argv) delete lammps; } catch (fmt::format_error &fe) { fprintf(stderr, "fmt::format_error: %s\n", fe.what()); - KokkosLMP::finalize(); + kokkos_lmp_finalize(); Python::finalize(); MPI_Abort(MPI_COMM_WORLD, 1); exit(1); } #endif - KokkosLMP::finalize(); + kokkos_lmp_finalize(); Python::finalize(); MPI_Barrier(lammps_comm); MPI_Finalize(); From 642dccceb530afc99ca6481709386be7e840e0e6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 6 Mar 2023 22:49:20 -0500 Subject: [PATCH 43/58] fix up non-KOKKOS case --- src/accelerator_kokkos.h | 5 ----- src/main.cpp | 10 ++++++++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/accelerator_kokkos.h b/src/accelerator_kokkos.h index 37d86a89e3..36a376bff8 100644 --- a/src/accelerator_kokkos.h +++ b/src/accelerator_kokkos.h @@ -61,11 +61,6 @@ class KokkosLMP { int neigh_count(int) { return 0; } }; -void kokkos_lmp_finalize() -{ - KokkosLMP::finalize(); -} - class AtomKokkos : public Atom { public: tagint **k_special; diff --git a/src/main.cpp b/src/main.cpp index 606f31274d..543833498b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -32,9 +32,19 @@ #include #endif +#if defined(LMP_KOKKOS) namespace LAMMPS_NS { extern void kokkos_lmp_finalize(); } +#else +#include "accelerator_kokkos.h" +namespace LAMMPS_NS { +void kokkos_lmp_finalize() +{ + KokkosLMP::finalize(); +} +} +#endif using namespace LAMMPS_NS; From 710baff14df381d51805ac87d00c2b0d6cdbd040 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 7 Mar 2023 08:23:36 -0500 Subject: [PATCH 44/58] use finalize wrappers from the LAMMPS library interface --- src/KOKKOS/kokkos.cpp | 9 --------- src/main.cpp | 36 +++++++++++------------------------- 2 files changed, 11 insertions(+), 34 deletions(-) diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 4e96e3218c..8b45c786e5 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -33,10 +33,6 @@ #include // for getpid() #endif -namespace LAMMPS_NS { - void kokkos_lmp_finalize(); -} - #ifdef LMP_KOKKOS_GPU // for detecting GPU-aware MPI support: @@ -84,11 +80,6 @@ using namespace LAMMPS_NS; int KokkosLMP::is_finalized = 0; int KokkosLMP::init_ngpus = 0; -void LAMMPS_NS::kokkos_lmp_finalize() -{ - KokkosLMP::finalize(); -} - /* ---------------------------------------------------------------------- */ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) diff --git a/src/main.cpp b/src/main.cpp index 543833498b..746ccc41e9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -14,7 +14,7 @@ #include "lammps.h" #include "input.h" -#include "lmppython.h" +#include "library.h" #if defined(LAMMPS_EXCEPTIONS) #include "exceptions.h" @@ -32,20 +32,6 @@ #include #endif -#if defined(LMP_KOKKOS) -namespace LAMMPS_NS { -extern void kokkos_lmp_finalize(); -} -#else -#include "accelerator_kokkos.h" -namespace LAMMPS_NS { -void kokkos_lmp_finalize() -{ - KokkosLMP::finalize(); -} -} -#endif - using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- @@ -89,19 +75,19 @@ int main(int argc, char **argv) lammps->input->file(); delete lammps; } catch (LAMMPSAbortException &ae) { - kokkos_lmp_finalize(); - Python::finalize(); + lammps_kokkos_finalize(); + lammps_python_finalize(); MPI_Abort(ae.universe, 1); } catch (LAMMPSException &) { - kokkos_lmp_finalize(); - Python::finalize(); + lammps_kokkos_finalize(); + lammps_python_finalize(); MPI_Barrier(lammps_comm); MPI_Finalize(); exit(1); } catch (fmt::format_error &fe) { fprintf(stderr, "fmt::format_error: %s\n", fe.what()); - kokkos_lmp_finalize(); - Python::finalize(); + lammps_kokkos_finalize(); + lammps_python_finalize(); MPI_Abort(MPI_COMM_WORLD, 1); exit(1); } @@ -112,14 +98,14 @@ int main(int argc, char **argv) delete lammps; } catch (fmt::format_error &fe) { fprintf(stderr, "fmt::format_error: %s\n", fe.what()); - kokkos_lmp_finalize(); - Python::finalize(); + lammps_kokkos_finalize(); + lammps_python_finalize(); MPI_Abort(MPI_COMM_WORLD, 1); exit(1); } #endif - kokkos_lmp_finalize(); - Python::finalize(); + lammps_kokkos_finalize(); + lammps_python_finalize(); MPI_Barrier(lammps_comm); MPI_Finalize(); } From ce1956e60b198063b519cdfe53ec90f55aad7976 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 7 Mar 2023 13:43:27 -0500 Subject: [PATCH 45/58] avoid linking errors due to nvcc wrapper warning silencing. --- cmake/CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index a6956f5f5d..41229e9cd6 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -538,7 +538,10 @@ set(CMAKE_TUNE_FLAGS "${CMAKE_TUNE_DEFAULT}" CACHE STRING "Compiler and machine separate_arguments(CMAKE_TUNE_FLAGS) foreach(_FLAG ${CMAKE_TUNE_FLAGS}) target_compile_options(lammps PRIVATE ${_FLAG}) - target_compile_options(lmp PRIVATE ${_FLAG}) + # skip these flags when linking the main executable + if(NOT (("${_FLAG}" STREQUAL "-Xcudafe") OR (("${_FLAG}" STREQUAL "--diag_suppress=unrecognized_pragma")))) + target_compile_options(lmp PRIVATE ${_FLAG}) + endif() endforeach() ######################################################################## # Basic system tests (standard libraries, headers, functions, types) # From 4ed49d2f21ffe6a65d022d46906ff9c82ec1ec7a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 7 Mar 2023 13:44:34 -0500 Subject: [PATCH 46/58] make Input::file(const char *) function safe for passing a null pointer --- src/input.cpp | 23 ++++++++++++----------- src/library.cpp | 3 +-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/input.cpp b/src/input.cpp index e653704ae3..ef0433dc99 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -327,15 +327,14 @@ void Input::file(const char *filename) // call to file() will close filename and decrement nfile if (me == 0) { - if (nfile == maxfile) - error->one(FLERR,"Too many nested levels of input scripts"); + if (nfile == maxfile) error->one(FLERR,"Too many nested levels of input scripts"); - infile = fopen(filename,"r"); - if (infile == nullptr) - error->one(FLERR,"Cannot open input script {}: {}", - filename, utils::getsyserror()); - - infiles[nfile++] = infile; + if (filename) { + infile = fopen(filename,"r"); + if (infile == nullptr) + error->one(FLERR,"Cannot open input script {}: {}", filename, utils::getsyserror()); + infiles[nfile++] = infile; + } } // process contents of file @@ -343,9 +342,11 @@ void Input::file(const char *filename) file(); if (me == 0) { - fclose(infile); - nfile--; - infile = infiles[nfile-1]; + if (filename) { + fclose(infile); + nfile--; + infile = infiles[nfile-1]; + } } } diff --git a/src/library.cpp b/src/library.cpp index 7fcc22ef17..9f817a1199 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -532,8 +532,7 @@ void lammps_file(void *handle, const char *filename) BEGIN_CAPTURE { if (lmp->update->whichflag != 0) - lmp->error->all(FLERR,"Library error: issuing LAMMPS commands " - "during a run is not allowed."); + lmp->error->all(FLERR, "Library error: issuing LAMMPS commands during a run is not allowed"); else lmp->input->file(filename); } From 19a3e2f6b3229f84a8ade829e56eeed477dec904 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 7 Mar 2023 13:47:09 -0500 Subject: [PATCH 47/58] CUDA 12 is now tested --- cmake/Modules/Packages/GPU.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmake/Modules/Packages/GPU.cmake b/cmake/Modules/Packages/GPU.cmake index 8ac1decc86..22b0bec798 100644 --- a/cmake/Modules/Packages/GPU.cmake +++ b/cmake/Modules/Packages/GPU.cmake @@ -98,9 +98,11 @@ if(GPU_API STREQUAL "CUDA") # comparison chart according to: https://en.wikipedia.org/wiki/CUDA#GPUs_supported if(CUDA_VERSION VERSION_LESS 8.0) message(FATAL_ERROR "CUDA Toolkit version 8.0 or later is required") - elseif(CUDA_VERSION VERSION_GREATER_EQUAL "12.0") + elseif(CUDA_VERSION VERSION_GREATER_EQUAL "13.0") message(WARNING "Untested CUDA Toolkit version ${CUDA_VERSION}. Use at your own risk") set(GPU_CUDA_GENCODE "-arch=all") + elseif(CUDA_VERSION VERSION_GREATER_EQUAL "12.0") + set(GPU_CUDA_GENCODE "-arch=all") else() # Kepler (GPU Arch 3.0) is supported by CUDA 5 to CUDA 10.2 if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "11.0")) From 2a3d0458d5e0465f6bb5a127f265c56d1b88dc0c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 7 Mar 2023 13:47:39 -0500 Subject: [PATCH 48/58] simplify --- src/main.cpp | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 746ccc41e9..e3e304a0d4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -34,6 +34,13 @@ using namespace LAMMPS_NS; +// for convenience +static void finalize() +{ + lammps_kokkos_finalize(); + lammps_python_finalize(); +} + /* ---------------------------------------------------------------------- main program to drive LAMMPS ------------------------------------------------------------------------- */ @@ -41,7 +48,6 @@ using namespace LAMMPS_NS; int main(int argc, char **argv) { MPI_Init(&argc, &argv); - MPI_Comm lammps_comm = MPI_COMM_WORLD; #if defined(LMP_MDI) @@ -75,19 +81,21 @@ int main(int argc, char **argv) lammps->input->file(); delete lammps; } catch (LAMMPSAbortException &ae) { - lammps_kokkos_finalize(); - lammps_python_finalize(); + finalize(); MPI_Abort(ae.universe, 1); } catch (LAMMPSException &) { - lammps_kokkos_finalize(); - lammps_python_finalize(); + finalize(); MPI_Barrier(lammps_comm); MPI_Finalize(); exit(1); } catch (fmt::format_error &fe) { fprintf(stderr, "fmt::format_error: %s\n", fe.what()); - lammps_kokkos_finalize(); - lammps_python_finalize(); + finalize(); + MPI_Abort(MPI_COMM_WORLD, 1); + exit(1); + } catch (std::exception &e) { + fprintf(stderr, "Exception: %s\n", e.what()); + finalize(); MPI_Abort(MPI_COMM_WORLD, 1); exit(1); } @@ -98,14 +106,12 @@ int main(int argc, char **argv) delete lammps; } catch (fmt::format_error &fe) { fprintf(stderr, "fmt::format_error: %s\n", fe.what()); - lammps_kokkos_finalize(); - lammps_python_finalize(); + finalize(); MPI_Abort(MPI_COMM_WORLD, 1); exit(1); } #endif - lammps_kokkos_finalize(); - lammps_python_finalize(); + finalize(); MPI_Barrier(lammps_comm); MPI_Finalize(); } From 01c03bddf62ea0064b0df3ddce3fab9d43472cb9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 7 Mar 2023 15:22:54 -0500 Subject: [PATCH 49/58] improve style mismatch warning messages in read_data --- src/read_data.cpp | 67 +++++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 29 deletions(-) diff --git a/src/read_data.cpp b/src/read_data.cpp index 6785e51ecc..bf96fa362a 100644 --- a/src/read_data.cpp +++ b/src/read_data.cpp @@ -336,8 +336,8 @@ void ReadData::command(int narg, char **arg) error->all(FLERR, "Cannot run 2d simulation with nonperiodic Z dimension"); if ((domain->nonperiodic == 2) && utils::strmatch(force->kspace_style, "^msm")) error->all(FLERR, - "Reading a data file with shrinkwrap boundaries is " - "not compatible with a MSM KSpace style"); + "Reading a data file with shrinkwrap boundaries is not " + "compatible with a MSM KSpace style"); if (domain->box_exist && !addflag) error->all(FLERR, "Cannot use read_data without add keyword after simulation box is defined"); if (!domain->box_exist && addflag) @@ -561,8 +561,8 @@ void ReadData::command(int narg, char **arg) // only done if firstpass and not first data file if (firstpass && addflag != NONE) { - double oldboxlo[3] = { domain->boxlo[0], domain->boxlo[1] , domain->boxlo[2]}; - double oldboxhi[3] = { domain->boxhi[0], domain->boxhi[1] , domain->boxhi[2]}; + double oldboxlo[3] = {domain->boxlo[0], domain->boxlo[1], domain->boxlo[2]}; + double oldboxhi[3] = {domain->boxhi[0], domain->boxhi[1], domain->boxhi[2]}; domain->boxlo[0] = MIN(domain->boxlo[0], boxlo[0] + shift[0]); domain->boxhi[0] = MAX(domain->boxhi[0], boxhi[0] + shift[0]); domain->boxlo[1] = MIN(domain->boxlo[1], boxlo[1] + shift[1]); @@ -575,7 +575,7 @@ void ReadData::command(int narg, char **arg) (oldboxlo[2] != domain->boxlo[2]) || (oldboxhi[0] != domain->boxhi[0]) || (oldboxhi[1] != domain->boxhi[1]) || (oldboxhi[2] != domain->boxhi[2])) { int iflag = 1; - for (int i=0; i < atom->nlocal; ++i) { + for (int i = 0; i < atom->nlocal; ++i) { int xbox = (atom->image[i] & IMGMASK) - IMGMAX; int ybox = (atom->image[i] >> IMGBITS & IMGMASK) - IMGMAX; int zbox = (atom->image[i] >> IMG2BITS) - IMGMAX; @@ -584,9 +584,9 @@ void ReadData::command(int narg, char **arg) if (zbox != 0) iflag = 1; } int flag_all; - MPI_Allreduce(&iflag,&flag_all, 1, MPI_INT, MPI_SUM, world); + MPI_Allreduce(&iflag, &flag_all, 1, MPI_INT, MPI_SUM, world); if ((flag_all > 0) && (comm->me == 0)) - error->warning(FLERR,"Non-zero image flags with growing box leads to bad coordinates"); + error->warning(FLERR, "Non-zero image flags with growing box leads to bad coordinates"); } // NOTE: not sure what to do about tilt value in subsequent data files @@ -617,8 +617,9 @@ void ReadData::command(int narg, char **arg) atomflag = 1; if (firstpass) { if (me == 0 && !style_match(style, atom->atom_style)) - error->warning(FLERR, - "Atom style in data file differs from currently defined atom style"); + error->warning( + FLERR, "Atom style in data file {} differs from currently defined atom style {}", + style, atom->atom_style); atoms(); } else skip_lines(natoms); @@ -696,8 +697,9 @@ void ReadData::command(int narg, char **arg) if (force->pair == nullptr) error->all(FLERR, "Must define pair_style before Pair Coeffs"); if (firstpass) { if (me == 0 && !style_match(style, force->pair_style)) - error->warning(FLERR, - "Pair style in data file differs from currently defined pair style"); + error->warning( + FLERR, "Pair style {} in data file differs from currently defined pair style {}", + style, force->pair_style); paircoeffs(); } else skip_lines(ntypes); @@ -706,9 +708,9 @@ void ReadData::command(int narg, char **arg) error->all(FLERR, "Must define pair_style before PairIJ Coeffs"); if (firstpass) { if (me == 0 && !style_match(style, force->pair_style)) - error->warning(FLERR, - "Pair style in data file differs " - "from currently defined pair style"); + error->warning( + FLERR, "Pair style {} in data file differs from currently defined pair style {}", + style, force->pair_style); pairIJcoeffs(); } else skip_lines(ntypes * (ntypes + 1) / 2); @@ -718,8 +720,9 @@ void ReadData::command(int narg, char **arg) if (force->bond == nullptr) error->all(FLERR, "Must define bond_style before Bond Coeffs"); if (firstpass) { if (me == 0 && !style_match(style, force->bond_style)) - error->warning(FLERR, - "Bond style in data file differs from currently defined bond style"); + error->warning( + FLERR, "Bond style {} in data file differs from currently defined bond style {}", + style, force->bond_style); bondcoeffs(); } else skip_lines(nbondtypes); @@ -730,8 +733,9 @@ void ReadData::command(int narg, char **arg) error->all(FLERR, "Must define angle_style before Angle Coeffs"); if (firstpass) { if (me == 0 && !style_match(style, force->angle_style)) - error->warning(FLERR, - "Angle style in data file differs from currently defined angle style"); + error->warning( + FLERR, "Angle style {} in data file differs from currently defined angle style {}", + style, force->angle_style); anglecoeffs(0); } else skip_lines(nangletypes); @@ -742,9 +746,10 @@ void ReadData::command(int narg, char **arg) error->all(FLERR, "Must define dihedral_style before Dihedral Coeffs"); if (firstpass) { if (me == 0 && !style_match(style, force->dihedral_style)) - error->warning(FLERR, - "Dihedral style in data file differs " - "from currently defined dihedral style"); + error->warning( + FLERR, + "Dihedral style {} in data file differs from currently defined dihedral style {}", + style, force->dihedral_style); dihedralcoeffs(0); } else skip_lines(ndihedraltypes); @@ -755,9 +760,10 @@ void ReadData::command(int narg, char **arg) error->all(FLERR, "Must define improper_style before Improper Coeffs"); if (firstpass) { if (me == 0 && !style_match(style, force->improper_style)) - error->warning(FLERR, - "Improper style in data file differs " - "from currently defined improper style"); + error->warning( + FLERR, + "Improper style {} in data file differs from currently defined improper style {}", + style, force->improper_style); impropercoeffs(0); } else skip_lines(nimpropertypes); @@ -2018,8 +2024,10 @@ void ReadData::pairIJcoeffs() *next = '\0'; parse_coeffs(buf, nullptr, 0, 2, toffset, tlabelflag, lmap->lmap2lmap.atom); if (ncoeffarg == 0) - error->all(FLERR, "Unexpected empty line in PairIJCoeffs section. " - "Expected {} lines.", (ntypes-1)*ntypes); + error->all(FLERR, + "Unexpected empty line in PairIJCoeffs section. " + "Expected {} lines.", + (ntypes - 1) * ntypes); force->pair->coeff(ncoeffarg, coeffarg); buf = next + 1; } @@ -2049,7 +2057,8 @@ void ReadData::bondcoeffs() *next = '\0'; parse_coeffs(buf, nullptr, 0, 1, boffset, blabelflag, lmap->lmap2lmap.bond); if (ncoeffarg == 0) - error->all(FLERR, "Unexpected empty line in BondCoeffs section. Expected {} lines.", nbondtypes); + error->all(FLERR, "Unexpected empty line in BondCoeffs section. Expected {} lines.", + nbondtypes); force->bond->coeff(ncoeffarg, coeffarg); buf = next + 1; } @@ -2442,12 +2451,12 @@ void ReadData::parse_coeffs(char *line, const char *addstr, int dupflag, int nof int value = utils::inumeric(FLERR, coeffarg[0], false, lmp); if (labelmode) value = ilabel[value - 1]; argoffset1 = std::to_string(value + offset); - coeffarg[0] = (char *)argoffset1.c_str(); + coeffarg[0] = (char *) argoffset1.c_str(); if (noffset == 2) { value = utils::inumeric(FLERR, coeffarg[1], false, lmp); if (labelmode) value = ilabel[value - 1]; argoffset2 = std::to_string(value + offset); - coeffarg[1] = (char *)argoffset2.c_str(); + coeffarg[1] = (char *) argoffset2.c_str(); } } } From 381d0445ed6835aa8d9109c954cc358bfd658463 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 7 Mar 2023 19:41:50 -0500 Subject: [PATCH 50/58] fix spelling issues --- doc/src/Install_windows.rst | 2 +- doc/src/balance.rst | 2 +- doc/src/fix_balance.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Install_windows.rst b/doc/src/Install_windows.rst index f23092941a..fdfd406c8b 100644 --- a/doc/src/Install_windows.rst +++ b/doc/src/Install_windows.rst @@ -20,7 +20,7 @@ The LAMMPS binaries contain *all* :doc:`optional packages ` included in the source distribution except: ADIOS, H5MD, KIM, ML-PACE, ML-QUIP, MSCG, NETCDF, PLUMED, QMMM, SCAFACOS, and VTK. The serial version also does not include the MPIIO and LATBOLTZ packages. The -PYTHON package is only available in the Python installaers that bundle a +PYTHON package is only available in the Python installers that bundle a Python runtime. The GPU package is compiled for OpenCL with mixed precision kernels. diff --git a/doc/src/balance.rst b/doc/src/balance.rst index c30c133a8b..4eaa00ea84 100644 --- a/doc/src/balance.rst +++ b/doc/src/balance.rst @@ -498,7 +498,7 @@ data to other processors during load-balancing will be random or deterministic. Random is generally faster; deterministic will ensure the new ordering of atoms on each processor is the same each time the same simulation is run. This can be useful for debugging purposes. -Since the balance commmand is a one-time operation, the default is +Since the balance command is a one-time operation, the default is *yes* to perform sorting. The *out* keyword writes a text file to the specified *filename* with diff --git a/doc/src/fix_balance.rst b/doc/src/fix_balance.rst index 8c65e8341d..0672a05470 100644 --- a/doc/src/fix_balance.rst +++ b/doc/src/fix_balance.rst @@ -314,7 +314,7 @@ data to other processors during load-balancing will be random or deterministic. Random is generally faster; deterministic will ensure the new ordering of atoms on each processor is the same each time the same simulation is run. This can be useful for debugging purposes. -Since the fix balance commmand is performed during timestepping, the +Since the fix balance command is performed during timestepping, the default is *no* so that sorting is not performed. The *out* keyword writes text to the specified *filename* with the From 451f3f71b81867ca841d7e27765bc0cd64992f48 Mon Sep 17 00:00:00 2001 From: alanhsieh4444 <110726422+alanhsieh4444@users.noreply.github.com> Date: Wed, 8 Mar 2023 13:37:46 +0800 Subject: [PATCH 51/58] Update molecule.rst --- doc/src/molecule.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/src/molecule.rst b/doc/src/molecule.rst index 5dcd30f508..c3c578f5ec 100644 --- a/doc/src/molecule.rst +++ b/doc/src/molecule.rst @@ -121,6 +121,11 @@ molecule (header keyword = inertia). ensure space is allocated for storing topology info for molecules that are added later. +---------- + +Format of a molecule file +""""""""""""""""""""" + The format of an individual molecule file is similar but (not identical) to the data file read by the :doc:`read_data ` commands, and is as follows. From c3c99b701cb7b1087af2ff90fb528eaf1a85c036 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 8 Mar 2023 07:21:21 -0500 Subject: [PATCH 52/58] correct underline --- doc/src/molecule.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/molecule.rst b/doc/src/molecule.rst index c3c578f5ec..b42bece327 100644 --- a/doc/src/molecule.rst +++ b/doc/src/molecule.rst @@ -124,7 +124,7 @@ molecule (header keyword = inertia). ---------- Format of a molecule file -""""""""""""""""""""" +""""""""""""""""""""""""" The format of an individual molecule file is similar but (not identical) to the data file read by the :doc:`read_data ` From 189be4625e63c99b82160e8a28620d2a4701d29c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 8 Mar 2023 18:25:58 -0500 Subject: [PATCH 53/58] improve/correct error messages for fix efield --- src/fix_efield.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/fix_efield.cpp b/src/fix_efield.cpp index e1d70e832f..3514ad1c34 100644 --- a/src/fix_efield.cpp +++ b/src/fix_efield.cpp @@ -42,7 +42,7 @@ FixEfield::FixEfield(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), xstr(nullptr), ystr(nullptr), zstr(nullptr), estr(nullptr), idregion(nullptr), region(nullptr), efield(nullptr) { - if (narg < 6) error->all(FLERR, "Illegal fix efield command"); + if (narg < 6) utils::missing_cmd_args(FLERR, "fix efield", error); dynamic_group_allow = 1; vector_flag = 1; @@ -85,20 +85,20 @@ FixEfield::FixEfield(LAMMPS *lmp, int narg, char **arg) : int iarg = 6; while (iarg < narg) { if (strcmp(arg[iarg], "region") == 0) { - if (iarg + 2 > narg) error->all(FLERR, "Illegal fix efield command"); + if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "fix efield region", error); region = domain->get_region_by_id(arg[iarg + 1]); if (!region) error->all(FLERR, "Region {} for fix efield does not exist", arg[iarg + 1]); idregion = utils::strdup(arg[iarg + 1]); iarg += 2; } else if (strcmp(arg[iarg], "energy") == 0) { - if (iarg + 2 > narg) error->all(FLERR, "Illegal fix efield command"); + if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "fix efield energy", error); if (utils::strmatch(arg[iarg + 1], "^v_")) { estr = utils::strdup(arg[iarg + 1] + 2); } else - error->all(FLERR, "Illegal fix efield command"); + error->all(FLERR, "Illegal fix efield energy value argument"); iarg += 2; } else - error->all(FLERR, "Illegal fix efield command"); + error->all(FLERR, "Unknown fix efield keyword: {}", arg[iarg]); } force_flag = 0; @@ -188,7 +188,7 @@ void FixEfield::init() if (idregion) { region = domain->get_region_by_id(idregion); - if (!region) error->all(FLERR, "Region {} for fix aveforce does not exist", idregion); + if (!region) error->all(FLERR, "Region {} for fix efield does not exist", idregion); } if (xstyle == ATOM || ystyle == ATOM || zstyle == ATOM) From e8871d990ac87f3bb8d59763286268af40d2c42e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 10 Mar 2023 09:16:00 -0500 Subject: [PATCH 54/58] clarify --- doc/src/fix_shake.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/fix_shake.rst b/doc/src/fix_shake.rst index 4688fcbf2a..2483b9431a 100644 --- a/doc/src/fix_shake.rst +++ b/doc/src/fix_shake.rst @@ -63,7 +63,7 @@ however, can *only* be applied during molecular dynamics runs. .. versionchanged:: 15Sep2022 -These fixes may still be used during minimization. In that case the +These fixes may now also be used during minimization. In that case the constraints are *approximated* by strong harmonic restraints. **SHAKE vs RATTLE:** From 233c55337c0a2a6f959bf3ae2665566d84a461e1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 10 Mar 2023 12:35:17 -0500 Subject: [PATCH 55/58] fix typo --- doc/src/Howto_tip4p.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Howto_tip4p.rst b/doc/src/Howto_tip4p.rst index 7912557e61..0a263499cc 100644 --- a/doc/src/Howto_tip4p.rst +++ b/doc/src/Howto_tip4p.rst @@ -239,7 +239,7 @@ rigid/nvt/small can identify rigid bodies by their molecule ID: 1 0.00000 -0.06556 0.00000 2 0.75695 0.52032 0.00000 - 2 -0.75695 0.52032 0.00000 + 3 -0.75695 0.52032 0.00000 4 0.00000 0.08444 0.00000 Types From 2dad2586f149b1b2972bc8991f8adc5a1a501a75 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 10 Mar 2023 20:16:39 -0500 Subject: [PATCH 56/58] update help message --- tools/msi2lmp/src/msi2lmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/msi2lmp/src/msi2lmp.c b/tools/msi2lmp/src/msi2lmp.c index 3136678023..0d9623e322 100644 --- a/tools/msi2lmp/src/msi2lmp.c +++ b/tools/msi2lmp/src/msi2lmp.c @@ -239,7 +239,7 @@ int main (int argc, char *argv[]) frc_dir_name = getenv("MSI2LMP_LIBRARY"); if (argc < 2) { - printf("usage: %s [-class ] [-frc ] [-print #] [-ignore] [-nocenter] [-oldstyle]\n",argv[0]); + printf("usage: %s [-class ] [-frc ] [-print #] [-ignore] [-nocenter] [-oldstyle]\n",argv[0]); return 1; } else { /* rootname was supplied as first argument, copy to rootname */ int len = strlen(argv[1]) + 1; From 80233f353f7966bf6eda1c4c8c335a024abf0651 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 10 Mar 2023 20:56:55 -0500 Subject: [PATCH 57/58] port UTF-8 to ASCII substitution to msi2lmp and apply to reading .frc files --- tools/msi2lmp/src/SearchAndFill.c | 11 +++- tools/msi2lmp/src/msi2lmp.c | 98 +++++++++++++++++++++++++++++++ tools/msi2lmp/src/msi2lmp.h | 3 + 3 files changed, 110 insertions(+), 2 deletions(-) diff --git a/tools/msi2lmp/src/SearchAndFill.c b/tools/msi2lmp/src/SearchAndFill.c index ff05ff13d0..f195e739c9 100644 --- a/tools/msi2lmp/src/SearchAndFill.c +++ b/tools/msi2lmp/src/SearchAndFill.c @@ -48,6 +48,7 @@ const char *SearchAndCheck(const char *keyword) fprintf(stderr," Exiting....\n"); exit(1); } + if (has_utf8(line)) utf8_subst(line); if (line[0] == '@') { if (string_match(strtok(line+1," '\t\n\r\f("),keyword)) { got_it = 1; @@ -82,6 +83,7 @@ void SearchAndFill(struct FrcFieldItem *item) fprintf(stderr," Exiting....\n"); exit(1); } + if (has_utf8(line)) utf8_subst(line); if (line[0] == '#') { if (string_match(strtok(line," '\t\r\n("),item->keyword)) got_it = 1; } @@ -116,13 +118,16 @@ void SearchAndFill(struct FrcFieldItem *item) ctr = 0; while ( strncmp(line,"!---", 4) != 0 ) { fgets(line, MAX_LINE_LENGTH, FrcF); + if (has_utf8(line)) utf8_subst(line); } /* Get first line of data that isn't commented out */ fgets(line, MAX_LINE_LENGTH, FrcF); + if (has_utf8(line)) utf8_subst(line); while (strncmp(line,"!",1) == 0) { fgets( line, MAX_LINE_LENGTH, FrcF); + if (has_utf8(line)) utf8_subst(line); } /* Read data into structure */ @@ -225,11 +230,13 @@ void SearchAndFill(struct FrcFieldItem *item) ctr++; } fgets( line, MAX_LINE_LENGTH, FrcF); + if (has_utf8(line)) utf8_subst(line); + /*if blank line encountered, get next */ - while((blank_line(line)) || - (strncmp(line,"!",1) == 0)) { + while((blank_line(line)) || (strncmp(line,"!",1) == 0)) { status = fgets( line, MAX_LINE_LENGTH, FrcF); if (status == NULL) break; + if (has_utf8(line)) utf8_subst(line); } } item->entries = ctr; diff --git a/tools/msi2lmp/src/msi2lmp.c b/tools/msi2lmp/src/msi2lmp.c index 0d9623e322..2eb05fd5c5 100644 --- a/tools/msi2lmp/src/msi2lmp.c +++ b/tools/msi2lmp/src/msi2lmp.c @@ -444,3 +444,101 @@ int main (int argc, char *argv[]) printf("\nNormal program termination\n"); return 0; } + +/* detect if a line has UTF-8 characters */ + +int has_utf8(const char *line) +{ + const unsigned char *c = (const unsigned char *)line; + + while (*c != '\0') { + if (*c & 0x80U) return 1; + ++c; + } + return 0; +} + +/* replace UTF-8 characters with ASCII counterparts where known and possible */ + +void utf8_subst(char *line) +{ + unsigned char *buf, *in, *out; + int i, len; + + in = (unsigned char *)line; + len = strlen(line); + buf = (unsigned char *)malloc(len+1); + out = buf; + + for (i = 0; i < len; ++i) { + + /* UTF-8 2-byte character */ + if ((in[i] & 0xe0U) == 0xc0U) { + if ((i + 1) < len) { + /* NON-BREAKING SPACE (U+00A0) */ + if ((in[i] == 0xc2U) && (in[i + 1] == 0xa0U)) *out++ = ' ', ++i; + /* MODIFIER LETTER PLUS SIGN (U+02D6) */ + if ((in[i] == 0xcbU) && (in[i + 1] == 0x96U)) *out++ = '+', ++i; + /* MODIFIER LETTER MINUS SIGN (U+02D7) */ + if ((in[i] == 0xcbU) && (in[i + 1] == 0x97U)) *out++ = '-', ++i; + } + /* UTF-8 3-byte character */ + } else if ((in[i] & 0xf0U) == 0xe0U) { + if ((i + 2) < len) { + /* EN QUAD (U+2000) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x80U)) *out++ = ' ', i += 2; + /* EM QUAD (U+2001) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x81U)) *out++ = ' ', i += 2; + /* EN SPACE (U+2002) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x82U)) *out++ = ' ', i += 2; + /* EM SPACE (U+2003) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x83U)) *out++ = ' ', i += 2; + /* THREE-PER-EM SPACE (U+2004) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x84U)) *out++ = ' ', i += 2; + /* FOUR-PER-EM SPACE (U+2005) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x85U)) *out++ = ' ', i += 2; + /* SIX-PER-EM SPACE (U+2006) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x86U)) *out++ = ' ', i += 2; + /* FIGURE SPACE (U+2007) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x87U)) *out++ = ' ', i += 2; + /* PUNCTUATION SPACE (U+2008) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x88U)) *out++ = ' ', i += 2; + /* THIN SPACE (U+2009) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x89U)) *out++ = ' ', i += 2; + /* HAIR SPACE (U+200A) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x8aU)) *out++ = ' ', i += 2; + /* ZERO WIDTH SPACE (U+200B) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x8bU)) *out++ = ' ', i += 2; + /* LEFT SINGLE QUOTATION MARK (U+2018) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x98U)) *out++ = '\'', i += 2; + /* RIGHT SINGLE QUOTATION MARK (U+2019) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x99U)) *out++ = '\'', i += 2; + /* LEFT DOUBLE QUOTATION MARK (U+201C) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x9cU)) *out++ = '"', i += 2; + /* RIGHT DOUBLE QUOTATION MARK (U+201D) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0x9dU)) *out++ = '"', i += 2; + /* NARROW NO-BREAK SPACE (U+202F) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x80U) && (in[i + 2] == 0xafU)) *out++ = ' ', i += 2; + /* WORD JOINER (U+2060) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x81U) && (in[i + 2] == 0xa0U)) *out++ = ' ', i += 2; + /* INVISIBLE SEPARATOR (U+2063) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x81U) && (in[i + 2] == 0xa3U)) *out++ = ' ', i += 2; + /* INVISIBLE PLUS (U+2064) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x81U) && (in[i + 2] == 0xa4U)) *out++ = '+', i += 2; + /* MINUS SIGN (U+2212) */ + if ((in[i] == 0xe2U) && (in[i + 1] == 0x88U) && (in[i + 2] == 0x92U)) *out++ = '-', i += 2; + /* ZERO WIDTH NO-BREAK SPACE (U+FEFF) */ + if ((in[i] == 0xefU) && (in[i + 1] == 0xbbU) && (in[i + 2] == 0xbfU)) *out++ = ' ', i += 2; + } + /* UTF-8 4-byte character */ + } else if ((in[i] & 0xf8U) == 0xf0U) { + if ((i + 3) < len) { ; } + } else { + *out++ = in[i]; + } + } + + *out = '\0'; + strncpy(line, (char *)buf, len); + free(buf); +} diff --git a/tools/msi2lmp/src/msi2lmp.h b/tools/msi2lmp/src/msi2lmp.h index af7978d181..b64c6fd834 100644 --- a/tools/msi2lmp/src/msi2lmp.h +++ b/tools/msi2lmp/src/msi2lmp.h @@ -226,3 +226,6 @@ extern void lamda2x(double *lamda, double *x, double *h, double *boxlo); extern void x2lamda(double *x, double *lamda, double *h_inv, double *boxlo); extern void condexit(int); + +extern int has_utf8(const char *line); +extern void utf8_subst(char *line); From 2b6c2e07a4ece5619711b53f732d491b64a1e805 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 10 Mar 2023 21:26:40 -0500 Subject: [PATCH 58/58] add -help flag and help message output. step version number. update docs. --- doc/msi2lmp.1 | 7 ++- tools/msi2lmp/README | 19 ++++++-- tools/msi2lmp/src/msi2lmp.c | 93 +++++++++++++++++++++++++++++++------ tools/msi2lmp/src/msi2lmp.h | 2 +- 4 files changed, 101 insertions(+), 20 deletions(-) diff --git a/doc/msi2lmp.1 b/doc/msi2lmp.1 index f088603483..5cb0754e4f 100644 --- a/doc/msi2lmp.1 +++ b/doc/msi2lmp.1 @@ -1,11 +1,11 @@ -.TH MSI2LMP "1" "v3.9.9" "2018-11-05" +.TH MSI2LMP "1" "v3.9.10" "2023-03-10" .SH NAME .B MSI2LMP \- Converter for Materials Studio files to LAMMPS .SH SYNOPSIS .B msi2lmp - [-class ] [-frc ] [-print #] [-ignore] [-nocenter] [-oldstyle] [-shift ] +[-help] [-class ] [-frc ] [-print #] [-ignore] [-nocenter] [-oldstyle] [-shift ] .SH DESCRIPTION .PP @@ -22,6 +22,9 @@ needed between .frc and .car/.mdf files are the atom types. .SH OPTIONS .TP +\fB\-h\fR, \fB\-help\fR, +Print detailed help message to the screen and stop. +.TP \fB\\fR This has to be the first argument and is a .B mandatory diff --git a/tools/msi2lmp/README b/tools/msi2lmp/README index 401ec536fd..9c9706fc97 100644 --- a/tools/msi2lmp/README +++ b/tools/msi2lmp/README @@ -76,10 +76,14 @@ This program uses the .car and .mdf files from MSI/Biosyms's INSIGHT The program is started by supplying information at the command prompt according to the usage described below. - USAGE: msi2lmp.exe {-print #} {-class #} {-frc FRC_FILE} - {-ignore} {-nocenter} {-shift # # #} + USAGE: msi2lmp.exe [-help] [-print #] [-class #] [-frc FRC_FILE] + [-ignore] [-nocenter] [-shift # # #] -- msi2lmp.exe is the name of the executable + + -- -help (or -h) + Print detailed this help message and exit. + -- is the base name of the .car and .mdf files -- -print (or -p) @@ -148,6 +152,15 @@ msi2lmp has the following known limitations: CHANGELOG +10 Mar 2023 Axel Kohlmeyer + +Substitute UTF-8 characters in .frc files with known ASCII equivalents +and add help message output + +05 Nov 2018 Axel Kohlmeyer + +Teach msi2lmp to not generate dihedrals with identical 1-4 atoms + 06 Oct 2016 Axel Kohlmeyer Improved whitespace handling in parsing topology and force field @@ -239,5 +252,5 @@ for number_of_dihedrals, etc. could be unpredictable in these systems. ----------------------------- - msi2lmp v3.9.8 6/10/2016 + msi2lmp v3.9.10 3/10/2023 diff --git a/tools/msi2lmp/src/msi2lmp.c b/tools/msi2lmp/src/msi2lmp.c index 2eb05fd5c5..68aaf566b2 100644 --- a/tools/msi2lmp/src/msi2lmp.c +++ b/tools/msi2lmp/src/msi2lmp.c @@ -2,26 +2,29 @@ * * msi2lmp.exe * -* v3.9.9 AK- Teach msi2lmp to not generate dihedrals with identical 1-4 atoms +* v3.9.10 AK - Substitute UTF-8 characters in .frc files with known ASCII equivalents +* - add help message output * -* v3.9.8 AK- Improved whitespace handling in parsing topology and force -* field files to avoid bogus warnings about type name truncation +* v3.9.9 AK - Teach msi2lmp to not generate dihedrals with identical 1-4 atoms * -* v3.9.7 AK- Add check to enforce that Class1/OPLS-AA use A-B parameter -* conventions in force field file and Class2 us r-eps conventions +* v3.9.8 AK - Improved whitespace handling in parsing topology and force +* field files to avoid bogus warnings about type name truncation * -* v3.9.6 AK- Refactoring of MDF file parser with more consistent -* handling of compile time constants MAX_NAME and MAX_STRING +* v3.9.7 AK - Add check to enforce that Class1/OPLS-AA use A-B parameter +* conventions in force field file and Class2 us r-eps conventions * -* v3.9.5 AK- Add TopoTools style force field parameter type hints +* v3.9.6 AK - Refactoring of MDF file parser with more consistent +* handling of compile time constants MAX_NAME and MAX_STRING * -* v3.9.4 AK- Make force field style hints optional with a flag +* v3.9.5 AK - Add TopoTools style force field parameter type hints * -* v3.9.3 AK- Bugfix for triclinic cells. +* v3.9.4 AK - Make force field style hints optional with a flag * -* v3.9.2 AK- Support for writing out force field style hints +* v3.9.3 AK - Bugfix for triclinic cells. * -* v3.9.1 AK- Bugfix for Class2. Free allocated memory. Print version number. +* v3.9.2 AK - Support for writing out force field style hints +* +* v3.9.1 AK - Bugfix for Class2. Free allocated memory. Print version number. * * v3.9 AK - Rudimentary support for OPLS-AA * @@ -156,6 +159,59 @@ #include #endif +const char helpmesg[] = + " USAGE: msi2lmp [-help] ROOTNAME [-print #] [-class #] [-frc FRC_FILE] [-ignore] [-nocenter] [-oldstyle]\n" + "\n" + " -- msi2lmp is the name of the executable\n" + "\n" + " -- -help or -h triggers printing this message and exits\n" + "\n" + " -- ROOTNAME is the base name of the .car and .mdf files\n" + " -- all opther flags are optional and can be abbreviated (e.g. -p instead of -print)\n" + "\n" + " -- -print\n" + " # is the print level: 0 - silent except for errors\n" + " 1 - minimal (default)\n" + " 2 - more verbose\n" + " 3 - even more verbose\n" + " -- -class\n" + " # is the class of forcefield to use (I or 1 = Class I e.g., CVFF, clayff)\n" + " (II or 2 = Class II e.g., CFFx, COMPASS)\n" + " (O or 0 = OPLS-AA)\n" + " default is -class I\n" + "\n" + " -- -ignore - tells msi2lmp to ignore warnings and errors and keep going\n" + "\n" + " -- -nocenter - tells msi2lmp to not center the box around the (geometrical)\n" + " center of the atoms, but around the origin\n" + "\n" + " -- -oldstyle - tells msi2lmp to write out a data file without style hints\n" + " (to be compatible with older LAMMPS versions)\n" + "\n" + " -- -shift - tells msi2lmp to shift the entire system (box and coordinates)\n" + " by a vector (default: 0.0 0.0 0.0)\n" + "\n" + " -- -frc - specifies name of the forcefield file (e.g., cff91)\n" + "\n" + " If the name includes a hard wired directory (i.e., if the name\n" + " starts with . or /), then the name is used alone. Otherwise,\n" + " the program looks for the forcefield file in $MSI2LMP_LIBRARY.\n" + " If $MSI2LMP_LIBRARY is not set, then the current directory is\n" + " used.\n" + "\n" + " If the file name does not include a dot after the first\n" + " character, then .frc is appended to the name.\n" + "\n" + " For example, -frc cvff (assumes cvff.frc is in $MSI2LMP_LIBRARY or .)\n" + "\n" + " -frc cff/cff91 (assumes cff91.frc is in $MSI2LMP_LIBRARY/cff or ./cff)\n" + "\n" + " -frc /usr/local/forcefields/cff95 (absolute location)\n" + "\n" + " By default, the program uses $MSI2LMP_LIBRARY/cvff.frc\n" + "\n" + " -- output is written to a file called ROOTNAME.data\n"; + /* global variables */ char *rootname; @@ -239,9 +295,14 @@ int main (int argc, char *argv[]) frc_dir_name = getenv("MSI2LMP_LIBRARY"); if (argc < 2) { - printf("usage: %s [-class ] [-frc ] [-print #] [-ignore] [-nocenter] [-oldstyle]\n",argv[0]); + printf("usage: %s [-help|-h] [-class ] [-frc ] [-print #] [-ignore] [-nocenter] [-oldstyle]\n",argv[0]); return 1; - } else { /* rootname was supplied as first argument, copy to rootname */ + } else { + if ((strcmp(argv[1],"-help") == 0) || (strcmp(argv[1],"-h") == 0)) { + puts(helpmesg); + return 1; + } + /* rootname was supplied as first argument, copy to rootname */ int len = strlen(argv[1]) + 1; rootname = (char *)malloc(len); strcpy(rootname,argv[1]); @@ -249,6 +310,10 @@ int main (int argc, char *argv[]) n = 2; while (n < argc) { + if ((strcmp(argv[n],"-help") == 0) || (strcmp(argv[1],"-h") == 0)) { + puts(helpmesg); + return 1; + } if (strncmp(argv[n],"-c",2) == 0) { n++; if (check_arg(argv,"-class",n,argc)) diff --git a/tools/msi2lmp/src/msi2lmp.h b/tools/msi2lmp/src/msi2lmp.h index b64c6fd834..3e1de85cbe 100644 --- a/tools/msi2lmp/src/msi2lmp.h +++ b/tools/msi2lmp/src/msi2lmp.h @@ -36,7 +36,7 @@ #include /* IWYU pragma: export */ -#define MSI2LMP_VERSION "v3.9.9 / 05 Nov 2018" +#define MSI2LMP_VERSION "v3.9.10 / 10 Mar 2023" #define PI_180 0.01745329251994329576