add new grid-based examples

This commit is contained in:
Steve Plimpton 2022-12-01 15:51:17 -07:00
parent 7ce4b2eb68
commit 1ba9ff7817
18 changed files with 32938 additions and 36 deletions

View File

@ -78,6 +78,7 @@ flow: Couette and Poiseuille flow in a 2d channel
friction: frictional contact of spherical asperities between 2d surfaces
gjf: use of fix langevin Gronbech-Jensen/Farago option
granregion: use of fix wall/region/gran as boundary on granular particles
grid use of commands which overlay grids on the simulation domain
hugoniostat: Hugoniostat shock dynamics
hyper: global and local hyperdynamics of diffusion on Pt surface
indent: spherical indenter into a 2d solid

23
examples/grid/README Normal file
View File

@ -0,0 +1,23 @@
These input scripts illustrate the use of several commands that
overlay grids on the simulation domain.
fix ave/grid
compute property/grid
dump grid
dump grid/vtk
The in.grid.2d and in.grid.3d scripts model simple Lennard Jones
liquids. The in.sph script models SPH water flowing over a dam. All
the scripts use dynamic load balancing to illustrate that the grid
cells can be dynamically partitioned across processors similar to how
particles are.
To produce output dump files and image files, you will need to
uncomment the various "dump" commands that produce them. The images
show processor subdomains as well as the background grid, colored by
particle counts in each grid cell.

31424
examples/grid/data.sph Normal file

File diff suppressed because it is too large Load Diff

52
examples/grid/in.grid.2d Normal file
View File

@ -0,0 +1,52 @@
# 2d Lennard-Jones melt
units lj
atom_style atomic
dimension 2
lattice sq 0.5
region box block 0 50 0 50 -0.5 0.5
create_box 1 box
create_atoms 1 box
mass 1 1.0
velocity all create 1.44 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
fix 1 all nve
fix 2 all enforce2d
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 10 10 100 10 10 1 vx vy
# dump grid
compute ave all property/grid 10 10 1 id ix iy
#dump ave all grid 100 tmp.dump.2d &
# c_ave:grid:data[*] f_ave:grid:count f_ave:grid:data[*]
#dump_modify ave sort 1
#dump vtk1 all grid/vtk 100 tmp.dump1.2d.*.vtr f_ave:grid:count
#dump vtk2 all grid/vtk 100 tmp.dump2.2d.*.vtr f_ave:grid:data[2]
#dump 10 all image 100 tmp.image.*.2d.png type type &
# zoom 1.6 grid f_ave:grid:count adiam 0.6 shiny 0.0 &
# subbox yes 0.01
# run
thermo 100
run 500

50
examples/grid/in.grid.3d Normal file
View File

@ -0,0 +1,50 @@
# 3d Lennard-Jones melt
units lj
atom_style atomic
lattice fcc 0.8442
region box block 0 10 0 10 0 10
create_box 1 box
create_atoms 1 box
mass 1 1.0
velocity all create 1.44 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
fix 1 all nve
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 10 10 100 5 5 5 vx vy vz
# dump grid
compute ave all property/grid 5 5 5 id ix iy
#dump ave all grid 100 tmp.dump.3d &
# c_ave:grid:data[*] f_ave:grid:count f_ave:grid:data[*]
#dump_modify ave sort 1
#dump vtk1 all grid/vtk 100 tmp.dump1.3d.*.vtr f_ave:grid:count
#dump vtk2 all grid/vtk 100 tmp.dump2.3d.*.vtr f_ave:grid:data[*]
#dump 10 all image 100 tmp.image.*.3d.png type type &
# grid f_ave:grid:count view 60 -30 shiny 0.0 &
# subbox yes 0.01
# run
thermo 100
run 500

112
examples/grid/in.sph Normal file
View File

@ -0,0 +1,112 @@
# SPH water over dam
atom_style sph
dimension 2
newton on
boundary s s p
units lj
read_data data.sph
# upper limit of timestep based on CFL-like criterion
# roughly estimate number of timesteps needed for 7.5 seconds
variable h equal 0.03
variable c equal 10.0 # soundspeed for Tait's EOS
variable dt equal 0.1*${h}/${c}
variable nrun equal 15.0/${dt}
# assign group name "bc" to boundary particles (type 2)
# assign group name "water" to water particles (type 1)
group bc type 2
group water type 1
# use hybrid pairstyle which does density summation
# with cutoff ${h} every timestep (1)
# use target density of 1000, soundspeed ${c} for Tait's EOS
pair_style hybrid/overlay sph/rhosum 1 sph/taitwater
pair_coeff * * sph/taitwater 1000.0 ${c} 1.0 ${h}
pair_coeff 1 1 sph/rhosum ${h}
# add gravity. This fix also computes potential energy of mass in gravity field
fix gfix water gravity -9.81 vector 0 1 0
fix 2d_fix all enforce2d
compute rho_peratom all sph/rho/atom
compute e_peratom all sph/e/atom
compute esph all reduce sum c_e_peratom
compute ke all ke
variable etot equal c_esph+c_ke+f_gfix
compute ke_peratom all ke/atom
# adjust nevery | min. allowed dt | max. allowed dt |
# max. travel distance per dt
# ${dt} ~= CFL criterion 0.1*h/c
# remove top atoms
region cut block INF INF 2.5 INF INF INF
delete_atoms region cut
# use a variable timestep
fix dtfix all dt/reset 1 NULL ${dt} 0.0005 units box
# time-integrate position, velocities,
# internal energy and density of water particles
fix integrate_water_fix water sph
# time-integrate only internal energy and density of boundary particles
fix integrate_bc_fix bc sph/stationary
thermo 500
thermo_style custom step ke c_esph v_etot f_gfix press time f_dtfix
thermo_modify norm no
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 50 5 250 10 10 1 vx vy
# dump particles
#dump dump_id all custom 100 tmp.dump &
# id type x y z c_ke_peratom
#dump_modify dump_id first yes
# dump grid
#compute ave all property/grid 10 10 1 id ix iy
#dump ave all grid 250 tmp.grid c_ave:grid:data[*] f_ave:grid:data[*]
#dump_modify ave sort 1
# dump image
#compute 1 all property/atom proc
#variable p atom c_1%10
#dump 3 all image 500 tmp.*.png c_ke_peratom type &
# adiam 0.015 view 0 0 zoom 2.5 subbox yes 0.01 &
# center d 0.5 0.5 0.5 size 1024 768 box no 0.0 &
# grid f_ave:grid:count
#variable colors string &
# "min blue 0.25 green 0.5 orange 0.75 yellow max red"
#dump_modify 3 pad 5 amap 0 1.5 cf 1 5 ${colors}
# run
neigh_modify every 5 delay 0 check no
variable skin equal 0.3*${h}
neighbor ${skin} bin
run 6000

View File

