Merge pull request #2479 from james1123581321/master
Updated AGNI pair files and added new AGNI force fields
This commit is contained in:
92
examples/USER/misc/agni/log.20Jan21.adatom.g++.1
Normal file
92
examples/USER/misc/agni/log.20Jan21.adatom.g++.1
Normal 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
|
||||
92
examples/USER/misc/agni/log.20Jan21.adatom.g++.4
Normal file
92
examples/USER/misc/agni/log.20Jan21.adatom.g++.4
Normal 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
|
||||
92
examples/USER/misc/agni/log.20Jan21.vacancy.g++.1
Normal file
92
examples/USER/misc/agni/log.20Jan21.vacancy.g++.1
Normal 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
|
||||
92
examples/USER/misc/agni/log.20Jan21.vacancy.g++.4
Normal file
92
examples/USER/misc/agni/log.20Jan21.vacancy.g++.4
Normal 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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
3014
potentials/Al_Batra_2019.agni
Normal file
3014
potentials/Al_Batra_2019.agni
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
||||
1663
potentials/Cu_Huan_2019_fp1.agni
Normal file
1663
potentials/Cu_Huan_2019_fp1.agni
Normal file
File diff suppressed because it is too large
Load Diff
1454
potentials/Cu_Huan_2019_fp2.agni
Normal file
1454
potentials/Cu_Huan_2019_fp2.agni
Normal file
File diff suppressed because it is too large
Load Diff
4513
potentials/Pt_Chapman_2020.agni
Normal file
4513
potentials/Pt_Chapman_2020.agni
Normal file
File diff suppressed because it is too large
Load Diff
@ -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(¶ms[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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user