Update pair_kim to work with new neig. list Hints

This commit is contained in:
Ryan S. Elliott
2018-07-03 23:37:54 -05:00
parent 0264e044e2
commit 7eeb96f1af
12 changed files with 433 additions and 229 deletions

View File

@ -16,6 +16,7 @@ variable zz equal 20*$z
units metal units metal
atom_style atomic atom_style atomic
newton off
lattice fcc 4.4300 lattice fcc 4.4300
region box block 0 ${xx} 0 ${yy} 0 ${zz} region box block 0 ${xx} 0 ${yy} 0 ${zz}
@ -24,9 +25,8 @@ create_atoms 1 box
#pair_style lj/cut 8.1500 #pair_style lj/cut 8.1500
#pair_coeff 1 1 0.0104 3.4000 #pair_coeff 1 1 0.0104 3.4000
#pair_modify shift no
pair_style kim LAMMPSvirial LennardJones_Ar pair_style kim KIMvirial LennardJones_Ar
pair_coeff * * Ar pair_coeff * * Ar
mass 1 39.95 mass 1 39.95

View File

@ -10,6 +10,7 @@ variable zz equal 20*$z
units metal units metal
atom_style atomic atom_style atomic
newton off
lattice fcc 4.4300 lattice fcc 4.4300
region box block 0 ${xx} 0 ${yy} 0 ${zz} region box block 0 ${xx} 0 ${yy} 0 ${zz}
@ -18,7 +19,6 @@ create_atoms 1 box
pair_style lj/cut 8.1500 pair_style lj/cut 8.1500
pair_coeff 1 1 0.0104 3.4000 pair_coeff 1 1 0.0104 3.4000
pair_modify shift no
#pair_style kim KIMvirial LennardJones_Ar #pair_style kim KIMvirial LennardJones_Ar
#pair_coeff * * Ar #pair_coeff * * Ar

View File

@ -0,0 +1,35 @@
# 3d Lennard-Jones melt
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable yy equal 20*$y
variable zz equal 20*$z
units metal
atom_style atomic
newton on
lattice fcc 4.4300
region box block 0 ${xx} 0 ${yy} 0 ${zz}
create_box 1 box
create_atoms 1 box
pair_style lj/cut 8.1500
pair_coeff 1 1 0.0104 3.4000
#pair_style kim KIMvirial LennardJones_Ar
#pair_coeff * * Ar
mass 1 39.95
velocity all create 200.0 232345 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
fix 1 all nve
#fix 1 all npt temp 1.0 1.0 1.0 iso 1.0 1.0 3.0
run 100

View File

@ -1,5 +1,5 @@
-------------------------------------------------------------------------- --------------------------------------------------------------------------
[[30970,1],0]: A high-performance Open MPI point-to-point messaging module [[19053,1],0]: A high-performance Open MPI point-to-point messaging module
was unable to find any relevant network interfaces: was unable to find any relevant network interfaces:
Module: OpenFabrics (openib) Module: OpenFabrics (openib)
@ -16,13 +16,13 @@ Lattice spacing in x,y,z = 4.43 4.43 4.43
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6) Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 1 by 1 MPI processor grid 1 by 1 by 1 MPI processor grid
Created 32000 atoms Created 32000 atoms
Time spent = 0.0031676 secs Time spent = 0.00270113 secs
Neighbor list info ... Neighbor list info ...
update every 1 steps, delay 0 steps, check yes update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000 max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.85482 master list distance cutoff = 8.45
ghost atom cutoff = 7.85482 ghost atom cutoff = 8.45
binsize = 3.92741, bins = 23 23 23 binsize = 4.225, bins = 21 21 21
1 neighbor lists, perpetual/occasional/extra = 1 0 0 1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual (1) pair lj/cut, perpetual
attributes: half, newton on attributes: half, newton on
@ -33,34 +33,34 @@ Setting up Verlet run ...
Unit style : metal Unit style : metal
Current step : 0 Current step : 0
Time step : 0.001 Time step : 0.001
Per MPI rank memory allocation (min/avg/max) = 16.58 | 16.58 | 16.58 Mbytes Per MPI rank memory allocation (min/avg/max) = 19.23 | 19.23 | 19.23 Mbytes
Step Temp E_pair E_mol TotEng Press Step Temp E_pair E_mol TotEng Press
0 200 -495.29247 0 331.94661 -978.84224 0 200 6290.8194 0 7118.0584 129712.25
100 212.66365 -547.67175 0 331.94665 -1054.2086 100 95.179725 6718.814 0 7112.496 133346.59
Loop time of 1.40245 on 1 procs for 100 steps with 32000 atoms Loop time of 2.18554 on 1 procs for 100 steps with 32000 atoms
Performance: 6.161 ns/day, 3.896 hours/ns, 71.304 timesteps/s Performance: 3.953 ns/day, 6.071 hours/ns, 45.755 timesteps/s
100.0% CPU use with 1 MPI tasks x no OpenMP threads 99.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 1.2556 | 1.2556 | 1.2556 | 0.0 | 89.53 Pair | 2.0006 | 2.0006 | 2.0006 | 0.0 | 91.54
Neigh | 0.098976 | 0.098976 | 0.098976 | 0.0 | 7.06 Neigh | 0.13933 | 0.13933 | 0.13933 | 0.0 | 6.38
Comm | 0.011525 | 0.011525 | 0.011525 | 0.0 | 0.82 Comm | 0.011122 | 0.011122 | 0.011122 | 0.0 | 0.51
Output | 0.00021903 | 0.00021903 | 0.00021903 | 0.0 | 0.02 Output | 0.00020978 | 0.00020978 | 0.00020978 | 0.0 | 0.01
Modify | 0.023739 | 0.023739 | 0.023739 | 0.0 | 1.69 Modify | 0.022358 | 0.022358 | 0.022358 | 0.0 | 1.02
Other | | 0.01244 | | | 0.89 Other | | 0.01188 | | | 0.54
Nlocal: 32000 ave 32000 max 32000 min Nlocal: 32000 ave 32000 max 32000 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 19911 ave 19911 max 19911 min Nghost: 19911 ave 19911 max 19911 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1.36493e+06 ave 1.36493e+06 max 1.36493e+06 min Neighs: 2.12688e+06 ave 2.12688e+06 max 2.12688e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1364931 Total # of neighbors = 2126875
Ave neighs/atom = 42.6541 Ave neighs/atom = 66.4648
Neighbor list builds = 3 Neighbor list builds = 3
Dangerous builds = 0 Dangerous builds = 0
Total wall time: 0:00:01 Total wall time: 0:00:02