@ -0,0 +1,104 @@
LAMMPS (3 Nov 2022)
# 2d Lennard-Jones melt
units lj
atom_style atomic
dimension 2
lattice sq 0.5
Lattice spacing in x,y,z = 1.4142136 1.4142136 1.4142136
region box block 0 50 0 50 -0.5 0.5
create_box 1 box
Created orthogonal box = (0 0 -0.70710678) to (70.710678 70.710678 0.70710678)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 2500 atoms
using lattice units in orthogonal box = (0 0 -0.70710678) to (70.710678 70.710678 0.70710678)
create_atoms CPU = 0.001 seconds
mass 1 1.0
velocity all create 1.44 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
fix 1 all nve
fix 2 all enforce2d
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 10 10 100 10 10 1 vx vy
# dump grid
compute ave all property/grid 10 10 1 id ix iy
#dump ave all grid 100 tmp.dump.2d # c_ave:grid:data[*] f_ave:grid:count f_ave:grid:data[*]
#dump_modify ave sort 1
#dump vtk1 all grid/vtk 100 tmp.dump1.2d.*.vtr f_ave:grid:count
#dump vtk2 all grid/vtk 100 tmp.dump2.2d.*.vtr f_ave:grid:data[2]
#dump 10 all image 100 tmp.image.*.2d.png type type # zoom 1.6 grid f_ave:grid:count adiam 0.6 shiny 0.0 # subbox yes 0.01
# run
thermo 100
run 500
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 20 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 51 51 2
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.6 | 2.6 | 2.6 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
0 1.44 -0.99804688 0 0.44137713 -0.58692862 5000
100 1.5598149 -1.1263538 0 0.43283708 1.5290994 5000
200 1.6032951 -1.1706712 0 0.43198254 1.3417115 5000
300 1.6027535 -1.1702899 0 0.43182248 1.3590294 5000
400 1.6099053 -1.1774853 0 0.43177606 1.3305193 5000
500 1.6163874 -1.184699 0 0.43104185 1.346977 5000
Loop time of 0.0605938 on 1 procs for 500 steps with 2500 atoms
Performance: 3564723.496 tau/day, 8251.675 timesteps/s, 20.629 Matom-step/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 | 0.042252 | 0.042252 | 0.042252 | 0.0 | 69.73
Neigh | 0.0080564 | 0.0080564 | 0.0080564 | 0.0 | 13.30
Comm | 0.00092699 | 0.00092699 | 0.00092699 | 0.0 | 1.53
Output | 5.6077e-05 | 5.6077e-05 | 5.6077e-05 | 0.0 | 0.09
Modify | 0.0087579 | 0.0087579 | 0.0087579 | 0.0 | 14.45
Other | | 0.000544 | | | 0.90
Nlocal: 2500 ave 2500 max 2500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 405 ave 405 max 405 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 14487 ave 14487 max 14487 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 14487
Ave neighs/atom = 5.7948
Neighbor list builds = 25
Dangerous builds not checked
Total wall time: 0:00:00

View File

@ -0,0 +1,105 @@
LAMMPS (3 Nov 2022)
WARNING: Using I/O redirection is unreliable with parallel runs. Better use -in switch to read input file. (../lammps.cpp:528)
# 2d Lennard-Jones melt
units lj
atom_style atomic
dimension 2
lattice sq 0.5
Lattice spacing in x,y,z = 1.4142136 1.4142136 1.4142136
region box block 0 50 0 50 -0.5 0.5
create_box 1 box
Created orthogonal box = (0 0 -0.70710678) to (70.710678 70.710678 0.70710678)
4 by 3 by 1 MPI processor grid
create_atoms 1 box
Created 2500 atoms
using lattice units in orthogonal box = (0 0 -0.70710678) to (70.710678 70.710678 0.70710678)
create_atoms CPU = 0.000 seconds
mass 1 1.0
velocity all create 1.44 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
fix 1 all nve
fix 2 all enforce2d
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 10 10 100 10 10 1 vx vy
# dump grid
compute ave all property/grid 10 10 1 id ix iy
#dump ave all grid 100 tmp.dump.2d # c_ave:grid:data[*] f_ave:grid:count f_ave:grid:data[*]
#dump_modify ave sort 1
#dump vtk1 all grid/vtk 100 tmp.dump1.2d.*.vtr f_ave:grid:count
#dump vtk2 all grid/vtk 100 tmp.dump2.2d.*.vtr f_ave:grid:data[2]
#dump 10 all image 100 tmp.image.*.2d.png type type # zoom 1.6 grid f_ave:grid:count adiam 0.6 shiny 0.0 # subbox yes 0.01
# run
thermo 100
run 500
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 20 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 51 51 2
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.546 | 2.573 | 2.595 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
0 1.44 -0.99804687 0 0.44137713 -0.58692863 5000
100 1.5598149 -1.1263538 0 0.43283708 1.5290994 5000
200 1.6032951 -1.1706712 0 0.43198254 1.3417115 5000
300 1.6027535 -1.1702899 0 0.43182248 1.3590294 5000
400 1.6099053 -1.1774853 0 0.43177606 1.3305193 5000
500 1.6163874 -1.184699 0 0.43104185 1.346977 5000
Loop time of 0.0234746 on 12 procs for 500 steps with 2500 atoms
Performance: 9201451.891 tau/day, 21299.657 timesteps/s, 53.249 Matom-step/s
99.2% CPU use with 12 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0037768 | 0.006317 | 0.0074702 | 1.7 | 26.91
Neigh | 0.0010967 | 0.0013082 | 0.0014397 | 0.3 | 5.57
Comm | 0.0096964 | 0.011159 | 0.0145 | 1.7 | 47.54
Output | 9.5604e-05 | 0.00012067 | 0.00016341 | 0.0 | 0.51
Modify | 0.0034389 | 0.0039338 | 0.0041602 | 0.4 | 16.76
Other | | 0.0006358 | | | 2.71
Nlocal: 208.333 ave 210 max 207 min
Histogram: 2 0 0 6 0 0 2 0 0 2
Nghost: 137.333 ave 155 max 121 min
Histogram: 1 1 2 1 3 1 0 0 1 2
Neighs: 1207.25 ave 1253 max 1169 min
Histogram: 2 1 2 0 3 1 0 0 1 2
Total # of neighbors = 14487
Ave neighs/atom = 5.7948
Neighbor list builds = 25
Dangerous builds not checked
Total wall time: 0:00:00

View File

