336 lines
17 KiB
Groff
336 lines
17 KiB
Groff
LAMMPS (9 Oct 2020)
|
|
using 1 OpenMP thread(s) per MPI task
|
|
####################################################################################################
|
|
#
|
|
# ULSPH example: water flow through a complex geometry read from a .STL file
|
|
#
|
|
# The boundary dump file (see below) can be converted into VTK format using the conversion
|
|
# tool dump2vtk_tris from the tools/smd directory.
|
|
#
|
|
# unit system: GPa / mm / ms
|
|
#
|
|
####################################################################################################
|
|
|
|
####################################################################################################
|
|
# MATERIAL PARAMETERS
|
|
####################################################################################################
|
|
variable c0 equal 10.0 # speed of sound for fluid
|
|
variable rho equal 1.0e-6 # initial mass density
|
|
variable q1 equal 0.06 # standard artificial viscosity linear coefficient
|
|
variable q2 equal 0.0 # standard artificial viscosity quadratic coefficient
|
|
variable hg equal 0.0 # hourglass control coefficient
|
|
variable cp equal 1.0 # heat capacity of material -- not used here
|
|
variable K equal ${c0}*${rho}^2
|
|
variable K equal 10*${rho}^2
|
|
variable K equal 10*1e-06^2
|
|
variable contact_stiffness equal 0.1*${K}
|
|
variable contact_stiffness equal 0.1*1e-11
|
|
|
|
####################################################################################################
|
|
# INITIALIZE LAMMPS
|
|
####################################################################################################
|
|
dimension 3
|
|
units si
|
|
boundary f f f # simulation box boundaries
|
|
atom_style smd
|
|
atom_modify map array
|
|
comm_modify vel yes
|
|
comm_style tiled
|
|
neigh_modify every 10 delay 0 check yes exclude type 2 2 one 10000
|
|
newton off
|
|
|
|
####################################################################################################
|
|
# CREATE INITIAL GEOMETRY
|
|
####################################################################################################
|
|
variable l0 equal 5.0 # lattice spacing for creating particles
|
|
lattice sc ${l0}
|
|
lattice sc 5
|
|
Lattice spacing in x,y,z = 5.0000000 5.0000000 5.0000000
|
|
region box block -110 60 -30 220 -90 130 units box
|
|
create_box 2 box
|
|
Created orthogonal box = (-110.00000 -30.000000 -90.000000) to (60.000000 220.00000 130.00000)
|
|
1 by 1 by 1 MPI processor grid
|
|
region particles cylinder y 0 -30 47 135 200 units box
|
|
create_atoms 1 region particles
|
|
Created 3878 atoms
|
|
create_atoms CPU = 0.001 seconds
|
|
group water type 1
|
|
3878 atoms in group water
|
|
|
|
####################################################################################################
|
|
# DISCRETIZATION PARAMETERS
|
|
####################################################################################################
|
|
variable h equal 2.01*${l0} # SPH smoothing kernel radius
|
|
variable h equal 2.01*5
|
|
variable vol_one equal ${l0}^3 # volume of one particle -- assuming unit thickness
|
|
variable vol_one equal 5^3
|
|
variable skin equal 0.1*${h} # Verlet list range
|
|
variable skin equal 0.1*10.05
|
|
neighbor ${skin} bin
|
|
neighbor 1.005 bin
|
|
variable cr equal ${l0}/2
|
|
variable cr equal 5/2
|
|
set group all smd/contact/radius ${cr}
|
|
set group all smd/contact/radius 2.5
|
|
Setting atom values ...
|
|
3878 settings made for smd/contact/radius
|
|
set group all volume ${vol_one}
|
|
set group all volume 125
|
|
Setting atom values ...
|
|
3878 settings made for volume
|
|
set group all smd/mass/density ${rho}
|
|
set group all smd/mass/density 1e-06
|
|
Setting atom values ...
|
|
3878 settings made for smd/mass/density
|
|
set group all diameter ${h} # set SPH kernel radius
|
|
set group all diameter 10.05
|
|
Setting atom values ...
|
|
3878 settings made for diameter
|
|
|
|
####################################################################################################
|
|
# DEFINE GRAVITY BOUNDARY CONDITION
|
|
####################################################################################################
|
|
fix gfix all gravity 0.01 vector 0.0 -1. 0.0
|
|
|
|
####################################################################################################
|
|
# INTERACTION PHYSICS / MATERIAL MODEL
|
|
# We use polynomial EOS for the pressure and the Johnson Cook strength model
|
|
# An integration point fails (cannot support tension anymore) if the plastic strain exceeds 0.5.
|
|
####################################################################################################
|
|
pair_style hybrid/overlay smd/tri_surface 1.0 smd/ulsph *DENSITY_CONTINUITY *VELOCITY_GRADIENT *NO_GRADIENT_CORRECTION
|
|
pair_coeff 1 1 smd/ulsph *COMMON ${rho} ${c0} ${q1} ${cp} ${hg} *EOS_TAIT 2 *END
|
|
pair_coeff 1 1 smd/ulsph *COMMON 1e-06 ${c0} ${q1} ${cp} ${hg} *EOS_TAIT 2 *END
|
|
pair_coeff 1 1 smd/ulsph *COMMON 1e-06 10 ${q1} ${cp} ${hg} *EOS_TAIT 2 *END
|
|
pair_coeff 1 1 smd/ulsph *COMMON 1e-06 10 0.06 ${cp} ${hg} *EOS_TAIT 2 *END
|
|
pair_coeff 1 1 smd/ulsph *COMMON 1e-06 10 0.06 1 ${hg} *EOS_TAIT 2 *END
|
|
pair_coeff 1 1 smd/ulsph *COMMON 1e-06 10 0.06 1 0 *EOS_TAIT 2 *END
|
|
pair_coeff 2 2 none
|
|
pair_coeff 1 2 smd/tri_surface ${contact_stiffness}
|
|
pair_coeff 1 2 smd/tri_surface 1e-12
|
|
|
|
####################################################################################################
|
|
# LOAD STL SURFACE
|
|
####################################################################################################
|
|
fix stl_surface_fix all smd/wall_surface boundary.stl 2 65535
|
|
run 0 # This is important! Always run for 0 timesteps directly after loading STL file!
|
|
Neighbor list info ...
|
|
update every 10 steps, delay 0 steps, check yes
|
|
max neighbors/atom: 10000, page size: 100000
|
|
master list distance cutoff = 11.055
|
|
ghost atom cutoff = 11.055
|
|
binsize = 5.5275, bins = 31 46 40
|
|
3 neighbor lists, perpetual/occasional/extra = 3 0 0
|
|
(1) pair smd/tri_surface, perpetual, skip from (3)
|
|
attributes: half, newton off, size
|
|
pair build: skip/half/size
|
|
stencil: none
|
|
bin: none
|
|
(2) pair smd/ulsph, perpetual, skip from (3)
|
|
attributes: half, newton off, size
|
|
pair build: skip/half/size
|
|
stencil: none
|
|
bin: none
|
|
(3) neighbor class addition, perpetual
|
|
attributes: half, newton off, size
|
|
pair build: half/size/bin/newtoff
|
|
stencil: half/bin/3d/newtoff
|
|
bin: standard
|
|
scanning triangle pairs ...
|
|
... fix smd/wall_surface finished reading triangulated surface
|
|
fix smd/wall_surface created 9472 atoms
|
|
>>========>>========>>========>>========>>========>>========>>========>>========
|
|
Per MPI rank memory allocation (min/avg/max) = 10.41 | 10.41 | 10.41 Mbytes
|
|
Step Temp E_pair E_mol TotEng Press
|
|
0 0 0 0 0 0
|
|
Loop time of 1.19209e-06 on 1 procs for 0 steps with 13350 atoms
|
|
|
|
251.7% CPU use with 1 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 | | 1.192e-06 | | |100.00
|
|
|
|
Nlocal: 13350.0 ave 13350 max 13350 min
|
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
|
Nghost: 0.00000 ave 0 max 0 min
|
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
|
Neighs: 0.00000 ave 0 max 0 min
|
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
|
|
|
Total # of neighbors = 0
|
|
Ave neighs/atom = 0.0000000
|
|
Neighbor list builds = 0
|
|
Dangerous builds = 0
|
|
group surface type 2
|
|
9472 atoms in group surface
|
|
|
|
####################################################################################################
|
|
# TIME INTEGRATION
|
|
####################################################################################################
|
|
fix force_fix surface setforce 0 0 0
|
|
fix dtfix all smd/adjust_dt 0.1 # dynamically adjust time increment every step
|
|
fix integration_fix all smd/integrate_ulsph adjust_radius 1.01 10 15
|
|
|
|
####################################################################################################
|
|
# SPECIFY TRAJECTORY OUTPUT
|
|
####################################################################################################
|
|
variable dumpFreq equal 100
|
|
compute rho all smd/rho
|
|
compute nn all smd/ulsph/num/neighs # number of neighbors for each particle
|
|
compute contact_radius all smd/contact/radius
|
|
compute surface_coords surface smd/triangle/vertices
|
|
|
|
|
|
dump dump_id water custom ${dumpFreq} dump.LAMMPS id type x y z vx vy vz c_rho c_nn c_contact_radius proc
|
|
dump dump_id water custom 100 dump.LAMMPS id type x y z vx vy vz c_rho c_nn c_contact_radius proc
|
|
dump_modify dump_id first yes
|
|
|
|
dump surf_dump surface custom 999999999 surface.LAMMPS id type mol x y z c_surface_coords[1] c_surface_coords[2] c_surface_coords[3] c_surface_coords[4] c_surface_coords[5] c_surface_coords[6] c_surface_coords[7] c_surface_coords[8] c_surface_coords[9]
|
|
dump_modify surf_dump first yes
|
|
|
|
####################################################################################################
|
|
# STATUS OUTPUT
|
|
####################################################################################################
|
|
compute eint all smd/internal/energy
|
|
compute alleint all reduce sum c_eint
|
|
variable etot equal pe+ke+c_alleint+f_gfix # total energy of the system
|
|
thermo 100
|
|
thermo_style custom step dt f_dtfix pe ke v_etot
|
|
|
|
####################################################################################################
|
|
# RUN SIMULATION
|
|
####################################################################################################
|
|
balance 1.1 rcb
|
|
Balancing ...
|
|
Neighbor list info ...
|
|
update every 10 steps, delay 0 steps, check yes
|
|
max neighbors/atom: 10000, page size: 100000
|
|
master list distance cutoff = 11.055
|
|
ghost atom cutoff = 11.055
|
|
binsize = 5.5275, bins = 31 46 40
|
|
3 neighbor lists, perpetual/occasional/extra = 3 0 0
|
|
(1) pair smd/tri_surface, perpetual, skip from (3)
|
|
attributes: half, newton off, size
|
|
pair build: skip/half/size
|
|
stencil: none
|
|
bin: none
|
|
(2) pair smd/ulsph, perpetual, skip from (3)
|
|
attributes: half, newton off, size
|
|
pair build: skip/half/size
|
|
stencil: none
|
|
bin: none
|
|
(3) neighbor class addition, perpetual
|
|
attributes: half, newton off, size
|
|
pair build: half/size/bin/newtoff
|
|
stencil: half/bin/3d/newtoff
|
|
bin: standard
|
|
fix balance_fix all balance 200 1.1 rcb
|
|
run 5000
|
|
Neighbor list info ...
|
|
update every 10 steps, delay 0 steps, check yes
|
|
max neighbors/atom: 10000, page size: 100000
|
|
master list distance cutoff = 11.055
|
|
ghost atom cutoff = 11.055
|
|
binsize = 5.5275, bins = 31 46 40
|
|
3 neighbor lists, perpetual/occasional/extra = 3 0 0
|
|
(1) pair smd/tri_surface, perpetual, skip from (3)
|
|
attributes: half, newton off, size
|
|
pair build: skip/half/size
|
|
stencil: none
|
|
bin: none
|
|
(2) pair smd/ulsph, perpetual, skip from (3)
|
|
attributes: half, newton off, size
|
|
pair build: skip/half/size
|
|
stencil: none
|
|
bin: none
|
|
(3) neighbor class addition, perpetual
|
|
attributes: half, newton off, size
|
|
pair build: half/size/bin/newtoff
|
|
stencil: half/bin/3d/newtoff
|
|
bin: standard
|
|
Per MPI rank memory allocation (min/avg/max) = 16.94 | 16.94 | 16.94 Mbytes
|
|
Step Dt f_dtfix PotEng KinEng v_etot
|
|
0 1e-16 0 0 0 7373.6969
|
|
100 0.070241957 7.4813056 0 0.0013565713 7373.6969
|
|
200 0.070241957 14.505501 0 0.0050998019 7373.6969
|
|
300 0.070241957 21.529697 0 0.011234756 7373.6969
|
|
400 0.070241957 28.553893 0 0.019761435 7373.6969
|
|
500 0.068651004 35.521974 2.9536075e-17 0.030501647 7373.6969
|
|
600 0.063567733 42.018915 1.5012312e-20 0.042319821 7373.6969
|
|
700 0.06328517 48.362291 4.2726605e-17 0.054476749 7373.6969
|
|
800 0.062612972 54.677804 2.9574077e-16 0.061321338 7373.6964
|
|
900 0.061046594 60.843808 2.4764809e-15 0.059143351 7373.6941
|
|
1000 0.060891431 66.91066 9.0780396e-16 0.051813676 7373.6909
|
|
1100 0.060874371 72.951879 1.5743441e-15 0.044736442 7373.6887
|
|
1200 0.061243012 79.052117 1.3268705e-16 0.038992873 7373.6875
|
|
1300 0.06125516 85.174023 4.803371e-17 0.036387177 7373.6872
|
|
1400 0.061802711 91.329247 3.9865332e-17 0.034853455 7373.6871
|
|
1500 0.061687292 97.49874 6.2876669e-17 0.034362699 7373.6871
|
|
1600 0.061476202 103.60196 1.0306933e-16 0.034747965 7373.6871
|
|
1700 0.060566669 109.7162 7.8436106e-17 0.035644692 7373.687
|
|
1800 0.061646486 115.87735 2.9003723e-17 0.03607698 7373.6867
|
|
1900 0.061299326 122.03236 1.7843781e-16 0.03653221 7373.6863
|
|
2000 0.061774936 128.17277 7.8851844e-17 0.036748903 7373.6859
|
|
2100 0.061852608 134.3374 3.4689543e-17 0.036970808 7373.6855
|
|
2200 0.061820375 140.50665 4.9453837e-17 0.037549449 7373.6852
|
|
2300 0.06084664 146.66596 1.0442793e-17 0.038461012 7373.685
|
|
2400 0.061370143 152.82413 2.5065434e-17 0.039575266 7373.6848
|
|
2500 0.061892113 158.99977 2.5338703e-17 0.04067509 7373.6845
|
|
2600 0.061876574 165.18168 2.6500242e-17 0.041556692 7373.6842
|
|
2700 0.061813006 171.32911 9.8478324e-17 0.04246145 7373.6839
|
|
2800 0.061457255 177.47316 6.827231e-17 0.043444855 7373.6837
|
|
2900 0.061925739 183.61894 7.9179167e-16 0.044560297 7373.6835
|
|
3000 0.061893083 189.78619 1.6443425e-16 0.045653853 7373.6832
|
|
3100 0.061462631 195.93892 1.6994763e-17 0.046918113 7373.683
|
|
3200 0.061370761 202.09427 5.8002308e-17 0.047943876 7373.6827
|
|
3300 0.061736844 208.25229 1.6923966e-17 0.049274334 7373.6824
|
|
3400 0.061854818 214.40475 1.4362026e-17 0.050293079 7373.6821
|
|
3500 0.061104996 220.5707 9.6219144e-18 0.051499671 7373.6819
|
|
3600 0.061725483 226.74238 4.6985917e-17 0.052788247 7373.6816
|
|
3700 0.061415526 232.89307 8.9255744e-17 0.054165669 7373.6814
|
|
3800 0.061749225 239.04031 1.2661727e-16 0.055407691 7373.6812
|
|
3900 0.061566598 245.20678 9.7555398e-18 0.056554105 7373.6809
|
|
4000 0.061522412 251.36073 3.612872e-17 0.057775565 7373.6807
|
|
4100 0.061519755 257.49877 3.6475184e-17 0.059026603 7373.6805
|
|
4200 0.061617099 263.65144 1.8654744e-16 0.060402607 7373.6803
|
|
4300 0.061765314 269.79662 1.3742267e-16 0.06198524 7373.6801
|
|
4400 0.060964776 275.94941 5.6067161e-17 0.063217622 7373.6799
|
|
4500 0.061692851 282.10139 4.2434485e-17 0.064775345 7373.6797
|
|
4600 0.061575778 288.25001 6.9753486e-17 0.066331185 7373.6796
|
|
4700 0.061415078 294.38918 2.2377578e-17 0.06793909 7373.6794
|
|
4800 0.061801946 300.5394 1.5457224e-17 0.069523222 7373.6792
|
|
4900 0.061468033 306.68667 4.3328468e-17 0.071106234 7373.6791
|
|
5000 0.061718584 312.83399 2.6787461e-17 0.072510135 7373.6789
|
|
Loop time of 33.9352 on 1 procs for 5000 steps with 13350 atoms
|
|
|
|
99.3% CPU use with 1 MPI tasks x 1 OpenMP threads
|
|
|
|
MPI task timing breakdown:
|
|
Section | min time | avg time | max time |%varavg| %total
|
|
---------------------------------------------------------------
|
|
Pair | 25.103 | 25.103 | 25.103 | 0.0 | 73.97
|
|
Neigh | 6.4624 | 6.4624 | 6.4624 | 0.0 | 19.04
|
|
Comm | 0.038788 | 0.038788 | 0.038788 | 0.0 | 0.11
|
|
Output | 0.57804 | 0.57804 | 0.57804 | 0.0 | 1.70
|
|
Modify | 1.6405 | 1.6405 | 1.6405 | 0.0 | 4.83
|
|
Other | | 0.1125 | | | 0.33
|
|
|
|
Nlocal: 13350.0 ave 13350 max 13350 min
|
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
|
Nghost: 0.00000 ave 0 max 0 min
|
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
|
Neighs: 195088.0 ave 195088 max 195088 min
|
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
|
|
|
Total # of neighbors = 195088
|
|
Ave neighs/atom = 14.613333
|
|
Neighbor list builds = 455
|
|
Dangerous builds = 414
|
|
Total wall time: 0:00:34
|