From 24e41bc0857d67c101dea6e4dc187fe44d5251aa Mon Sep 17 00:00:00 2001 From: Mingjian Wen Date: Sat, 4 May 2019 22:24:05 -0500 Subject: [PATCH] Update doc and examples due to the change of parameters --- doc/src/pair_drip.txt | 18 ++++--- examples/USER/misc/drip/C.drip | 10 ++-- .../misc/drip/log.19Apr2019.g++.in.CH_drip | 50 +++++++++---------- .../misc/drip/log.19Apr2019.g++.in.C_drip | 34 ++++++------- src/USER-MISC/pair_drip.cpp | 3 +- 5 files changed, 61 insertions(+), 54 deletions(-) diff --git a/doc/src/pair_drip.txt b/doc/src/pair_drip.txt index fada61a329..7d041a8f08 100644 --- a/doc/src/pair_drip.txt +++ b/doc/src/pair_drip.txt @@ -33,8 +33,8 @@ pair_coeff * * rebo CH.airebo C H :pre Style {drip} computes the interlayer interactions of layered materials using the dihedral-angle-corrected registry-dependent (DRIP) potential as described -in "(Wen)"_#Wen1, which is based on the "(Kolmogorov)"_#Kolmogorov1 potential -and provides an improvded prediction for forces. +in "(Wen)"_#Wen2018, which is based on the "(Kolmogorov)"_#Kolmogorov2005 +potential and provides an improvded prediction for forces. The total potential energy of a system is :c,image(Eqs/pair_drip.jpg) @@ -88,9 +88,10 @@ pair_style hybrid/overlay drip rebo pair_coeff * * drip C.drip C NULL pair_coeff * * rebo CH.airebo C H :pre -NOTE: The parameter file developed in "(Wen)"_#Wen1 is provided with LAMMPS (see -the "potentials" directory). - +NOTE: The potential parameters developed in "(Wen)"_#Wen2018 are provided with +LAMMPS (see the "potentials" directory). Besides those in "Wen"_#Wen2018, an +additional parameter "normal_cutoff", specific to the LAMMPS implementation, is +used to find the three nearest neighbors of an atom to construct the normal. :line @@ -131,9 +132,10 @@ simulation doesn't use "metal" units. :line -:link(Wen1) -[(Wen)] M. Wen, S. Carr, S. Fang, E. Kaxiras, and E. B. Tadmor, Phys. Rev. B, 98, 235404 (2018) +:link(Wen2018) +[(Wen)] M. Wen, S. Carr, S. Fang, E. Kaxiras, and E. B. Tadmor, Phys. Rev. B, +98, 235404 (2018) -:link(Kolmogorov1) +:link(Kolmogorov2005) [(Kolmogorov)] A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005) diff --git a/examples/USER/misc/drip/C.drip b/examples/USER/misc/drip/C.drip index 43d5ca4208..74e006d682 100644 --- a/examples/USER/misc/drip/C.drip +++ b/examples/USER/misc/drip/C.drip @@ -6,10 +6,14 @@ # Cite as M. Wen, S. Carr, S. Fang, E. Kaxiras, and E. B. Tadmor, Phys. Rev. B, 98, 235404 (2018). -# C0 C2 C4 C delta lambda A z0 B eta rho_cut r_cut -C C 1.1598e-02 1.2981e-02 3.2515e-02 7.8151e-03 8.3679e-01 2.7158 2.2216e-02 3.34 7.6799e-03 1.1432 1.562 12.0 +# C0 C2 C4 C delta lambda A z0 B eta rho_cut r_cut normal_cut +C C 1.1598e-02 1.2981e-02 3.2515e-02 7.8151e-03 8.3679e-01 2.7158 2.2216e-02 3.34 7.6799e-03 1.1432 1.562 12.0 3.7 # C0, C2, C4, C, A, and B in [eV] -# delta, z0, eta, rho_cut, and r_cut in [Angstrom] +# delta, z0, eta, rho_cut, r_cut, and normal_cut in [Angstrom] # lambda in [1/Angstrom] +# +# "normal_cut" is a parameter not present in the Wen paper, but specific to the +# LAMMPS implementation, which is used to find the 3 nearest neighbors of an +# atom to construct the normal. diff --git a/examples/USER/misc/drip/log.19Apr2019.g++.in.CH_drip b/examples/USER/misc/drip/log.19Apr2019.g++.in.CH_drip index e1dccf1c2b..466a8403ea 100644 --- a/examples/USER/misc/drip/log.19Apr2019.g++.in.CH_drip +++ b/examples/USER/misc/drip/log.19Apr2019.g++.in.CH_drip @@ -16,8 +16,8 @@ read_data data.CH 0 = max # of 1-3 neighbors 0 = max # of 1-4 neighbors 1 = max # of special neighbors - special bonds CPU = 0.000135899 secs - read_data CPU = 0.00296116 secs + special bonds CPU = 0.000221014 secs + read_data CPU = 0.00603986 secs # potential @@ -44,9 +44,9 @@ WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimizat Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 14 - ghost atom cutoff = 14 - binsize = 7, bins = 6 4 1 + master list distance cutoff = 17.7 + ghost atom cutoff = 17.7 + binsize = 8.85, bins = 5 3 1 2 neighbor lists, perpetual/occasional/extra = 2 0 0 (1) pair drip, perpetual, skip from (2) attributes: full, newton on, ghost @@ -58,52 +58,52 @@ Neighbor list info ... pair build: full/bin/ghost stencil: full/ghost/bin/3d bin: standard -Per MPI rank memory allocation (min/avg/max) = 11.71 | 11.71 | 11.71 Mbytes +Per MPI rank memory allocation (min/avg/max) = 12.92 | 12.92 | 12.92 Mbytes Step Temp E_pair E_mol TotEng Press Volume 0 0 -2883.1071 0 -2883.1071 366130.38 2779.5956 10 0 -3229.1892 0 -3229.1892 -19780.166 2779.5956 20 0 -3268.3574 0 -3268.3574 -15169.468 2779.5956 30 0 -3270.013 0 -3270.013 -19827.419 2779.5956 - 40 0 -3270.1341 0 -3270.1341 -20652.573 2779.5956 - 50 0 -3270.2612 0 -3270.2612 -22644.203 2779.5956 - 57 0 -3270.2821 0 -3270.2821 -23259.55 2779.5956 -Loop time of 2.88099 on 1 procs for 57 steps with 545 atoms + 40 0 -3270.1341 0 -3270.1341 -20652.569 2779.5956 + 50 0 -3270.2612 0 -3270.2612 -22644.747 2779.5956 + 57 0 -3270.2819 0 -3270.2819 -23254.995 2779.5956 +Loop time of 3.06624 on 1 procs for 57 steps with 545 atoms -99.0% CPU use with 1 MPI tasks x no OpenMP threads +99.3% CPU use with 1 MPI tasks x no OpenMP threads Minimization stats: Stopping criterion = max force evaluations Energy initial, next-to-last, final = - -2883.10712045 -3270.28053776 -3270.28206154 - Force two-norm initial, final = 114.766 0.235923 - Force max component initial, final = 12.0195 0.0426664 - Final line search alpha, max atom move = 1 0.0426664 + -2883.10712045 -3270.28039929 -3270.28192718 + Force two-norm initial, final = 114.766 0.235428 + Force max component initial, final = 12.0195 0.0484347 + Final line search alpha, max atom move = 1 0.0484347 Iterations, force evaluations = 57 101 MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 2.8692 | 2.8692 | 2.8692 | 0.0 | 99.59 -Bond | 3.5524e-05 | 3.5524e-05 | 3.5524e-05 | 0.0 | 0.00 +Pair | 3.0539 | 3.0539 | 3.0539 | 0.0 | 99.60 +Bond | 4.1485e-05 | 4.1485e-05 | 4.1485e-05 | 0.0 | 0.00 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0014327 | 0.0014327 | 0.0014327 | 0.0 | 0.05 -Output | 0.0069089 | 0.0069089 | 0.0069089 | 0.0 | 0.24 +Comm | 0.0019863 | 0.0019863 | 0.0019863 | 0.0 | 0.06 +Output | 0.0070152 | 0.0070152 | 0.0070152 | 0.0 | 0.23 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 0.003388 | | | 0.12 +Other | | 0.003321 | | | 0.11 Nlocal: 545 ave 545 max 545 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 2346 ave 2346 max 2346 min +Nghost: 3175 ave 3175 max 3175 min Histogram: 1 0 0 0 0 0 0 0 0 0 Neighs: 0 ave 0 max 0 min Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 180462 ave 180462 max 180462 min +FullNghs: 294122 ave 294122 max 294122 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Total # of neighbors = 180462 -Ave neighs/atom = 331.123 +Total # of neighbors = 294122 +Ave neighs/atom = 539.673 Ave special neighs/atom = 0 Neighbor list builds = 0 Dangerous builds = 0 -Total wall time: 0:00:02 +Total wall time: 0:00:03 diff --git a/examples/USER/misc/drip/log.19Apr2019.g++.in.C_drip b/examples/USER/misc/drip/log.19Apr2019.g++.in.C_drip index ac078d4a8c..44619014c1 100644 --- a/examples/USER/misc/drip/log.19Apr2019.g++.in.C_drip +++ b/examples/USER/misc/drip/log.19Apr2019.g++.in.C_drip @@ -16,8 +16,8 @@ read_data data.C 0 = max # of 1-3 neighbors 0 = max # of 1-4 neighbors 1 = max # of special neighbors - special bonds CPU = 0.000100136 secs - read_data CPU = 0.00110912 secs + special bonds CPU = 0.000164032 secs + read_data CPU = 0.00137401 secs # potential @@ -43,9 +43,9 @@ WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimizat Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 14 - ghost atom cutoff = 14 - binsize = 7, bins = 6 4 1 + master list distance cutoff = 17.7 + ghost atom cutoff = 17.7 + binsize = 8.85, bins = 5 3 1 2 neighbor lists, perpetual/occasional/extra = 2 0 0 (1) pair drip, perpetual attributes: full, newton on, ghost @@ -57,7 +57,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Per MPI rank memory allocation (min/avg/max) = 11.4 | 11.4 | 11.4 Mbytes +Per MPI rank memory allocation (min/avg/max) = 12.21 | 12.21 | 12.21 Mbytes Step Temp E_pair E_mol TotEng Press Volume 0 0 -2941.0549 0 -2941.0549 -52204.715 2052.0534 10 0 -2966.9787 0 -2966.9787 -29717.01 2052.0534 @@ -66,9 +66,9 @@ Step Temp E_pair E_mol TotEng Press Volume 40 0 -2967.0888 0 -2967.0888 -29997.486 2052.0534 50 0 -2967.0896 0 -2967.0896 -30072.387 2052.0534 51 0 -2967.0896 0 -2967.0896 -30076.548 2052.0534 -Loop time of 2.8619 on 1 procs for 51 steps with 400 atoms +Loop time of 2.89944 on 1 procs for 51 steps with 400 atoms -98.9% CPU use with 1 MPI tasks x no OpenMP threads +99.6% CPU use with 1 MPI tasks x no OpenMP threads Minimization stats: Stopping criterion = max force evaluations @@ -82,25 +82,25 @@ Minimization stats: MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 2.8529 | 2.8529 | 2.8529 | 0.0 | 99.69 -Bond | 3.314e-05 | 3.314e-05 | 3.314e-05 | 0.0 | 0.00 +Pair | 2.8899 | 2.8899 | 2.8899 | 0.0 | 99.67 +Bond | 3.171e-05 | 3.171e-05 | 3.171e-05 | 0.0 | 0.00 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0010927 | 0.0010927 | 0.0010927 | 0.0 | 0.04 -Output | 0.0053217 | 0.0053217 | 0.0053217 | 0.0 | 0.19 +Comm | 0.001483 | 0.001483 | 0.001483 | 0.0 | 0.05 +Output | 0.0055339 | 0.0055339 | 0.0055339 | 0.0 | 0.19 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 0.002526 | | | 0.09 +Other | | 0.002449 | | | 0.08 Nlocal: 400 ave 400 max 400 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1716 ave 1716 max 1716 min +Nghost: 2357 ave 2357 max 2357 min Histogram: 1 0 0 0 0 0 0 0 0 0 Neighs: 0 ave 0 max 0 min Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 180462 ave 180462 max 180462 min +FullNghs: 294122 ave 294122 max 294122 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Total # of neighbors = 180462 -Ave neighs/atom = 451.155 +Total # of neighbors = 294122 +Ave neighs/atom = 735.305 Ave special neighs/atom = 0 Neighbor list builds = 0 Dangerous builds = 0 diff --git a/src/USER-MISC/pair_drip.cpp b/src/USER-MISC/pair_drip.cpp index 338891c77a..2b339fe6fd 100644 --- a/src/USER-MISC/pair_drip.cpp +++ b/src/USER-MISC/pair_drip.cpp @@ -700,7 +700,8 @@ void PairDRIP::find_nearest3neigh() // store neighbors to be used later to compute normal if (nb3_rsq >= 1.0e10) { if (ione(FLERR, "No enough neighbors to construct normal."); + error->one(FLERR, "No enough neighbors to construct normal. Check the " + "configuration to see whether atoms fly away."); } else { // This only happens for ghost atoms that are near the boundary of the // domain (i.e. r > r_cut + n_cut). These ghost atoms will not be