Merge pull request #2479 from james1123581321/master

Updated AGNI pair files and added new AGNI force fields
This commit is contained in:
Axel Kohlmeyer
2021-01-29 15:41:08 -05:00
committed by GitHub
17 changed files with 11174 additions and 514 deletions

View File

@ -0,0 +1,92 @@
LAMMPS (24 Dec 2020)
using 1 OpenMP thread(s) per MPI task
processors * * 1
units metal
boundary p p f
read_data adatom.data
Reading data file ...
orthogonal box = (0.0000000 0.0000000 0.0000000) to (17.121441 14.827603 39.319732)
1 by 1 by 1 MPI processor grid
reading atoms ...
181 atoms
read_data CPU = 0.002 seconds
pair_style agni
pair_coeff * * Al_jpc.agni Al
Reading agni potential file Al_jpc.agni with DATE: 2017-02-24
WARNING: Ignoring unknown tag 'Rs' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
WARNING: Ignoring unknown tag 'neighbors' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
WARNING: Ignoring unknown tag 'lambda' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
neighbor 0.3 bin
neigh_modify delay 2 check yes
timestep 0.0005
velocity all create 500 12345
fix 1 all nvt temp 250 250 0.2
fix 5 all momentum 1 linear 1 1 1
thermo 100
thermo_style custom step ke temp
# dump MyDump all custom 250 dump.atoms id type x y z vx vy vz fx fy fz
run 1000
Neighbor list info ...
update every 1 steps, delay 2 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.3
ghost atom cutoff = 8.3
binsize = 4.15, bins = 5 4 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair agni, 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.072 | 3.072 | 3.072 Mbytes
Step KinEng Temp
0 11.633413 500
100 4.6059941 197.96401
200 7.3700156 316.76068
300 6.0443915 259.78582
400 6.163119 264.88869
500 6.2647284 269.25582
600 5.2732533 226.64257
700 5.651448 242.89725
800 6.5572404 281.82788
900 6.0576743 260.35671
1000 6.5622234 282.04205
Loop time of 16.4158 on 1 procs for 1000 steps with 181 atoms
Performance: 2.632 ns/day, 9.120 hours/ns, 60.917 timesteps/s
97.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 | 16.395 | 16.395 | 16.395 | 0.0 | 99.88
Neigh | 0.013275 | 0.013275 | 0.013275 | 0.0 | 0.08
Comm | 0.0023484 | 0.0023484 | 0.0023484 | 0.0 | 0.01
Output | 0.00014842 | 0.00014842 | 0.00014842 | 0.0 | 0.00
Modify | 0.0035522 | 0.0035522 | 0.0035522 | 0.0 | 0.02
Other | | 0.001173 | | | 0.01
Nlocal: 181.000 ave 181 max 181 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 563.000 ave 563 max 563 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: 19484.0 ave 19484 max 19484 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 19484
Ave neighs/atom = 107.64641
Neighbor list builds = 33
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:16

View File

@ -0,0 +1,92 @@
LAMMPS (24 Dec 2020)
using 1 OpenMP thread(s) per MPI task
processors * * 1
units metal
boundary p p f
read_data adatom.data
Reading data file ...
orthogonal box = (0.0000000 0.0000000 0.0000000) to (17.121441 14.827603 39.319732)
2 by 2 by 1 MPI processor grid
reading atoms ...
181 atoms
read_data CPU = 0.001 seconds
pair_style agni
pair_coeff * * Al_jpc.agni Al
Reading agni potential file Al_jpc.agni with DATE: 2017-02-24
WARNING: Ignoring unknown tag 'Rs' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
WARNING: Ignoring unknown tag 'neighbors' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
WARNING: Ignoring unknown tag 'lambda' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
neighbor 0.3 bin
neigh_modify delay 2 check yes
timestep 0.0005
velocity all create 500 12345
fix 1 all nvt temp 250 250 0.2
fix 5 all momentum 1 linear 1 1 1
thermo 100
thermo_style custom step ke temp
# dump MyDump all custom 250 dump.atoms id type x y z vx vy vz fx fy fz
run 1000
Neighbor list info ...
update every 1 steps, delay 2 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.3
ghost atom cutoff = 8.3
binsize = 4.15, bins = 5 4 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair agni, 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.063 | 3.063 | 3.063 Mbytes
Step KinEng Temp
0 11.633413 500
100 4.6059939 197.964
200 7.3700154 316.76067
300 6.0443914 259.78582
400 6.1631193 264.8887
500 6.2647281 269.25581
600 5.273254 226.6426
700 5.6514484 242.89726
800 6.5572409 281.82791
900 6.0576737 260.35668
1000 6.5622233 282.04205
Loop time of 4.67437 on 4 procs for 1000 steps with 181 atoms
Performance: 9.242 ns/day, 2.597 hours/ns, 213.933 timesteps/s
98.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 4.0668 | 4.2058 | 4.4078 | 7.1 | 89.98
Neigh | 0.0033048 | 0.0033794 | 0.0034381 | 0.1 | 0.07
Comm | 0.2547 | 0.45656 | 0.59576 | 21.5 | 9.77
Output | 9.8817e-05 | 0.00035464 | 0.001121 | 0.0 | 0.01
Modify | 0.0059429 | 0.0060754 | 0.0061966 | 0.2 | 0.13
Other | | 0.002172 | | | 0.05
Nlocal: 45.2500 ave 52 max 40 min
Histogram: 1 0 0 1 1 0 0 0 0 1
Nghost: 376.500 ave 382 max 366 min
Histogram: 1 0 0 0 0 0 0 0 2 1
Neighs: 0.00000 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 4871.00 ave 5578 max 4374 min
Histogram: 1 0 1 1 0 0 0 0 0 1
Total # of neighbors = 19484
Ave neighs/atom = 107.64641
Neighbor list builds = 33
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:04