View File

@ -1,5 +1,5 @@
-------------------------------------------------------------------------- --------------------------------------------------------------------------
[[30962,1],0]: A high-performance Open MPI point-to-point messaging module [[19045,1],0]: A high-performance Open MPI point-to-point messaging module
was unable to find any relevant network interfaces: was unable to find any relevant network interfaces:
Module: OpenFabrics (openib) Module: OpenFabrics (openib)
@ -16,13 +16,13 @@ Lattice spacing in x,y,z = 4.43 4.43 4.43
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6) Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 2 by 2 MPI processor grid 1 by 2 by 2 MPI processor grid
Created 32000 atoms Created 32000 atoms
Time spent = 0.00143054 secs Time spent = 0.00117056 secs
Neighbor list info ... Neighbor list info ...
update every 1 steps, delay 0 steps, check yes update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000 max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.85482 master list distance cutoff = 8.45
ghost atom cutoff = 7.85482 ghost atom cutoff = 8.45
binsize = 3.92741, bins = 23 23 23 binsize = 4.225, bins = 21 21 21
1 neighbor lists, perpetual/occasional/extra = 1 0 0 1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual (1) pair lj/cut, perpetual
attributes: half, newton on attributes: half, newton on
@ -33,34 +33,34 @@ Setting up Verlet run ...
Unit style : metal Unit style : metal
Current step : 0 Current step : 0
Time step : 0.001 Time step : 0.001
Per MPI rank memory allocation (min/avg/max) = 6.875 | 6.875 | 6.875 Mbytes Per MPI rank memory allocation (min/avg/max) = 7.632 | 7.632 | 7.632 Mbytes
Step Temp E_pair E_mol TotEng Press Step Temp E_pair E_mol TotEng Press
0 200 -495.29247 0 331.94661 -978.84224 0 200 6290.8194 0 7118.0584 129712.25
100 212.66365 -547.67175 0 331.94665 -1054.2086 100 95.179725 6718.814 0 7112.496 133346.59
Loop time of 1.55473 on 4 procs for 100 steps with 32000 atoms Loop time of 2.34104 on 4 procs for 100 steps with 32000 atoms
Performance: 5.557 ns/day, 4.319 hours/ns, 64.320 timesteps/s Performance: 3.691 ns/day, 6.503 hours/ns, 42.716 timesteps/s
23.8% CPU use with 4 MPI tasks x no OpenMP threads 24.0% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0.47168 | 0.51922 | 0.58923 | 6.2 | 33.40 Pair | 0.91499 | 0.96396 | 1.0567 | 5.6 | 41.18
Neigh | 0.061309 | 0.077009 | 0.10276 | 5.7 | 4.95 Neigh | 0.092245 | 0.11781 | 0.14572 | 6.0 | 5.03
Comm | 0.87185 | 0.92596 | 0.95327 | 3.4 | 59.56 Comm | 1.1264 | 1.2287 | 1.2906 | 5.6 | 52.49
Output | 0.00035269 | 0.00047555 | 0.00055331 | 0.0 | 0.03 Output | 0.00045199 | 0.00051154 | 0.00060273 | 0.0 | 0.02
Modify | 0.0060711 | 0.00616 | 0.0062612 | 0.1 | 0.40 Modify | 0.0058738 | 0.0059629 | 0.0061675 | 0.2 | 0.25
Other | | 0.0259 | | | 1.67 Other | | 0.02406 | | | 1.03
Nlocal: 8000 ave 8014 max 7988 min Nlocal: 8000 ave 8018 max 7967 min
Histogram: 1 0 0 1 1 0 0 0 0 1 Histogram: 1 0 0 0 0 0 1 0 0 2
Nghost: 9131 ave 9143 max 9117 min Nghost: 9131 ave 9164 max 9113 min
Histogram: 1 0 0 0 0 1 1 0 0 1 Histogram: 2 0 0 1 0 0 0 0 0 1
Neighs: 341233 ave 341715 max 340679 min Neighs: 531719 ave 533273 max 529395 min
Histogram: 1 0 0 0 1 0 0 1 0 1 Histogram: 1 0 0 0 1 0 0 0 0 2
Total # of neighbors = 1364931 Total # of neighbors = 2126875
Ave neighs/atom = 42.6541 Ave neighs/atom = 66.4648
Neighbor list builds = 3 Neighbor list builds = 3
Dangerous builds = 0 Dangerous builds = 0
Total wall time: 0:00:01 Total wall time: 0:00:02

