LAMMPS (2 Jun 2022) using 1 OpenMP thread(s) per MPI task # Demonstrate calculation of SNAP bispectrum descriptors on a grid # CORRECTNESS: The two atom positions coincide with two of # the gridpoints, so c_b[2][1-5] should match c_mygrid[8][4-8]. # The same is true for compute grid/local c_mygridlocal[8][4-11]. # Local arrays can not be access directly in the script, # but they are printed out to file dump.blocal variable nrep index 1 variable a index 3.316 variable ngrid index 2 units metal atom_modify map hash # 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 lattice custom $a a1 1 0 0 a2 0 1 0 a3 0 0 1 basis 0 0 0 basis 0.5 0.5 0.5 lattice custom 3.316 a1 1 0 0 a2 0 1 0 a3 0 0 1 basis 0 0 0 basis 0.5 0.5 0.5 Lattice spacing in x,y,z = 3.316 3.316 3.316 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 1 box Created orthogonal box = (0 0 0) to (3.316 3.316 3.316) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 2 atoms using lattice units in orthogonal box = (0 0 0) to (3.316 3.316 3.316) create_atoms CPU = 0.001 seconds mass 1 180.88 # define atom compute and grid compute group snapgroup type 1 2 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 ${ngrid} ${ngrid} ${ngrid} ${snap_options} compute mygrid all sna/grid grid 2 ${ngrid} ${ngrid} ${snap_options} compute mygrid all sna/grid grid 2 2 ${ngrid} ${snap_options} compute mygrid all sna/grid grid 2 2 2 ${snap_options} compute mygrid all sna/grid grid 2 2 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 compute mygridlocal all sna/grid/local grid ${ngrid} ${ngrid} ${ngrid} ${snap_options} compute mygridlocal all sna/grid/local grid 2 ${ngrid} ${ngrid} ${snap_options} compute mygridlocal all sna/grid/local grid 2 2 ${ngrid} ${snap_options} compute mygridlocal all sna/grid/local grid 2 2 2 ${snap_options} compute mygridlocal all sna/grid/local grid 2 2 2 4.67637 0.99363 2 0.5 1 rmin0 0 quadraticflag 0 bzeroflag 0 switchflag 1 # define output variable B5atom equal c_b[2][5] variable B5grid equal c_mygrid[8][8] variable rmse_global equal "sqrt( (c_mygrid[8][1] - x[2])^2 + (c_mygrid[8][2] - y[2])^2 + (c_mygrid[8][3] - z[2])^2 + (c_mygrid[8][4] - c_b[2][1])^2 + (c_mygrid[8][5] - c_b[2][2])^2 + (c_mygrid[8][6] - c_b[2][3])^2 + (c_mygrid[8][7] - c_b[2][4])^2 + (c_mygrid[8][8] - c_b[2][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 c_mygridlocal[*] dump 2 all custom 1000 dump.batom 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 = 1 1 1 2 neighbor lists, perpetual/occasional/extra = 1 1 0 (1) pair zero, perpetual attributes: half, newton on pair build: half/bin/atomonly/newton stencil: half/bin/3d bin: standard (2) compute sna/atom, occasional attributes: full, newton on pair build: full/bin/atomonly stencil: full/bin/3d bin: standard WARNING: Proc sub-domain size < neighbor skin, could lead to lost atoms (src/domain.cpp:970) Per MPI rank memory allocation (min/avg/max) = 6.123 | 6.631 | 7.139 Mbytes Step v_B5atom v_B5grid v_rmse_global 0 1.0427295 1.0427295 1.6316879e-15 Loop time of 2.57125e-06 on 4 procs for 0 steps with 2 atoms 107.0% 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.571e-06 | | |100.00 Nlocal: 0.5 ave 1 max 0 min Histogram: 2 0 0 0 0 0 0 0 0 2 Nghost: 274.5 ave 275 max 274 min Histogram: 2 0 0 0 0 0 0 0 0 2 Neighs: 16 ave 40 max 0 min Histogram: 2 0 0 0 0 0 1 0 0 1 FullNghs: 32 ave 64 max 0 min Histogram: 2 0 0 0 0 0 0 0 0 2 Total # of neighbors = 128 Ave neighs/atom = 64 Neighbor list builds = 0 Dangerous builds = 0 Total wall time: 0:00:00