@ -0,0 +1,105 @@
LAMMPS (3 Nov 2022)
WARNING: Using I/O redirection is unreliable with parallel runs. Better use -in switch to read input file. (../lammps.cpp:528)
# 2d Lennard-Jones melt
units lj
atom_style atomic
dimension 2
lattice sq 0.5
Lattice spacing in x,y,z = 1.4142136 1.4142136 1.4142136
region box block 0 50 0 50 -0.5 0.5
create_box 1 box
Created orthogonal box = (0 0 -0.70710678) to (70.710678 70.710678 0.70710678)
2 by 2 by 1 MPI processor grid
create_atoms 1 box
Created 2500 atoms
using lattice units in orthogonal box = (0 0 -0.70710678) to (70.710678 70.710678 0.70710678)
create_atoms CPU = 0.000 seconds
mass 1 1.0
velocity all create 1.44 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
fix 1 all nve
fix 2 all enforce2d
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 10 10 100 10 10 1 vx vy
# dump grid
compute ave all property/grid 10 10 1 id ix iy
#dump ave all grid 100 tmp.dump.2d # c_ave:grid:data[*] f_ave:grid:count f_ave:grid:data[*]
#dump_modify ave sort 1
#dump vtk1 all grid/vtk 100 tmp.dump1.2d.*.vtr f_ave:grid:count
#dump vtk2 all grid/vtk 100 tmp.dump2.2d.*.vtr f_ave:grid:data[2]
#dump 10 all image 100 tmp.image.*.2d.png type type # zoom 1.6 grid f_ave:grid:count adiam 0.6 shiny 0.0 # subbox yes 0.01
# run
thermo 100
run 500
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 20 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 51 51 2
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.555 | 2.556 | 2.557 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
0 1.44 -0.99804687 0 0.44137712 -0.58692863 5000
100 1.5598149 -1.1263538 0 0.43283708 1.5290994 5000
200 1.6032951 -1.1706712 0 0.43198254 1.3417115 5000
300 1.6027535 -1.1702899 0 0.43182248 1.3590294 5000
400 1.6099053 -1.1774853 0 0.43177606 1.3305193 5000
500 1.6163874 -1.184699 0 0.43104185 1.346977 5000
Loop time of 0.031365 on 4 procs for 500 steps with 2500 atoms
Performance: 6886659.462 tau/day, 15941.341 timesteps/s, 39.853 Matom-step/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 | 0.0098202 | 0.01197 | 0.018294 | 3.3 | 38.16
Neigh | 0.0023502 | 0.0025479 | 0.0030895 | 0.6 | 8.12
Comm | 0.0046956 | 0.012744 | 0.015481 | 4.1 | 40.63
Output | 5.6153e-05 | 6.3163e-05 | 7.3849e-05 | 0.0 | 0.20
Modify | 0.0032687 | 0.0036046 | 0.0046066 | 1.0 | 11.49
Other | | 0.0004358 | | | 1.39
Nlocal: 625 ave 627 max 623 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Nghost: 212 ave 216 max 207 min
Histogram: 1 0 0 0 0 1 1 0 0 1
Neighs: 3621.75 ave 3673 max 3585 min
Histogram: 1 0 0 2 0 0 0 0 0 1
Total # of neighbors = 14487
Ave neighs/atom = 5.7948
Neighbor list builds = 25
Dangerous builds not checked
Total wall time: 0:00:00

View File

@ -0,0 +1,102 @@
LAMMPS (3 Nov 2022)
# 3d Lennard-Jones melt
units lj
atom_style atomic
lattice fcc 0.8442
Lattice spacing in x,y,z = 1.6795962 1.6795962 1.6795962
region box block 0 10 0 10 0 10
create_box 1 box
Created orthogonal box = (0 0 0) to (16.795962 16.795962 16.795962)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 4000 atoms
using lattice units in orthogonal box = (0 0 0) to (16.795962 16.795962 16.795962)
create_atoms CPU = 0.001 seconds
mass 1 1.0
velocity all create 1.44 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
fix 1 all nve
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 10 10 100 5 5 5 vx vy vz
# dump grid
compute ave all property/grid 5 5 5 id ix iy
#dump ave all grid 100 tmp.dump.3d # c_ave:grid:data[*] f_ave:grid:count f_ave:grid:data[*]
#dump_modify ave sort 1
#dump vtk1 all grid/vtk 100 tmp.dump1.3d.*.vtr f_ave:grid:count
#dump vtk2 all grid/vtk 100 tmp.dump2.3d.*.vtr f_ave:grid:data[*]
#dump 10 all image 100 tmp.image.*.3d.png type type # grid f_ave:grid:count view 60 -30 shiny 0.0 # subbox yes 0.01
# run
thermo 100
run 500
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 20 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 12 12 12
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.072 | 3.072 | 3.072 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
0 1.44 -6.7733681 0 -4.6139081 -5.0199732 4738.2137
100 0.75715334 -5.7581426 0 -4.6226965 0.20850222 4738.2137
200 0.75139921 -5.7500924 0 -4.6232753 0.25362795 4738.2137
300 0.73979146 -5.7326964 0 -4.6232866 0.37781798 4738.2137
400 0.73834687 -5.7300319 0 -4.6227884 0.41282909 4738.2137
500 0.72941121 -5.7153612 0 -4.6215179 0.49793402 4738.2137
Loop time of 0.531792 on 1 procs for 500 steps with 4000 atoms
Performance: 406174.160 tau/day, 940.218 timesteps/s, 3.761 Matom-step/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 | 0.42996 | 0.42996 | 0.42996 | 0.0 | 80.85
Neigh | 0.082407 | 0.082407 | 0.082407 | 0.0 | 15.50
Comm | 0.007947 | 0.007947 | 0.007947 | 0.0 | 1.49
Output | 8.9375e-05 | 8.9375e-05 | 8.9375e-05 | 0.0 | 0.02
Modify | 0.009507 | 0.009507 | 0.009507 | 0.0 | 1.79
Other | | 0.001879 | | | 0.35
Nlocal: 4000 ave 4000 max 4000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 5657 ave 5657 max 5657 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 149883 ave 149883 max 149883 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 149883
Ave neighs/atom = 37.47075
Neighbor list builds = 25
Dangerous builds not checked
Total wall time: 0:00:00

View File

