Updated documentation and source
This commit is contained in:
@ -21,10 +21,14 @@ pair_coeff * * * 0.072 :pre
|
||||
|
||||
pair_style hybrid/overlay lj/cut 6.5 atm 2.5
|
||||
pair_coeff * * lj/cut 1.0 1.0
|
||||
<<<<<<< HEAD
|
||||
pair_coeff 1 1 atm 1 0.064
|
||||
pair_coeff 1 1 atm 2 0.080
|
||||
pair_coeff 1 2 atm 2 0.100
|
||||
pair_coeff 2 2 atm 2 0.125 :pre
|
||||
=======
|
||||
pair_coeff * * atm * 0.072 :pre
|
||||
>>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -33,6 +37,7 @@ potential for the energy E of a system of atoms as
|
||||
|
||||
:c,image(Eqs/pair_atm.jpg)
|
||||
|
||||
<<<<<<< HEAD
|
||||
where nu is the three-body interaction strength,
|
||||
and the distances between pairs of atoms r12, r23 and r31
|
||||
and the angles gamma1, gamma2 and gamma3
|
||||
@ -42,11 +47,18 @@ are shown at the diagram:
|
||||
|
||||
There is no \"central\" atom, the interaction is symmetric with respect
|
||||
to permutation of atom types.
|
||||
=======
|
||||
where r12, r23 and r31 are the distances between pairs of atoms,
|
||||
gamma1 is the angle ???, gamma2 is the angle ???, gamma3 is the angle
|
||||
???, and nu is the three-body interaction strength.
|
||||
A diagram of the 3 atoms might help here.
|
||||
>>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495
|
||||
|
||||
The {atm} potential is typically used in combination with a two-body
|
||||
potential using the "pair_style hybrid/overlay"_pair_hybrid.html
|
||||
command as in the example above.
|
||||
|
||||
<<<<<<< HEAD
|
||||
The potential is calculated if all three atoms are in the
|
||||
"neighbor list"_neighbor.html
|
||||
and the distances between atoms satisfy r12 r23 r31 > cutoff^3.
|
||||
@ -78,6 +90,57 @@ pair_coeff 2 1 1 nu :pre
|
||||
|
||||
Thus, to specify all ATM interactions between two atom types (eg 1 and 2)
|
||||
it is sufficient to provide four pair_coeff commands, eg:
|
||||
=======
|
||||
--------------------
|
||||
|
||||
The rest of this section needs some work to make things more clear.
|
||||
|
||||
You need to explain exactly how the cutoff is used.
|
||||
|
||||
I don't think this is true:
|
||||
The calculations are not undertaken if the distances between atoms satisfy
|
||||
r12 r23 r31 > cutoff^3.
|
||||
|
||||
If r12 > cutoff+skin, then that pair of atoms is not in
|
||||
the neighbor list, regardless of what r23 and r31 are,
|
||||
so how can it be computed?
|
||||
|
||||
What does this line mean?
|
||||
Virtual cutoff distance based on a user defined
|
||||
tolerance tol is not used.
|
||||
|
||||
You must explain exactly what the user needs to put
|
||||
in the input script to model single element and multi-element
|
||||
systems.
|
||||
|
||||
You refer to an ATM potential file, but I don't think there is
|
||||
such a thing. There is no code in pair_atm.cpp that reads
|
||||
a file. Isn't it all pair_coeff commands? In LAMMPS lingo,
|
||||
potential files are the files in the potentials dir.
|
||||
There is no such thing for ATM, right?
|
||||
|
||||
What is the geometry of i,j,k interactions - you don't explain it.
|
||||
Which one is the central atom?
|
||||
|
||||
You say all the K values for a particular I,J must be specified.
|
||||
I don't see where the code checks for this.
|
||||
|
||||
This is the way to word the explation of the per-pair values required:
|
||||
|
||||
The following coefficients must be defined for each pair of atoms
|
||||
types via the "pair_coeff"_pair_coeff.html command as in the examples
|
||||
above, or in the restart files read by the
|
||||
"read_restart"_read_restart.html commands:
|
||||
|
||||
?? explain what K is and what are the allowed values
|
||||
nu (energy/distance^9 units) :ul
|
||||
|
||||
Again: what file are you talking about?
|
||||
The Axilrod-Teller-Muto potential file must contain entries for all the
|
||||
elements listed in the pair_coeff command. It can also contain
|
||||
entries for additional elements not being used in a particular
|
||||
simulation; LAMMPS ignores those entries.
|
||||
>>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495
|
||||
|
||||
pair_coeff 1 1 1 nu1
|
||||
pair_coeff 1 1 2 nu2
|
||||
@ -121,6 +184,19 @@ no requirement to supply the values of nu for all triplets.
|
||||
|
||||
--------------------
|
||||
|
||||
I think a better syntax for the pair coeff command might be this:
|
||||
|
||||
pair_coeff I J v1 v2 ... vN
|
||||
|
||||
when 1,2,...N are the number of atom types defined.
|
||||
Then there be one pair_coeff command for each type pair,
|
||||
the same syntax as all other potentials in LAMMPS use.
|
||||
|
||||
Note that you refer to "elements", but the pair coeff command
|
||||
knows nothing about elements. Only atom types. There
|
||||
could be 10 atom types that all map to the same chemical
|
||||
element.
|
||||
|
||||
:line
|
||||
|
||||
[Mixing, shift, table, tail correction, restart, rRESPA info]:
|
||||
@ -155,4 +231,8 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
:link(Axilrod)
|
||||
[(Axilrod)]
|
||||
Axilrod and Teller, J Chem Phys, 11, 299 (1943);
|
||||
<<<<<<< HEAD
|
||||
Muto, Nippon Sugaku-Buturigakkwaishi 17, 629 (1943).
|
||||
=======
|
||||
Muto, Nippon, Sugaku, Butsuri, Gakkwaishi 17, 629 (1943).
|
||||
>>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495
|
||||
|
||||
@ -59,6 +59,7 @@ sub-directories:
|
||||
|
||||
accelerate: use of all the various accelerator packages
|
||||
airebo: polyethylene with AIREBO potential
|
||||
atm: Axilrod-Teller-Muto potential
|
||||
balance: dynamic load balancing, 2d system
|
||||
body: body particles, 2d system
|
||||
cmap: CMAP 5-body contributions to CHARMM force field
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
# Axilrod-Teller-Muto potential example
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
@ -24,6 +26,6 @@ velocity all create 1.033 12345678 loop geom
|
||||
fix 1 all nvt temp 1.033 1.033 0.05
|
||||
|
||||
timestep 0.002
|
||||
thermo 1
|
||||
thermo 5
|
||||
|
||||
run 50
|
||||
run 25
|
||||
100
examples/atm/log.9Jul18.atm.g++.1
Normal file
100
examples/atm/log.9Jul18.atm.g++.1
Normal file
@ -0,0 +1,100 @@
|
||||
LAMMPS (29 Jun 2018)
|
||||
# Axilrod-Teller-Muto potential example
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 10*$x
|
||||
variable xx equal 10*1
|
||||
variable yy equal 10*$y
|
||||
variable yy equal 10*1
|
||||
variable zz equal 10*$z
|
||||
variable zz equal 10*1
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 0.65
|
||||
Lattice spacing in x,y,z = 1.83252 1.83252 1.83252
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
region box block 0 10 0 ${yy} 0 ${zz}
|
||||
region box block 0 10 0 10 0 ${zz}
|
||||
region box block 0 10 0 10 0 10
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (18.3252 18.3252 18.3252)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 4000 atoms
|
||||
Time spent = 0.00120211 secs
|
||||
|
||||
pair_style hybrid/overlay lj/cut 4.5 atm 2.5
|
||||
pair_coeff * * lj/cut 1.0 1.0
|
||||
pair_coeff * * atm * 0.072
|
||||
|
||||
mass * 1.0
|
||||
velocity all create 1.033 12345678 loop geom
|
||||
|
||||
fix 1 all nvt temp 1.033 1.033 0.05
|
||||
|
||||
timestep 0.002
|
||||
thermo 5
|
||||
|
||||
run 25
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 4.8
|
||||
ghost atom cutoff = 4.8
|
||||
binsize = 2.4, bins = 8 8 8
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair lj/cut, perpetual, half/full from (2)
|
||||
attributes: half, newton on
|
||||
pair build: halffull/newton
|
||||
stencil: none
|
||||
bin: none
|
||||
(2) pair atm, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 11.47 | 11.47 | 11.47 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1.033 -4.5929584 0 -3.0438458 -3.6506231
|
||||
5 1.0335109 -4.5924034 0 -3.0425247 -3.6376817
|
||||
10 1.0347484 -4.5941952 0 -3.0424606 -3.6032204
|
||||
15 1.0357954 -4.5962409 0 -3.0429363 -3.5421887
|
||||
20 1.0350606 -4.595891 0 -3.0436883 -3.4478779
|
||||
25 1.0301813 -4.5896962 0 -3.0448107 -3.3111695
|
||||
Loop time of 34.5602 on 1 procs for 25 steps with 4000 atoms
|
||||
|
||||
Performance: 124.999 tau/day, 0.723 timesteps/s
|
||||
100.0% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 34.556 | 34.556 | 34.556 | 0.0 | 99.99
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.001323 | 0.001323 | 0.001323 | 0.0 | 0.00
|
||||
Output | 0.00018287 | 0.00018287 | 0.00018287 | 0.0 | 0.00
|
||||
Modify | 0.0016184 | 0.0016184 | 0.0016184 | 0.0 | 0.00
|
||||
Other | | 0.0006311 | | | 0.00
|
||||
|
||||
Nlocal: 4000 ave 4000 max 4000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 10895 ave 10895 max 10895 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 640000 ave 640000 max 640000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 1.28e+06 ave 1.28e+06 max 1.28e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 1280000
|
||||
Ave neighs/atom = 320
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
|
||||
Please see the log.cite file for references relevant to this simulation
|
||||
|
||||
Total wall time: 0:00:36
|
||||
100
examples/atm/log.9Jul18.atm.g++.4
Normal file
100
examples/atm/log.9Jul18.atm.g++.4
Normal file
@ -0,0 +1,100 @@
|
||||
LAMMPS (29 Jun 2018)
|
||||
# Axilrod-Teller-Muto potential example
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 10*$x
|
||||
variable xx equal 10*1
|
||||
variable yy equal 10*$y
|
||||
variable yy equal 10*1
|
||||
variable zz equal 10*$z
|
||||
variable zz equal 10*1
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 0.65
|
||||
Lattice spacing in x,y,z = 1.83252 1.83252 1.83252
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
region box block 0 10 0 ${yy} 0 ${zz}
|
||||
region box block 0 10 0 10 0 ${zz}
|
||||
region box block 0 10 0 10 0 10
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (18.3252 18.3252 18.3252)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 4000 atoms
|
||||
Time spent = 0.000735998 secs
|
||||
|
||||
pair_style hybrid/overlay lj/cut 4.5 atm 2.5
|
||||
pair_coeff * * lj/cut 1.0 1.0
|
||||
pair_coeff * * atm * 0.072
|
||||
|
||||
mass * 1.0
|
||||
velocity all create 1.033 12345678 loop geom
|
||||
|
||||
fix 1 all nvt temp 1.033 1.033 0.05
|
||||
|
||||
timestep 0.002
|
||||
thermo 5
|
||||
|
||||
run 25
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 4.8
|
||||
ghost atom cutoff = 4.8
|
||||
binsize = 2.4, bins = 8 8 8
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair lj/cut, perpetual, half/full from (2)
|
||||
attributes: half, newton on
|
||||
pair build: halffull/newton
|
||||
stencil: none
|
||||
bin: none
|
||||
(2) pair atm, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 5.532 | 5.532 | 5.532 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1.033 -4.5929584 0 -3.0438458 -3.6506231
|
||||
5 1.0335109 -4.5924034 0 -3.0425247 -3.6376817
|
||||
10 1.0347484 -4.5941952 0 -3.0424606 -3.6032204
|
||||
15 1.0357954 -4.5962409 0 -3.0429363 -3.5421887
|
||||
20 1.0350606 -4.595891 0 -3.0436883 -3.4478779
|
||||
25 1.0301813 -4.5896962 0 -3.0448107 -3.3111695
|
||||
Loop time of 10.061 on 4 procs for 25 steps with 4000 atoms
|
||||
|
||||
Performance: 429.382 tau/day, 2.485 timesteps/s
|
||||
100.0% CPU use with 4 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 9.8393 | 9.9439 | 10.008 | 2.0 | 98.84
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.052154 | 0.11613 | 0.22077 | 18.7 | 1.15
|
||||
Output | 7.2241e-05 | 8.2552e-05 | 0.00011158 | 0.0 | 0.00
|
||||
Modify | 0.00053763 | 0.00055265 | 0.00056624 | 0.0 | 0.01
|
||||
Other | | 0.0002971 | | | 0.00
|
||||
|
||||
Nlocal: 1000 ave 1000 max 1000 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 5835 ave 5835 max 5835 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 160000 ave 160000 max 160000 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 320000 ave 320000 max 320000 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 1280000
|
||||
Ave neighs/atom = 320
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
|
||||
Please see the log.cite file for references relevant to this simulation
|
||||
|
||||
Total wall time: 0:00:10
|
||||
@ -49,8 +49,13 @@ PairATM::PairATM(LAMMPS *lmp) : Pair(lmp)
|
||||
if (lmp->citeme) lmp->citeme->add(cite_atm_package);
|
||||
|
||||
single_enable = 0;
|
||||
<<<<<<< HEAD
|
||||
restartinfo = 1;
|
||||
one_coeff = 0;
|
||||
=======
|
||||
//restartinfo = 1; // it does save restart info, correct?
|
||||
//one_coeff = 0; // it does not only use * *, correct?
|
||||
>>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495
|
||||
manybody_flag = 1;
|
||||
}
|
||||
|
||||
@ -129,9 +134,13 @@ void PairATM::compute(int eflag, int vflag)
|
||||
r6 = rij2*rik2*rjk2;
|
||||
if (r6 > cut_sixth) continue;
|
||||
|
||||
<<<<<<< HEAD
|
||||
nu_local = nu[type[i]][type[j]][type[k]];
|
||||
if (nu_local == 0.0) continue;
|
||||
interaction_ddd(nu_local,
|
||||
=======
|
||||
interaction_ddd(nu[type[i]][type[j]][type[k]],
|
||||
>>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495
|
||||
r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl);
|
||||
|
||||
f[i][0] -= fj[0] + fk[0];
|
||||
|
||||
Reference in New Issue
Block a user