View File

@ -1,5 +1,5 @@
-------------------------------------------------------------------------- --------------------------------------------------------------------------
[[30495,1],0]: A high-performance Open MPI point-to-point messaging module [[19074,1],0]: A high-performance Open MPI point-to-point messaging module
was unable to find any relevant network interfaces: was unable to find any relevant network interfaces:
Module: OpenFabrics (openib) Module: OpenFabrics (openib)
@ -16,53 +16,51 @@ Lattice spacing in x,y,z = 4.43 4.43 4.43
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6) Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 1 by 1 MPI processor grid 1 by 1 by 1 MPI processor grid
Created 32000 atoms Created 32000 atoms
Time spent = 0.00259765 secs Time spent = 0.00251478 secs
Neighbor list info ... Neighbor list info ...
update every 1 steps, delay 0 steps, check yes update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000 max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.85482 master list distance cutoff = 8.45
ghost atom cutoff = 7.85482 ghost atom cutoff = 8.45
binsize = 3.92741, bins = 23 23 23 binsize = 4.225, bins = 21 21 21
1 neighbor lists, perpetual/occasional/extra = 1 0 0 1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair kim, perpetual (1) pair lj/cut, perpetual
attributes: full, newton on, ghost, cut 7.55482 attributes: half, newton off
pair build: full/bin/ghost pair build: half/bin/newtoff
stencil: full/ghost/bin/3d stencil: half/bin/3d/newtoff
bin: standard bin: standard
Setting up Verlet run ... Setting up Verlet run ...
Unit style : metal Unit style : metal
Current step : 0 Current step : 0
Time step : 0.001 Time step : 0.001
Per MPI rank memory allocation (min/avg/max) = 27.14 | 27.14 | 27.14 Mbytes Per MPI rank memory allocation (min/avg/max) = 20.37 | 20.37 | 20.37 Mbytes
Step Temp E_pair E_mol TotEng Press Step Temp E_pair E_mol TotEng Press
0 200 -495.29247 0 331.94661 -978.84224 0 200 6290.8194 0 7118.0584 129712.25
100 212.65961 -547.66877 0 331.93294 -1053.7732 100 95.179725 6718.814 0 7112.496 133346.59
Loop time of 2.12331 on 1 procs for 100 steps with 32000 atoms Loop time of 2.6218 on 1 procs for 100 steps with 32000 atoms
Performance: 4.069 ns/day, 5.898 hours/ns, 47.096 timesteps/s Performance: 3.295 ns/day, 7.283 hours/ns, 38.142 timesteps/s
99.9% CPU use with 1 MPI tasks x no OpenMP threads 99.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 1.7197 | 1.7197 | 1.7197 | 0.0 | 80.99 Pair | 2.2623 | 2.2623 | 2.2623 | 0.0 | 86.29
Neigh | 0.35501 | 0.35501 | 0.35501 | 0.0 | 16.72 Neigh | 0.31859 | 0.31859 | 0.31859 | 0.0 | 12.15
Comm | 0.012289 | 0.012289 | 0.012289 | 0.0 | 0.58 Comm | 0.005914 | 0.005914 | 0.005914 | 0.0 | 0.23
Output | 0.00021102 | 0.00021102 | 0.00021102 | 0.0 | 0.01 Output | 0.00033105 | 0.00033105 | 0.00033105 | 0.0 | 0.01
Modify | 0.023484 | 0.023484 | 0.023484 | 0.0 | 1.11 Modify | 0.023461 | 0.023461 | 0.023461 | 0.0 | 0.89
Other | | 0.01266 | | | 0.60 Other | | 0.01123 | | | 0.43
Nlocal: 32000 ave 32000 max 32000 min Nlocal: 32000 ave 32000 max 32000 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 19911 ave 19911 max 19911 min Nghost: 19911 ave 19911 max 19911 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min Neighs: 2.3705e+06 ave 2.3705e+06 max 2.3705e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 2.569e+06 ave 2.569e+06 max 2.569e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 2568996 Total # of neighbors = 2370499
Ave neighs/atom = 80.2811 Ave neighs/atom = 74.0781
Neighbor list builds = 3 Neighbor list builds = 3
Dangerous builds = 0 Dangerous builds = 0
Total wall time: 0:00:02 Total wall time: 0:00:02

View File

