Commit b461967e authored by Sergey Lishchuk's avatar Sergey Lishchuk
Browse files

Updated documentation and source

parents bf5fbc92 75ec0a6a
Loading
Loading
Loading
Loading
+80 −0
Changes for doc/src/pair_atm.txt: 80 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -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
+1 −0
Changes for examples/README: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -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
+4 −2
Changes for examples/atm/in.atm: 4 added lines, 2 removed lines.
Original line number Diff line number Diff line
# 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 −0
Changes for examples/atm/log.9Jul18.atm.g++.1: 100 added lines, 0 removed lines.
Original line number Diff line number Diff line
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 −0
Changes for examples/atm/log.9Jul18.atm.g++.4: 100 added lines, 0 removed lines.
Original line number Diff line number Diff line
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
Loading