View File

@ -0,0 +1,92 @@
LAMMPS (24 Dec 2020)
using 1 OpenMP thread(s) per MPI task
units metal
boundary p p p
read_data vacancy.data
Reading data file ...
orthogonal box = (0.0000000 0.0000000 0.0000000) to (8.0711250 8.0711250 8.0711250)
1 by 1 by 1 MPI processor grid
reading atoms ...
31 atoms
read_data CPU = 0.002 seconds
pair_style agni
pair_coeff * * Al_jpc.agni Al
Reading agni potential file Al_jpc.agni with DATE: 2017-02-24
WARNING: Ignoring unknown tag 'Rs' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
WARNING: Ignoring unknown tag 'neighbors' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
WARNING: Ignoring unknown tag 'lambda' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
neighbor 0.3 bin
neigh_modify delay 2 check yes
timestep 0.0005
velocity all create 1000 12345
fix 1 all nvt temp 900 900 200
fix 5 all momentum 1 linear 1 1 1
thermo 100
thermo_style custom step ke etotal temp
dump MyDump all custom 250 dump.atoms id type x y z vx vy vz fx fy fz
run 1000
Neighbor list info ...
update every 1 steps, delay 2 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.3
ghost atom cutoff = 8.3
binsize = 4.15, bins = 2 2 2
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair agni, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.241 | 4.241 | 4.241 Mbytes
Step KinEng TotEng Temp
0 3.8778043 3.8778043 1000
100 2.9986261 2.9986261 773.27936
200 3.6860313 3.6860313 950.54598
300 3.8133153 3.8133153 983.3697
400 3.7330285 3.7330285 962.6655
500 3.5875467 3.5875467 925.14897
600 3.533152 3.533152 911.12178
700 2.6509457 2.6509457 683.62028
800 3.376349 3.376349 870.68576
900 3.9036736 3.9036736 1006.6711
1000 3.0884833 3.0884833 796.45156
Loop time of 2.92678 on 1 procs for 1000 steps with 31 atoms
Performance: 14.760 ns/day, 1.626 hours/ns, 341.673 timesteps/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 | 2.9144 | 2.9144 | 2.9144 | 0.0 | 99.58
Neigh | 0.0068263 | 0.0068263 | 0.0068263 | 0.0 | 0.23
Comm | 0.0029868 | 0.0029868 | 0.0029868 | 0.0 | 0.10
Output | 0.00050202 | 0.00050202 | 0.00050202 | 0.0 | 0.02
Modify | 0.0013382 | 0.0013382 | 0.0013382 | 0.0 | 0.05
Other | | 0.0007672 | | | 0.03
Nlocal: 31.0000 ave 31 max 31 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 869.000 ave 869 max 869 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: 4360.00 ave 4360 max 4360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 4360
Ave neighs/atom = 140.64516
Neighbor list builds = 53
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:02

View File

@ -0,0 +1,92 @@
LAMMPS (24 Dec 2020)
using 1 OpenMP thread(s) per MPI task
units metal
boundary p p p
read_data vacancy.data
Reading data file ...
orthogonal box = (0.0000000 0.0000000 0.0000000) to (8.0711250 8.0711250 8.0711250)
1 by 2 by 2 MPI processor grid
reading atoms ...
31 atoms
read_data CPU = 0.001 seconds
pair_style agni
pair_coeff * * Al_jpc.agni Al
Reading agni potential file Al_jpc.agni with DATE: 2017-02-24
WARNING: Ignoring unknown tag 'Rs' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
WARNING: Ignoring unknown tag 'neighbors' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
WARNING: Ignoring unknown tag 'lambda' in AGNI potential file. (src/USER-MISC/pair_agni.cpp:440)
neighbor 0.3 bin
neigh_modify delay 2 check yes
timestep 0.0005
velocity all create 1000 12345
fix 1 all nvt temp 900 900 200
fix 5 all momentum 1 linear 1 1 1
thermo 100
thermo_style custom step ke etotal temp
dump MyDump all custom 250 dump.atoms id type x y z vx vy vz fx fy fz
run 1000
Neighbor list info ...
update every 1 steps, delay 2 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.3
ghost atom cutoff = 8.3
binsize = 4.15, bins = 2 2 2
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair agni, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.227 | 4.227 | 4.227 Mbytes
Step KinEng TotEng Temp
0 3.8778043 3.8778043 1000
100 2.9986264 2.9986264 773.27944
200 3.6860316 3.6860316 950.54606
300 3.8133152 3.8133152 983.36966
400 3.7330288 3.7330288 962.66559
500 3.5875468 3.5875468 925.149
600 3.5331519 3.5331519 911.12176
700 2.6509452 2.6509452 683.62015
800 3.3763492 3.3763492 870.68579
900 3.9036736 3.9036736 1006.6711
1000 3.0884821 3.0884821 796.45125
Loop time of 0.91769 on 4 procs for 1000 steps with 31 atoms
Performance: 47.075 ns/day, 0.510 hours/ns, 1089.693 timesteps/s
95.2% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.67405 | 0.76047 | 0.81748 | 6.1 | 82.87
Neigh | 0.0015411 | 0.001691 | 0.001774 | 0.2 | 0.18
Comm | 0.091364 | 0.14959 | 0.23513 | 13.8 | 16.30
Output | 0.00027996 | 0.00040391 | 0.00075917 | 0.0 | 0.04
Modify | 0.0028397 | 0.0039247 | 0.0050072 | 1.7 | 0.43
Other | | 0.001611 | | | 0.18
Nlocal: 7.75000 ave 8 max 7 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Nghost: 617.250 ave 621 max 612 min
Histogram: 1 0 0 0 0 0 2 0 0 1
Neighs: 0.00000 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 1090.00 ave 1131 max 993 min
Histogram: 1 0 0 0 0 0 0 0 1 2
Total # of neighbors = 4360
Ave neighs/atom = 140.64516
Neighbor list builds = 53
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:00