@ -0,0 +1,66 @@
--------------------------------------------------------------------------
[[19098,1],0]: A high-performance Open MPI point-to-point messaging module
was unable to find any relevant network interfaces:
Module: OpenFabrics (openib)
Host: ubuntu-artful
Another transport will be used instead, although this may result in
lower performance.
NOTE: You can disable this warning by setting the MCA parameter
btl_base_warn_component_unused to 0.
--------------------------------------------------------------------------
LAMMPS (22 Jun 2018)
Lattice spacing in x,y,z = 4.43 4.43 4.43
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 2 by 2 MPI processor grid
Created 32000 atoms
Time spent = 0.00123697 secs
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.45
ghost atom cutoff = 8.45
binsize = 4.225, bins = 21 21 21
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton off
pair build: half/bin/newtoff
stencil: half/bin/3d/newtoff
bin: standard
Setting up Verlet run ...
Unit style : metal
Current step : 0
Time step : 0.001
Per MPI rank memory allocation (min/avg/max) = 8.013 | 8.013 | 8.013 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 6290.8194 0 7118.0584 129712.25
100 95.179725 6718.814 0 7112.496 133346.59
Loop time of 2.88232 on 4 procs for 100 steps with 32000 atoms
Performance: 2.998 ns/day, 8.006 hours/ns, 34.694 timesteps/s
24.6% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.3577 | 1.415 | 1.467 | 3.7 | 49.09
Neigh | 0.25761 | 0.28189 | 0.29894 | 3.2 | 9.78
Comm | 0.58287 | 0.73218 | 0.85561 | 11.5 | 25.40
Output | 0.00082721 | 0.0029034 | 0.0051877 | 3.1 | 0.10
Modify | 0.0058569 | 0.015767 | 0.033242 | 8.6 | 0.55
Other | | 0.4346 | | | 15.08
Nlocal: 8000 ave 8018 max 7967 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Nghost: 9131 ave 9164 max 9113 min
Histogram: 2 0 0 1 0 0 0 0 0 1
Neighs: 630904 ave 632094 max 628209 min
Histogram: 1 0 0 0 0 0 0 1 0 2
Total # of neighbors = 2523614
Ave neighs/atom = 78.8629
Neighbor list builds = 3
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -0,0 +1,69 @@
--------------------------------------------------------------------------
[[19111,1],0]: A high-performance Open MPI point-to-point messaging module
was unable to find any relevant network interfaces:
Module: OpenFabrics (openib)
Host: ubuntu-artful
Another transport will be used instead, although this may result in
lower performance.
NOTE: You can disable this warning by setting the MCA parameter
btl_base_warn_component_unused to 0.
--------------------------------------------------------------------------
LAMMPS (22 Jun 2018)
Lattice spacing in x,y,z = 4.43 4.43 4.43
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 1 by 1 MPI processor grid
Created 32000 atoms
Time spent = 0.00257231 secs
WARNING: KIM Model does not provide `partialVirial'. pair_kim will always use `LAMMPSvirial' option. (../pair_kim.cpp:987)
WARNING: KIM Model does not provide `partialParticleEnergy'; energy per atom will be zero (../pair_kim.cpp:992)
WARNING: KIM Model does not provide `partialParticleVirial'; virial per atom will be zero (../pair_kim.cpp:996)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.45
ghost atom cutoff = 8.45
binsize = 4.225, bins = 21 21 21
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair kim, perpetual
attributes: half, newton off, cut 8.45
pair build: half/bin/newtoff
stencil: half/bin/3d/newtoff
bin: standard
Setting up Verlet run ...
Unit style : metal
Current step : 0
Time step : 0.001
Per MPI rank memory allocation (min/avg/max) = 21.26 | 21.26 | 21.26 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 6290.8194 0 7118.0584 1270.4248
100 95.179725 6718.814 0 7112.496 604.59343
Loop time of 3.22934 on 1 procs for 100 steps with 32000 atoms
Performance: 2.675 ns/day, 8.970 hours/ns, 30.966 timesteps/s
99.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.821 | 2.821 | 2.821 | 0.0 | 87.36
Neigh | 0.35198 | 0.35198 | 0.35198 | 0.0 | 10.90
Comm | 0.0081757 | 0.0081757 | 0.0081757 | 0.0 | 0.25
Output | 0.00030922 | 0.00030922 | 0.00030922 | 0.0 | 0.01
Modify | 0.032856 | 0.032856 | 0.032856 | 0.0 | 1.02
Other | | 0.01501 | | | 0.46
Nlocal: 32000 ave 32000 max 32000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 19911 ave 19911 max 19911 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 2.3705e+06 ave 2.3705e+06 max 2.3705e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 2370499
Ave neighs/atom = 74.0781
Neighbor list builds = 3
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -0,0 +1,78 @@
--------------------------------------------------------------------------
[[19135,1],1]: A high-performance Open MPI point-to-point messaging module
was unable to find any relevant network interfaces:
Module: OpenFabrics (openib)
Host: ubuntu-artful
Another transport will be used instead, although this may result in
lower performance.
NOTE: You can disable this warning by setting the MCA parameter
btl_base_warn_component_unused to 0.
--------------------------------------------------------------------------
LAMMPS (22 Jun 2018)
Lattice spacing in x,y,z = 4.43 4.43 4.43
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 2 by 2 MPI processor grid
Created 32000 atoms
Time spent = 0.00154417 secs
WARNING: KIM Model does not provide `partialVirial'. pair_kim will always use `LAMMPSvirial' option. (../pair_kim.cpp:987)
WARNING: KIM Model does not provide `partialParticleEnergy'; energy per atom will be zero (../pair_kim.cpp:992)
WARNING: KIM Model does not provide `partialParticleVirial'; virial per atom will be zero (../pair_kim.cpp:996)
WARNING: KIM Model does not provide `partialVirial'. pair_kim will always use `LAMMPSvirial' option. (../pair_kim.cpp:987)
WARNING: KIM Model does not provide `partialParticleEnergy'; energy per atom will be zero (../pair_kim.cpp:992)
WARNING: KIM Model does not provide `partialParticleVirial'; virial per atom will be zero (../pair_kim.cpp:996)
WARNING: KIM Model does not provide `partialVirial'. pair_kim will always use `LAMMPSvirial' option. (../pair_kim.cpp:987)
WARNING: KIM Model does not provide `partialParticleEnergy'; energy per atom will be zero (../pair_kim.cpp:992)
WARNING: KIM Model does not provide `partialParticleVirial'; virial per atom will be zero (../pair_kim.cpp:996)
WARNING: KIM Model does not provide `partialVirial'. pair_kim will always use `LAMMPSvirial' option. (../pair_kim.cpp:987)
WARNING: KIM Model does not provide `partialParticleEnergy'; energy per atom will be zero (../pair_kim.cpp:992)
WARNING: KIM Model does not provide `partialParticleVirial'; virial per atom will be zero (../pair_kim.cpp:996)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.45
ghost atom cutoff = 8.45
binsize = 4.225, bins = 21 21 21
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair kim, perpetual
attributes: half, newton off, cut 8.45
pair build: half/bin/newtoff
stencil: half/bin/3d/newtoff
bin: standard
Setting up Verlet run ...
Unit style : metal
Current step : 0
Time step : 0.001
Per MPI rank memory allocation (min/avg/max) = 8.528 | 8.528 | 8.528 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 6290.8194 0 7118.0584 1270.4248
100 95.179725 6718.814 0 7112.496 604.59343
Loop time of 3.17877 on 4 procs for 100 steps with 32000 atoms
Performance: 2.718 ns/day, 8.830 hours/ns, 31.459 timesteps/s
24.3% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.0514 | 2.1009 | 2.1859 | 3.6 | 66.09
Neigh | 0.29304 | 0.31706 | 0.33568 | 2.7 | 9.97
Comm | 0.61926 | 0.72709 | 0.77083 | 7.3 | 22.87
Output | 0.00035457 | 0.00043741 | 0.000547 | 0.0 | 0.01
Modify | 0.0066107 | 0.0067653 | 0.0069097 | 0.1 | 0.21
Other | | 0.02653 | | | 0.83
Nlocal: 8000 ave 8018 max 7967 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Nghost: 9131 ave 9164 max 9113 min
Histogram: 2 0 0 1 0 0 0 0 0 1
Neighs: 630904 ave 632094 max 628209 min
Histogram: 1 0 0 0 0 0 0 1 0 2
Total # of neighbors = 2523614
Ave neighs/atom = 78.8629
Neighbor list builds = 3
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -1,68 +0,0 @@
--------------------------------------------------------------------------
[[30487,1],0]: A high-performance Open MPI point-to-point messaging module
was unable to find any relevant network interfaces:
Module: OpenFabrics (openib)
Host: ubuntu-artful
Another transport will be used instead, although this may result in
lower performance.
NOTE: You can disable this warning by setting the MCA parameter
btl_base_warn_component_unused to 0.
--------------------------------------------------------------------------
LAMMPS (22 Jun 2018)
Lattice spacing in x,y,z = 4.43 4.43 4.43
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 2 by 2 MPI processor grid
Created 32000 atoms
Time spent = 0.00128874 secs
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.85482
ghost atom cutoff = 7.85482
binsize = 3.92741, bins = 23 23 23
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair kim, perpetual
attributes: full, newton on, ghost, cut 7.55482
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
Setting up Verlet run ...
Unit style : metal
Current step : 0
Time step : 0.001
Per MPI rank memory allocation (min/avg/max) = 10.82 | 10.82 | 10.82 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 -495.29247 0 331.94661 -978.84224
100 212.65961 -547.66877 0 331.93294 -1053.7732
Loop time of 2.58934 on 4 procs for 100 steps with 32000 atoms
Performance: 3.337 ns/day, 7.193 hours/ns, 38.620 timesteps/s
24.3% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.85344 | 0.94031 | 1.0212 | 7.2 | 36.31
Neigh | 0.40159 | 0.42603 | 0.43728 | 2.2 | 16.45
Comm | 1.1013 | 1.1823 | 1.2796 | 6.9 | 45.66
Output | 0.00041301 | 0.00056702 | 0.00081648 | 0.0 | 0.02
Modify | 0.0062882 | 0.0063459 | 0.0064657 | 0.1 | 0.25
Other | | 0.03375 | | | 1.30
Nlocal: 8000 ave 8014 max 7988 min
Histogram: 1 0 0 1 1 0 0 0 0 1
Nghost: 9131 ave 9143 max 9117 min
Histogram: 1 0 0 0 0 1 1 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 642249 ave 643365 max 641215 min
Histogram: 1 0 0 0 2 0 0 0 0 1
Total # of neighbors = 2568996
Ave neighs/atom = 80.2811
Neighbor list builds = 3
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -12,13 +12,11 @@
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
Contributing authors: Ryan S. Elliott, Contributing authors: Ryan S. Elliott (UMinn)
Valeriu Smirichinski,
Ellad Tadmor
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
Designed for use with the kim-api-v1.6.0 (and newer) package Designed for use with the kim-api-v2.0.0-beta.1 (and newer) package
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
#include <cstring> #include <cstring>
@ -45,9 +43,9 @@ PairKIM::PairKIM(LAMMPS *lmp) :
Pair(lmp), Pair(lmp),
settings_call_count(0), settings_call_count(0),
init_style_call_count(0), init_style_call_count(0),
kim_modelname(0), kim_modelname(NULL),
lmps_map_species_to_unique(0), lmps_map_species_to_unique(NULL),
lmps_unique_elements(0), lmps_unique_elements(NULL),
lmps_num_unique_elements(0), lmps_num_unique_elements(0),
lmps_units(METAL), lmps_units(METAL),
lengthUnit(KIM::LENGTH_UNIT::unused), lengthUnit(KIM::LENGTH_UNIT::unused),
@ -55,8 +53,8 @@ PairKIM::PairKIM(LAMMPS *lmp) :
chargeUnit(KIM::CHARGE_UNIT::unused), chargeUnit(KIM::CHARGE_UNIT::unused),
temperatureUnit(KIM::TEMPERATURE_UNIT::unused), temperatureUnit(KIM::TEMPERATURE_UNIT::unused),
timeUnit(KIM::TIME_UNIT::unused), timeUnit(KIM::TIME_UNIT::unused),
pkim(0), pkim(NULL),
pargs(0), pargs(NULL),
kim_model_support_for_energy(KIM::SUPPORT_STATUS::notSupported), kim_model_support_for_energy(KIM::SUPPORT_STATUS::notSupported),
kim_model_support_for_forces(KIM::SUPPORT_STATUS::notSupported), kim_model_support_for_forces(KIM::SUPPORT_STATUS::notSupported),
kim_model_support_for_virial(KIM::SUPPORT_STATUS::notSupported), kim_model_support_for_virial(KIM::SUPPORT_STATUS::notSupported),
@ -64,15 +62,17 @@ PairKIM::PairKIM(LAMMPS *lmp) :
kim_model_support_for_particleVirial(KIM::SUPPORT_STATUS::notSupported), kim_model_support_for_particleVirial(KIM::SUPPORT_STATUS::notSupported),
lmps_local_tot_num_atoms(0), lmps_local_tot_num_atoms(0),
kim_global_influence_distance(0.0), kim_global_influence_distance(0.0),
kim_number_of_cutoffs(0), kim_number_of_neighbor_lists(0),
kim_cutoff_values(0), kim_cutoff_values(NULL),
neighborLists(0), padding_neighbor_hints(NULL),
kim_particle_codes(0), half_list_hints(NULL),
neighborLists(NULL),
kim_particle_codes(NULL),
lmps_maxalloc(0), lmps_maxalloc(0),
kim_particleSpecies(0), kim_particleSpecies(NULL),
kim_particleContributing(0), kim_particleContributing(NULL),
lmps_stripped_neigh_list(0), lmps_stripped_neigh_list(NULL),
lmps_stripped_neigh_ptr(0) lmps_stripped_neigh_ptr(NULL)
{ {
// Initialize Pair data members to appropriate values // Initialize Pair data members to appropriate values
single_enable = 0; // We do not provide the Single() function single_enable = 0; // We do not provide the Single() function
@ -101,6 +101,13 @@ PairKIM::~PairKIM()
delete [] lmps_unique_elements[i]; delete [] lmps_unique_elements[i];
delete [] lmps_unique_elements; delete [] lmps_unique_elements;
if (kim_particle_codes_ok)
{
delete [] kim_particle_codes;
kim_particle_codes = NULL;
kim_particle_codes_ok = false;
}
// clean up local memory used to support KIM interface // clean up local memory used to support KIM interface
memory->destroy(kim_particleSpecies); memory->destroy(kim_particleSpecies);
memory->destroy(kim_particleContributing); memory->destroy(kim_particleContributing);
@ -281,20 +288,6 @@ void PairKIM::settings(int narg, char **arg)
// set lmps_* bool flags // set lmps_* bool flags
set_lmps_flags(); set_lmps_flags();
// set virial handling
if (strcmp(arg[0],"LAMMPSvirial") == 0)
{
no_virial_fdotr_compute = 0;
}
else if (strcmp(arg[0],"KIMvirial") == 0)
{
no_virial_fdotr_compute = 1;
}
else
{
error->all(FLERR,"Unrecognized virial argument in pair_style command");
}
// set KIM Model name // set KIM Model name
int nmlen = strlen(arg[1]); int nmlen = strlen(arg[1]);
if (kim_modelname != 0) if (kim_modelname != 0)
@ -305,6 +298,26 @@ void PairKIM::settings(int narg, char **arg)
kim_modelname = new char[nmlen+1]; kim_modelname = new char[nmlen+1];
strcpy(kim_modelname, arg[1]); strcpy(kim_modelname, arg[1]);
// initialize KIM Model
kim_init();
// set virial handling
if (strcmp(arg[0],"KIMvirial") == 0)
{
if (kim_model_support_for_virial == KIM::SUPPORT_STATUS::notSupported)
no_virial_fdotr_compute = 0;
else
no_virial_fdotr_compute = 1;
}
else if (strcmp(arg[0],"LAMMPSvirial") == 0)
{
no_virial_fdotr_compute = 0;
}
else
{
error->all(FLERR,"Unrecognized virial argument in pair_style command");
}
return; return;
} }
@ -351,7 +364,7 @@ void PairKIM::coeff(int narg, char **arg)
// Assume all species arguments are valid // Assume all species arguments are valid
// errors will be detected by kim_api_init() matching // errors will be detected by below
lmps_num_unique_elements = 0; lmps_num_unique_elements = 0;
for (i = 2; i < narg; i++) { for (i = 2; i < narg; i++) {
for (j = 0; j < lmps_num_unique_elements; j++) for (j = 0; j < lmps_num_unique_elements; j++)
@ -378,6 +391,29 @@ void PairKIM::coeff(int narg, char **arg)
if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients");
// setup mapping between LAMMPS unique elements and KIM species codes
if (kim_particle_codes_ok)
{
delete [] kim_particle_codes;
kim_particle_codes = NULL;
kim_particle_codes_ok = false;
}
kim_particle_codes = new int[lmps_num_unique_elements];
kim_particle_codes_ok = true;
for(int i = 0; i < lmps_num_unique_elements; i++){
int kimerror;
int supported;
int code;
kimerror = pkim->GetSpeciesSupportAndCode(
KIM::SpeciesName(lmps_unique_elements[i]),
&supported,
&code);
if (supported)
kim_particle_codes[i] = code;
else
error->all(FLERR,"create_kim_particle_codes: symbol not found ");
}
return; return;
} }
@ -394,22 +430,16 @@ void PairKIM::init_style()
error->all(FLERR,"PairKIM only works with 3D problems"); error->all(FLERR,"PairKIM only works with 3D problems");
int kimerror; int kimerror;
// KIM and Model initialization (only once)
// also sets kim_ind_* and kim_* bool flags
if (!kim_init_ok)
{
kim_init();
}
// setup lmps_stripped_neigh_list for neighbors of one atom, if needed // setup lmps_stripped_neigh_list for neighbors of one atom, if needed
if (lmps_using_molecular) { if (lmps_using_molecular) {
memory->destroy(lmps_stripped_neigh_list); memory->destroy(lmps_stripped_neigh_list);
memory->create(lmps_stripped_neigh_list, memory->create(lmps_stripped_neigh_list,
kim_number_of_cutoffs*neighbor->oneatom, kim_number_of_neighbor_lists*neighbor->oneatom,
"pair:lmps_stripped_neigh_list"); "pair:lmps_stripped_neigh_list");
delete [] lmps_stripped_neigh_ptr; delete [] lmps_stripped_neigh_ptr;
lmps_stripped_neigh_ptr = new int*[kim_number_of_cutoffs]; lmps_stripped_neigh_ptr = new int*[kim_number_of_neighbor_lists];
for (int i = 0; i < kim_number_of_cutoffs; ++i) for (int i = 0; i < kim_number_of_neighbor_lists; ++i)
{ {
lmps_stripped_neigh_ptr[0] lmps_stripped_neigh_ptr[0]
= &(lmps_stripped_neigh_list[(i-1)*(neighbor->oneatom)]); = &(lmps_stripped_neigh_list[(i-1)*(neighbor->oneatom)]);
@ -420,14 +450,32 @@ void PairKIM::init_style()
// make sure comm_reverse expects (at most) 9 values when newton is off // make sure comm_reverse expects (at most) 9 values when newton is off
if (!lmps_using_newton) comm_reverse_off = 9; if (!lmps_using_newton) comm_reverse_off = 9;
// request full neighbor lists // request full neighbor lists (unless hints allow for better alternatives)
for (int i = 0; i < kim_number_of_cutoffs; ++i) for (int i = 0; i < kim_number_of_neighbor_lists; ++i)
{ {
int irequest = neighbor->request(this,instance_me); int irequest = neighbor->request(this,instance_me);
neighbor->requests[irequest]->id = i; neighbor->requests[irequest]->id = i;
neighbor->requests[irequest]->half = 0; if (half_list_hints[i])
neighbor->requests[irequest]->full = 1; {
neighbor->requests[irequest]->ghost = 1; neighbor->requests[irequest]->half = 1;
if (! lmps_using_newton) neighbor->requests[irequest]->newton = 2;
neighbor->requests[irequest]->full = 0;
}
else
{
neighbor->requests[irequest]->half = 0;
if (! lmps_using_newton) neighbor->requests[irequest]->newton = 0;
neighbor->requests[irequest]->full = 1;
}
if (padding_neighbor_hints[i])
{
neighbor->requests[irequest]->ghost = 0;
}
else
{
neighbor->requests[irequest]->ghost = 1;
}
neighbor->requests[irequest]->cut = 1; neighbor->requests[irequest]->cut = 1;
neighbor->requests[irequest]->cutoff neighbor->requests[irequest]->cutoff
= kim_cutoff_values[i] + neighbor->skin; = kim_cutoff_values[i] + neighbor->skin;
@ -604,7 +652,8 @@ double PairKIM::memory_usage()
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
int PairKIM::get_neigh(void const * const dataObject, int PairKIM::get_neigh(void const * const dataObject,
int const numberOfCutoffs, double const * const cutoffs, int const numberOfNeighborLists,
double const * const cutoffs,
int const neighborListIndex, int const particleNumber, int const neighborListIndex, int const particleNumber,
int * const numberOfNeighbors, int * const numberOfNeighbors,
int const ** const neighborsOfParticle) int const ** const neighborsOfParticle)
@ -612,8 +661,9 @@ int PairKIM::get_neigh(void const * const dataObject,
PairKIM const * const Model PairKIM const * const Model
= reinterpret_cast<PairKIM const * const>(dataObject); = reinterpret_cast<PairKIM const * const>(dataObject);
if (numberOfCutoffs != Model->kim_number_of_cutoffs) return true; if (numberOfNeighborLists != Model->kim_number_of_neighbor_lists)
for (int i = 0; i < numberOfCutoffs; ++i) return true;
for (int i = 0; i < numberOfNeighborLists; ++i)
{ {
if (Model->kim_cutoff_values[i] < cutoffs[i]) return true; if (Model->kim_cutoff_values[i] < cutoffs[i]) return true;
} }
@ -666,13 +716,6 @@ void PairKIM::kim_free()
} }
kim_init_ok = false; kim_init_ok = false;
if (kim_particle_codes_ok)
{
delete [] kim_particle_codes;
kim_particle_codes = 0;
kim_particle_codes_ok = false;
}
return; return;
} }
@ -713,32 +756,17 @@ void PairKIM::kim_init()
// determine KIM Model capabilities (used in this function below) // determine KIM Model capabilities (used in this function below)
set_kim_model_has_flags(); set_kim_model_has_flags();
// setup mapping between LAMMPS unique elements and KIM species codes
kim_particle_codes = new int[lmps_num_unique_elements];
kim_particle_codes_ok = true;
for(int i = 0; i < lmps_num_unique_elements; i++){
int kimerror;
int supported;
int code;
kimerror = pkim->GetSpeciesSupportAndCode(
KIM::SpeciesName(lmps_unique_elements[i]),
&supported,
&code);
if (supported)
kim_particle_codes[i] = code;
else
error->all(FLERR,"create_kim_particle_codes: symbol not found ");
}
pkim->GetInfluenceDistance(&kim_global_influence_distance); pkim->GetInfluenceDistance(&kim_global_influence_distance);
pkim->GetNeighborListCutoffsPointer(&kim_number_of_cutoffs, pkim->GetNeighborListPointers(&kim_number_of_neighbor_lists,
&kim_cutoff_values); &kim_cutoff_values,
&padding_neighbor_hints,
&half_list_hints);
if (neighborLists) if (neighborLists)
{ {
delete [] neighborLists; delete [] neighborLists;
neighborLists = 0; neighborLists = 0;
} }
neighborLists = new NeighList*[kim_number_of_cutoffs]; neighborLists = new NeighList*[kim_number_of_neighbor_lists];
kimerror = pargs->SetArgumentPointer( kimerror = pargs->SetArgumentPointer(
KIM::COMPUTE_ARGUMENT_NAME::numberOfParticles, KIM::COMPUTE_ARGUMENT_NAME::numberOfParticles,
@ -932,7 +960,7 @@ void PairKIM::set_kim_model_has_flags()
int kimerror = GetComputeArgumentName(i, &computeArgumentName); int kimerror = GetComputeArgumentName(i, &computeArgumentName);
KIM::SupportStatus supportStatus; KIM::SupportStatus supportStatus;
kimerror = pargs->GetArgumentSupportStatus(computeArgumentName, kimerror = pargs->GetArgumentSupportStatus(computeArgumentName,
&supportStatus); &supportStatus);
if (computeArgumentName == partialEnergy) if (computeArgumentName == partialEnergy)
kim_model_support_for_energy = supportStatus; kim_model_support_for_energy = supportStatus;
@ -958,12 +986,10 @@ void PairKIM::set_kim_model_has_flags()
error->warning(FLERR,"KIM Model does not provide `partialForce'; " error->warning(FLERR,"KIM Model does not provide `partialForce'; "
"Forces will be zero"); "Forces will be zero");
if ((no_virial_fdotr_compute == 1) && if (kim_model_support_for_virial == notSupported)
(kim_model_support_for_virial == notSupported))
{ {
error->warning(FLERR,"KIM Model does not provide `partialVirial'. " error->warning(FLERR,"KIM Model does not provide `partialVirial'. "
"pair_kim now using `LAMMPSvirial' option."); "pair_kim will always use `LAMMPSvirial' option.");
no_virial_fdotr_compute = 0;
} }
if (kim_model_support_for_particleEnergy == notSupported) if (kim_model_support_for_particleEnergy == notSupported)

View File

@ -12,13 +12,11 @@
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
Contributing authors: Ryan S. Elliott, Contributing authors: Ryan S. Elliott (UMinn)
Valeriu Smirichinski,
Ellad Tadmor (U Minn)
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
Designed for use with the kim-api-v1.6.0 (and newer) package Designed for use with the kim-api-v2.0.0-beta.1 (and newer) package
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
#ifdef PAIR_CLASS #ifdef PAIR_CLASS
@ -100,8 +98,10 @@ namespace LAMMPS_NS {
bool kim_init_ok; bool kim_init_ok;
int lmps_local_tot_num_atoms; int lmps_local_tot_num_atoms;
double kim_global_influence_distance; // KIM Model cutoff value double kim_global_influence_distance; // KIM Model cutoff value
int kim_number_of_cutoffs; int kim_number_of_neighbor_lists;
double const * kim_cutoff_values; double const * kim_cutoff_values;
int const * padding_neighbor_hints;
int const * half_list_hints;
class NeighList ** neighborLists; class NeighList ** neighborLists;
// values set in init_style() // values set in init_style()