diff --git a/examples/USER/misc/tersoff_shift/shift0.05_300K_after_change_corrected2.lmp b/examples/USER/misc/tersoff_shift/shift0.05_300K_after_change_corrected2.lmp new file mode 100644 index 0000000000..db757ad605 --- /dev/null +++ b/examples/USER/misc/tersoff_shift/shift0.05_300K_after_change_corrected2.lmp @@ -0,0 +1,99 @@ +LAMMPS (30 Nov 2020) +# Initialization +units metal +boundary p p p +atom_style charge +processors * * 1 # domain decomposition over x and y + +# System and atom definition +# we use different molecule ids for each layer of hBN +# so that inter- and intra-layer +# interactions can be specified separately +read_data hBN-momolayer-5nm.data +Reading data file ... + orthogonal box = (0.0000000 0.0000000 0.0000000) to (46.152980 48.443364 100.00000) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 880 atoms + read_data CPU = 0.008 seconds +mass 1 10.8110 # boron mass (g/mole) | membrane +mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate + +######################## Potential defition ######################## +pair_style tersoff shift 0.05 +pair_coeff * * BNC.tersoff B N +Reading tersoff potential file BNC.tersoff with DATE: 2013-03-21 +#################################################################### +# Neighbor update settings +neighbor 2.0 bin +neigh_modify every 1 +neigh_modify delay 0 +neigh_modify check yes + +#### Simulation settings #### +timestep 0.001 +velocity all create 300.0 4928459 loop geom +fix thermostat all nve + +############# Output ############### +thermo 100 +thermo_style custom step etotal pe ke temp +#thermo_modify lost warn +thermo_modify line one format float %20.16g lost warn + +###### Run molecular dynamics ###### +run 1000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.1 + ghost atom cutoff = 4.1 + binsize = 2.05, bins = 23 24 49 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair tersoff, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.670 | 3.670 | 3.670 Mbytes +Step TotEng PotEng KinEng Temp + 0 -6570.525999324201 -6604.6118995607 34.0859002365 300 + 100 -6570.310828576854 -6584.788128201215 14.47729962436111 127.4189579026445 + 200 -6570.372315728006 -6587.981402302972 17.60908657496559 154.9827329140865 + 300 -6570.341402414298 -6587.005611017617 16.66420860331855 146.6665849019365 + 400 -6570.373381655082 -6587.812074340176 17.43869268509345 153.4830463396682 + 500 -6570.357279692746 -6587.139105628338 16.78182593559257 147.7017695218933 + 600 -6570.364533408488 -6588.19904338089 17.83450997240154 156.9667503160493 + 700 -6570.362000654085 -6587.514376495219 17.15237584113411 150.9630878644091 + 800 -6570.358394689029 -6587.200486866495 16.842092177466 148.232190383205 + 900 -6570.372035122417 -6588.096861613295 17.72482649087753 156.0013938422904 + 1000 -6570.355748883552 -6587.399428461644 17.04367957809142 150.0064201898998 +Loop time of 1.44364 on 1 procs for 1000 steps with 880 atoms + +Performance: 59.849 ns/day, 0.401 hours/ns, 692.693 timesteps/s +99.7% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.4138 | 1.4138 | 1.4138 | 0.0 | 97.93 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.010364 | 0.010364 | 0.010364 | 0.0 | 0.72 +Output | 0.00061329 | 0.00061329 | 0.00061329 | 0.0 | 0.04 +Modify | 0.011744 | 0.011744 | 0.011744 | 0.0 | 0.81 +Other | | 0.007168 | | | 0.50 + +Nlocal: 880.000 ave 880 max 880 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1518.00 ave 1518 max 1518 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0.00000 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 15840.0 ave 15840 max 15840 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 15840 +Ave neighs/atom = 18.000000 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/misc/tersoff_shift/shift0.05_300K_before_change.lmp b/examples/USER/misc/tersoff_shift/shift0.05_300K_before_change.lmp new file mode 100644 index 0000000000..33385a0e54 --- /dev/null +++ b/examples/USER/misc/tersoff_shift/shift0.05_300K_before_change.lmp @@ -0,0 +1,99 @@ +LAMMPS (30 Nov 2020) +# Initialization +units metal +boundary p p p +atom_style charge +processors * * 1 # domain decomposition over x and y + +# System and atom definition +# we use different molecule ids for each layer of hBN +# so that inter- and intra-layer +# interactions can be specified separately +read_data hBN-momolayer-5nm.data +Reading data file ... + orthogonal box = (0.0000000 0.0000000 0.0000000) to (46.152980 48.443364 100.00000) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 880 atoms + read_data CPU = 0.026 seconds +mass 1 10.8110 # boron mass (g/mole) | membrane +mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate + +######################## Potential defition ######################## +pair_style tersoff shift 0.05 +pair_coeff * * BNC.tersoff B N +Reading tersoff potential file BNC.tersoff with DATE: 2013-03-21 +#################################################################### +# Neighbor update settings +neighbor 2.0 bin +neigh_modify every 1 +neigh_modify delay 0 +neigh_modify check yes + +#### Simulation settings #### +timestep 0.001 +velocity all create 300.0 4928459 loop geom +fix thermostat all nve + +############# Output ############### +thermo 100 +thermo_style custom step etotal pe ke temp +#thermo_modify lost warn +thermo_modify line one format float %20.16g lost warn + +###### Run molecular dynamics ###### +run 1000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.1 + ghost atom cutoff = 4.1 + binsize = 2.05, bins = 23 24 49 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair tersoff, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.670 | 3.670 | 3.670 Mbytes +Step TotEng PotEng KinEng Temp + 0 -6570.525999324201 -6604.6118995607 34.0859002365 300 + 100 -6570.310828576859 -6584.788128201219 14.47729962436133 127.4189579026464 + 200 -6570.372315728009 -6587.981402302975 17.60908657496529 154.9827329140839 + 300 -6570.341402414291 -6587.005611017611 16.66420860331987 146.6665849019482 + 400 -6570.373381655075 -6587.812074340168 17.43869268509273 153.4830463396618 + 500 -6570.357279692751 -6587.139105628346 16.78182593559452 147.7017695219105 + 600 -6570.364533408485 -6588.199043380885 17.83450997240024 156.9667503160379 + 700 -6570.36200065409 -6587.514376495224 17.15237584113493 150.9630878644163 + 800 -6570.358394688987 -6587.200486866453 16.8420921774656 148.2321903832015 + 900 -6570.372035122419 -6588.096861613297 17.72482649087754 156.0013938422906 + 1000 -6570.355748883598 -6587.399428461688 17.04367957809044 150.0064201898913 +Loop time of 1.34199 on 1 procs for 1000 steps with 880 atoms + +Performance: 64.382 ns/day, 0.373 hours/ns, 745.161 timesteps/s +99.8% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.313 | 1.313 | 1.313 | 0.0 | 97.84 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0098526 | 0.0098526 | 0.0098526 | 0.0 | 0.73 +Output | 0.00069011 | 0.00069011 | 0.00069011 | 0.0 | 0.05 +Modify | 0.011561 | 0.011561 | 0.011561 | 0.0 | 0.86 +Other | | 0.006894 | | | 0.51 + +Nlocal: 880.000 ave 880 max 880 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1518.00 ave 1518 max 1518 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0.00000 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 15840.0 ave 15840 max 15840 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 15840 +Ave neighs/atom = 18.000000 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/src/MANYBODY/pair_tersoff.cpp b/src/MANYBODY/pair_tersoff.cpp index 66bb09721c..4ea83d6622 100644 --- a/src/MANYBODY/pair_tersoff.cpp +++ b/src/MANYBODY/pair_tersoff.cpp @@ -686,8 +686,10 @@ void PairTersoff::attractive(Param *param, double prefactor, // correct 1/r for shift in rsq if (shift_flag == 1) { - rijinv *= sqrt((rsqij + shift*shift + 2*sqrt(rsqij)*shift)/rsqij); - rikinv *= sqrt((rsqik + shift*shift + 2*sqrt(rsqik)*shift)/rsqik); + rijinv = 1.0/(rij - shift); + rikinv = 1.0/(rik - shift); + //rijinv *= sqrt(rsqij/(rsqij + shift*shift - 2*sqrt(rsqij)*shift)); + //rikinv *= sqrt(rsqik/(rsqik + shift*shift - 2*sqrt(rsqik)*shift)); } ters_zetaterm_d(prefactor,rij_hat,rij,rijinv,rik_hat,rik,rikinv,fi,fj,fk,param);