forked from lijiext/lammps
197 lines
7.2 KiB
Groff
197 lines
7.2 KiB
Groff
LAMMPS (15 Jun 2020)
|
|
# Demonstrate bispectrum computes
|
|
|
|
# initialize simulation
|
|
|
|
variable nsteps index 0
|
|
variable nrep equal 1
|
|
variable a equal 2.0
|
|
units metal
|
|
|
|
# generate the box and atom positions using a BCC lattice
|
|
|
|
variable nx equal ${nrep}
|
|
variable nx equal 1
|
|
variable ny equal ${nrep}
|
|
variable ny equal 1
|
|
variable nz equal ${nrep}
|
|
variable nz equal 1
|
|
|
|
boundary p p p
|
|
|
|
atom_modify map hash
|
|
lattice bcc $a
|
|
lattice bcc 2
|
|
Lattice spacing in x,y,z = 2 2 2
|
|
region box block 0 ${nx} 0 ${ny} 0 ${nz}
|
|
region box block 0 1 0 ${ny} 0 ${nz}
|
|
region box block 0 1 0 1 0 ${nz}
|
|
region box block 0 1 0 1 0 1
|
|
create_box 2 box
|
|
Created orthogonal box = (0.0 0.0 0.0) to (2.0 2.0 2.0)
|
|
1 by 1 by 1 MPI processor grid
|
|
create_atoms 2 box
|
|
Created 2 atoms
|
|
create_atoms CPU = 0.001 seconds
|
|
|
|
mass * 180.88
|
|
|
|
displace_atoms all random 0.1 0.1 0.1 123456
|
|
|
|
# choose SNA parameters
|
|
|
|
variable twojmax equal 2
|
|
variable rcutfac equal 1.0
|
|
variable rfac0 equal 0.99363
|
|
variable rmin0 equal 0
|
|
variable radelem1 equal 2.3
|
|
variable radelem2 equal 2.0
|
|
variable wj1 equal 1.0
|
|
variable wj2 equal 0.96
|
|
variable quadratic equal 1
|
|
variable bzero equal 0
|
|
variable switch equal 0
|
|
variable snap_options string "${rcutfac} ${rfac0} ${twojmax} ${radelem1} ${radelem2} ${wj1} ${wj2} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}"
|
|
1 ${rfac0} ${twojmax} ${radelem1} ${radelem2} ${wj1} ${wj2} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
|
1 0.99363 ${twojmax} ${radelem1} ${radelem2} ${wj1} ${wj2} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
|
1 0.99363 2 ${radelem1} ${radelem2} ${wj1} ${wj2} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
|
1 0.99363 2 2.3 ${radelem2} ${wj1} ${wj2} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
|
1 0.99363 2 2.3 2 ${wj1} ${wj2} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
|
1 0.99363 2 2.3 2 1 ${wj2} rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
|
1 0.99363 2 2.3 2 1 0.96 rmin0 ${rmin0} quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
|
1 0.99363 2 2.3 2 1 0.96 rmin0 0 quadraticflag ${quadratic} bzeroflag ${bzero} switchflag ${switch}
|
|
1 0.99363 2 2.3 2 1 0.96 rmin0 0 quadraticflag 1 bzeroflag ${bzero} switchflag ${switch}
|
|
1 0.99363 2 2.3 2 1 0.96 rmin0 0 quadraticflag 1 bzeroflag 0 switchflag ${switch}
|
|
1 0.99363 2 2.3 2 1 0.96 rmin0 0 quadraticflag 1 bzeroflag 0 switchflag 0
|
|
|
|
# set up dummy potential to satisfy cutoff
|
|
|
|
pair_style zero ${rcutfac}
|
|
pair_style zero 1
|
|
pair_coeff * *
|
|
|
|
# set up reference potential
|
|
|
|
variable zblcutinner equal 4
|
|
variable zblcutouter equal 4.8
|
|
variable zblz equal 73
|
|
pair_style zbl ${zblcutinner} ${zblcutouter}
|
|
pair_style zbl 4 ${zblcutouter}
|
|
pair_style zbl 4 4.8
|
|
pair_coeff * * ${zblz} ${zblz}
|
|
pair_coeff * * 73 ${zblz}
|
|
pair_coeff * * 73 73
|
|
|
|
# set up per-atom computes
|
|
|
|
compute b all sna/atom ${snap_options}
|
|
compute b all sna/atom 1 0.99363 2 2.3 2 1 0.96 rmin0 0 quadraticflag 1 bzeroflag 0 switchflag 0
|
|
compute vb all snav/atom ${snap_options}
|
|
compute vb all snav/atom 1 0.99363 2 2.3 2 1 0.96 rmin0 0 quadraticflag 1 bzeroflag 0 switchflag 0
|
|
compute db all snad/atom ${snap_options}
|
|
compute db all snad/atom 1 0.99363 2 2.3 2 1 0.96 rmin0 0 quadraticflag 1 bzeroflag 0 switchflag 0
|
|
|
|
# perform sums over atoms
|
|
|
|
group snapgroup1 type 1
|
|
0 atoms in group snapgroup1
|
|
group snapgroup2 type 2
|
|
2 atoms in group snapgroup2
|
|
compute bsum1 snapgroup1 reduce sum c_b[*]
|
|
compute bsum2 snapgroup2 reduce sum c_b[*]
|
|
# fix bsum1 all ave/time 1 1 1 c_bsum1 file bsum1.dat mode vector
|
|
# fix bsum2 all ave/time 1 1 1 c_bsum2 file bsum2.dat mode vector
|
|
compute vbsum all reduce sum c_vb[*]
|
|
# fix vbsum all ave/time 1 1 1 c_vbsum file vbsum.dat mode vector
|
|
variable db_2_100 equal c_db[2][100]
|
|
|
|
# set up compute snap generating global array
|
|
|
|
compute snap all snap ${snap_options}
|
|
compute snap all snap 1 0.99363 2 2.3 2 1 0.96 rmin0 0 quadraticflag 1 bzeroflag 0 switchflag 0
|
|
fix snap all ave/time 1 1 1 c_snap[*] file compute.snap.dat mode vector
|
|
|
|
thermo 100
|
|
|
|
# test output: 1: total potential energy
|
|
# 2: xy component of stress tensor
|
|
# 3: Sum(0.5*(B_{222}^i)^2, all i of type 2)
|
|
# 4: xz component of Sum(Sum(r_j*(0.5*(dB_{222}^i)^2/dR[j]), all i of type 2), all j)
|
|
# 5: y component of -Sum(d(0.5*(B_{222}^i)^2/dR[2]), all i of type 2)
|
|
#
|
|
# followed by 5 counterparts from compute snap
|
|
|
|
thermo_style custom pe pxy c_bsum2[20] c_vbsum[220] v_db_2_100 c_snap[1][41] c_snap[13][41] c_snap[1][40] c_snap[12][40] c_snap[6][40]
|
|
thermo_modify norm no
|
|
|
|
# dump mydump_db all custom 1000 dump_db id c_db[*]
|
|
# dump_modify mydump_db sort id
|
|
|
|
# Run MD
|
|
|
|
run ${nsteps}
|
|
run 0
|
|
Neighbor list info ...
|
|
update every 1 steps, delay 10 steps, check yes
|
|
max neighbors/atom: 2000, page size: 100000
|
|
master list distance cutoff = 6.8
|
|
ghost atom cutoff = 6.8
|
|
binsize = 3.4, bins = 1 1 1
|
|
5 neighbor lists, perpetual/occasional/extra = 1 4 0
|
|
(1) pair zbl, perpetual
|
|
attributes: half, newton on
|
|
pair build: half/bin/atomonly/newton
|
|
stencil: half/bin/3d/newton
|
|
bin: standard
|
|
(2) compute sna/atom, occasional
|
|
attributes: full, newton on
|
|
pair build: full/bin/atomonly
|
|
stencil: full/bin/3d
|
|
bin: standard
|
|
(3) compute snav/atom, occasional
|
|
attributes: full, newton on
|
|
pair build: full/bin/atomonly
|
|
stencil: full/bin/3d
|
|
bin: standard
|
|
(4) compute snad/atom, occasional
|
|
attributes: full, newton on
|
|
pair build: full/bin/atomonly
|
|
stencil: full/bin/3d
|
|
bin: standard
|
|
(5) compute snap, occasional
|
|
attributes: full, newton on
|
|
pair build: full/bin/atomonly
|
|
stencil: full/bin/3d
|
|
bin: standard
|
|
Per MPI rank memory allocation (min/avg/max) = 21.78 | 21.78 | 21.78 Mbytes
|
|
PotEng Pxy c_bsum2[20] c_vbsum[220] v_db_2_100 c_snap[1][41] c_snap[13][41] c_snap[1][40] c_snap[12][40] c_snap[6][40]
|
|
322.86952 1505558.1 4.2492771e+08 -4952473 28484035 322.86952 1505558.1 4.2492771e+08 -4952473 28484035
|
|
Loop time of 1e-06 on 1 procs for 0 steps with 2 atoms
|
|
|
|
200.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: 2 ave 2 max 2 min
|
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
|
Nghost: 853 ave 853 max 853 min
|
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
|
Neighs: 330 ave 330 max 330 min
|
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
|
FullNghs: 660 ave 660 max 660 min
|
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
|
|
|
Total # of neighbors = 660
|
|
Ave neighs/atom = 330
|
|
Neighbor list builds = 0
|
|
Dangerous builds = 0
|
|
Total wall time: 0:00:00
|