@ -0,0 +1,103 @@
LAMMPS (3 Nov 2022)
WARNING: Using I/O redirection is unreliable with parallel runs. Better use -in switch to read input file. (../lammps.cpp:528)
# 3d Lennard-Jones melt
units lj
atom_style atomic
lattice fcc 0.8442
Lattice spacing in x,y,z = 1.6795962 1.6795962 1.6795962
region box block 0 10 0 10 0 10
create_box 1 box
Created orthogonal box = (0 0 0) to (16.795962 16.795962 16.795962)
1 by 2 by 5 MPI processor grid
create_atoms 1 box
Created 4000 atoms
using lattice units in orthogonal box = (0 0 0) to (16.795962 16.795962 16.795962)
create_atoms CPU = 0.000 seconds
mass 1 1.0
velocity all create 1.44 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
fix 1 all nve
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 10 10 100 5 5 5 vx vy vz
# dump grid
compute ave all property/grid 5 5 5 id ix iy
#dump ave all grid 100 tmp.dump.3d # c_ave:grid:data[*] f_ave:grid:count f_ave:grid:data[*]
#dump_modify ave sort 1
#dump vtk1 all grid/vtk 100 tmp.dump1.3d.*.vtr f_ave:grid:count
#dump vtk2 all grid/vtk 100 tmp.dump2.3d.*.vtr f_ave:grid:data[*]
#dump 10 all image 100 tmp.image.*.3d.png type type # grid f_ave:grid:count view 60 -30 shiny 0.0 # subbox yes 0.01
# run
thermo 100
run 500
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 20 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 12 12 12
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.613 | 2.651 | 2.686 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
0 1.44 -6.7733681 0 -4.6139081 -5.0199732 4738.2137
100 0.75715334 -5.7581426 0 -4.6226965 0.20850222 4738.2137
200 0.75139921 -5.7500924 0 -4.6232753 0.25362795 4738.2137
300 0.73979146 -5.7326964 0 -4.6232866 0.37781798 4738.2137
400 0.73834687 -5.7300319 0 -4.6227884 0.41282909 4738.2137
500 0.72941121 -5.7153612 0 -4.6215179 0.49793402 4738.2137
Loop time of 0.192284 on 10 procs for 500 steps with 4000 atoms
Performance: 1123340.176 tau/day, 2600.324 timesteps/s, 10.401 Matom-step/s
94.0% CPU use with 10 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.059331 | 0.090145 | 0.11296 | 7.8 | 46.88
Neigh | 0.0129 | 0.016371 | 0.019414 | 2.1 | 8.51
Comm | 0.048952 | 0.07696 | 0.1131 | 9.9 | 40.02
Output | 0.00012204 | 0.00013855 | 0.00019358 | 0.0 | 0.07
Modify | 0.0053527 | 0.0062584 | 0.0070699 | 0.9 | 3.25
Other | | 0.00241 | | | 1.25
Nlocal: 400 ave 402 max 398 min
Histogram: 2 0 1 0 0 3 0 3 0 1
Nghost: 1709.1 ave 1774 max 1663 min
Histogram: 1 2 4 0 0 0 0 0 1 2
Neighs: 14988.3 ave 15609 max 14496 min
Histogram: 3 1 0 0 1 1 1 2 0 1
Total # of neighbors = 149883
Ave neighs/atom = 37.47075
Neighbor list builds = 25
Dangerous builds not checked
Total wall time: 0:00:00

View File

@ -0,0 +1,103 @@
LAMMPS (3 Nov 2022)
WARNING: Using I/O redirection is unreliable with parallel runs. Better use -in switch to read input file. (../lammps.cpp:528)
# 3d Lennard-Jones melt
units lj
atom_style atomic
lattice fcc 0.8442
Lattice spacing in x,y,z = 1.6795962 1.6795962 1.6795962
region box block 0 10 0 10 0 10
create_box 1 box
Created orthogonal box = (0 0 0) to (16.795962 16.795962 16.795962)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 4000 atoms
using lattice units in orthogonal box = (0 0 0) to (16.795962 16.795962 16.795962)
create_atoms CPU = 0.000 seconds
mass 1 1.0
velocity all create 1.44 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
fix 1 all nve
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 10 10 100 5 5 5 vx vy vz
# dump grid
compute ave all property/grid 5 5 5 id ix iy
#dump ave all grid 100 tmp.dump.3d # c_ave:grid:data[*] f_ave:grid:count f_ave:grid:data[*]
#dump_modify ave sort 1
#dump vtk1 all grid/vtk 100 tmp.dump1.3d.*.vtr f_ave:grid:count
#dump vtk2 all grid/vtk 100 tmp.dump2.3d.*.vtr f_ave:grid:data[*]
#dump 10 all image 100 tmp.image.*.3d.png type type # grid f_ave:grid:count view 60 -30 shiny 0.0 # subbox yes 0.01
# run
thermo 100
run 500
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 20 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 12 12 12
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.748 | 2.797 | 2.844 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
0 1.44 -6.7733681 0 -4.6139081 -5.0199732 4738.2137
100 0.75715334 -5.7581426 0 -4.6226965 0.20850222 4738.2137
200 0.75139921 -5.7500924 0 -4.6232753 0.25362795 4738.2137
300 0.73979146 -5.7326964 0 -4.6232866 0.37781798 4738.2137
400 0.73834687 -5.7300319 0 -4.6227884 0.41282909 4738.2137
500 0.72941121 -5.7153612 0 -4.6215179 0.49793402 4738.2137
Loop time of 0.198482 on 4 procs for 500 steps with 4000 atoms
Performance: 1088259.442 tau/day, 2519.119 timesteps/s, 10.076 Matom-step/s
96.4% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.13322 | 0.13586 | 0.13838 | 0.5 | 68.45
Neigh | 0.027201 | 0.027464 | 0.027811 | 0.1 | 13.84
Comm | 0.025899 | 0.028681 | 0.031618 | 1.4 | 14.45
Output | 7.6799e-05 | 8.8378e-05 | 0.00011635 | 0.0 | 0.04
Modify | 0.0050217 | 0.0051246 | 0.0053789 | 0.2 | 2.58
Other | | 0.001269 | | | 0.64
Nlocal: 1000 ave 1002 max 998 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Nghost: 2797.75 ave 2810 max 2790 min
Histogram: 1 0 1 1 0 0 0 0 0 1
Neighs: 37470.8 ave 38366 max 36995 min
Histogram: 2 0 0 1 0 0 0 0 0 1
Total # of neighbors = 149883
Ave neighs/atom = 37.47075
Neighbor list builds = 25
Dangerous builds not checked
Total wall time: 0:00:00

View File

