diff --git a/src/EXTRA-PAIR/pair_harmonic_cut.cpp b/src/EXTRA-PAIR/pair_harmonic_cut.cpp index 7bef9bd443..f440909964 100644 --- a/src/EXTRA-PAIR/pair_harmonic_cut.cpp +++ b/src/EXTRA-PAIR/pair_harmonic_cut.cpp @@ -99,8 +99,8 @@ void PairHarmonicCut::compute(int eflag, int vflag) if (rsq < cutsq[itype][jtype]) { const double r = sqrt(rsq); const double delta = cut[itype][jtype] - r; - const double philj = factor_lj * delta * k[itype][jtype]; - const double fpair = delta * philj / r; + const double prefactor = factor_lj * delta * k[itype][jtype]; + const double fpair = 2.0 * prefactor / r; fxtmp += delx * fpair; fytmp += dely * fpair; @@ -111,7 +111,10 @@ void PairHarmonicCut::compute(int eflag, int vflag) f[j][2] -= delz * fpair; } - if (evflag) ev_tally(i, j, nlocal, newton_pair, philj, 0.0, fpair, delx, dely, delz); + if (evflag) { + const double philj = prefactor * delta; + ev_tally(i, j, nlocal, newton_pair, philj, 0.0, fpair, delx, dely, delz); + } } } f[i][0] += fxtmp; @@ -296,8 +299,8 @@ double PairHarmonicCut::single(int /*i*/, int /*j*/, int itype, int jtype, doubl } const double r = sqrt(rsq); const double delta = cut[itype][jtype] - r; - const double philj = factor_lj * delta * k[itype][jtype]; - fforce = delta * philj / r; + const double philj = factor_lj * delta * delta * k[itype][jtype]; + fforce = 2.0 * philj / (r * delta); return philj; } diff --git a/src/OPENMP/pair_harmonic_cut_omp.cpp b/src/OPENMP/pair_harmonic_cut_omp.cpp index dd7be3ba36..4412a72bc3 100644 --- a/src/OPENMP/pair_harmonic_cut_omp.cpp +++ b/src/OPENMP/pair_harmonic_cut_omp.cpp @@ -121,8 +121,8 @@ void PairHarmonicCutOMP::eval(int iifrom, int iito, ThrData *const thr) if (rsq < cutsqi[jtype]) { const double r = sqrt(rsq); const double delta = cut[itype][jtype] - r; - const double philj = factor_lj * delta * k[itype][jtype]; - const double fpair = delta * philj / r; + const double prefactor = factor_lj * delta * k[itype][jtype]; + const double fpair = 2.0 * prefactor / r; fxtmp += delx * fpair; fytmp += dely * fpair; @@ -133,8 +133,10 @@ void PairHarmonicCutOMP::eval(int iifrom, int iito, ThrData *const thr) f[j].z -= delz * fpair; } - if (EVFLAG) + if (EVFLAG) { + const double philj = prefactor * delta; ev_tally_thr(this, i, j, nlocal, NEWTON_PAIR, philj, 0.0, fpair, delx, dely, delz, thr); + } } } f[i].x += fxtmp; diff --git a/unittest/force-styles/tests/mol-pair-harmonic_cut.yaml b/unittest/force-styles/tests/mol-pair-harmonic_cut.yaml index fb2714626f..dc51292f09 100644 --- a/unittest/force-styles/tests/mol-pair-harmonic_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-harmonic_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 7 Jan 2022 -date_generated: Sat Jan 15 17:42:24 2022 +lammps_version: 17 Feb 2022 +date_generated: Thu Mar 17 12:17:29 2022 epsilon: 5e-14 skip_tests: prerequisites: ! | @@ -22,72 +22,72 @@ extract: ! | k 2 cut 2 natoms: 29 -init_vdwl: 0.6229303832094011 +init_vdwl: 0.6003476898466759 init_coul: 0 init_stress: ! |2- - 2.7086112336155066e-01 2.7116413086977192e-01 3.9219767031763964e-01 -1.0030847564854772e-01 4.4609473180383268e-02 -4.3637124113592815e-02 + 6.3963005653058946e-01 7.1519698969658307e-01 8.3953096834417618e-01 -3.0649148758034217e-01 1.0599012001110508e-01 -1.3877096492522245e-01 init_forces: ! |2 - 1 8.0131849873788189e-03 4.9888010120265600e-02 2.8122360795900539e-02 - 2 7.9791227934915224e-03 6.5662021486410233e-03 -9.3912001601608869e-03 - 3 -3.0383030044476164e-02 -2.4462070024746502e-02 -6.7080526995988831e-03 - 4 -4.2871382862959282e-03 1.2944422156819623e-04 -3.1664690534881235e-03 - 5 -2.5653599407787658e-03 -5.6347847352330024e-03 5.7588483204582012e-03 - 6 -2.7432516621812987e-02 2.2443342050432843e-02 6.0842119146428050e-03 - 7 -2.3732010354850359e-02 4.8925005245008778e-03 -1.0554388509160603e-01 - 8 -1.9721449495438432e-02 8.7099489439665806e-03 7.7340656614040257e-02 - 9 3.1079843659201794e-03 3.3474898466584100e-03 1.3753907856580455e-02 - 10 1.5600383364335340e-02 -3.4154073795756010e-02 -2.4568763191891510e-02 - 11 -6.4786170866648325e-04 -2.7187839165446434e-03 -4.0027246972607657e-03 - 12 4.5446169193717613e-02 9.5334383719478614e-03 -2.3805265135058946e-02 - 13 3.6852167147282842e-03 -1.4578336695269954e-03 -6.9263908097426375e-05 - 14 -1.4516812720744084e-03 2.9539789066737132e-04 -3.7646771444256287e-03 - 15 -5.4837745225155548e-05 3.7892348244262858e-03 1.3279622443994443e-03 - 16 2.7804441490434852e-02 -2.9016569654227675e-02 -2.3977127174652516e-02 - 17 -1.3606174403879238e-03 -1.2150893147040220e-02 7.2609480510219010e-02 + 1 7.0438713602526872e-03 1.1706152750653551e-01 5.4712675540992420e-02 + 2 1.3504851916468200e-02 1.1113450684494288e-02 -1.5894825880400830e-02 + 3 -7.2786318493231694e-02 1.1975922020916106e-02 1.3127637084914592e-02 + 4 -1.8465070026751268e-02 -3.4221096570373308e-03 -1.4100761324388448e-02 + 5 -1.0296188510787074e-02 -2.3382804041170442e-02 1.9785560446688579e-02 + 6 -2.1929767108802640e-02 -3.2426452142233575e-03 -1.1030419306681707e-02 + 7 -4.3980232685449767e-02 1.1872779043727558e-02 -1.8404719693751120e-01 + 8 -7.2842604104299921e-02 3.8227512449602395e-02 7.8877667349525254e-02 + 9 5.1634001278835608e-03 5.5612987284791452e-03 2.2849834884719662e-02 + 10 2.0791418921607262e-02 -4.5255639600447872e-02 -4.3789525353028359e-02 + 11 -2.1408603815808221e-05 -1.3019527502359612e-02 -1.6028430345066309e-02 + 12 9.7697155356735760e-02 1.6249333465666035e-02 -4.9613679095051530e-02 + 13 1.1706923236039075e-02 -4.6311379170340177e-03 -2.2003244799252521e-04 + 14 -4.5646357843715816e-03 9.2884285848874237e-04 -1.1837570919059313e-02 + 15 2.3748277465696177e-03 1.3459497973092842e-02 3.4029096701611201e-03 + 16 5.9824492918551089e-02 -6.9827456434651242e-02 -1.2081985939579952e-02 + 17 2.6779283733402489e-02 -6.3668844364078728e-02 1.6588814257175855e-01 18 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 20 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 - 21 -2.8478436810585638e-03 -3.4997997565726423e-03 1.0311097670993996e-02 - 22 -5.0036838658335881e-03 -1.2125954307909393e-03 -7.8502223695393180e-03 - 23 7.8515275468921519e-03 4.7123951873635815e-03 -2.4608753014546784e-03 - 24 2.2422341594776187e-03 -9.2864513866737705e-03 5.4147040050256424e-03 - 25 -7.0931333559850684e-03 1.1418916865888746e-03 -5.9630640752421178e-03 - 26 4.8508991965074497e-03 8.1445597000848954e-03 5.4836007021647544e-04 - 27 1.4352981398486984e-03 -1.0223071626521522e-02 3.5886145449699289e-03 - 28 -7.4679157140535102e-03 3.2093693544577983e-03 -5.0528642356851916e-03 - 29 6.0326175742048118e-03 7.0137022720637250e-03 1.4642496907152625e-03 -run_vdwl: 0.6227892941470253 + 21 -5.3954622197276737e-03 -6.6778194134707869e-03 1.9783327472347408e-02 + 22 -9.6117009790571452e-03 -2.3293047686160748e-03 -1.5079687697765281e-02 + 23 1.5007163198784819e-02 9.0071241820868612e-03 -4.7036397745821258e-03 + 24 4.3974321264900612e-03 -1.7755657097015935e-02 1.0438588848091944e-02 + 25 -1.3662681910640734e-02 2.1994938072191659e-03 -1.1485960235621094e-02 + 26 9.2652497841506729e-03 1.5556163289796770e-02 1.0473713875291499e-03 + 27 2.6060086104984052e-03 -1.9594065788945982e-02 6.7970179740997902e-03 + 28 -1.4207555613759686e-02 6.1057590008344433e-03 -9.6129699886915859e-03 + 29 1.1601547003261280e-02 1.3488306788111540e-02 2.8159520145917957e-03 +run_vdwl: 0.6001547821151422 run_coul: 0 run_stress: ! |2- - 2.7079595899259656e-01 2.7106155255810421e-01 3.9199181631609364e-01 -1.0017597886837336e-01 4.4639512685950337e-02 -4.3538044335882868e-02 + 6.3971363934453229e-01 7.1478735452118569e-01 8.3932913618214899e-01 -3.0593476049319951e-01 1.0599111526282713e-01 -1.3876690638079101e-01 run_forces: ! |2 - 1 8.0241133736762959e-03 4.9859217970288555e-02 2.8099645116503875e-02 - 2 7.9858506322803297e-03 6.5851530052680168e-03 -9.3657942914726639e-03 - 3 -3.0378796721416249e-02 -2.4495674709975927e-02 -6.7374520329115941e-03 - 4 -4.2659306402640165e-03 1.3406094892709258e-04 -3.1564081120146015e-03 - 5 -2.5644106889098472e-03 -5.6291258903991056e-03 5.7537772274397249e-03 - 6 -2.7398860728585855e-02 2.2446081967441193e-02 6.0769742046490674e-03 - 7 -2.3725250988273959e-02 4.8748360958146379e-03 -1.0543946577300001e-01 - 8 -1.9795760001146530e-02 8.7619549352892182e-03 7.7257651402956734e-02 - 9 3.1107511049119794e-03 3.3343639112369677e-03 1.3749677634153570e-02 - 10 1.5635110483272714e-02 -3.4177809303542570e-02 -2.4562568959156386e-02 - 11 -6.4680122415666373e-04 -2.7045376093154955e-03 -3.9833439702283155e-03 - 12 4.5410386808201031e-02 9.5232810722562407e-03 -2.3816427499003763e-02 - 13 3.6819606745360318e-03 -1.4490090012638590e-03 -6.8397423783681964e-05 - 14 -1.4472530230181654e-03 2.8919520744570527e-04 -3.7524156545238243e-03 - 15 -5.6155855006963267e-05 3.7938646788886268e-03 1.3339639717048200e-03 - 16 2.7787095304862428e-02 -2.9020839215424241e-02 -2.3998357673493245e-02 - 17 -1.3560485109625556e-03 -1.2125014062935051e-02 7.2608941832180307e-02 + 1 7.0465079836902304e-03 1.1693432247454524e-01 5.4644474256916160e-02 + 2 1.3518317571838138e-02 1.1147235728696726e-02 -1.5854265082205436e-02 + 3 -7.2731391428322703e-02 1.1898644189490765e-02 1.3058113766489247e-02 + 4 -1.8392340227304314e-02 -3.3956245053268965e-03 -1.4066914652784902e-02 + 5 -1.0298656217464638e-02 -2.3369824963724226e-02 1.9776400245287193e-02 + 6 -2.1874938692521117e-02 -3.2715802396627511e-03 -1.1024344695673885e-02 + 7 -4.3997116900846137e-02 1.1860510162316465e-02 -1.8392794326018558e-01 + 8 -7.3161928573978630e-02 3.8228265351547726e-02 7.8845357596402876e-02 + 9 5.1691492560379665e-03 5.5407226794744989e-03 2.2847888183417032e-02 + 10 2.0803759565364816e-02 -4.5247263512099900e-02 -4.3778974579169787e-02 + 11 -3.1830163848992152e-05 -1.2973873635829976e-02 -1.5982271841207381e-02 + 12 9.7667377332717478e-02 1.6234092291300087e-02 -4.9659395150332339e-02 + 13 1.1705860115975318e-02 -4.6067574644403711e-03 -2.1745148424762430e-04 + 14 -4.5582954932898330e-03 9.1085415112308790e-04 -1.1818674195246095e-02 + 15 2.5469184204486156e-03 1.3570656604119271e-02 3.3657352650123110e-03 + 16 5.9796743214648368e-02 -6.9835514337135432e-02 -1.2086669180305980e-02 + 17 2.6791864236855412e-02 -6.3624864974394346e-02 1.6587893480783419e-01 18 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 20 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 - 21 -2.8538862991433229e-03 -3.4800313716197438e-03 1.0305823645864499e-02 - 22 -5.0214625596301642e-03 -1.2260879074991976e-03 -7.8500736428379052e-03 - 23 7.8753488587734871e-03 4.7061192791189414e-03 -2.4557500030265946e-03 - 24 2.2600769444580133e-03 -9.2990099176050046e-03 5.4253104994500942e-03 - 25 -7.1247130587123505e-03 1.1308496354809658e-03 -5.9913273289481242e-03 - 26 4.8646361142543372e-03 8.1681602821240384e-03 5.6601682949803040e-04 - 27 1.4504263375229804e-03 -1.0234012017965840e-02 3.5742943025157811e-03 - 28 -7.4838995855112476e-03 3.2116101208619755e-03 -5.0534250649872060e-03 - 29 6.0334732479882672e-03 7.0224018971038644e-03 1.4791307624714251e-03 + 21 -5.4004191843862025e-03 -6.6340514070246919e-03 1.9760544471176901e-02 + 22 -9.6401467812326450e-03 -2.3538295409183275e-03 -1.5070482713683111e-02 + 23 1.5040565965618848e-02 8.9878809479430194e-03 -4.6900617574937905e-03 + 24 4.4160166454442727e-03 -1.7751540189102893e-02 1.0435836550227791e-02 + 25 -1.3693691207104002e-02 2.1734921469492735e-03 -1.1515325114093842e-02 + 26 9.2776745616597288e-03 1.5578048042153618e-02 1.0794885638660513e-03 + 27 2.6305435533478892e-03 -1.9603972247004206e-02 6.7641080109081247e-03 + 28 -1.4227915027238549e-02 6.1057097193961225e-03 -9.6072511791245943e-03 + 29 1.1597371473890660e-02 1.3498262527608083e-02 2.8431431682164696e-03 ...