forked from lijiext/lammps
193 lines
7.7 KiB
Groff
193 lines
7.7 KiB
Groff
LAMMPS (2 Jun 2022)
|
|
using 1 OpenMP thread(s) per MPI task
|
|
# 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.316 3.316 3.316
|
|
|
|
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 0 0) to (9.948 6.632 3.316) with tilt (6.632 3.316 3.316)
|
|
WARNING: Triclinic box skew is large (src/domain.cpp:224)
|
|
2 by 2 by 1 MPI processor grid
|
|
create_atoms 1 box
|
|
Created 12 atoms
|
|
using lattice units in triclinic box = (0 0 0) to (9.948 6.632 3.316) with tilt (6.632 3.316 3.316)
|
|
create_atoms CPU = 0.000 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 with time integration, atoms won't move (src/verlet.cpp:60)
|
|
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
|
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
|
|
2 neighbor lists, perpetual/occasional/extra = 1 1 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
|
|
Per MPI rank memory allocation (min/avg/max) = 7.15 | 7.15 | 7.15 Mbytes
|
|
Step v_B5atom v_B5grid v_rmse_global
|
|
0 1.0427295 1.0427295 1.9367585e-14
|
|
Loop time of 2.65825e-06 on 4 procs for 0 steps with 12 atoms
|
|
|
|
84.6% 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 | 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 | | 2.658e-06 | | |100.00
|
|
|
|
Nlocal: 3 ave 4 max 2 min
|
|
Histogram: 2 0 0 0 0 0 0 0 0 2
|
|
Nghost: 459 ave 460 max 458 min
|
|
Histogram: 2 0 0 0 0 0 0 0 0 2
|
|
Neighs: 96 ave 128 max 64 min
|
|
Histogram: 2 0 0 0 0 0 0 0 0 2
|
|
FullNghs: 192 ave 256 max 128 min
|
|
Histogram: 2 0 0 0 0 0 0 0 0 2
|
|
|
|
Total # of neighbors = 768
|
|
Ave neighs/atom = 64
|
|
Neighbor list builds = 0
|
|
Dangerous builds = 0
|
|
|
|
Total wall time: 0:00:00
|