forked from lijiext/lammps
201 lines
7.9 KiB
Groff
201 lines
7.9 KiB
Groff
|
LAMMPS (28 Jul 2021)
|
||
|
# Demonstrate calculation of SNAP bispectrum
|
||
|
# descriptors on a grid for triclinic cell
|
||
|
|
||
|
# This triclinic cell has 6 times the volume of the single
|
||
|
# unit cell used by in.grid
|
||
|
# and contains 12 atoms. It is a 3x2x1 supercell
|
||
|
# with each unit cell containing 2 atoms and the
|
||
|
# reduced lattice vectors are [1 0 0], [1 1 0], and [1 1 1].
|
||
|
# The grid is listed in x-fastest order
|
||
|
|
||
|
# CORRECTNESS: The atom positions coincide with certain
|
||
|
# gridpoints, so c_b[1][1-5] should match c_mygrid[1][4-8]
|
||
|
# and c_b[7][1-5] should match c_mygrid[13][4-8].
|
||
|
# Local arrays can not be access directly in the script,
|
||
|
# but they are printed out to file dump.blocal.tri
|
||
|
|
||
|
# Initialize simulation
|
||
|
|
||
|
variable nrep index 1
|
||
|
variable a index 3.316
|
||
|
variable ngrid index 2
|
||
|
|
||
|
variable nrepx equal 3*${nrep}
|
||
|
variable nrepx equal 3*1
|
||
|
variable nrepy equal 2*${nrep}
|
||
|
variable nrepy equal 2*1
|
||
|
variable nrepz equal 1*${nrep}
|
||
|
variable nrepz equal 1*1
|
||
|
|
||
|
variable ngridx equal 3*${ngrid}
|
||
|
variable ngridx equal 3*2
|
||
|
variable ngridy equal 2*${ngrid}
|
||
|
variable ngridy equal 2*2
|
||
|
variable ngridz equal 1*${ngrid}
|
||
|
variable ngridz equal 1*2
|
||
|
|
||
|
units metal
|
||
|
atom_modify map hash sort 0 0
|
||
|
|
||
|
# generate the box and atom positions using a BCC lattice
|
||
|
|
||
|
variable nx equal ${nrepx}
|
||
|
variable nx equal 3
|
||
|
variable ny equal ${nrepy}
|
||
|
variable ny equal 2
|
||
|
variable nz equal ${nrepz}
|
||
|
variable nz equal 1
|
||
|
|
||
|
boundary p p p
|
||
|
|
||
|
lattice custom $a a1 1 0 0 a2 1 1 0 a3 1 1 1 basis 0 0 0 basis 0.0 0.0 0.5 spacing 1 1 1
|
||
|
lattice custom 3.316 a1 1 0 0 a2 1 1 0 a3 1 1 1 basis 0 0 0 basis 0.0 0.0 0.5 spacing 1 1 1
|
||
|
Lattice spacing in x,y,z = 3.3160000 3.3160000 3.3160000
|
||
|
|
||
|
box tilt large
|
||
|
region box prism 0 ${nx} 0 ${ny} 0 ${nz} ${ny} ${nz} ${nz}
|
||
|
region box prism 0 3 0 ${ny} 0 ${nz} ${ny} ${nz} ${nz}
|
||
|
region box prism 0 3 0 2 0 ${nz} ${ny} ${nz} ${nz}
|
||
|
region box prism 0 3 0 2 0 1 ${ny} ${nz} ${nz}
|
||
|
region box prism 0 3 0 2 0 1 2 ${nz} ${nz}
|
||
|
region box prism 0 3 0 2 0 1 2 1 ${nz}
|
||
|
region box prism 0 3 0 2 0 1 2 1 1
|
||
|
create_box 1 box
|
||
|
Created triclinic box = (0.0000000 0.0000000 0.0000000) to (9.9480000 6.6320000 3.3160000) with tilt (6.6320000 3.3160000 3.3160000)
|
||
|
WARNING: Triclinic box skew is large (src/domain.cpp:219)
|
||
|
1 by 1 by 1 MPI processor grid
|
||
|
create_atoms 1 box
|
||
|
Created 12 atoms
|
||
|
using lattice units in triclinic box = (0.0000000 0.0000000 0.0000000) to (9.9480000 6.6320000 3.3160000) with tilt (6.6320000 3.3160000 3.3160000)
|
||
|
create_atoms CPU = 0.001 seconds
|
||
|
|
||
|
mass 1 180.88
|
||
|
|
||
|
# define atom compute and grid compute
|
||
|
|
||
|
group snapgroup type 1
|
||
|
12 atoms in group snapgroup
|
||
|
variable twojmax equal 2
|
||
|
variable rcutfac equal 4.67637
|
||
|
variable rfac0 equal 0.99363
|
||
|
variable rmin0 equal 0
|
||
|
variable wj equal 1
|
||
|
variable radelem equal 0.5
|
||
|
variable bzero equal 0
|
||
|
variable quadratic equal 0
|
||
|
variable switch equal 1
|
||
|
|
||
|
variable snap_options string "${rcutfac} ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}"
|
||
|
4.67637 ${rfac0} ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
||
|
4.67637 0.99363 ${twojmax} ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
||
|
4.67637 0.99363 2 ${radelem} ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
||
|
4.67637 0.99363 2 0.5 ${wj} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
||
|
4.67637 0.99363 2 0.5 1 rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
||
|
4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
||
|
4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag ${bzero} switchflag ${switch}
|
||
|
4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag ${switch}
|
||
|
4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1
|
||
|
|
||
|
# build zero potential to satisfy compute sna/atom
|
||
|
|
||
|
pair_style zero ${rcutfac}
|
||
|
pair_style zero 4.67637
|
||
|
pair_coeff * *
|
||
|
|
||
|
# define atom and grid computes
|
||
|
|
||
|
compute b all sna/atom ${snap_options}
|
||
|
compute b all sna/atom 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1
|
||
|
compute mygrid all sna/grid grid ${ngridx} ${ngridy} ${ngridz} ${snap_options}
|
||
|
compute mygrid all sna/grid grid 6 ${ngridy} ${ngridz} ${snap_options}
|
||
|
compute mygrid all sna/grid grid 6 4 ${ngridz} ${snap_options}
|
||
|
compute mygrid all sna/grid grid 6 4 2 ${snap_options}
|
||
|
compute mygrid all sna/grid grid 6 4 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1
|
||
|
compute mygridlocal all sna/grid/local grid ${ngridx} ${ngridy} ${ngridz} ${snap_options}
|
||
|
compute mygridlocal all sna/grid/local grid 6 ${ngridy} ${ngridz} ${snap_options}
|
||
|
compute mygridlocal all sna/grid/local grid 6 4 ${ngridz} ${snap_options}
|
||
|
compute mygridlocal all sna/grid/local grid 6 4 2 ${snap_options}
|
||
|
compute mygridlocal all sna/grid/local grid 6 4 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1
|
||
|
|
||
|
# define output
|
||
|
|
||
|
variable B5atom equal c_b[7][5]
|
||
|
variable B5grid equal c_mygrid[13][8]
|
||
|
|
||
|
# do not compare x,y,z because assignment of ids
|
||
|
# to atoms is not unnique for different processor grids
|
||
|
|
||
|
variable rmse_global equal "sqrt( (c_mygrid[13][4] - c_b[7][1])^2 + (c_mygrid[13][5] - c_b[7][2])^2 + (c_mygrid[13][6] - c_b[7][3])^2 + (c_mygrid[13][7] - c_b[7][4])^2 + (c_mygrid[13][8] - c_b[7][5])^2 )"
|
||
|
|
||
|
thermo_style custom step v_B5atom v_B5grid v_rmse_global
|
||
|
|
||
|
# this is the only way to view the local grid
|
||
|
|
||
|
dump 1 all local 1000 dump.blocal.tri c_mygridlocal[*]
|
||
|
dump 2 all custom 1000 dump.batom.tri id x y z c_b[*]
|
||
|
|
||
|
# run
|
||
|
|
||
|
run 0
|
||
|
WARNING: No fixes defined, atoms won't move (src/verlet.cpp:55)
|
||
|
Neighbor list info ...
|
||
|
update every 1 steps, delay 10 steps, check yes
|
||
|
max neighbors/atom: 2000, page size: 100000
|
||
|
master list distance cutoff = 6.67637
|
||
|
ghost atom cutoff = 6.67637
|
||
|
binsize = 3.338185, bins = 6 3 1
|
||
|
4 neighbor lists, perpetual/occasional/extra = 1 3 0
|
||
|
(1) pair zero, perpetual
|
||
|
attributes: half, newton on
|
||
|
pair build: half/bin/newton/tri
|
||
|
stencil: half/bin/3d/tri
|
||
|
bin: standard
|
||
|
(2) compute sna/atom, occasional
|
||
|
attributes: full, newton on
|
||
|
pair build: full/bin/atomonly
|
||
|
stencil: full/bin/3d
|
||
|
bin: standard
|
||
|
(3) compute sna/grid, occasional
|
||
|
attributes: full, newton on
|
||
|
pair build: full/bin/atomonly
|
||
|
stencil: full/bin/3d
|
||
|
bin: standard
|
||
|
(4) compute sna/grid/local, occasional
|
||
|
attributes: full, newton on
|
||
|
pair build: full/bin/atomonly
|
||
|
stencil: full/bin/3d
|
||
|
bin: standard
|
||
|
Per MPI rank memory allocation (min/avg/max) = 8.435 | 8.435 | 8.435 Mbytes
|
||
|
Step v_B5atom v_B5grid v_rmse_global
|
||
|
0 1.0427295 1.0427295 7.2262471e-14
|
||
|
Loop time of 1e-06 on 1 procs for 0 steps with 12 atoms
|
||
|
|
||
|
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 | 0 | 0 | 0 | 0.0 | 0.00
|
||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||
|
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||
|
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||
|
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||
|
Other | | 1e-06 | | |100.00
|
||
|
|
||
|
Nlocal: 12.0000 ave 12 max 12 min
|
||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||
|
Nghost: 604.000 ave 604 max 604 min
|
||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||
|
Neighs: 384.000 ave 384 max 384 min
|
||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||
|
FullNghs: 768.000 ave 768 max 768 min
|
||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||
|
|
||
|
Total # of neighbors = 768
|
||
|
Ave neighs/atom = 64.000000
|
||
|
Neighbor list builds = 0
|
||
|
Dangerous builds = 0
|
||
|
|
||
|
Total wall time: 0:00:00
|