View File

@ -1,87 +0,0 @@
LAMMPS (21 Feb 2017)
using 1 OpenMP thread(s) per MPI task
processors * * 1
units metal
boundary p p f
read_data adatom.data
orthogonal box = (0 0 0) to (17.1214 14.8276 39.3197)
1 by 1 by 1 MPI processor grid
reading atoms ...
181 atoms
pair_style agni
pair_coeff * * Al_jpc.agni Al
Reading potential file Al_jpc.agni with DATE: 2017-02-24
neighbor 0.3 bin
neigh_modify delay 2 check yes
timestep 0.0005
velocity all create 500 12345
fix 1 all nvt temp 250 250 0.2
fix 5 all momentum 1 linear 1 1 1
thermo 100
thermo_style custom step ke temp
# dump MyDump all custom 250 dump.atoms id type x y z vx vy vz fx fy fz
run 1000
Neighbor list info ...
update every 1 steps, delay 2 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.3
ghost atom cutoff = 8.3
binsize = 4.15, bins = 5 4 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair agni, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Memory usage per processor = 2.69795 Mbytes
Step KinEng Temp
0 11.633413 500
100 4.6059939 197.964
200 7.3700149 316.76065
300 6.0443913 259.78581
400 6.1631189 264.88868
500 6.2647272 269.25577
600 5.2732539 226.6426
700 5.6514471 242.89721
800 6.5572407 281.8279
900 6.0576738 260.35669
1000 6.5622233 282.04205
Loop time of 51.9308 on 1 procs for 1000 steps with 181 atoms
Performance: 0.832 ns/day, 28.850 hours/ns, 19.256 timesteps/s
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 51.89 | 51.89 | 51.89 | 0.0 | 99.92
Neigh | 0.023158 | 0.023158 | 0.023158 | 0.0 | 0.04
Comm | 0.0049036 | 0.0049036 | 0.0049036 | 0.0 | 0.01
Output | 0.0002594 | 0.0002594 | 0.0002594 | 0.0 | 0.00
Modify | 0.010244 | 0.010244 | 0.010244 | 0.0 | 0.02
Other | | 0.002483 | | | 0.00
Nlocal: 181 ave 181 max 181 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 563 ave 563 max 563 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: 19484 ave 19484 max 19484 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 19484
Ave neighs/atom = 107.646
Neighbor list builds = 33
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:52

View File

@ -1,87 +0,0 @@
LAMMPS (21 Feb 2017)
using 1 OpenMP thread(s) per MPI task
processors * * 1
units metal
boundary p p f
read_data adatom.data
orthogonal box = (0 0 0) to (17.1214 14.8276 39.3197)
2 by 2 by 1 MPI processor grid
reading atoms ...
181 atoms
pair_style agni
pair_coeff * * Al_jpc.agni Al
Reading potential file Al_jpc.agni with DATE: 2017-02-24
neighbor 0.3 bin
neigh_modify delay 2 check yes
timestep 0.0005
velocity all create 500 12345
fix 1 all nvt temp 250 250 0.2
fix 5 all momentum 1 linear 1 1 1
thermo 100
thermo_style custom step ke temp
# dump MyDump all custom 250 dump.atoms id type x y z vx vy vz fx fy fz
run 1000
Neighbor list info ...
update every 1 steps, delay 2 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.3
ghost atom cutoff = 8.3
binsize = 4.15, bins = 5 4 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair agni, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Memory usage per processor = 3.06041 Mbytes
Step KinEng Temp
0 11.633413 500
100 4.6059941 197.96401
200 7.3700154 316.76067
300 6.0443913 259.78581
400 6.1631193 264.8887
500 6.2647281 269.25581
600 5.2732537 226.64259
700 5.651448 242.89725
800 6.5572405 281.82789
900 6.0576741 260.3567
1000 6.562224 282.04208
Loop time of 14.5263 on 4 procs for 1000 steps with 181 atoms
Performance: 2.974 ns/day, 8.070 hours/ns, 68.841 timesteps/s
99.3% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 12.858 | 13.227 | 13.574 | 8.0 | 91.06
Neigh | 0.0056965 | 0.0058173 | 0.0060787 | 0.2 | 0.04
Comm | 0.92934 | 1.276 | 1.6455 | 25.7 | 8.78
Output | 0.00013971 | 0.00017625 | 0.00025463 | 0.0 | 0.00
Modify | 0.012693 | 0.012756 | 0.012911 | 0.1 | 0.09
Other | | 0.004066 | | | 0.03
Nlocal: 45.25 ave 52 max 40 min
Histogram: 1 0 0 1 1 0 0 0 0 1
Nghost: 376.5 ave 382 max 366 min
Histogram: 1 0 0 0 0 0 0 0 2 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 4871 ave 5578 max 4374 min
Histogram: 1 0 1 1 0 0 0 0 0 1
Total # of neighbors = 19484
Ave neighs/atom = 107.646
Neighbor list builds = 33
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:14