@ -0,0 +1,193 @@
LAMMPS (3 Nov 2022)
# SPH water over dam
atom_style sph
dimension 2
newton on
boundary s s p
units lj
read_data data.sph
Reading data file ...
orthogonal box = (0 0 -0.001) to (4.001 8.001 0.001)
1 by 1 by 1 MPI processor grid
reading atoms ...
15702 atoms
reading velocities ...
15702 velocities
read_data CPU = 0.037 seconds
# upper limit of timestep based on CFL-like criterion
# roughly estimate number of timesteps needed for 7.5 seconds
variable h equal 0.03
variable c equal 10.0 # soundspeed for Tait's EOS
variable dt equal 0.1*${h}/${c}
variable dt equal 0.1*0.03/${c}
variable dt equal 0.1*0.03/10
variable nrun equal 15.0/${dt}
variable nrun equal 15.0/0.0003
# assign group name "bc" to boundary particles (type 2)
# assign group name "water" to water particles (type 1)
group bc type 2
6000 atoms in group bc
group water type 1
9702 atoms in group water
# use hybrid pairstyle which does density summation
# with cutoff ${h} every timestep (1)
# use target density of 1000, soundspeed ${c} for Tait's EOS
pair_style hybrid/overlay sph/rhosum 1 sph/taitwater
pair_coeff * * sph/taitwater 1000.0 ${c} 1.0 ${h}
pair_coeff * * sph/taitwater 1000.0 10 1.0 ${h}
pair_coeff * * sph/taitwater 1000.0 10 1.0 0.03
pair_coeff 1 1 sph/rhosum ${h}
pair_coeff 1 1 sph/rhosum 0.03
# add gravity. This fix also computes potential energy of mass in gravity field
fix gfix water gravity -9.81 vector 0 1 0
fix 2d_fix all enforce2d
compute rho_peratom all sph/rho/atom
compute e_peratom all sph/e/atom
compute esph all reduce sum c_e_peratom
compute ke all ke
variable etot equal c_esph+c_ke+f_gfix
compute ke_peratom all ke/atom
# adjust nevery | min. allowed dt | max. allowed dt |
# max. travel distance per dt
# ${dt} ~= CFL criterion 0.1*h/c
# remove top atoms
region cut block INF INF 2.5 INF INF INF
delete_atoms region cut
Deleted 3174 atoms, new total = 12528
# use a variable timestep
fix dtfix all dt/reset 1 NULL ${dt} 0.0005 units box
fix dtfix all dt/reset 1 NULL 0.0003 0.0005 units box
# time-integrate position, velocities,
# internal energy and density of water particles
fix integrate_water_fix water sph
# time-integrate only internal energy and density of boundary particles
fix integrate_bc_fix bc sph/stationary
thermo 500
thermo_style custom step ke c_esph v_etot f_gfix press time f_dtfix
thermo_modify norm no
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 50 5 250 10 10 1 vx vy
# dump particles
#dump dump_id all custom 100 tmp.dump # id type x y z c_ke_peratom
#dump_modify dump_id first yes
# dump grid
#compute ave all property/grid 10 10 1 id ix iy
#dump ave all grid 250 tmp.grid c_ave:grid:data[*] f_ave:grid:data[*]
#dump_modify ave sort 1
# dump image
#compute 1 all property/atom proc
#variable p atom c_1%10
#dump 3 all image 500 tmp.*.png c_ke_peratom type # adiam 0.015 view 0 0 zoom 2.5 subbox yes 0.01 # center d 0.5 0.5 0.5 size 1024 768 box no 0.0 # grid f_ave:grid:count
#variable colors string # "min blue 0.25 green 0.5 orange 0.75 yellow max red"
#dump_modify 3 pad 5 amap 0 1.5 cf 1 5 ${colors}
# run
neigh_modify every 5 delay 0 check no
variable skin equal 0.3*${h}
variable skin equal 0.3*0.03
neighbor ${skin} bin
neighbor 0.009 bin
run 6000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 5 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 0.039
ghost atom cutoff = 0.039
binsize = 0.0195, bins = 205 411 1
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair sph/rhosum, perpetual, skip from (3)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(2) pair sph/taitwater, perpetual, half/full from (3)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.755 | 6.755 | 6.755 Mbytes
Step KinEng c_esph v_etot f_gfix Press Time f_dtfix
0 0 0 19320.854 19320.854 -3.624517 0 0
500 1274.8192 226.44643 19320.367 17819.101 754.35811 0.14057754 500
1000 2793.9358 410.18897 19320.367 16116.242 1184.8364 0.21912692 1000
1500 4227.2566 547.60309 19320.367 14545.508 1290.9567 0.27943572 1500
2000 5515.6545 763.42902 19320.367 13041.284 1468.5449 0.33279685 2000
2500 6595.5906 1087.0212 19320.368 11637.756 1878.9882 0.38198106 2500
3000 7053.147 1574.0538 19320.369 10693.168 2250.759 0.41605101 3000
3500 7396.4079 2058.4224 19320.369 9865.539 2517.1665 0.45034972 3500
4000 7690.0468 2419.389 19320.369 9210.9336 2615.8142 0.48685712 4000
4500 7986.5331 2529.7094 19320.369 8804.1268 2453.9595 0.52464306 4500
5000 8206.3658 2497.1242 19320.369 8616.879 1998.6296 0.56308208 5000
5500 8264.0602 2487.5778 19320.369 8568.7309 1614.3683 0.60225589 5500
6000 8185.7128 2570.3178 19320.369 8564.3383 1463.8307 0.64295437 6000
Loop time of 22.4589 on 1 procs for 6000 steps with 12528 atoms
Performance: 1919.324 tau/day, 267.155 timesteps/s, 3.347 Matom-step/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 | 15.365 | 15.365 | 15.365 | 0.0 | 68.41
Neigh | 5.2774 | 5.2774 | 5.2774 | 0.0 | 23.50
Comm | 0.021675 | 0.021675 | 0.021675 | 0.0 | 0.10
Output | 0.0011944 | 0.0011944 | 0.0011944 | 0.0 | 0.01
Modify | 1.6991 | 1.6991 | 1.6991 | 0.0 | 7.57
Other | | 0.09478 | | | 0.42
Nlocal: 12528 ave 12528 max 12528 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 153317 ave 153317 max 153317 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 153317
Ave neighs/atom = 12.237947
Neighbor list builds = 1200
Dangerous builds not checked
Total wall time: 0:00:22

View File