View File

@ -1,87 +0,0 @@
LAMMPS (21 Feb 2017)
using 1 OpenMP thread(s) per MPI task
units metal
boundary p p p
read_data vacancy.data
orthogonal box = (0 0 0) to (8.07113 8.07113 8.07113)
1 by 1 by 1 MPI processor grid
reading atoms ...
31 atoms
pair_style agni
pair_coeff * * Al_jpc.agni Al
Reading potential file Al_jpc.agni with DATE: 2017-02-24
neighbor 0.3 bin
neigh_modify delay 2 check yes
timestep 0.0005
velocity all create 1000 12345
fix 1 all nvt temp 900 900 200
fix 5 all momentum 1 linear 1 1 1
thermo 100
thermo_style custom step ke etotal temp
# dump MyDump all custom 250 dump.atoms id type x y z vx vy vz fx fy fz
run 1000
Neighbor list info ...
update every 1 steps, delay 2 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.3
ghost atom cutoff = 8.3
binsize = 4.15, bins = 2 2 2
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair agni, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Memory usage per processor = 2.73416 Mbytes
Step KinEng TotEng Temp
0 3.8778043 3.8778043 1000
100 2.9986261 2.9986261 773.27937
200 3.6860314 3.6860314 950.54599
300 3.813315 3.813315 983.36961
400 3.7330285 3.7330285 962.6655
500 3.5875467 3.5875467 925.14896
600 3.5331529 3.5331529 911.12202
700 2.6509449 2.6509449 683.62008
800 3.3763492 3.3763492 870.68582
900 3.903673 3.903673 1006.6709
1000 3.0884824 3.0884824 796.45133
Loop time of 9.02712 on 1 procs for 1000 steps with 31 atoms
Performance: 4.786 ns/day, 5.015 hours/ns, 110.777 timesteps/s
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 9.0039 | 9.0039 | 9.0039 | 0.0 | 99.74
Neigh | 0.011892 | 0.011892 | 0.011892 | 0.0 | 0.13
Comm | 0.0061693 | 0.0061693 | 0.0061693 | 0.0 | 0.07
Output | 0.00014615 | 0.00014615 | 0.00014615 | 0.0 | 0.00
Modify | 0.0035009 | 0.0035009 | 0.0035009 | 0.0 | 0.04
Other | | 0.001521 | | | 0.02
Nlocal: 31 ave 31 max 31 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 869 ave 869 max 869 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: 4360 ave 4360 max 4360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 4360
Ave neighs/atom = 140.645
Neighbor list builds = 53
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:09

View File

@ -1,87 +0,0 @@
LAMMPS (21 Feb 2017)
using 1 OpenMP thread(s) per MPI task
units metal
boundary p p p
read_data vacancy.data
orthogonal box = (0 0 0) to (8.07113 8.07113 8.07113)
1 by 2 by 2 MPI processor grid
reading atoms ...
31 atoms
pair_style agni
pair_coeff * * Al_jpc.agni Al
Reading potential file Al_jpc.agni with DATE: 2017-02-24
neighbor 0.3 bin
neigh_modify delay 2 check yes
timestep 0.0005
velocity all create 1000 12345
fix 1 all nvt temp 900 900 200
fix 5 all momentum 1 linear 1 1 1
thermo 100
thermo_style custom step ke etotal temp
# dump MyDump all custom 250 dump.atoms id type x y z vx vy vz fx fy fz
run 1000
Neighbor list info ...
update every 1 steps, delay 2 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.3
ghost atom cutoff = 8.3
binsize = 4.15, bins = 2 2 2
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair agni, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Memory usage per processor = 2.72175 Mbytes
Step KinEng TotEng Temp
0 3.8778044 3.8778044 1000
100 2.9986263 2.9986263 773.27942
200 3.6860315 3.6860315 950.54602
300 3.8133145 3.8133145 983.3695
400 3.7330282 3.7330282 962.66543
500 3.5875466 3.5875466 925.14895
600 3.5331523 3.5331523 911.12186
700 2.6509448 2.6509448 683.62005
800 3.3763493 3.3763493 870.68584
900 3.9036733 3.9036733 1006.671
1000 3.0884818 3.0884818 796.45116
Loop time of 2.46785 on 4 procs for 1000 steps with 31 atoms
Performance: 17.505 ns/day, 1.371 hours/ns, 405.212 timesteps/s
99.2% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.0737 | 2.299 | 2.3902 | 8.7 | 93.16
Neigh | 0.0025222 | 0.0027327 | 0.0028174 | 0.2 | 0.11
Comm | 0.059817 | 0.15141 | 0.37684 | 33.8 | 6.14
Output | 0.0001502 | 0.00016767 | 0.00021219 | 0.0 | 0.01
Modify | 0.0098755 | 0.010248 | 0.010664 | 0.3 | 0.42
Other | | 0.004321 | | | 0.18
Nlocal: 7.75 ave 8 max 7 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Nghost: 617.25 ave 621 max 612 min
Histogram: 1 0 0 0 0 0 2 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 1090 ave 1131 max 993 min
Histogram: 1 0 0 0 0 0 0 0 1 2
Total # of neighbors = 4360
Ave neighs/atom = 140.645
Neighbor list builds = 53
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:02