@ -0,0 +1,194 @@
LAMMPS (3 Nov 2022)
WARNING: Using I/O redirection is unreliable with parallel runs. Better use -in switch to read input file. (../lammps.cpp:528)
# SPH water over dam
atom_style sph
dimension 2
newton on
boundary s s p
units lj
read_data data.sph
Reading data file ...
orthogonal box = (0 0 -0.001) to (4.001 8.001 0.001)
3 by 4 by 1 MPI processor grid
reading atoms ...
15702 atoms
reading velocities ...
15702 velocities
read_data CPU = 0.075 seconds
# upper limit of timestep based on CFL-like criterion
# roughly estimate number of timesteps needed for 7.5 seconds
variable h equal 0.03
variable c equal 10.0 # soundspeed for Tait's EOS
variable dt equal 0.1*${h}/${c}
variable dt equal 0.1*0.03/${c}
variable dt equal 0.1*0.03/10
variable nrun equal 15.0/${dt}
variable nrun equal 15.0/0.0003
# assign group name "bc" to boundary particles (type 2)
# assign group name "water" to water particles (type 1)
group bc type 2
6000 atoms in group bc
group water type 1
9702 atoms in group water
# use hybrid pairstyle which does density summation
# with cutoff ${h} every timestep (1)
# use target density of 1000, soundspeed ${c} for Tait's EOS
pair_style hybrid/overlay sph/rhosum 1 sph/taitwater
pair_coeff * * sph/taitwater 1000.0 ${c} 1.0 ${h}
pair_coeff * * sph/taitwater 1000.0 10 1.0 ${h}
pair_coeff * * sph/taitwater 1000.0 10 1.0 0.03
pair_coeff 1 1 sph/rhosum ${h}
pair_coeff 1 1 sph/rhosum 0.03
# add gravity. This fix also computes potential energy of mass in gravity field
fix gfix water gravity -9.81 vector 0 1 0
fix 2d_fix all enforce2d
compute rho_peratom all sph/rho/atom
compute e_peratom all sph/e/atom
compute esph all reduce sum c_e_peratom
compute ke all ke
variable etot equal c_esph+c_ke+f_gfix
compute ke_peratom all ke/atom
# adjust nevery | min. allowed dt | max. allowed dt |
# max. travel distance per dt
# ${dt} ~= CFL criterion 0.1*h/c
# remove top atoms
region cut block INF INF 2.5 INF INF INF
delete_atoms region cut
Deleted 3174 atoms, new total = 12528
# use a variable timestep
fix dtfix all dt/reset 1 NULL ${dt} 0.0005 units box
fix dtfix all dt/reset 1 NULL 0.0003 0.0005 units box
# time-integrate position, velocities,
# internal energy and density of water particles
fix integrate_water_fix water sph
# time-integrate only internal energy and density of boundary particles
fix integrate_bc_fix bc sph/stationary
thermo 500
thermo_style custom step ke c_esph v_etot f_gfix press time f_dtfix
thermo_modify norm no
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 50 5 250 10 10 1 vx vy
# dump particles
#dump dump_id all custom 100 tmp.dump # id type x y z c_ke_peratom
#dump_modify dump_id first yes
# dump grid
#compute ave all property/grid 10 10 1 id ix iy
#dump ave all grid 250 tmp.grid c_ave:grid:data[*] f_ave:grid:data[*]
#dump_modify ave sort 1
# dump image
#compute 1 all property/atom proc
#variable p atom c_1%10
#dump 3 all image 500 tmp.*.png c_ke_peratom type # adiam 0.015 view 0 0 zoom 2.5 subbox yes 0.01 # center d 0.5 0.5 0.5 size 1024 768 box no 0.0 # grid f_ave:grid:count
#variable colors string # "min blue 0.25 green 0.5 orange 0.75 yellow max red"
#dump_modify 3 pad 5 amap 0 1.5 cf 1 5 ${colors}
# run
neigh_modify every 5 delay 0 check no
variable skin equal 0.3*${h}
variable skin equal 0.3*0.03
neighbor ${skin} bin
neighbor 0.009 bin
run 6000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 5 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 0.039
ghost atom cutoff = 0.039
binsize = 0.0195, bins = 205 411 1
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair sph/rhosum, perpetual, skip from (3)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(2) pair sph/taitwater, perpetual, half/full from (3)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.06 | 5.302 | 6.72 Mbytes
Step KinEng c_esph v_etot f_gfix Press Time f_dtfix
0 0 0 19320.854 19320.854 -3.624517 0 0
500 1274.8192 226.44643 19320.367 17819.101 754.35811 0.14057754 500
1000 2793.9358 410.18897 19320.367 16116.242 1184.8364 0.21912692 1000
1500 4227.2566 547.60309 19320.367 14545.508 1290.9567 0.27943572 1500
2000 5515.6545 763.42902 19320.367 13041.284 1468.5449 0.33279685 2000
2500 6595.5906 1087.0212 19320.368 11637.756 1878.9882 0.38198106 2500
3000 7053.147 1574.0538 19320.369 10693.168 2250.759 0.41605101 3000
3500 7396.4079 2058.4224 19320.369 9865.539 2517.1665 0.45034972 3500
4000 7690.0468 2419.389 19320.369 9210.9336 2615.8142 0.48685712 4000
4500 7986.5331 2529.7094 19320.369 8804.1268 2453.9595 0.52464306 4500
5000 8206.3658 2497.1242 19320.369 8616.879 1998.6296 0.56308208 5000
5500 8264.0602 2487.5778 19320.369 8568.7309 1614.3683 0.60225589 5500
6000 8185.7128 2570.3178 19320.369 8564.3383 1463.8307 0.64295437 6000
Loop time of 5.47224 on 12 procs for 6000 steps with 12528 atoms
Performance: 7877.181 tau/day, 1096.443 timesteps/s, 13.736 Matom-step/s
99.2% CPU use with 12 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.8469 | 3.1632 | 3.4316 | 11.3 | 57.80
Neigh | 0.56431 | 0.78494 | 0.95346 | 14.2 | 14.34
Comm | 0.4559 | 0.89439 | 1.4747 | 35.4 | 16.34
Output | 0.0005864 | 0.00060563 | 0.00074071 | 0.0 | 0.01
Modify | 0.51006 | 0.57563 | 0.65636 | 4.9 | 10.52
Other | | 0.05352 | | | 0.98
Nlocal: 1044 ave 1046 max 1043 min
Histogram: 2 0 0 9 0 0 0 0 0 1
Nghost: 244.75 ave 320 max 120 min
Histogram: 2 1 0 1 0 0 1 1 1 5
Neighs: 12776.4 ave 16885 max 9467 min
Histogram: 1 1 1 2 3 1 0 2 0 1
Total # of neighbors = 153317
Ave neighs/atom = 12.237947
Neighbor list builds = 1200
Dangerous builds not checked
Total wall time: 0:00:05

View File