File diff suppressed because it is too large Load Diff

View File

@ -17,7 +17,6 @@ lambda 1e-08
b 102.870264493
n_train 3000
endVar
0.000000000000000000e+00 -4.980622283254589000e+00 -2.662505672962482528e+00 -1.495155609938069619e+00 -7.333737039816567993e-01 -2.724952969791719082e-01 -6.613771156359619929e-02 -1.912092709590330940e-03 1.473705560509566359e-05 7.453680000000000305e-01 1.597331621434825659e+07
1.000000000000000000e+00 -4.977152206916696464e+00 -2.661383130146552922e+00 -1.494564974611932495e+00 -7.326386664321046238e-01 -2.717745126429032543e-01 -6.595850089381591341e-02 -1.985476180073739681e-03 1.342170339121332597e-05 7.294220000000000148e-01 1.595073002517673187e+07
2.000000000000000000e+00 -4.797679729334596743e+00 -2.654928371036860302e+00 -1.527304093421905096e+00 -7.613935247235876780e-01 -2.816213586787409406e-01 -6.585890241977590542e-02 -2.072979733750940617e-03 -2.509405040500490728e-06 5.657130000000000214e-01 -1.217794694318742678e+07

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -12,7 +12,7 @@
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Axel Kohlmeyer (Temple U), Venkatesh Botu
Contributing authors: Axel Kohlmeyer (Temple U), Venkatesh Botu, James Chapman (Lawrence Livermore National Lab)
------------------------------------------------------------------------- */
#include "pair_agni.h"
@ -28,6 +28,8 @@
#include "neigh_list.h"
#include "neigh_request.h"
#include "neighbor.h"
#include "tokenizer.h"
#include "potential_file_reader.h"
#include <cmath>
#include <cstring>
@ -37,38 +39,15 @@ using namespace MathSpecial;
static const char cite_pair_agni[] =
"pair agni command:\n\n"
"@article{botu2015adaptive,\n"
" author = {Botu, Venkatesh and Ramprasad, Rampi},\n"
" title = {Adaptive machine learning framework to"
" accelerate ab initio molecular dynamics},\n"
" journal = {International Journal of Quantum Chemistry},\n"
" volume = {115},\n"
" number = {16},\n"
" pages = {1074--1083},\n"
" year = {2015},\n"
" publisher = {Wiley Online Library}\n"
"}\n\n"
"@article{botu2015learning,\n"
" author = {Botu, Venkatesh and Ramprasad, Rampi},\n"
" title = {Learning scheme to predict atomic forces"
" and accelerate materials simulations},\n"
" journal = {Physical Review B},\n"
" volume = {92},\n"
" number = {9},\n"
" pages = {094306},\n"
" year = {2015},\n"
" publisher = {APS}\n"
"}\n\n"
"@article{botu2017jpc,\n"
" author = {Botu, V. and Batra, R. and Chapman, J. and Ramprasad, Rampi},\n"
"@article{huan2019jpc,\n"
" author = {Huan, T. and Batra, R. and Chapman, J. and Kim, C. and Chandrasekaran, A. and Ramprasad, Rampi},\n"
" journal = {J. Phys. Chem. C},\n"
" volume = {121},\n"
" number = {1},\n"
" pages = {511},\n"
" year = {2017},\n"
" number = {34},\n"
" pages = {20715},\n"
" year = {2019},\n"
"}\n\n";
#define AGNI_VERSION 1
#define MAXLINE 10240
#define MAXWORD 40
@ -82,6 +61,8 @@ PairAGNI::PairAGNI(LAMMPS *lmp) : Pair(lmp)
restartinfo = 0;
one_coeff = 1;
manybody_flag = 1;
atomic_feature_version = 0;
centroidstressflag = CENTROID_NOTAVAIL;
no_virial_fdotr_compute = 1;
@ -106,18 +87,14 @@ PairAGNI::~PairAGNI()
delete [] elements;
if (params) {
for (int i = 0; i < nparams; ++i) {
int n = params[i].numeta;
for (int j = 0; j < n; ++j) {
delete [] params[i].xU[j];
}
delete [] params[i].eta;
delete [] params[i].alpha;
delete [] params[i].xU;
delete [] params[i].yU;
memory->destroy(params[i].eta);
memory->destroy(params[i].alpha);
memory->destroy(params[i].xU);
}
memory->destroy(params);
params = nullptr;
}
memory->destroy(elem2param);
if (allocated) {
memory->destroy(setflag);
@ -150,7 +127,6 @@ void PairAGNI::compute(int eflag, int vflag)
double *Vx, *Vy, *Vz;
// loop over full neighbor list of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
itype = map[type[i]];
@ -187,7 +163,13 @@ void PairAGNI::compute(int eflag, int vflag)
const double wZ = cF*delz/r;
for (k = 0; k < iparam.numeta; ++k) {
const double e = exp(-(iparam.eta[k]*rsq));
double e = 0.0;
if (atomic_feature_version == AGNI_VERSION_1)
e = exp(-(iparam.eta[k]*rsq));
else if (atomic_feature_version == AGNI_VERSION_2)
e = (1.0 / (square(iparam.eta[k]) * iparam.gwidth * sqrt(MathConst::MY_2PI))) * exp(-(square(r - iparam.eta[k])) / (2.0 * square(iparam.gwidth)));
Vx[k] += wX*e;
Vy[k] += wY*e;
Vz[k] += wZ*e;
@ -202,6 +184,7 @@ void PairAGNI::compute(int eflag, int vflag)
for (int k = 0; k < iparam.numeta; ++k) {
const double xu = iparam.xU[k][j];
kx += square(Vx[k] - xu);
ky += square(Vy[k] - xu);
kz += square(Vz[k] - xu);
@ -295,6 +278,8 @@ void PairAGNI::coeff(int narg, char **arg)
nelements++;
}
}
if (nelements != 1)
error->all(FLERR,"Cannot handle multi-element systems with this potential");
// read potential file and initialize potential parameters
@ -347,132 +332,131 @@ double PairAGNI::init_one(int i, int j)
/* ---------------------------------------------------------------------- */
void PairAGNI::read_file(char *file)
void PairAGNI::read_file(char *filename)
{
memory->sfree(params);
params = nullptr;
int i,j,k,curparam,wantdata,fp_counter;
if (params) {
for (int i = 0; i < nparams; ++i) {
memory->destroy(params[i].eta);
memory->destroy(params[i].alpha);
memory->destroy(params[i].xU);
}
memory->destroy(params);
params = nullptr;
}
nparams = 0;
// open file on proc 0 only
// then read line by line and broadcast the line to all MPI ranks
fp_counter = 0;
wantdata = -1;
FILE *fp;
// read potential file
if (comm->me == 0) {
fp = utils::open_potential(file,lmp,nullptr);
if (fp == nullptr) {
char str[128];
snprintf(str,128,"Cannot open AGNI potential file %s",file);
error->one(FLERR,str);
PotentialFileReader reader(lmp, filename, "agni", unit_convert_flag);
char * line;
while ((line = reader.next_line())) {
try {
ValueTokenizer values(line);
if (wantdata == -1) {
std::string tag = values.next_string();
if (tag == "n_elements") {
nparams = values.next_int();
if ((nparams < 1) || params) // sanity check
error->all(FLERR,"Invalid AGNI potential file");
params = memory->create(params,nparams,"pair:params");
memset(params,0,nparams*sizeof(Param));
curparam = -1;
wantdata = -1;
} else if (tag == "interaction") {
for (j = 0; j < nparams; ++j) {
std::string element = values.next_string();
if (element == elements[params[j].ielement])
curparam = j;
}
} else if (tag == "element") {
for (j = 0; j < nparams; ++j) {
std::string element = values.next_string();
for (k = 0; k < nelements; ++k)
if (element == elements[k]) break;
if (k == nelements)
error->all(FLERR,"No suitable parameters for requested element found");
else params[j].ielement = k;
}
} else if (tag == "generation") {
atomic_feature_version = values.next_int();
if (atomic_feature_version != AGNI_VERSION_1 && atomic_feature_version != AGNI_VERSION_2)
error->all(FLERR,"Incompatible AGNI potential file version");
} else if (tag == "eta") {
params[curparam].numeta = values.count() - 1;
memory->create(params[curparam].eta,params[curparam].numeta,"agni:eta");
for (j = 0; j < params[curparam].numeta; j++)
params[curparam].eta[j] = values.next_double();
} else if (tag == "gwidth") {
params[curparam].gwidth = values.next_double();
} else if (tag == "Rc") {
params[curparam].cut = values.next_double();
} else if (tag == "n_train") {
params[curparam].numtrain = values.next_int();
memory->create(params[curparam].alpha,params[curparam].numtrain,"agni:alpha");
memory->create(params[curparam].xU,params[curparam].numtrain,params[curparam].numtrain,"agni:xU");
} else if (tag == "sigma") {
params[curparam].sigma = values.next_double();
} else if (tag == "b") {
params[curparam].b = values.next_double();
} else if (tag == "endVar") {
if (atomic_feature_version == AGNI_VERSION_1)
params[curparam].gwidth = 0.0;
wantdata = curparam;
curparam = -1;
} else error->warning(FLERR,fmt::format("Ignoring unknown tag '{}' "
"in AGNI potential file.",tag));
} else {
if (params && wantdata >=0) {
if ((int)values.count() == params[wantdata].numeta + 2) {
for (k = 0; k < params[wantdata].numeta; ++k)
params[wantdata].xU[k][fp_counter] = values.next_double();
values.next_double(); // ignore
params[wantdata].alpha[fp_counter] = values.next_double();
fp_counter++;
} else if ((int)values.count() == params[wantdata].numeta + 3) {
values.next_double(); // ignore
for (k = 0; k < params[wantdata].numeta; ++k)
params[wantdata].xU[k][fp_counter] = values.next_double();
values.next_double(); // ignore
params[wantdata].alpha[fp_counter] = values.next_double();
fp_counter++;
} else error->all(FLERR,"Invalid AGNI potential file");
}
}
}
catch (TokenizerException &e) {
error->one(FLERR, e.what());
}
}
}
int i,j,n,nwords,curparam,wantdata;
char line[MAXLINE],*ptr;
int eof = 0;
char **words = new char*[MAXWORD+1];
while (1) {
n = 0;
if (comm->me == 0) {
ptr = fgets(line,MAXLINE,fp);
if (ptr == nullptr) {
eof = 1;
fclose(fp);
} else n = strlen(line) + 1;
}
MPI_Bcast(&eof,1,MPI_INT,0,world);
if (eof) break;
MPI_Bcast(&n,1,MPI_INT,0,world);
MPI_Bcast(line,n,MPI_CHAR,0,world);
// strip comment, skip line if blank
if ((ptr = strchr(line,'#'))) *ptr = '\0';
nwords = utils::count_words(line);
if (nwords == 0) continue;
if (nwords > MAXWORD)
error->all(FLERR,"Increase MAXWORD and re-compile");
// words = ptrs to all words in line
nwords = 0;
words[nwords++] = strtok(line," \t\n\r\f");
while ((words[nwords++] = strtok(nullptr," \t\n\r\f"))) continue;
--nwords;
if ((nwords == 2) && (strcmp(words[0],"generation") == 0)) {
int ver = atoi(words[1]);
if (ver != AGNI_VERSION)
error->all(FLERR,"Incompatible AGNI potential file version");
if ((ver == 1) && (nelements != 1))
error->all(FLERR,"Cannot handle multi-element systems with this potential");
} else if ((nwords == 2) && (strcmp(words[0],"n_elements") == 0)) {
nparams = atoi(words[1]);
if ((nparams < 1) || params) // sanity check
error->all(FLERR,"Invalid AGNI potential file");
params = memory->create(params,nparams,"pair:params");
memset(params,0,nparams*sizeof(Param));
curparam = -1;
} else if (params && (nwords == nparams+1) && (strcmp(words[0],"element") == 0)) {
wantdata = -1;
for (i = 0; i < nparams; ++i) {
for (j = 0; j < nelements; ++j)
if (strcmp(words[i+1],elements[j]) == 0) break;
if (j == nelements)
error->all(FLERR,"No suitable parameters for requested element found");
else params[i].ielement = j;
}
} else if (params && (nwords == 2) && (strcmp(words[0],"interaction") == 0)) {
for (i = 0; i < nparams; ++i)
if (strcmp(words[1],elements[params[i].ielement]) == 0) curparam = i;
} else if ((curparam >=0) && (nwords == 1) && (strcmp(words[0],"endVar") == 0)) {
int numtrain = params[curparam].numtrain;
int numeta = params[curparam].numeta;
params[curparam].alpha = new double[numtrain];
params[curparam].yU = new double[numtrain];
params[curparam].xU = new double*[numeta];
for (i = 0; i < numeta; ++i)
params[curparam].xU[i] = new double[numtrain];
wantdata = curparam;
curparam = -1;
} else if ((curparam >=0) && (nwords == 2) && (strcmp(words[0],"Rc") == 0)) {
params[curparam].cut = atof(words[1]);
} else if ((curparam >=0) && (nwords == 2) && (strcmp(words[0],"Rs") == 0)) {
; // ignored
} else if ((curparam >=0) && (nwords == 2) && (strcmp(words[0],"neighbors") == 0)) {
; // ignored
} else if ((curparam >=0) && (nwords == 2) && (strcmp(words[0],"sigma") == 0)) {
params[curparam].sigma = atof(words[1]);
} else if ((curparam >=0) && (nwords == 2) && (strcmp(words[0],"lambda") == 0)) {
params[curparam].lambda = atof(words[1]);
} else if ((curparam >=0) && (nwords == 2) && (strcmp(words[0],"b") == 0)) {
params[curparam].b = atof(words[1]);
} else if ((curparam >=0) && (nwords == 2) && (strcmp(words[0],"n_train") == 0)) {
params[curparam].numtrain = atoi(words[1]);
} else if ((curparam >=0) && (nwords > 1) && (strcmp(words[0],"eta") == 0)) {
params[curparam].numeta = nwords-1;
params[curparam].eta = new double[nwords-1];
for (i = 0, j = 1 ; j < nwords; ++i, ++j)
params[curparam].eta[i] = atof(words[j]);
} else if (params && (wantdata >=0) && (nwords == params[wantdata].numeta+3)) {
n = (int) atof(words[0]);
for (i = 0; i < params[wantdata].numeta; ++i) {
params[wantdata].xU[i][n] = atof(words[i+1]);
}
params[wantdata].yU[n] = atof(words[params[wantdata].numeta+1]);
params[wantdata].alpha[n] = atof(words[params[wantdata].numeta+2]);
} else {
if (comm->me == 0)
error->warning(FLERR,"Ignoring unknown content in AGNI potential file.");
}
MPI_Bcast(&nparams, 1, MPI_INT, 0, world);
MPI_Bcast(&atomic_feature_version, 1, MPI_INT, 0, world);
if (comm->me != 0) {
params = memory->create(params,nparams,"pair:params");
memset(params,0,nparams*sizeof(Param));
}
MPI_Bcast(params, nparams*sizeof(Param), MPI_BYTE, 0, world);
for (i = 0; i < nparams; i++) {
if (comm->me != 0) {
memory->create(params[i].alpha,params[i].numtrain,"agni:alpha");
memory->create(params[i].eta,params[i].numeta,"agni:eta");
memory->create(params[i].xU,params[i].numeta,params[i].numtrain,"agni:xU");
}
delete [] words;
MPI_Bcast(params[i].alpha, params[i].numtrain, MPI_DOUBLE, 0, world);
MPI_Bcast(params[i].eta, params[i].numeta, MPI_DOUBLE, 0, world);
MPI_Bcast(&params[i].xU[0][0],params[i].numtrain*params[i].numeta,MPI_DOUBLE,0,world);
}
}
/* ---------------------------------------------------------------------- */
@ -512,4 +496,3 @@ void PairAGNI::setup_params()
if (rtmp > cutmax) cutmax = rtmp;
}
}

View File

@ -26,6 +26,7 @@ namespace LAMMPS_NS {
class PairAGNI : public Pair {
public:
enum { AGNI_VERSION_UNKNOWN, AGNI_VERSION_1, AGNI_VERSION_2 };
PairAGNI(class LAMMPS *);
virtual ~PairAGNI();
virtual void compute(int, int);
@ -36,9 +37,10 @@ class PairAGNI : public Pair {
struct Param {
double cut,cutsq;
double *eta,**xU,*yU,*alpha;
double sigma,lambda,b;
double *eta,**xU,*alpha;
double sigma,lambda,b,gwidth;
int numeta,numtrain,ielement;
};
protected:
@ -48,8 +50,8 @@ class PairAGNI : public Pair {
int *elem2param; // mapping from element pairs to parameters
int *map; // mapping from atom types to elements
int nparams; // # of stored parameter sets
int atomic_feature_version; // version of fingerprint
Param *params; // parameter set for an I-J interaction
virtual void allocate();
void read_file(char *);
virtual void setup_params();

View File

@ -58,15 +58,20 @@ void PairAGNIOMP::compute(int eflag, int vflag)
thr->timer(Timer::START);
ev_setup_thr(eflag, vflag, nall, eatom, vatom, nullptr, thr);
if (evflag) eval<1>(ifrom, ito, thr);
else eval<0>(ifrom, ito, thr);
if (atomic_feature_version == AGNI_VERSION_1) {
if (evflag) eval<AGNI_VERSION_1,1>(ifrom, ito, thr);
else eval<AGNI_VERSION_1,0>(ifrom, ito, thr);
} else if (atomic_feature_version == AGNI_VERSION_2) {
if (evflag) eval<AGNI_VERSION_2,1>(ifrom, ito, thr);
else eval<AGNI_VERSION_2,0>(ifrom, ito, thr);
}
thr->timer(Timer::PAIR);
reduce_thr(this, eflag, vflag, thr);
} // end of omp parallel region
}
template <int EVFLAG>
template <int ATOMIC_FEATURE_VERSION, int EVFLAG>
void PairAGNIOMP::eval(int iifrom, int iito, ThrData * const thr)
{
int i,j,k,ii,jj,itype,jnum;
@ -124,7 +129,14 @@ void PairAGNIOMP::eval(int iifrom, int iito, ThrData * const thr)
const double wZ = cF*delz/r;
for (k = 0; k < iparam.numeta; ++k) {
const double e = fm_exp(-(iparam.eta[k]*rsq));
double e = 0.0;
if (ATOMIC_FEATURE_VERSION == AGNI_VERSION_1)
e = fm_exp(-(iparam.eta[k]*rsq));
else if (ATOMIC_FEATURE_VERSION == AGNI_VERSION_2)
e = (1.0 / (square(iparam.eta[k]) * iparam.gwidth * sqrt(MathConst::MY_2PI)))
* fm_exp(-(square(r - iparam.eta[k])) / (2.0 * square(iparam.gwidth)));
Vx[k] += wX*e;
Vy[k] += wY*e;
Vz[k] += wZ*e;

View File

@ -38,7 +38,7 @@ class PairAGNIOMP : public PairAGNI, public ThrOMP {
virtual double memory_usage();
private:
template <int EVFLAG>
template <int ATOMIC_FEATURE_VERSION, int EVFLAG>
void eval(int ifrom, int ito, ThrData * const thr);
};