@ -0,0 +1,194 @@
LAMMPS (3 Nov 2022)
WARNING: Using I/O redirection is unreliable with parallel runs. Better use -in switch to read input file. (../lammps.cpp:528)
# SPH water over dam
atom_style sph
dimension 2
newton on
boundary s s p
units lj
read_data data.sph
Reading data file ...
orthogonal box = (0 0 -0.001) to (4.001 8.001 0.001)
2 by 2 by 1 MPI processor grid
reading atoms ...
15702 atoms
reading velocities ...
15702 velocities
read_data CPU = 0.043 seconds
# upper limit of timestep based on CFL-like criterion
# roughly estimate number of timesteps needed for 7.5 seconds
variable h equal 0.03
variable c equal 10.0 # soundspeed for Tait's EOS
variable dt equal 0.1*${h}/${c}
variable dt equal 0.1*0.03/${c}
variable dt equal 0.1*0.03/10
variable nrun equal 15.0/${dt}
variable nrun equal 15.0/0.0003
# assign group name "bc" to boundary particles (type 2)
# assign group name "water" to water particles (type 1)
group bc type 2
6000 atoms in group bc
group water type 1
9702 atoms in group water
# use hybrid pairstyle which does density summation
# with cutoff ${h} every timestep (1)
# use target density of 1000, soundspeed ${c} for Tait's EOS
pair_style hybrid/overlay sph/rhosum 1 sph/taitwater
pair_coeff * * sph/taitwater 1000.0 ${c} 1.0 ${h}
pair_coeff * * sph/taitwater 1000.0 10 1.0 ${h}
pair_coeff * * sph/taitwater 1000.0 10 1.0 0.03
pair_coeff 1 1 sph/rhosum ${h}
pair_coeff 1 1 sph/rhosum 0.03
# add gravity. This fix also computes potential energy of mass in gravity field
fix gfix water gravity -9.81 vector 0 1 0
fix 2d_fix all enforce2d
compute rho_peratom all sph/rho/atom
compute e_peratom all sph/e/atom
compute esph all reduce sum c_e_peratom
compute ke all ke
variable etot equal c_esph+c_ke+f_gfix
compute ke_peratom all ke/atom
# adjust nevery | min. allowed dt | max. allowed dt |
# max. travel distance per dt
# ${dt} ~= CFL criterion 0.1*h/c
# remove top atoms
region cut block INF INF 2.5 INF INF INF
delete_atoms region cut
Deleted 3174 atoms, new total = 12528
# use a variable timestep
fix dtfix all dt/reset 1 NULL ${dt} 0.0005 units box
fix dtfix all dt/reset 1 NULL 0.0003 0.0005 units box
# time-integrate position, velocities,
# internal energy and density of water particles
fix integrate_water_fix water sph
# time-integrate only internal energy and density of boundary particles
fix integrate_bc_fix bc sph/stationary
thermo 500
thermo_style custom step ke c_esph v_etot f_gfix press time f_dtfix
thermo_modify norm no
# load balancing
comm_style tiled
fix 100 all balance 100 0.9 rcb
# fix ave/grid
fix ave all ave/grid 50 5 250 10 10 1 vx vy
# dump particles
#dump dump_id all custom 100 tmp.dump # id type x y z c_ke_peratom
#dump_modify dump_id first yes
# dump grid
#compute ave all property/grid 10 10 1 id ix iy
#dump ave all grid 250 tmp.grid c_ave:grid:data[*] f_ave:grid:data[*]
#dump_modify ave sort 1
# dump image
#compute 1 all property/atom proc
#variable p atom c_1%10
#dump 3 all image 500 tmp.*.png c_ke_peratom type # adiam 0.015 view 0 0 zoom 2.5 subbox yes 0.01 # center d 0.5 0.5 0.5 size 1024 768 box no 0.0 # grid f_ave:grid:count
#variable colors string # "min blue 0.25 green 0.5 orange 0.75 yellow max red"
#dump_modify 3 pad 5 amap 0 1.5 cf 1 5 ${colors}
# run
neigh_modify every 5 delay 0 check no
variable skin equal 0.3*${h}
variable skin equal 0.3*0.03
neighbor ${skin} bin
neighbor 0.009 bin
run 6000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 5 steps, delay = 0 steps, check = no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 0.039
ghost atom cutoff = 0.039
binsize = 0.0195, bins = 205 411 1
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair sph/rhosum, perpetual, skip from (3)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(2) pair sph/taitwater, perpetual, half/full from (3)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.607 | 5.957 | 6.474 Mbytes
Step KinEng c_esph v_etot f_gfix Press Time f_dtfix
0 0 0 19320.854 19320.854 -3.624517 0 0
500 1274.8192 226.44643 19320.367 17819.101 754.35811 0.14057754 500
1000 2793.9358 410.18897 19320.367 16116.242 1184.8364 0.21912692 1000
1500 4227.2566 547.60309 19320.367 14545.508 1290.9567 0.27943572 1500
2000 5515.6545 763.42902 19320.367 13041.284 1468.5449 0.33279685 2000
2500 6595.5906 1087.0212 19320.368 11637.756 1878.9882 0.38198106 2500
3000 7053.147 1574.0538 19320.369 10693.168 2250.759 0.41605101 3000
3500 7396.4079 2058.4224 19320.369 9865.539 2517.1665 0.45034972 3500
4000 7690.0468 2419.389 19320.369 9210.9336 2615.8142 0.48685712 4000
4500 7986.5331 2529.7094 19320.369 8804.1268 2453.9595 0.52464306 4500
5000 8206.3658 2497.1242 19320.369 8616.879 1998.6296 0.56308208 5000
5500 8264.0602 2487.5778 19320.369 8568.7309 1614.3683 0.60225589 5500
6000 8185.7128 2570.3178 19320.369 8564.3383 1463.8307 0.64295437 6000
Loop time of 8.44486 on 4 procs for 6000 steps with 12528 atoms
Performance: 5104.390 tau/day, 710.492 timesteps/s, 8.901 Matom-step/s
99.6% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 5.3618 | 5.4752 | 5.5857 | 3.5 | 64.83
Neigh | 1.607 | 1.7333 | 1.8496 | 6.6 | 20.53
Comm | 0.36438 | 0.60163 | 0.70886 | 18.0 | 7.12
Output | 0.00062026 | 0.00064412 | 0.00071499 | 0.0 | 0.01
Modify | 0.57676 | 0.59785 | 0.60941 | 1.6 | 7.08
Other | | 0.03618 | | | 0.43
Nlocal: 3132 ave 3134 max 3131 min
Histogram: 2 0 0 1 0 0 0 0 0 1
Nghost: 248.25 ave 333 max 165 min
Histogram: 1 1 0 0 0 0 0 0 1 1
Neighs: 38329.2 ave 41127 max 35425 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Total # of neighbors = 153317
Ave neighs/atom = 12.237947
Neighbor list builds = 1200
Dangerous builds not checked
Total wall time: 0:00:08

View File

@ -40,10 +40,22 @@ thermo 100
thermo_style custom step temp etotal f_twotemp[1] f_twotemp[2]
thermo_modify format float "%20.16g"
compute 10 all property/grid 10 10 10 id xc yc zc
fix ave all ave/grid 100 5 500 10 10 10 f_twotemp:grid:data
dump ave all grid 500 tmp.dump.ave &
c_10:grid:data[*] f_ave:grid:data
dump_modify ave sort 1
# dump output
#compute 1 all property/grid 10 10 10 id ix iy iz
#dump 1 all grid 100 tmp.dump c_1:grid:data[*] f_twotemp:grid:data
#dump_modify 1 sort 1
#compute 10 all property/grid 10 10 10 id xc yc zc
#fix ave all ave/grid 10 10 100 10 10 10 f_twotemp:grid:data
#dump ave all grid 100 tmp.dump.ave &
# c_10:grid:data[*] f_ave:grid:data
#dump_modify ave sort id
#dump vtk all grid/vtk 100 tmp.dump.*.vtk f_ave:grid:data
#dump_modify vtk sort id buffer no
# run simulation
run 1000

View File

@ -1,4 +1,4 @@
LAMMPS (3 Aug 2022)
LAMMPS (3 Nov 2022)
units metal
atom_style atomic
boundary p p p
@ -34,7 +34,7 @@ region atom_box block -10 10 -10 10 -10 10 units lattice
create_atoms 1 region atom_box
Created 16000 atoms
using lattice units in orthogonal box = (-28.7 -28.7 -28.7) to (28.7 28.7 28.7)
create_atoms CPU = 0.004 seconds
create_atoms CPU = 0.002 seconds
mass 1 55.845
@ -58,9 +58,22 @@ thermo 100
thermo_style custom step temp etotal f_twotemp[1] f_twotemp[2]
thermo_modify format float "%20.16g"
compute 10 all property/grid 10 10 10 id xc yc zc
fix ave all ave/grid 100 5 500 10 10 10 f_twotemp:grid:data
dump ave all grid 500 tmp.dump.ave c_10:grid:data[*] f_ave:grid:data
# dump output
#compute 1 all property/grid 10 10 10 id ix iy iz
#dump 1 all grid 100 tmp.dump c_1:grid:data[*] f_twotemp:grid:data
#dump_modify 1 sort 1
#compute 10 all property/grid 10 10 10 id xc yc zc
#fix ave all ave/grid 10 10 100 10 10 10 f_twotemp:grid:data
#dump ave all grid 100 tmp.dump.ave # c_10:grid:data[*] f_ave:grid:data
#dump_modify ave sort id
#dump vtk all grid/vtk 100 tmp.dump.*.vtk f_ave:grid:data
#dump_modify vtk sort id buffer no
# run simulation
run 1000
Neighbor list info ...
@ -75,7 +88,7 @@ Neighbor list info ...
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 12.09 | 12.09 | 12.09 Mbytes
Per MPI rank memory allocation (min/avg/max) = 10.99 | 10.99 | 10.99 Mbytes
Step Temp TotEng f_twotemp[1] f_twotemp[2]
0 0 -68483.52254543516 371.9188105082105 0
100 17.01353086098387 -68446.50228930202 334.6217068813629 0.3763710887774046
@ -88,20 +101,20 @@ Per MPI rank memory allocation (min/avg/max) = 12.09 | 12.09 | 12.09 Mbytes
800 50.4375018189932 -68272.72651051797 160.995046695269 0.1708386295858845
900 52.17011714635106 -68257.85059865142 146.1567281868867 0.1032829304640776
1000 53.49296457217382 -68244.38715993936 132.7166474251702 0.06428993394665769
Loop time of 15.6373 on 1 procs for 1000 steps with 16000 atoms
Loop time of 5.99191 on 1 procs for 1000 steps with 16000 atoms
Performance: 0.553 ns/day, 43.437 hours/ns, 63.950 timesteps/s
Performance: 1.442 ns/day, 16.644 hours/ns, 166.892 timesteps/s, 2.670 Matom-step/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 | 14.493 | 14.493 | 14.493 | 0.0 | 92.68
Pair | 5.3136 | 5.3136 | 5.3136 | 0.0 | 88.68
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.088097 | 0.088097 | 0.088097 | 0.0 | 0.56
Output | 0.0044447 | 0.0044447 | 0.0044447 | 0.0 | 0.03
Modify | 1.0075 | 1.0075 | 1.0075 | 0.0 | 6.44
Other | | 0.04433 | | | 0.28
Comm | 0.035738 | 0.035738 | 0.035738 | 0.0 | 0.60
Output | 0.00049119 | 0.00049119 | 0.00049119 | 0.0 | 0.01
Modify | 0.62365 | 0.62365 | 0.62365 | 0.0 | 10.41
Other | | 0.01844 | | | 0.31
Nlocal: 16000 ave 16000 max 16000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
@ -114,4 +127,4 @@ Total # of neighbors = 896000
Ave neighs/atom = 56
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:15
Total wall time: 0:00:06

View File

@ -1,5 +1,5 @@
LAMMPS (3 Aug 2022)
WARNING: Using I/O redirection is unreliable with parallel runs. Better use -in switch to read input file. (../lammps.cpp:524)
LAMMPS (3 Nov 2022)
WARNING: Using I/O redirection is unreliable with parallel runs. Better use -in switch to read input file. (../lammps.cpp:528)
units metal
atom_style atomic
boundary p p p
@ -35,7 +35,7 @@ region atom_box block -10 10 -10 10 -10 10 units lattice
create_atoms 1 region atom_box
Created 16000 atoms
using lattice units in orthogonal box = (-28.7 -28.7 -28.7) to (28.7 28.7 28.7)
create_atoms CPU = 0.002 seconds
create_atoms CPU = 0.001 seconds
mass 1 55.845
@ -59,10 +59,22 @@ thermo 100
thermo_style custom step temp etotal f_twotemp[1] f_twotemp[2]
thermo_modify format float "%20.16g"
compute 10 all property/grid 10 10 10 id xc yc zc
fix ave all ave/grid 100 5 500 10 10 10 f_twotemp:grid:data
dump ave all grid 500 tmp.dump.ave c_10:grid:data[*] f_ave:grid:data
dump_modify ave sort 1
# dump output
#compute 1 all property/grid 10 10 10 id ix iy iz
#dump 1 all grid 100 tmp.dump c_1:grid:data[*] f_twotemp:grid:data
#dump_modify 1 sort 1
#compute 10 all property/grid 10 10 10 id xc yc zc
#fix ave all ave/grid 10 10 100 10 10 10 f_twotemp:grid:data
#dump ave all grid 100 tmp.dump.ave # c_10:grid:data[*] f_ave:grid:data
#dump_modify ave sort id
#dump vtk all grid/vtk 100 tmp.dump.*.vtk f_ave:grid:data
#dump_modify vtk sort id buffer no
# run simulation
run 1000
Neighbor list info ...
@ -77,7 +89,7 @@ Neighbor list info ...
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.902 | 5.903 | 5.904 Mbytes
Per MPI rank memory allocation (min/avg/max) = 4.843 | 4.843 | 4.843 Mbytes
Step Temp TotEng f_twotemp[1] f_twotemp[2]
0 0 -68483.52254530673 371.9188105082186 0
100 16.95536995775684 -68446.64765713879 334.7745598327931 0.3602932995006087
@ -90,20 +102,20 @@ Per MPI rank memory allocation (min/avg/max) = 5.902 | 5.903 | 5.904 Mbytes
800 49.66707856481075 -68274.98092841901 163.2540575286425 0.1600890300738265
900 52.17692450487317 -68259.8031091165 148.1017576370548 0.1177316234407941
1000 54.24228199265479 -68245.58589458198 133.8816957314364 0.1314999893461343
Loop time of 4.78682 on 4 procs for 1000 steps with 16000 atoms
Loop time of 2.16917 on 4 procs for 1000 steps with 16000 atoms
Performance: 1.805 ns/day, 13.297 hours/ns, 208.907 timesteps/s
100.0% CPU use with 4 MPI tasks x no OpenMP threads
Performance: 3.983 ns/day, 6.025 hours/ns, 461.006 timesteps/s, 7.376 Matom-step/s
97.7% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 4.1562 | 4.2154 | 4.2851 | 2.7 | 88.06
Pair | 1.8638 | 1.8826 | 1.9014 | 1.0 | 86.79
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.16658 | 0.23631 | 0.29566 | 11.5 | 4.94
Output | 0.0016285 | 0.0016618 | 0.0017414 | 0.1 | 0.03
Modify | 0.31425 | 0.31577 | 0.31755 | 0.2 | 6.60
Other | | 0.01766 | | | 0.37
Comm | 0.057938 | 0.076258 | 0.094755 | 4.8 | 3.52
Output | 0.00020722 | 0.00022911 | 0.00029186 | 0.0 | 0.01
Modify | 0.20222 | 0.20238 | 0.20256 | 0.0 | 9.33
Other | | 0.007738 | | | 0.36
Nlocal: 4000 ave 4000 max 4000 min
Histogram: 4 0 0 0 0 0 0 0 0 0
@ -116,4 +128,4 @@ Total # of neighbors = 896000
Ave neighs/atom = 56
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:04
Total wall time: 0:00:02