Merge branch 'master' into swig-wrappers

This commit is contained in:
Axel Kohlmeyer 2020-10-19 21:58:23 -04:00
commit cd444eefe2
No known key found for this signature in database
GPG Key ID: D9B44E93BF0C375A
19 changed files with 2936 additions and 199 deletions

View File

@ -428,10 +428,12 @@ them from a file.
- Interrupting a calculation with CTRL-C will not terminate the
session but rather enforce a timeout to cleanly stop an ongoing
run (more info on timeouts is in the timer command documentation).
run (more info on timeouts is in the :doc:`timer command <timer>`
documentation).
These enhancements makes the LAMMPS shell an attractive choice for
interactive LAMMPS sessions in graphical user interfaces.
These enhancements make the LAMMPS shell an attractive choice for
interactive LAMMPS sessions in graphical desktop environments
(e.g. Gnome, KDE, Cinnamon, XFCE, Windows).
TAB-expansion
^^^^^^^^^^^^^

View File

@ -1,22 +1,21 @@
####################################################################################################
#
# TLSPH example: elongate a 2d strip of aluminum py pulling its ends apart
# TLSPH example: elongate a 2d strip of aluminum py pulling its ends apart
#
# unit system: GPa / mm / ms
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable E equal 70.0 # Young's modulus
variable nu equal 0.3 # Poisson ratio
variable rho equal 1 # initial mass density
variable E equal 70.0 # Young's modulus
variable nu equal 0.3 # Poisson ratio
variable rho equal 1 # initial mass density
variable q1 equal 0.56 # standard artificial viscosity linear coefficient
variable q2 equal 0.0 # standard artificial viscosity quadratic coefficient
variable hg equal 10.0 # hourglass control coefficient
variable cp equal 1.0 # heat capacity of material -- not used here
variable cp equal 1.0 # heat capacity of material -- not used here
variable JC_A equal 0.3241 # Johnson Cook parameters
variable JC_B equal 0.1138
@ -39,10 +38,10 @@ variable eosC6 equal 0.0
# INITIALIZE LAMMPS
####################################################################################################
dimension 2
units si
units si
boundary sm sm p # simulation box boundaries
atom_style smd
atom_modify map array
atom_modify map array
comm_modify vel yes
neigh_modify every 10 delay 0 check yes # re-build neighbor list every 10 steps
newton off
@ -50,37 +49,36 @@ newton off
####################################################################################################
# CREATE INITIAL GEOMETRY
####################################################################################################
variable l0 equal 1.0 # lattice spacing for creating particles
lattice sq ${l0}
region box block -10 10 -10 10 -0.1 0.1 units box
create_box 1 box
create_atoms 1 box
group tlsph type 1
variable l0 equal 1.0 # lattice spacing for creating particles
lattice sq ${l0}
region box block -10 10 -10 10 -0.1 0.1 units box
create_box 1 box
create_atoms 1 box
group tlsph type 1
####################################################################################################
# DISCRETIZATION PARAMETERS
####################################################################################################
variable h equal 2.01*${l0} # SPH smoothing kernel radius
variable vol_one equal ${l0}^2 # volume of one particle -- assuming unit thickness
variable skin equal ${h} # Verlet list range
variable h equal 2.01*${l0} # SPH smoothing kernel radius
variable vol_one equal ${l0}^2 # volume of one particle -- assuming unit thickness
variable skin equal ${h} # Verlet list range
neighbor ${skin} bin
set group all volume ${vol_one}
set group all volume ${vol_one}
set group all smd/mass/density ${rho}
set group all diameter ${h} # set SPH kernel radius
set group all diameter ${h} # set SPH kernel radius
####################################################################################################
# DEFINE VELOCITY BOUNDARY CONDITIONS
####################################################################################################
variable vel0 equal 0.02 # pull velocity
region top block EDGE EDGE 9.0 EDGE EDGE EDGE units box
region bot block EDGE EDGE EDGE -9.1 EDGE EDGE units box
variable vel0 equal 0.02 # pull velocity
region top block EDGE EDGE 9.0 EDGE EDGE EDGE units box
region bot block EDGE EDGE EDGE -9.1 EDGE EDGE units box
group top region top
group bot region bot
variable vel_up equal ${vel0}*(1.0-exp(-0.01*time))
variable vel_down equal -v_vel_up
fix veltop_fix top smd/setvelocity 0 v_vel_up 0
fix velbot_fix bot smd/setvelocity 0 v_vel_down 0
fix veltop_fix top smd/setvel 0 v_vel_up 0
fix velbot_fix bot smd/setvel 0 v_vel_down 0
####################################################################################################
# INTERACTION PHYSICS / MATERIAL MODEL
@ -89,8 +87,8 @@ fix velbot_fix bot smd/setvelocity 0 v_vel_down 0
####################################################################################################
pair_style smd/tlsph
pair_coeff 1 1 *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} &
*EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} &
*JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} &
*EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} &
*JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} &
*FAILURE_MAX_PLASTIC_STRAIN 1.2 &
*END
@ -104,36 +102,36 @@ fix integration_fix tlsph smd/integrate_tlsph
# SPECIFY TRAJECTORY OUTPUT
####################################################################################################
compute dt_atom all smd/tlsph/dt
compute p all smd/plastic/strain
compute epsdot all smd/plastic/strain/rate
compute S all smd/tlsph/stress # Cauchy stress tensor
compute D all smd/tlsph/strain/rate
compute E all smd/tlsph/strain
compute nn all smd/tlsph/num/neighs # number of neighbors for each particle
compute p all smd/plastic/strain
compute epsdot all smd/plastic/strain/rate
compute S all smd/tlsph/stress # Cauchy stress tensor
compute D all smd/tlsph/strain/rate
compute E all smd/tlsph/strain
compute nn all smd/tlsph/num/neighs # number of neighbors for each particle
compute shape all smd/tlsph/shape
compute damage all smd/damage
dump dump_id all custom 100 dump.LAMMPS id type x y z &
c_S[1] c_S[2] c_S[3] c_S[4] c_S[5] c_S[6] c_S[7] c_nn c_p &
c_E[1] c_E[2] c_E[3] c_E[4] c_E[5] c_E[6] &
c_shape[1] c_shape[2] c_shape[3] c_shape[4] c_shape[5] c_shape[6] c_shape[7] &
c_D[1] c_D[2] c_D[4] c_damage radius c_epsdot &
vx vy vz c_dt_atom
dump_modify dump_id first yes
compute damage all smd/damage
dump dump_id all custom 100 dump.LAMMPS id type x y z &
c_S[1] c_S[2] c_S[3] c_S[4] c_S[5] c_S[6] c_S[7] c_nn c_p &
c_E[1] c_E[2] c_E[3] c_E[4] c_E[5] c_E[6] &
c_shape[1] c_shape[2] c_shape[3] c_shape[4] c_shape[5] c_shape[6] c_shape[7] &
c_D[1] c_D[2] c_D[4] c_damage radius c_epsdot &
vx vy vz c_dt_atom
dump_modify dump_id first yes
####################################################################################################
# STATUS OUTPUT
####################################################################################################
variable stress equal 0.5*(f_velbot_fix[2]-f_veltop_fix[2])/20
variable length equal xcm(top,y)-xcm(bot,y)
variable strain equal (v_length-${length})/${length} # engineering strain
variable time equal f_dtfix
fix stress_curve all print 10 "${time} ${strain} ${stress}" file stress_strain.dat screen no
variable stress equal 0.5*(f_velbot_fix[2]-f_veltop_fix[2])/20
variable length equal xcm(top,y)-xcm(bot,y)
variable strain equal (v_length-${length})/${length} # engineering strain
variable time equal f_dtfix
fix stress_curve all print 10 "${time} ${strain} ${stress}" file stress_strain.dat screen no
thermo 100
thermo_style custom step dt f_dtfix time v_strain
thermo 100
thermo_style custom step dt f_dtfix time v_strain
####################################################################################################
# RUN SIMULATION
####################################################################################################
#fix 2 all enforce2d
run 25000
#fix 2 all enforce2d
run 2000

View File

@ -0,0 +1,242 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
####################################################################################################
#
# TLSPH example: elongate a 2d strip of aluminum py pulling its ends apart
#
# unit system: GPa / mm / ms
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable E equal 70.0 # Young's modulus
variable nu equal 0.3 # Poisson ratio
variable rho equal 1 # initial mass density
variable q1 equal 0.56 # standard artificial viscosity linear coefficient
variable q2 equal 0.0 # standard artificial viscosity quadratic coefficient
variable hg equal 10.0 # hourglass control coefficient
variable cp equal 1.0 # heat capacity of material -- not used here
variable JC_A equal 0.3241 # Johnson Cook parameters
variable JC_B equal 0.1138
variable JC_N equal 0.42
variable JC_C equal 0 #0.002
variable JC_M equal 1.34
variable JC_epsdot0 equal 1.0e-3 # 1/s = 1/(1000 ms)
variable Troom equal 298.15
variable Tmelt equal 500.15
variable eosC0 equal 0.0 # Polynomial EOS parameters
variable eosC1 equal 74.2
variable eosC2 equal 60.5
variable eosC3 equal 36.5
variable eosC4 equal 1.96
variable eosC5 equal 0.0
variable eosC6 equal 0.0
####################################################################################################
# INITIALIZE LAMMPS
####################################################################################################
dimension 2
units si
boundary sm sm p # simulation box boundaries
atom_style smd
atom_modify map array
comm_modify vel yes
neigh_modify every 10 delay 0 check yes # re-build neighbor list every 10 steps
newton off
####################################################################################################
# CREATE INITIAL GEOMETRY
####################################################################################################
variable l0 equal 1.0 # lattice spacing for creating particles
lattice sq ${l0}
lattice sq 1
Lattice spacing in x,y,z = 1.0000000 1.0000000 1.0000000
region box block -10 10 -10 10 -0.1 0.1 units box
create_box 1 box
Created orthogonal box = (-10.000000 -10.000000 -0.1) to (10.000000 10.000000 0.1)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 400 atoms
create_atoms CPU = 0.001 seconds
group tlsph type 1
400 atoms in group tlsph
####################################################################################################
# DISCRETIZATION PARAMETERS
####################################################################################################
variable h equal 2.01*${l0} # SPH smoothing kernel radius
variable h equal 2.01*1
variable vol_one equal ${l0}^2 # volume of one particle -- assuming unit thickness
variable vol_one equal 1^2
variable skin equal ${h} # Verlet list range
variable skin equal 2.01
neighbor ${skin} bin
neighbor 2.01 bin
set group all volume ${vol_one}
set group all volume 1
Setting atom values ...
400 settings made for volume
set group all smd/mass/density ${rho}
set group all smd/mass/density 1
Setting atom values ...
400 settings made for smd/mass/density
set group all diameter ${h} # set SPH kernel radius
set group all diameter 2.01
Setting atom values ...
400 settings made for diameter
####################################################################################################
# DEFINE VELOCITY BOUNDARY CONDITIONS
####################################################################################################
variable vel0 equal 0.02 # pull velocity
region top block EDGE EDGE 9.0 EDGE EDGE EDGE units box
region bot block EDGE EDGE EDGE -9.1 EDGE EDGE units box
group top region top
20 atoms in group top
group bot region bot
20 atoms in group bot
variable vel_up equal ${vel0}*(1.0-exp(-0.01*time))
variable vel_up equal 0.02*(1.0-exp(-0.01*time))
variable vel_down equal -v_vel_up
fix veltop_fix top smd/setvel 0 v_vel_up 0
fix velbot_fix bot smd/setvel 0 v_vel_down 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 smd/tlsph
pair_coeff 1 1 *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 ${nu} ${q1} ${q2} ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 ${q1} ${q2} ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 ${q2} ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 0 ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 0 0.001 ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 0 0.001 298.15 ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 0 0.001 298.15 500.15 ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 0 0.001 298.15 500.15 1.34 *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
####################################################################################################
# TIME INTEGRATION
####################################################################################################
fix dtfix tlsph smd/adjust_dt 0.1 # dynamically adjust time increment every step
fix integration_fix tlsph smd/integrate_tlsph
####################################################################################################
# SPECIFY TRAJECTORY OUTPUT
####################################################################################################
compute dt_atom all smd/tlsph/dt
compute p all smd/plastic/strain
compute epsdot all smd/plastic/strain/rate
compute S all smd/tlsph/stress # Cauchy stress tensor
compute D all smd/tlsph/strain/rate
compute E all smd/tlsph/strain
compute nn all smd/tlsph/num/neighs # number of neighbors for each particle
compute shape all smd/tlsph/shape
compute damage all smd/damage
dump dump_id all custom 100 dump.LAMMPS id type x y z c_S[1] c_S[2] c_S[3] c_S[4] c_S[5] c_S[6] c_S[7] c_nn c_p c_E[1] c_E[2] c_E[3] c_E[4] c_E[5] c_E[6] c_shape[1] c_shape[2] c_shape[3] c_shape[4] c_shape[5] c_shape[6] c_shape[7] c_D[1] c_D[2] c_D[4] c_damage radius c_epsdot vx vy vz c_dt_atom
dump_modify dump_id first yes
####################################################################################################
# STATUS OUTPUT
####################################################################################################
variable stress equal 0.5*(f_velbot_fix[2]-f_veltop_fix[2])/20
variable length equal xcm(top,y)-xcm(bot,y)
variable strain equal (v_length-${length})/${length} # engineering strain
variable strain equal (v_length-19)/${length}
variable strain equal (v_length-19)/19
variable time equal f_dtfix
fix stress_curve all print 10 "${time} ${strain} ${stress}" file stress_strain.dat screen no
thermo 100
thermo_style custom step dt f_dtfix time v_strain
####################################################################################################
# RUN SIMULATION
####################################################################################################
#fix 2 all enforce2d
run 2000
Neighbor list info ...
update every 10 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.02
ghost atom cutoff = 4.02
binsize = 2.01, bins = 10 10 1
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair smd/tlsph, perpetual
attributes: half, newton off, size
pair build: half/size/bin/newtoff
stencil: half/bin/2d/newtoff
bin: standard
TLSPH neighbors:
max # of neighbors for a single particle = 12
average # of neighbors/particle in group tlsph = 11.01
Per MPI rank memory allocation (min/avg/max) = 30.47 | 30.47 | 30.47 Mbytes
Step Dt f_dtfix Time v_strain
0 1e-16 0 0 0
100 0.020705726 2.0498925 2.0705726 4.436443e-05
200 0.01898385 4.0324033 3.79677 0.00016515223
300 0.019051906 5.9333066 5.7155717 0.00035049273
400 0.018996472 7.8305099 7.5985889 0.00060670224
500 0.019027435 9.73206 9.5137174 0.000934622
600 0.019051342 11.6361 11.430805 0.001332781
700 0.019065137 13.54205 13.345596 0.0017999344
800 0.019077723 15.449268 15.262178 0.0023347057
900 0.019085073 17.357448 17.176565 0.0029358076
1000 0.019092376 19.266354 19.092376 0.0036019613
1100 0.018942457 21.168409 20.836702 0.0043265389
1200 0.017710951 22.995927 21.253142 0.0050558892
1300 0.018403356 24.84804 23.924363 0.0058616451
1400 0.0186654 26.710384 26.13156 0.0067328424
1500 0.019022154 28.58178 28.533231 0.0076688571
1600 0.018562934 30.467266 29.700694 0.0086745455
1700 0.020657894 32.34779 35.118419 0.0097303803
1800 0.018013596 34.258245 32.424473 0.01087327
1900 0.018883512 36.128876 35.878672 0.012024842
2000 0.01899594 37.998637 37.99188 0.013227222
Loop time of 1.35888 on 1 procs for 2000 steps with 400 atoms
99.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 | 1.2722 | 1.2722 | 1.2722 | 0.0 | 93.62
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00010085 | 0.00010085 | 0.00010085 | 0.0 | 0.01
Output | 0.063841 | 0.063841 | 0.063841 | 0.0 | 4.70
Modify | 0.021427 | 0.021427 | 0.021427 | 0.0 | 1.58
Other | | 0.001282 | | | 0.09
Nlocal: 400.000 ave 400 max 400 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: 8054.00 ave 8054 max 8054 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 8054
Ave neighs/atom = 20.135000
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -0,0 +1,242 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
####################################################################################################
#
# TLSPH example: elongate a 2d strip of aluminum py pulling its ends apart
#
# unit system: GPa / mm / ms
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable E equal 70.0 # Young's modulus
variable nu equal 0.3 # Poisson ratio
variable rho equal 1 # initial mass density
variable q1 equal 0.56 # standard artificial viscosity linear coefficient
variable q2 equal 0.0 # standard artificial viscosity quadratic coefficient
variable hg equal 10.0 # hourglass control coefficient
variable cp equal 1.0 # heat capacity of material -- not used here
variable JC_A equal 0.3241 # Johnson Cook parameters
variable JC_B equal 0.1138
variable JC_N equal 0.42
variable JC_C equal 0 #0.002
variable JC_M equal 1.34
variable JC_epsdot0 equal 1.0e-3 # 1/s = 1/(1000 ms)
variable Troom equal 298.15
variable Tmelt equal 500.15
variable eosC0 equal 0.0 # Polynomial EOS parameters
variable eosC1 equal 74.2
variable eosC2 equal 60.5
variable eosC3 equal 36.5
variable eosC4 equal 1.96
variable eosC5 equal 0.0
variable eosC6 equal 0.0
####################################################################################################
# INITIALIZE LAMMPS
####################################################################################################
dimension 2
units si
boundary sm sm p # simulation box boundaries
atom_style smd
atom_modify map array
comm_modify vel yes
neigh_modify every 10 delay 0 check yes # re-build neighbor list every 10 steps
newton off
####################################################################################################
# CREATE INITIAL GEOMETRY
####################################################################################################
variable l0 equal 1.0 # lattice spacing for creating particles
lattice sq ${l0}
lattice sq 1
Lattice spacing in x,y,z = 1.0000000 1.0000000 1.0000000
region box block -10 10 -10 10 -0.1 0.1 units box
create_box 1 box
Created orthogonal box = (-10.000000 -10.000000 -0.1) to (10.000000 10.000000 0.1)
2 by 2 by 1 MPI processor grid
create_atoms 1 box
Created 400 atoms
create_atoms CPU = 0.000 seconds
group tlsph type 1
400 atoms in group tlsph
####################################################################################################
# DISCRETIZATION PARAMETERS
####################################################################################################
variable h equal 2.01*${l0} # SPH smoothing kernel radius
variable h equal 2.01*1
variable vol_one equal ${l0}^2 # volume of one particle -- assuming unit thickness
variable vol_one equal 1^2
variable skin equal ${h} # Verlet list range
variable skin equal 2.01
neighbor ${skin} bin
neighbor 2.01 bin
set group all volume ${vol_one}
set group all volume 1
Setting atom values ...
400 settings made for volume
set group all smd/mass/density ${rho}
set group all smd/mass/density 1
Setting atom values ...
400 settings made for smd/mass/density
set group all diameter ${h} # set SPH kernel radius
set group all diameter 2.01
Setting atom values ...
400 settings made for diameter
####################################################################################################
# DEFINE VELOCITY BOUNDARY CONDITIONS
####################################################################################################
variable vel0 equal 0.02 # pull velocity
region top block EDGE EDGE 9.0 EDGE EDGE EDGE units box
region bot block EDGE EDGE EDGE -9.1 EDGE EDGE units box
group top region top
20 atoms in group top
group bot region bot
20 atoms in group bot
variable vel_up equal ${vel0}*(1.0-exp(-0.01*time))
variable vel_up equal 0.02*(1.0-exp(-0.01*time))
variable vel_down equal -v_vel_up
fix veltop_fix top smd/setvel 0 v_vel_up 0
fix velbot_fix bot smd/setvel 0 v_vel_down 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 smd/tlsph
pair_coeff 1 1 *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 ${nu} ${q1} ${q2} ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 ${q1} ${q2} ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 ${q2} ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 ${hg} ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 ${cp} *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL ${eosC0} ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 ${eosC1} ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 ${eosC2} ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 ${eosC3} ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 ${eosC4} ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 ${eosC5} ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 ${eosC6} *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK ${JC_A} ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 ${JC_B} ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 ${JC_N} ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 ${JC_C} ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 0 ${JC_epsdot0} ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 0 0.001 ${Troom} ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 0 0.001 298.15 ${Tmelt} ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 0 0.001 298.15 500.15 ${JC_M} *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
pair_coeff 1 1 *COMMON 1 70 0.3 0.56 0 10 1 *EOS_POLYNOMIAL 0 74.2 60.5 36.5 1.96 0 0 *JOHNSON_COOK 0.3241 0.1138 0.42 0 0.001 298.15 500.15 1.34 *FAILURE_MAX_PLASTIC_STRAIN 1.2 *END
####################################################################################################
# TIME INTEGRATION
####################################################################################################
fix dtfix tlsph smd/adjust_dt 0.1 # dynamically adjust time increment every step
fix integration_fix tlsph smd/integrate_tlsph
####################################################################################################
# SPECIFY TRAJECTORY OUTPUT
####################################################################################################
compute dt_atom all smd/tlsph/dt
compute p all smd/plastic/strain
compute epsdot all smd/plastic/strain/rate
compute S all smd/tlsph/stress # Cauchy stress tensor
compute D all smd/tlsph/strain/rate
compute E all smd/tlsph/strain
compute nn all smd/tlsph/num/neighs # number of neighbors for each particle
compute shape all smd/tlsph/shape
compute damage all smd/damage
dump dump_id all custom 100 dump.LAMMPS id type x y z c_S[1] c_S[2] c_S[3] c_S[4] c_S[5] c_S[6] c_S[7] c_nn c_p c_E[1] c_E[2] c_E[3] c_E[4] c_E[5] c_E[6] c_shape[1] c_shape[2] c_shape[3] c_shape[4] c_shape[5] c_shape[6] c_shape[7] c_D[1] c_D[2] c_D[4] c_damage radius c_epsdot vx vy vz c_dt_atom
dump_modify dump_id first yes
####################################################################################################
# STATUS OUTPUT
####################################################################################################
variable stress equal 0.5*(f_velbot_fix[2]-f_veltop_fix[2])/20
variable length equal xcm(top,y)-xcm(bot,y)
variable strain equal (v_length-${length})/${length} # engineering strain
variable strain equal (v_length-19)/${length}
variable strain equal (v_length-19)/19
variable time equal f_dtfix
fix stress_curve all print 10 "${time} ${strain} ${stress}" file stress_strain.dat screen no
thermo 100
thermo_style custom step dt f_dtfix time v_strain
####################################################################################################
# RUN SIMULATION
####################################################################################################
#fix 2 all enforce2d
run 2000
Neighbor list info ...
update every 10 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.02
ghost atom cutoff = 4.02
binsize = 2.01, bins = 10 10 1
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair smd/tlsph, perpetual
attributes: half, newton off, size
pair build: half/size/bin/newtoff
stencil: half/bin/2d/newtoff
bin: standard
TLSPH neighbors:
max # of neighbors for a single particle = 12
average # of neighbors/particle in group tlsph = 11.01
Per MPI rank memory allocation (min/avg/max) = 30.42 | 30.43 | 30.44 Mbytes
Step Dt f_dtfix Time v_strain
0 1e-16 0 0 0
100 0.020705726 2.0498925 2.0705726 4.436443e-05
200 0.01898385 4.0324033 3.79677 0.00016515223
300 0.019051906 5.9333066 5.7155717 0.00035049273
400 0.018996472 7.8305099 7.5985889 0.00060670224
500 0.019027435 9.73206 9.5137174 0.000934622
600 0.019051342 11.6361 11.430805 0.001332781
700 0.019065137 13.54205 13.345596 0.0017999344
800 0.019077723 15.449268 15.262178 0.0023347057
900 0.019085073 17.357448 17.176565 0.0029358076
1000 0.019092376 19.266354 19.092376 0.0036019613
1100 0.018942457 21.168409 20.836702 0.0043265389
1200 0.017710951 22.995927 21.253142 0.0050558892
1300 0.018403356 24.84804 23.924363 0.0058616452
1400 0.0186654 26.710384 26.13156 0.0067328424
1500 0.019022154 28.58178 28.533231 0.0076688571
1600 0.018562934 30.467266 29.700694 0.0086745455
1700 0.020657894 32.34779 35.118419 0.0097303803
1800 0.018013596 34.258245 32.424473 0.01087327
1900 0.018883511 36.128876 35.878671 0.012024842
2000 0.018995939 37.998637 37.991879 0.013227222
Loop time of 0.443737 on 4 procs for 2000 steps with 400 atoms
97.4% 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.36926 | 0.37278 | 0.37567 | 0.4 | 84.01
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.013601 | 0.016496 | 0.018179 | 1.4 | 3.72
Output | 0.018589 | 0.018805 | 0.019446 | 0.3 | 4.24
Modify | 0.0314 | 0.034684 | 0.038016 | 1.3 | 7.82
Other | | 0.0009738 | | | 0.22
Nlocal: 100.000 ave 100 max 100 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 110.250 ave 125 max 96 min
Histogram: 1 0 0 0 2 0 0 0 0 1
Neighs: 2373.00 ave 2373 max 2373 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 9492
Ave neighs/atom = 23.730000
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -35,7 +35,7 @@ variable Cp equal 1.0 # heat capacity -- not used here
####################################################################################################
# INITIALIZE LAMMPS
####################################################################################################
units si
units si
dimension 2
boundary sm sm p
atom_style smd
@ -53,7 +53,7 @@ variable l0 equal 0.05 # initial particle lattice spacing
region box block 0 6 0 8 -0.01 0.01 units box
create_box 3 box
region water block 0.25 1 0.25 4 EDGE EDGE units box
region container block 0.15 5.85 0.15 8 -0.01 0.01 units box side out # container
region container block 0.15 5.85 0.15 8 -0.01 0.01 units box side out # container
lattice sq ${l0}
create_atoms 1 region water
group water type 1
@ -102,11 +102,11 @@ fix gfix all gravity -9.81 vector 0 1 0 # add gravity
pair_style hybrid/overlay smd/ulsph *DENSITY_CONTINUITY *VELOCITY_GRADIENT *NO_GRADIENT_CORRECTION &
smd/tlsph smd/hertz ${contact_scale}
pair_coeff 1 1 smd/ulsph *COMMON ${rho_water} ${c0} ${q1} ${Cp} 0 &
*EOS_TAIT 7.0 &
*END
*EOS_TAIT 7.0 &
*END
pair_coeff 2 2 smd/tlsph *COMMON ${rho_obj} ${E} ${nu} ${q1} ${q2} ${Hg} ${Cp} &
*STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} &
*EOS_LINEAR &
*EOS_LINEAR &
*END
pair_coeff 3 3 none
pair_coeff 1 2 smd/hertz ${contact_stiffness}
@ -118,7 +118,7 @@ pair_coeff 2 2 smd/hertz ${contact_stiffness}
# TIME INTEGRATION
####################################################################################################
fix dtfix tlsph smd/adjust_dt 0.1 # dynamically adjust time increment every step
fix integration_fix_water water smd/integrate_ulsph adjust_radius 1.01 10 15
fix integration_fix_water water smd/integrate_ulsph adjust_radius 1.01 10 15
fix integration_fix_solids solids smd/integrate_tlsph
####################################################################################################
@ -150,7 +150,5 @@ thermo_modify lost ignore
####################################################################################################
# RUN SIMULATION
####################################################################################################
fix balance_fix all balance 1000 0.9 rcb # load balancing for MPI
run 40000
fix balance_fix all balance 500 0.9 rcb # load balancing for MPI
run 10000

View File

@ -0,0 +1,369 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
####################################################################################################
#
# combined TLSPH / ULSPH example
#
# A column of water is placed in a container and allowed to collapse unter the
# influence of gravity. Several solid objects are also placed in the container.
# The water flow pushes the solid objects around until the system comes to halt due to
# viscous damping. The solid objects have a lower mass density than water and finally float on
# the water surface.
#
# Water is modelled using the Updated Lagrangian formalism. Solid bodies are modelled using the
# Total Lagrangian formalism. Contact forces between container, solid bodies, and water prevent
# mutual penetration of these physical entities.
#
# unit system: GPa / mm / ms
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable rho_water equal 1000 # mass density water
variable rho_obj equal 300 # mass density solid objects
variable c0 equal 10.0 # speed of sound for water
variable E equal 5*${c0}*${c0}*${rho_water} # Young's modulus for solid objects
variable E equal 5*10*${c0}*${rho_water}
variable E equal 5*10*10*${rho_water}
variable E equal 5*10*10*1000
variable nu equal 0.3 # Poisson ratio for solid objects
variable sigma_yield equal 0.1*${E} # plastic yield stress for solid objects
variable sigma_yield equal 0.1*500000
variable hardening_parameter equal 0 # plastic hardening parameter for solid objects
variable contact_stiffness equal 2.5*${c0}^2*${rho_water} # contact force amplitude
variable contact_stiffness equal 2.5*10^2*${rho_water}
variable contact_stiffness equal 2.5*10^2*1000
variable q1 equal 1.0 # artificial viscosity
variable q2 equal 0.0 # artificial viscosity
variable Hg equal 10 # Hourglass control coefficient for solid objects
variable Cp equal 1.0 # heat capacity -- not used here
####################################################################################################
# INITIALIZE LAMMPS
####################################################################################################
units si
dimension 2
boundary sm sm p
atom_style smd
neigh_modify every 5 delay 0 check yes
comm_modify vel yes
newton off
atom_modify map array
comm_style tiled
####################################################################################################
# CREATE INITIAL GEOMETRY
####################################################################################################
# create simulation box, a container, and a water column
variable l0 equal 0.05 # initial particle lattice spacing
region box block 0 6 0 8 -0.01 0.01 units box
create_box 3 box
Created orthogonal box = (0.0000000 0.0000000 -0.01) to (6.0000000 8.0000000 0.01)
1 by 1 by 1 MPI processor grid
region water block 0.25 1 0.25 4 EDGE EDGE units box
region container block 0.15 5.85 0.15 8 -0.01 0.01 units box side out # container
lattice sq ${l0}
lattice sq 0.05
Lattice spacing in x,y,z = 0.05 0.05 0.05
create_atoms 1 region water
Created 1216 atoms
create_atoms CPU = 0.001 seconds
group water type 1
1216 atoms in group water
create_atoms 3 region container
Created 1302 atoms
create_atoms CPU = 0.003 seconds
group container type 3
1302 atoms in group container
# create some solid objects to be pushed around
region obj1 prism 2 2.6 0.25 0.85 EDGE EDGE 0.3 0 0 units box
region obj2 block 3 3.6 0.25 0.85 EDGE EDGE units box
region obj3 sphere 4.3 0.5 0 0.25 units box
create_atoms 2 region obj1
Created 146 atoms
create_atoms CPU = 0.000 seconds
create_atoms 2 region obj2
Created 156 atoms
create_atoms CPU = 0.000 seconds
create_atoms 2 region obj3
Created 77 atoms
create_atoms CPU = 0.000 seconds
group solids type 2
379 atoms in group solids
group tlsph type 2
379 atoms in group tlsph
####################################################################################################
# DISCRETIZATION PARAMETERS
####################################################################################################
variable h equal 2.5*${l0} # SPH kernel diameter
variable h equal 2.5*0.05
variable vol_one equal ${l0}^2 # initial particle volume for 2d simulation
variable vol_one equal 0.05^2
set group all diameter ${h}
set group all diameter 0.125
Setting atom values ...
2897 settings made for diameter
set group all smd/contact/radius ${l0}
set group all smd/contact/radius 0.05
Setting atom values ...
2897 settings made for smd/contact/radius
set group all volume ${vol_one}
set group all volume 0.0025
Setting atom values ...
2897 settings made for volume
set group all smd/mass/density ${rho_water}
set group all smd/mass/density 1000
Setting atom values ...
2897 settings made for smd/mass/density
set group solids smd/mass/density ${rho_obj}
set group solids smd/mass/density 300
Setting atom values ...
379 settings made for smd/mass/density
variable contact_scale equal 1.5 # scale factor to increase contact gap between bodies
variable skin equal ${h} # Verlet list range
variable skin equal 0.125
neighbor ${skin} bin
neighbor 0.125 bin
####################################################################################################
# DEFINE BOUNDARY CONDITIONS
#
# note that the the particles constituting the container are simply not integrated in time,
# thus these particles never move. This is equivalent to a fixed displacement boundary condition.
####################################################################################################
fix gfix all gravity -9.81 vector 0 1 0 # add gravity
####################################################################################################
# INTERACTION PHYSICS / MATERIAL MODEL
# 3 different pair styles are used:
# - updated Lagrangian SPH for water
# - total Lagrangian SPH for solid objects
# - a repulsive Hertzian potential for contact forces between different physical bodies
####################################################################################################
pair_style hybrid/overlay smd/ulsph *DENSITY_CONTINUITY *VELOCITY_GRADIENT *NO_GRADIENT_CORRECTION smd/tlsph smd/hertz ${contact_scale}
pair_style hybrid/overlay smd/ulsph *DENSITY_CONTINUITY *VELOCITY_GRADIENT *NO_GRADIENT_CORRECTION smd/tlsph smd/hertz 1.5
pair_coeff 1 1 smd/ulsph *COMMON ${rho_water} ${c0} ${q1} ${Cp} 0 *EOS_TAIT 7.0 *END
pair_coeff 1 1 smd/ulsph *COMMON 1000 ${c0} ${q1} ${Cp} 0 *EOS_TAIT 7.0 *END
pair_coeff 1 1 smd/ulsph *COMMON 1000 10 ${q1} ${Cp} 0 *EOS_TAIT 7.0 *END
pair_coeff 1 1 smd/ulsph *COMMON 1000 10 1 ${Cp} 0 *EOS_TAIT 7.0 *END
pair_coeff 1 1 smd/ulsph *COMMON 1000 10 1 1 0 *EOS_TAIT 7.0 *END
pair_coeff 2 2 smd/tlsph *COMMON ${rho_obj} ${E} ${nu} ${q1} ${q2} ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 ${E} ${nu} ${q1} ${q2} ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 ${nu} ${q1} ${q2} ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 ${q1} ${q2} ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 ${q2} ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 0 ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 0 10 ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 0 10 1 *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 0 10 1 *STRENGTH_LINEAR_PLASTIC 50000 ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 0 10 1 *STRENGTH_LINEAR_PLASTIC 50000 0 *EOS_LINEAR *END
pair_coeff 3 3 none
pair_coeff 1 2 smd/hertz ${contact_stiffness}
pair_coeff 1 2 smd/hertz 250000
pair_coeff 1 3 smd/hertz ${contact_stiffness}
pair_coeff 1 3 smd/hertz 250000
pair_coeff 2 3 smd/hertz ${contact_stiffness}
pair_coeff 2 3 smd/hertz 250000
pair_coeff 2 2 smd/hertz ${contact_stiffness}
pair_coeff 2 2 smd/hertz 250000
####################################################################################################
# TIME INTEGRATION
####################################################################################################
fix dtfix tlsph smd/adjust_dt 0.1 # dynamically adjust time increment every step
fix integration_fix_water water smd/integrate_ulsph adjust_radius 1.01 10 15
fix integration_fix_solids solids smd/integrate_tlsph
####################################################################################################
# SPECIFY TRAJECTORY OUTPUT
####################################################################################################
compute eint all smd/internal/energy
compute contact_radius all smd/contact/radius
compute S solids smd/tlsph/stress
compute nn water smd/ulsph/num/neighs
compute epl solids smd/plastic/strain
compute vol all smd/vol
compute rho all smd/rho
dump dump_id all custom 100 dump.LAMMPS id type x y fx fy vx vy c_eint c_contact_radius mol c_S[1] c_S[2] c_S[4] mass radius c_epl c_vol c_rho c_nn proc
dump_modify dump_id first yes
####################################################################################################
# STATUS OUTPUT
####################################################################################################
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 ke pe v_etot c_alleint f_dtfix dt
thermo_modify lost ignore
####################################################################################################
# RUN SIMULATION
####################################################################################################
fix balance_fix all balance 500 0.9 rcb # load balancing for MPI
run 10000
Neighbor list info ...
update every 5 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 0.25
ghost atom cutoff = 0.25
binsize = 0.125, bins = 49 65 1
4 neighbor lists, perpetual/occasional/extra = 4 0 0
(1) pair smd/ulsph, perpetual, skip from (4)
attributes: half, newton off, size
pair build: skip/half/size
stencil: none
bin: none
(2) pair smd/tlsph, perpetual, skip from (4)
attributes: half, newton off, size
pair build: skip/half/size
stencil: none
bin: none
(3) pair smd/hertz, perpetual, skip from (4)
attributes: half, newton off, size
pair build: skip/half/size
stencil: none
bin: none
(4) neighbor class addition, perpetual
attributes: half, newton off, size
pair build: half/size/bin/newtoff
stencil: half/bin/2d/newtoff
bin: standard
TLSPH neighbors:
max # of neighbors for a single particle = 20
average # of neighbors/particle in group tlsph = 16.1953
Per MPI rank memory allocation (min/avg/max) = 33.92 | 33.92 | 33.92 Mbytes
Step KinEng PotEng v_etot c_alleint f_dtfix Dt
0 0 2061.4431 160890.25 0 0 1e-16
100 110.38483 1974.0319 160890.91 83.958227 0.025850826 0.00026152059
200 410.9998 1980.3731 160890.98 96.652105 0.052002352 0.00026164496
300 862.92747 2032.91 160890.79 103.49371 0.078169741 0.00026169298
400 1475.0476 2060.9237 160890.74 132.98616 0.10434325 0.00026167602
500 2222.5964 2085.0285 160890.87 179.57 0.13051706 0.00026168892
600 3094.6488 2120.0243 160890.99 242.61995 0.1566886 0.00026173387
700 4105.8784 2146.5075 160891.07 325.53014 0.18285775 0.00026171391
800 5247.7398 2172.2379 160891.16 425.42573 0.20902811 0.00026168535
900 6499.9584 2205.5968 160891.26 542.68096 0.2351982 0.00026169831
1000 7860.7882 2232.9696 160891.28 673.519 0.2613694 0.00026172796
1100 9341.2891 2236.5819 160891.32 809.66021 0.28754068 0.00026172733
1200 10912.001 2237.9563 160891.42 957.43887 0.31371344 0.00026172798
1300 12552.004 2245.8632 160891.59 1132.7199 0.33988625 0.0002617283
1400 14246.853 2262.0913 160891.8 1347.5916 0.36605911 0.00026172825
1500 15866.379 2366.879 160892.63 1639.1772 0.39219431 0.00026009533
1600 17341.368 2517.4637 160893.05 2086.5435 0.41827701 0.00026165088
1700 18867.401 2571.2558 160893.24 2594.7072 0.44444158 0.00026137908
1800 20459.221 2547.2114 160893.12 3092.9812 0.47060324 0.0002617438
1900 21960.773 2564.3855 160893.58 3629.442 0.49677656 0.00026172693
2000 23319.918 2622.9544 160893.92 4259.9621 0.52294912 0.00026172494
2100 24377.644 2882.5329 160894.56 4973.9483 0.54911541 0.00026137954
2200 25430.827 3039.9698 160895.1 5752.9782 0.57521248 0.00026087071
2300 26271.379 3123.1708 160895.67 6746.5541 0.60135585 0.00026159423
2400 27059.111 3139.5429 160895.59 7742.1161 0.6275021 0.00026160385
2500 27508.933 3368.076 160895.85 8718.2215 0.65366646 0.00026162198
2600 28094.936 3418.1261 160894.07 9562.0049 0.67981916 0.0002615721
2700 28787.355 3310.3589 160893.77 10267.434 0.70597716 0.0002615586
2800 29336.45 3297.5857 160893.38 10825.402 0.73214103 0.00026174244
2900 29991.889 3179.6992 160891.61 11184.363 0.75818764 0.00025998806
3000 30688.958 3013.4253 160891.61 11366.212 0.78428218 0.00026137377
3100 31326.322 2795.4081 160891.15 11492.417 0.81040043 0.00026111003
3200 31847.633 2617.773 160890.98 11569.31 0.83655938 0.00026139625
3300 32313.831 2444.1933 160890.95 11616.693 0.86271621 0.00026157968
3400 32691.546 2310.6105 160890.99 11674.542 0.88887621 0.00026144794
3500 32192.445 2870.8241 160890.46 11913.837 0.9150388 0.00026154188
3600 32817.36 2517.3965 160895.3 11970.017 0.94119262 0.00026171503
3700 31147.98 3146.4192 160888.4 13325.589 0.96476165 0.00020512804
3800 29823.459 3988.1418 160898.94 14208.015 0.99059864 0.00025968427
3900 28452.626 4228.8969 160905.02 15702.514 1.0158802 0.00024057395
4000 27568.981 4385.2884 160905.71 16683.879 1.0396349 0.0002605873
4100 27240.819 3813.649 160898.61 17767.991 1.0655522 0.00025821485
4200 27150.863 3629.3834 160898.28 18107.953 1.0914009 0.00026010449
4300 27134.331 2948.4054 160896.47 18664.208 1.1173095 0.00026013826
4400 26571.162 2794.6958 160895.88 19130.289 1.1431826 0.00025962739
4500 25871.24 2841.0684 160895.94 19484.233 1.1691267 0.00025898302
4600 25449.245 2662.3591 160894.92 19770.669 1.1950856 0.00025957714
4700 25225.6 2401.4379 160896.04 19959.29 1.2210258 0.00025930411
4800 24363.351 2394.7252 160897.91 20568.393 1.2469465 0.00025909397
4900 23268.777 2558.0367 160897.79 21275.551 1.272844 0.00025888676
5000 22039.476 2810.8742 160898.56 22035.37 1.2987289 0.0002588652
5100 20669.517 2910.051 160899.73 23055.916 1.3246192 0.00025893693
5200 19036.065 3098.8498 160899.79 24164.997 1.3505143 0.00025894764
5300 17399.525 3280.7348 160898.46 25169.697 1.376407 0.00025890002
5400 16126.916 3392.9894 160896.37 25743.497 1.4023122 0.00025923267
5500 15388.847 3177.435 160894.77 25962.578 1.4282294 0.00025912999
5600 14980.948 2724.2506 160894.07 25957.678 1.4541406 0.00025905524
5700 14384.933 2438.1412 160894.21 25895.334 1.4800347 0.00025890247
5800 13543.66 2288.3169 160894.71 25919.508 1.5059251 0.00025889292
5900 12600.42 2192.65 160894.98 26013.86 1.5318119 0.00025882608
6000 11648.248 2143.9198 160894.96 26130.569 1.5576947 0.00025883277
6100 10761.864 2121.7963 160894.92 26241.411 1.5835774 0.00025882777
6200 9959.5714 2120.1236 160894.95 26348.925 1.6094602 0.00025882797
6300 9237.1394 2135.2961 160894.96 26461.367 1.635343 0.00025882787
6400 8583.6115 2168.4548 160894.99 26576.994 1.6612257 0.00025882781
6500 7963.7449 2220.8972 160895.15 26712.75 1.6871085 0.00025882777
6600 7357.548 2285.6468 160895.27 26877.932 1.7129913 0.00025882809
6700 6773.6754 2354.0802 160895.3 27059.723 1.7388741 0.00025882734
6800 6253.0571 2397.1912 160895.22 27237.433 1.7647569 0.00025882765
6900 5832.7247 2402.7609 160895 27380.969 1.7906397 0.00025882771
7000 5516.4297 2378.9422 160894.75 27476.491 1.8165224 0.00025882773
7100 5271.1627 2357.0086 160894.57 27525.724 1.8424099 0.00025901825
7200 5096.0631 2300.66 160894.64 27569.84 1.8683152 0.00025899781
7300 4969.7797 2232.2586 160894.64 27618.573 1.8942048 0.00025885715
7400 4869.8176 2188.5356 160894.71 27675.257 1.9200895 0.00025884712
7500 4808.727 2172.7763 160894.71 27740.697 1.945974 0.00025884589
7600 4539.9514 2287.6288 160895.88 27970.304 1.9718584 0.00025884503
7700 4529.6955 2235.6214 160895.4 28196.427 1.9977429 0.00025884464
7800 4477.9527 2348.3717 160895.47 28374.364 2.0236273 0.00025884449
7900 4288.2969 2488.4568 160895.53 28696.463 2.0495118 0.00025884444
8000 4153.7247 2662.9557 160896.02 28917.434 2.0753962 0.00025884442
8100 4178.1958 2575.103 160895.99 29186.715 2.1012807 0.00025884442
8200 4204.5618 2475.0301 160895.28 29450.605 2.1271651 0.00025884442
8300 4315.6439 2378.0932 160895.56 29647.245 2.1530496 0.00025884442
8400 4431.4266 2326.1925 160895.27 29835.155 2.178934 0.00025884442
8500 4628.3002 2311.6485 160895.03 29960.204 2.2048184 0.00025884442
8600 4893.5362 2313.4775 160895 30057.182 2.2307029 0.00025884442
8700 5243.973 2283.0985 160895.01 30156.886 2.2565873 0.00025884442
8800 5637.0332 2255.1708 160895.14 30272.664 2.2824718 0.00025884442
8900 6072.5792 2245.488 160895.16 30395.221 2.3083562 0.00025884442
9000 6512.8182 2274.8746 160895.33 30538.04 2.3342407 0.00025884442
9100 6874.6824 2372.6251 160895.6 30728.839 2.3601294 0.00025922655
9200 6883.7477 2587.4645 160896.82 31161.953 2.3860453 0.00025740259
9300 7629.5904 2328.0088 160895.79 31341.451 2.4118195 0.0002595483
9400 8020.8221 2296.2422 160895.88 31686.827 2.4376763 0.0002585237
9500 8406.9256 2366.0621 160895.73 31965.641 2.4635669 0.00025891925
9600 8806.1892 2441.5481 160895.85 32227.658 2.4894503 0.00025855469
9700 9031.0562 2619.8477 160897.08 32535.074 2.5153342 0.00025891516
9800 8813.7912 2933.735 160897.31 33097.937 2.5412258 0.0002589147
9900 8761.2124 2904.7802 160897.01 33694.449 2.5670974 0.00025891454
10000 8882.8711 2694.9889 160897.39 34132.839 2.5929888 0.00025891448
Loop time of 26.9823 on 1 procs for 10000 steps with 2897 atoms
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 24.759 | 24.759 | 24.759 | 0.0 | 91.76
Neigh | 0.34705 | 0.34705 | 0.34705 | 0.0 | 1.29
Comm | 0.0076244 | 0.0076244 | 0.0076244 | 0.0 | 0.03
Output | 1.3042 | 1.3042 | 1.3042 | 0.0 | 4.83
Modify | 0.49473 | 0.49473 | 0.49473 | 0.0 | 1.83
Other | | 0.06985 | | | 0.26
Nlocal: 2897.00 ave 2897 max 2897 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: 38433.0 ave 38433 max 38433 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 38433
Ave neighs/atom = 13.266483
Neighbor list builds = 286
Dangerous builds = 0
Total wall time: 0:00:27

View File

@ -0,0 +1,369 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
####################################################################################################
#
# combined TLSPH / ULSPH example
#
# A column of water is placed in a container and allowed to collapse unter the
# influence of gravity. Several solid objects are also placed in the container.
# The water flow pushes the solid objects around until the system comes to halt due to
# viscous damping. The solid objects have a lower mass density than water and finally float on
# the water surface.
#
# Water is modelled using the Updated Lagrangian formalism. Solid bodies are modelled using the
# Total Lagrangian formalism. Contact forces between container, solid bodies, and water prevent
# mutual penetration of these physical entities.
#
# unit system: GPa / mm / ms
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable rho_water equal 1000 # mass density water
variable rho_obj equal 300 # mass density solid objects
variable c0 equal 10.0 # speed of sound for water
variable E equal 5*${c0}*${c0}*${rho_water} # Young's modulus for solid objects
variable E equal 5*10*${c0}*${rho_water}
variable E equal 5*10*10*${rho_water}
variable E equal 5*10*10*1000
variable nu equal 0.3 # Poisson ratio for solid objects
variable sigma_yield equal 0.1*${E} # plastic yield stress for solid objects
variable sigma_yield equal 0.1*500000
variable hardening_parameter equal 0 # plastic hardening parameter for solid objects
variable contact_stiffness equal 2.5*${c0}^2*${rho_water} # contact force amplitude
variable contact_stiffness equal 2.5*10^2*${rho_water}
variable contact_stiffness equal 2.5*10^2*1000
variable q1 equal 1.0 # artificial viscosity
variable q2 equal 0.0 # artificial viscosity
variable Hg equal 10 # Hourglass control coefficient for solid objects
variable Cp equal 1.0 # heat capacity -- not used here
####################################################################################################
# INITIALIZE LAMMPS
####################################################################################################
units si
dimension 2
boundary sm sm p
atom_style smd
neigh_modify every 5 delay 0 check yes
comm_modify vel yes
newton off
atom_modify map array
comm_style tiled
####################################################################################################
# CREATE INITIAL GEOMETRY
####################################################################################################
# create simulation box, a container, and a water column
variable l0 equal 0.05 # initial particle lattice spacing
region box block 0 6 0 8 -0.01 0.01 units box
create_box 3 box
Created orthogonal box = (0.0000000 0.0000000 -0.01) to (6.0000000 8.0000000 0.01)
2 by 2 by 1 MPI processor grid
region water block 0.25 1 0.25 4 EDGE EDGE units box
region container block 0.15 5.85 0.15 8 -0.01 0.01 units box side out # container
lattice sq ${l0}
lattice sq 0.05
Lattice spacing in x,y,z = 0.05 0.05 0.05
create_atoms 1 region water
Created 1216 atoms
create_atoms CPU = 0.001 seconds
group water type 1
1216 atoms in group water
create_atoms 3 region container
Created 1302 atoms
create_atoms CPU = 0.001 seconds
group container type 3
1302 atoms in group container
# create some solid objects to be pushed around
region obj1 prism 2 2.6 0.25 0.85 EDGE EDGE 0.3 0 0 units box
region obj2 block 3 3.6 0.25 0.85 EDGE EDGE units box
region obj3 sphere 4.3 0.5 0 0.25 units box
create_atoms 2 region obj1
Created 146 atoms
create_atoms CPU = 0.000 seconds
create_atoms 2 region obj2
Created 156 atoms
create_atoms CPU = 0.000 seconds
create_atoms 2 region obj3
Created 77 atoms
create_atoms CPU = 0.000 seconds
group solids type 2
379 atoms in group solids
group tlsph type 2
379 atoms in group tlsph
####################################################################################################
# DISCRETIZATION PARAMETERS
####################################################################################################
variable h equal 2.5*${l0} # SPH kernel diameter
variable h equal 2.5*0.05
variable vol_one equal ${l0}^2 # initial particle volume for 2d simulation
variable vol_one equal 0.05^2
set group all diameter ${h}
set group all diameter 0.125
Setting atom values ...
2897 settings made for diameter
set group all smd/contact/radius ${l0}
set group all smd/contact/radius 0.05
Setting atom values ...
2897 settings made for smd/contact/radius
set group all volume ${vol_one}
set group all volume 0.0025
Setting atom values ...
2897 settings made for volume
set group all smd/mass/density ${rho_water}
set group all smd/mass/density 1000
Setting atom values ...
2897 settings made for smd/mass/density
set group solids smd/mass/density ${rho_obj}
set group solids smd/mass/density 300
Setting atom values ...
379 settings made for smd/mass/density
variable contact_scale equal 1.5 # scale factor to increase contact gap between bodies
variable skin equal ${h} # Verlet list range
variable skin equal 0.125
neighbor ${skin} bin
neighbor 0.125 bin
####################################################################################################
# DEFINE BOUNDARY CONDITIONS
#
# note that the the particles constituting the container are simply not integrated in time,
# thus these particles never move. This is equivalent to a fixed displacement boundary condition.
####################################################################################################
fix gfix all gravity -9.81 vector 0 1 0 # add gravity
####################################################################################################
# INTERACTION PHYSICS / MATERIAL MODEL
# 3 different pair styles are used:
# - updated Lagrangian SPH for water
# - total Lagrangian SPH for solid objects
# - a repulsive Hertzian potential for contact forces between different physical bodies
####################################################################################################
pair_style hybrid/overlay smd/ulsph *DENSITY_CONTINUITY *VELOCITY_GRADIENT *NO_GRADIENT_CORRECTION smd/tlsph smd/hertz ${contact_scale}
pair_style hybrid/overlay smd/ulsph *DENSITY_CONTINUITY *VELOCITY_GRADIENT *NO_GRADIENT_CORRECTION smd/tlsph smd/hertz 1.5
pair_coeff 1 1 smd/ulsph *COMMON ${rho_water} ${c0} ${q1} ${Cp} 0 *EOS_TAIT 7.0 *END
pair_coeff 1 1 smd/ulsph *COMMON 1000 ${c0} ${q1} ${Cp} 0 *EOS_TAIT 7.0 *END
pair_coeff 1 1 smd/ulsph *COMMON 1000 10 ${q1} ${Cp} 0 *EOS_TAIT 7.0 *END
pair_coeff 1 1 smd/ulsph *COMMON 1000 10 1 ${Cp} 0 *EOS_TAIT 7.0 *END
pair_coeff 1 1 smd/ulsph *COMMON 1000 10 1 1 0 *EOS_TAIT 7.0 *END
pair_coeff 2 2 smd/tlsph *COMMON ${rho_obj} ${E} ${nu} ${q1} ${q2} ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 ${E} ${nu} ${q1} ${q2} ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 ${nu} ${q1} ${q2} ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 ${q1} ${q2} ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 ${q2} ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 0 ${Hg} ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 0 10 ${Cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 0 10 1 *STRENGTH_LINEAR_PLASTIC ${sigma_yield} ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 0 10 1 *STRENGTH_LINEAR_PLASTIC 50000 ${hardening_parameter} *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 300 500000 0.3 1 0 10 1 *STRENGTH_LINEAR_PLASTIC 50000 0 *EOS_LINEAR *END
pair_coeff 3 3 none
pair_coeff 1 2 smd/hertz ${contact_stiffness}
pair_coeff 1 2 smd/hertz 250000
pair_coeff 1 3 smd/hertz ${contact_stiffness}
pair_coeff 1 3 smd/hertz 250000
pair_coeff 2 3 smd/hertz ${contact_stiffness}
pair_coeff 2 3 smd/hertz 250000
pair_coeff 2 2 smd/hertz ${contact_stiffness}
pair_coeff 2 2 smd/hertz 250000
####################################################################################################
# TIME INTEGRATION
####################################################################################################
fix dtfix tlsph smd/adjust_dt 0.1 # dynamically adjust time increment every step
fix integration_fix_water water smd/integrate_ulsph adjust_radius 1.01 10 15
fix integration_fix_solids solids smd/integrate_tlsph
####################################################################################################
# SPECIFY TRAJECTORY OUTPUT
####################################################################################################
compute eint all smd/internal/energy
compute contact_radius all smd/contact/radius
compute S solids smd/tlsph/stress
compute nn water smd/ulsph/num/neighs
compute epl solids smd/plastic/strain
compute vol all smd/vol
compute rho all smd/rho
dump dump_id all custom 100 dump.LAMMPS id type x y fx fy vx vy c_eint c_contact_radius mol c_S[1] c_S[2] c_S[4] mass radius c_epl c_vol c_rho c_nn proc
dump_modify dump_id first yes
####################################################################################################
# STATUS OUTPUT
####################################################################################################
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 ke pe v_etot c_alleint f_dtfix dt
thermo_modify lost ignore
####################################################################################################
# RUN SIMULATION
####################################################################################################
fix balance_fix all balance 500 0.9 rcb # load balancing for MPI
run 10000
Neighbor list info ...
update every 5 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 0.25
ghost atom cutoff = 0.25
binsize = 0.125, bins = 49 65 1
4 neighbor lists, perpetual/occasional/extra = 4 0 0
(1) pair smd/ulsph, perpetual, skip from (4)
attributes: half, newton off, size
pair build: skip/half/size
stencil: none
bin: none
(2) pair smd/tlsph, perpetual, skip from (4)
attributes: half, newton off, size
pair build: skip/half/size
stencil: none
bin: none
(3) pair smd/hertz, perpetual, skip from (4)
attributes: half, newton off, size
pair build: skip/half/size
stencil: none
bin: none
(4) neighbor class addition, perpetual
attributes: half, newton off, size
pair build: half/size/bin/newtoff
stencil: half/bin/2d/newtoff
bin: standard
TLSPH neighbors:
max # of neighbors for a single particle = 20
average # of neighbors/particle in group tlsph = 16.1953
Per MPI rank memory allocation (min/avg/max) = 33.75 | 34.05 | 34.21 Mbytes
Step KinEng PotEng v_etot c_alleint f_dtfix Dt
0 0 2061.4431 160890.25 0 0 1e-16
100 110.38483 1974.0319 160890.91 83.958227 0.025850826 0.00026152059
200 410.9998 1980.3731 160890.98 96.652105 0.052002352 0.00026164496
300 862.92747 2032.91 160890.79 103.49371 0.078169741 0.00026169298
400 1475.0476 2060.9237 160890.74 132.98616 0.10434325 0.00026167602
500 2222.5964 2085.0285 160890.87 179.57 0.13051706 0.00026168892
600 3094.6488 2120.0243 160890.99 242.61995 0.1566886 0.00026173387
700 4105.8784 2146.5075 160891.07 325.53014 0.18285775 0.00026171391
800 5247.7398 2172.2379 160891.16 425.42573 0.20902811 0.00026168535
900 6499.9584 2205.5968 160891.26 542.68096 0.2351982 0.00026169831
1000 7860.7882 2232.9696 160891.28 673.519 0.2613694 0.00026172796
1100 9341.2891 2236.5819 160891.32 809.66021 0.28754068 0.00026172733
1200 10912.001 2237.9563 160891.42 957.43887 0.31371344 0.00026172798
1300 12552.004 2245.8632 160891.59 1132.7199 0.33988625 0.0002617283
1400 14246.853 2262.0913 160891.8 1347.5916 0.36605911 0.00026172825
1500 15866.379 2366.879 160892.63 1639.1772 0.39219431 0.00026009533
1600 17341.368 2517.4637 160893.05 2086.5435 0.41827701 0.00026165088
1700 18867.401 2571.2558 160893.24 2594.7072 0.44444158 0.00026137908
1800 20459.221 2547.2114 160893.12 3092.9812 0.47060324 0.0002617438
1900 21960.773 2564.3855 160893.58 3629.442 0.49677656 0.00026172693
2000 23319.918 2622.9544 160893.92 4259.9621 0.52294912 0.00026172494
2100 24377.644 2882.5329 160894.56 4973.9483 0.54911541 0.00026137954
2200 25430.827 3039.9698 160895.1 5752.9782 0.57521248 0.00026087071
2300 26271.379 3123.1708 160895.67 6746.5541 0.60135585 0.00026159423
2400 27059.111 3139.5429 160895.59 7742.1161 0.6275021 0.00026160385
2500 27508.933 3368.076 160895.85 8718.2215 0.65366646 0.00026162198
2600 28094.936 3418.1261 160894.07 9562.0049 0.67981916 0.0002615721
2700 28787.355 3310.3589 160893.77 10267.434 0.70597716 0.0002615586
2800 29336.45 3297.5857 160893.38 10825.402 0.73214103 0.00026174244
2900 29991.889 3179.6992 160891.61 11184.363 0.75818764 0.00025998806
3000 30688.958 3013.4253 160891.61 11366.212 0.78428218 0.00026137377
3100 31326.322 2795.4081 160891.15 11492.417 0.81040043 0.00026111003
3200 31847.633 2617.773 160890.98 11569.31 0.83655938 0.00026139625
3300 32313.831 2444.1932 160890.95 11616.693 0.86271621 0.00026157968
3400 32691.546 2310.6105 160890.99 11674.542 0.88887621 0.00026144794
3500 32192.445 2870.8241 160890.46 11913.837 0.9150388 0.00026154188
3600 32817.36 2517.3965 160895.3 11970.017 0.94119262 0.00026171503
3700 31147.98 3146.4192 160888.4 13325.589 0.96476165 0.00020512803
3800 29823.459 3988.1418 160898.94 14208.015 0.99059864 0.00025968427
3900 28452.626 4228.8969 160905.02 15702.514 1.0158802 0.00024057395
4000 27568.981 4385.2883 160905.71 16683.879 1.0396349 0.0002605873
4100 27240.818 3813.649 160898.61 17767.991 1.0655522 0.00025821485
4200 27150.863 3629.3834 160898.28 18107.953 1.0914009 0.00026010449
4300 27134.33 2948.4054 160896.47 18664.208 1.1173095 0.00026013826
4400 26571.162 2794.6958 160895.88 19130.289 1.1431826 0.00025962739
4500 25871.24 2841.0684 160895.94 19484.233 1.1691267 0.00025898302
4600 25449.245 2662.3592 160894.92 19770.669 1.1950856 0.00025957714
4700 25225.6 2401.4379 160896.04 19959.29 1.2210258 0.00025930411
4800 24363.351 2394.7252 160897.91 20568.393 1.2469465 0.00025909397
4900 23268.777 2558.0367 160897.79 21275.551 1.272844 0.00025888676
5000 22039.476 2810.8741 160898.56 22035.37 1.2987289 0.0002588652
5100 20669.517 2910.051 160899.73 23055.916 1.3246192 0.00025893693
5200 19036.065 3098.8499 160899.79 24164.997 1.3505143 0.00025894764
5300 17399.525 3280.7348 160898.46 25169.697 1.376407 0.00025890002
5400 16126.916 3392.9894 160896.37 25743.496 1.4023122 0.00025923267
5500 15388.847 3177.4351 160894.77 25962.578 1.4282294 0.00025912999
5600 14980.949 2724.2506 160894.07 25957.678 1.4541406 0.00025905524
5700 14384.933 2438.1412 160894.21 25895.334 1.4800347 0.00025890247
5800 13543.66 2288.3169 160894.71 25919.508 1.5059251 0.00025889292
5900 12600.419 2192.6499 160894.98 26013.86 1.5318119 0.00025882608
6000 11648.247 2143.9198 160894.96 26130.569 1.5576947 0.00025883277
6100 10761.864 2121.7962 160894.92 26241.412 1.5835774 0.00025882777
6200 9959.5712 2120.1235 160894.95 26348.925 1.6094602 0.00025882797
6300 9237.1393 2135.296 160894.96 26461.367 1.635343 0.00025882787
6400 8583.6121 2168.4542 160894.99 26576.994 1.6612257 0.00025882781
6500 7963.7472 2220.8952 160895.15 26712.75 1.6871085 0.00025882777
6600 7357.5525 2285.645 160895.27 26877.93 1.7129913 0.00025882809
6700 6773.6829 2354.0838 160895.3 27059.712 1.7388741 0.00025882734
6800 6253.0639 2397.1935 160895.22 27237.424 1.7647569 0.00025882765
6900 5832.7325 2402.7565 160895 27380.966 1.7906397 0.00025882771
7000 5516.4341 2378.9426 160894.75 27476.487 1.8165224 0.00025882773
7100 5271.1656 2357.0101 160894.57 27525.721 1.8424099 0.00025901825
7200 5096.0661 2300.6606 160894.64 27569.838 1.8683152 0.00025899781
7300 4969.7828 2232.2569 160894.64 27618.571 1.8942048 0.00025885715
7400 4869.8207 2188.5342 160894.71 27675.254 1.9200895 0.00025884712
7500 4808.7304 2172.7734 160894.71 27740.694 1.945974 0.00025884589
7600 4539.9554 2287.6262 160895.88 27970.299 1.9718584 0.00025884503
7700 4529.6991 2235.6187 160895.4 28196.422 1.9977429 0.00025884464
7800 4477.9563 2348.37 160895.47 28374.358 2.0236273 0.00025884449
7900 4288.3014 2488.457 160895.53 28696.456 2.0495118 0.00025884444
8000 4153.7215 2662.9637 160896.02 28917.429 2.0753962 0.00025884442
8100 4178.193 2575.1107 160895.99 29186.71 2.1012807 0.00025884442
8200 4204.5591 2475.0319 160895.28 29450.604 2.1271651 0.00025884442
8300 4315.6393 2378.0944 160895.56 29647.245 2.1530496 0.00025884442
8400 4431.42 2326.1965 160895.27 29835.156 2.178934 0.00025884442
8500 4628.293 2311.6543 160895.03 29960.205 2.2048184 0.00025884442
8600 4893.5297 2313.4828 160895 30057.185 2.2307029 0.00025884442
8700 5243.9676 2283.1015 160895.01 30156.89 2.2565873 0.00025884442
8800 5637.0288 2255.1729 160895.14 30272.669 2.2824718 0.00025884442
8900 6072.5778 2245.4877 160895.16 30395.226 2.3083562 0.00025884442
9000 6512.8195 2274.8733 160895.33 30538.044 2.3342407 0.00025884442
9100 6874.6866 2372.6178 160895.6 30728.848 2.3601294 0.0002592265
9200 6883.747 2587.4625 160896.82 31161.961 2.3860453 0.00025740262
9300 7629.5733 2328.0119 160895.79 31341.47 2.4118195 0.0002595483
9400 8020.8094 2296.2399 160895.88 31686.846 2.4376763 0.00025852365
9500 8406.9195 2366.0657 160895.73 31965.648 2.4635669 0.00025891926
9600 8806.1858 2441.5546 160895.85 32227.66 2.4894503 0.00025855472
9700 9031.0664 2619.8307 160897.08 32535.083 2.5153342 0.00025891516
9800 8813.7579 2933.7362 160897.31 33097.97 2.5412258 0.0002589147
9900 8761.1593 2904.8099 160897.01 33694.479 2.5670974 0.00025891454
10000 8882.8378 2695.0029 160897.39 34132.865 2.5929888 0.00025891448
Loop time of 29.8501 on 4 procs for 10000 steps with 2897 atoms
59.8% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 15.651 | 18.012 | 20.1 | 38.3 | 60.34
Neigh | 0.082616 | 0.1133 | 0.14896 | 7.2 | 0.38
Comm | 0.98751 | 1.5704 | 2.2966 | 38.0 | 5.26
Output | 0.80062 | 0.83063 | 0.90213 | 4.6 | 2.78
Modify | 6.6226 | 8.727 | 11.077 | 53.8 | 29.24
Other | | 0.5967 | | | 2.00
Nlocal: 724.250 ave 726 max 723 min
Histogram: 1 0 0 2 0 0 0 0 0 1
Nghost: 217.750 ave 295 max 74 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Neighs: 10752.8 ave 22829 max 1748 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Total # of neighbors = 43011
Ave neighs/atom = 14.846738
Neighbor list builds = 286
Dangerous builds = 0
Total wall time: 0:00:29

View File

@ -9,12 +9,11 @@
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable c0 equal 10.0 # speed of sound for fluid
variable rho equal 1.0e-6 # initial mass density
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
@ -26,7 +25,7 @@ variable contact_stiffness equal 0.1*${K}
# INITIALIZE LAMMPS
####################################################################################################
dimension 3
units si
units si
boundary f f f # simulation box boundaries
atom_style smd
atom_modify map array
@ -38,31 +37,31 @@ newton off
####################################################################################################
# CREATE INITIAL GEOMETRY
####################################################################################################
variable l0 equal 5.0 # lattice spacing for creating particles
lattice sc ${l0}
region box block -110 60 -30 220 -90 130 units box
create_box 2 box
region particles cylinder y 0 -30 47 135 200 units box
create_atoms 1 region particles
variable l0 equal 5.0 # lattice spacing for creating particles
lattice sc ${l0}
region box block -110 60 -30 220 -90 130 units box
create_box 2 box
region particles cylinder y 0 -30 47 135 200 units box
create_atoms 1 region particles
group water type 1
####################################################################################################
# DISCRETIZATION PARAMETERS
####################################################################################################
variable h equal 2.01*${l0} # SPH smoothing kernel radius
variable vol_one equal ${l0}^3 # volume of one particle -- assuming unit thickness
variable skin equal 0.1*${h} # Verlet list range
variable h equal 2.01*${l0} # SPH smoothing kernel radius
variable vol_one equal ${l0}^3 # volume of one particle -- assuming unit thickness
variable skin equal 0.1*${h} # Verlet list range
neighbor ${skin} bin
variable cr equal ${l0}/2
set group all smd/contact/radius ${cr}
set group all volume ${vol_one}
set group all volume ${vol_one}
set group all smd/mass/density ${rho}
set group all diameter ${h} # set SPH kernel radius
set group all diameter ${h} # set SPH kernel radius
####################################################################################################
# DEFINE GRAVITY BOUNDARY CONDITION
####################################################################################################
fix gfix all gravity 0.01 vector 0.0 -1. 0.0
fix gfix all gravity 0.01 vector 0.0 -1. 0.0
####################################################################################################
# INTERACTION PHYSICS / MATERIAL MODEL
@ -72,13 +71,11 @@ fix gfix all gravity 0.01 vector 0.0 -1. 0.0
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
*EOS_TAIT 2 &
*END
pair_coeff 2 2 none
pair_coeff 1 2 smd/tri_surface ${contact_stiffness}
####################################################################################################
# LOAD STL SURFACE
####################################################################################################
@ -97,15 +94,15 @@ 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 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_modify dump_id first yes
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_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] &
@ -119,12 +116,12 @@ dump_modify surf_dump first yes
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
thermo 100
thermo_style custom step dt f_dtfix pe ke v_etot
####################################################################################################
# RUN SIMULATION
####################################################################################################
balance 1.1 rcb
fix balance_fix all balance 1000 1.1 rcb
run 20000
fix balance_fix all balance 200 1.1 rcb
run 5000

View File

@ -0,0 +1,335 @@
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

View File

@ -0,0 +1,339 @@
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 2 by 2 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) = 9.998 | 10.04 | 10.17 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 0 0 0 0
Loop time of 1.97887e-05 on 4 procs for 0 steps with 13350 atoms
103.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 | | 1.979e-05 | | |100.00
Nlocal: 3337.50 ave 6452 max 836 min
Histogram: 1 0 0 1 1 0 0 0 0 1
Nghost: 0.00000 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0.00000 ave 0 max 0 min
Histogram: 4 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
rebalancing time: 0.004 seconds
iteration count = 0
initial/final maximal load/proc = 6452.0000 3338.0000
initial/final imbalance factor = 1.9331835 1.0001498
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) = 13.83 | 14.29 | 14.77 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.068651003 35.521974 3.3398251e-17 0.030501227 7373.6969
600 0.063584088 42.017746 5.0216152e-21 0.042318622 7373.6969
700 0.063273268 48.360764 2.869923e-17 0.054475156 7373.697
800 0.062596325 54.675638 1.914049e-16 0.061317608 7373.6964
900 0.060956889 60.838664 1.364032e-16 0.059099685 7373.694
1000 0.060500918 66.902834 7.7879913e-16 0.052025026 7373.6908
1100 0.061006314 72.967816 8.8948385e-16 0.043977414 7373.6885
1200 0.061106341 79.06191 1.2108608e-16 0.039591388 7373.6873
1300 0.061575846 85.205075 4.3893276e-17 0.035450911 7373.6871
1400 0.061574282 91.365864 1.1854613e-17 0.033362633 7373.687
1500 0.061497834 97.533763 4.6436735e-17 0.03269109 7373.6869
1600 0.061595974 103.70193 1.6602311e-17 0.033272424 7373.6869
1700 0.061563704 109.8721 2.2645323e-16 0.034038708 7373.6867
1800 0.06059329 116.01016 6.1435625e-17 0.034550695 7373.6864
1900 0.061467912 122.16549 4.8739314e-16 0.03488115 7373.686
2000 0.061562246 128.31107 3.5375613e-17 0.035132319 7373.6855
2100 0.061653756 134.48162 1.0915664e-16 0.035417433 7373.6852
2200 0.061651709 140.64731 8.9201563e-17 0.035984037 7373.6849
2300 0.061689901 146.82024 9.6641953e-18 0.036737453 7373.6847
2400 0.061831964 152.95634 5.2029274e-17 0.037566234 7373.6844
2500 0.061545083 159.11879 1.0704726e-16 0.038487643 7373.6842
2600 0.061718412 165.27525 2.209067e-17 0.039629082 7373.684
2700 0.061888857 171.43147 1.4203448e-16 0.040587002 7373.6837
2800 0.060734321 177.58356 1.6497386e-17 0.041695514 7373.6835
2900 0.061593696 183.7246 2.6908238e-16 0.04260728 7373.6832
3000 0.061359875 189.87309 7.6944155e-17 0.043473709 7373.6829
3100 0.061757906 196.04331 1.3564873e-17 0.044354763 7373.6827
3200 0.061673522 202.20766 8.5854387e-17 0.045594109 7373.6824
3300 0.061806603 208.37498 4.9782287e-17 0.046679326 7373.6822
3400 0.061456829 214.56062 1.6007817e-16 0.047908363 7373.6819
3500 0.061670152 220.72476 1.2073319e-16 0.049083832 7373.6817
3600 0.061694334 226.89174 5.9467418e-17 0.050344595 7373.6815
3700 0.061950743 233.06903 2.7093066e-16 0.05171424 7373.6812
3800 0.061870535 239.21714 3.0291981e-17 0.053188154 7373.681
3900 0.061445215 245.37229 1.3950612e-16 0.054616384 7373.6808
4000 0.061577186 251.51495 1.5979833e-16 0.055992071 7373.6806
4100 0.061641242 257.67172 7.9579236e-18 0.057167166 7373.6804
4200 0.061600879 263.82304 1.6463047e-17 0.058701188 7373.6802
4300 0.061689229 269.98083 1.2308103e-16 0.05994652 7373.68
4400 0.061755315 276.14174 7.6188916e-17 0.06118267 7373.6798
4500 0.061268331 282.29296 5.5093198e-16 0.062460243 7373.6796
4600 0.061568693 288.44732 4.6189329e-17 0.063787422 7373.6794
4700 0.061343927 294.60421 6.4688633e-17 0.065177329 7373.6793
4800 0.061421519 300.75275 1.2254993e-16 0.066908319 7373.6792
4900 0.061604108 306.88136 4.0399992e-17 0.068693568 7373.679
5000 0.061805479 313.02216 1.3760324e-16 0.07042394 7373.6789
Loop time of 32.2245 on 4 procs for 5000 steps with 13350 atoms
60.8% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 18.107 | 19.756 | 21.776 | 37.4 | 61.31
Neigh | 1.5053 | 2.2024 | 2.872 | 36.3 | 6.83
Comm | 1.874 | 2.5067 | 3.064 | 26.8 | 7.78
Output | 0.59172 | 0.61037 | 0.65691 | 3.5 | 1.89
Modify | 3.5805 | 6.8465 | 9.8575 | 96.2 | 21.25
Other | | 0.3025 | | | 0.94
Nlocal: 3337.50 ave 3580 max 3072 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Nghost: 853.250 ave 1111 max 624 min
Histogram: 1 0 0 1 0 1 0 0 0 1
Neighs: 51525.8 ave 67469 max 37698 min
Histogram: 1 0 1 0 0 1 0 0 0 1
Total # of neighbors = 206103
Ave neighs/atom = 15.438427
Neighbor list builds = 455
Dangerous builds = 414
Total wall time: 0:00:32

View File

@ -1,7 +1,7 @@
####################################################################################################
#
# TLSPH example: Two rubber rings impact each other.
# TLSPH example: Two rubber rings impact each other.
#
# unit system: GPa / mm / ms
#
@ -10,7 +10,7 @@
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable rho equal 1 # initial mass density
variable rho equal 1 # initial mass density
variable E equal 1.0 # Young's modulus
variable nu equal 0.3 # Poisson ratio
variable sigma_yield equal 0.051 # plastic yield stress
@ -24,10 +24,10 @@ variable cp equal 1.0 # heat capacity of material -- not used here
# INITIALIZE LAMMPS
####################################################################################################
dimension 3
units si
units si
boundary sm sm sm # simulation box boundaries
atom_style smd
atom_modify map array
atom_modify map array
comm_modify vel yes
neigh_modify every 10 delay 0 check yes # re-build neighbor list every 10 steps
newton off
@ -57,7 +57,7 @@ set group all smd/contact/radius 1.0
# DEFINE INITIAL VELOCITY BOUNDARY CONDITIONS
####################################################################################################
variable vel equal 100.0 # initial velocity
velocity left set ${vel} 0 0 sum no units box
velocity left set ${vel} 0 0 sum no units box
velocity right set -${vel} 0 0 sum no units box
####################################################################################################
@ -68,11 +68,11 @@ velocity right set -${vel} 0 0 sum no units box
pair_style hybrid/overlay smd/tlsph smd/hertz 1.0 # activate Total-Lagrangian SPH
pair_coeff 1 1 smd/tlsph *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} &
*STRENGTH_LINEAR &
*EOS_LINEAR &
*EOS_LINEAR &
*END
pair_coeff 2 2 smd/tlsph *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} &
*STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 &
*EOS_LINEAR &
*EOS_LINEAR &
*END
pair_coeff 1 1 smd/hertz ${contact_stiffness}
pair_coeff 2 2 smd/hertz ${contact_stiffness}

View File

@ -0,0 +1,253 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
####################################################################################################
#
# TLSPH example: Two rubber rings impact each other.
#
# unit system: GPa / mm / ms
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable rho equal 1 # initial mass density
variable E equal 1.0 # Young's modulus
variable nu equal 0.3 # Poisson ratio
variable sigma_yield equal 0.051 # plastic yield stress
variable contact_stiffness equal 0.2 # contact stress for contact force between rings
variable q1 equal 0.06 # standard artificial viscosity linear coefficient
variable q2 equal 0.0 # standard artificial viscosity quadratic coefficient
variable hg equal 10.0 # hourglass control coefficient
variable cp equal 1.0 # heat capacity of material -- not used here
####################################################################################################
# INITIALIZE LAMMPS
####################################################################################################
dimension 3
units si
boundary sm sm sm # simulation box boundaries
atom_style smd
atom_modify map array
comm_modify vel yes
neigh_modify every 10 delay 0 check yes # re-build neighbor list every 10 steps
newton off
####################################################################################################
# READ GEOMETRY
####################################################################################################
read_data washer_hex_adjusted.data # read geometry of one rubber ring from file
Reading data file ...
orthogonal box = (-12.000000 -12.000000 -0.5) to (12.200000 12.200000 5.5500000)
1 by 1 by 1 MPI processor grid
reading atoms ...
480 atoms
reading velocities ...
480 velocities
read_data CPU = 0.002 seconds
replicate 2 1 1
Replicating atoms ...
WARNING: Replicating in a non-periodic dimension (src/replicate.cpp:72)
orthogonal box = (-9.4111500 -9.4111500 0.832728) to (33.811150 12.200000 5.5500000)
1 by 1 by 1 MPI processor grid
960 atoms
replicate CPU = 0.001 seconds
region right block 12.2 EDGE EDGE EDGE EDGE EDGE units box
group right region right
480 atoms in group right
group left subtract all right
480 atoms in group left
set group left type 1
Setting atom values ...
480 settings made for type
set group right type 2
Setting atom values ...
480 settings made for type
group tlsph union left right
960 atoms in group tlsph
####################################################################################################
# DISCRETIZATION PARAMETERS
####################################################################################################
variable l0 equal 0.3 # we need to set a length scale for the neighbor list skin
variable skin equal 4.0*${l0} # Verlet list range
variable skin equal 4.0*0.3
neighbor ${skin} bin
neighbor 1.2 bin
set group all smd/contact/radius 1.0
Setting atom values ...
960 settings made for smd/contact/radius
####################################################################################################
# DEFINE INITIAL VELOCITY BOUNDARY CONDITIONS
####################################################################################################
variable vel equal 100.0 # initial velocity
velocity left set ${vel} 0 0 sum no units box
velocity left set 100 0 0 sum no units box
velocity right set -${vel} 0 0 sum no units box
velocity right set -100 0 0 sum no units box
####################################################################################################
# INTERACTION PHYSICS / MATERIAL MODEL
# One rubber ring is linear elastic, the other rubber ring is elastic-ideal plastic.
# Contact forces between both rubber rings are used to realize physical contact.
####################################################################################################
pair_style hybrid/overlay smd/tlsph smd/hertz 1.0 # activate Total-Lagrangian SPH
pair_coeff 1 1 smd/tlsph *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 0.3 ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 0.3 0.06 ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 0.3 0.06 0 ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 0.3 0.06 0 10 ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 0.3 0.06 0 10 1 *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 0.06 ${q2} ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 0.06 0 ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 0.06 0 10 ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 0.06 0 10 1 *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 0.06 0 10 1 *STRENGTH_LINEAR_PLASTIC 0.051 0.0 *EOS_LINEAR *END
pair_coeff 1 1 smd/hertz ${contact_stiffness}
pair_coeff 1 1 smd/hertz 0.2
pair_coeff 2 2 smd/hertz ${contact_stiffness}
pair_coeff 2 2 smd/hertz 0.2
pair_coeff 1 2 smd/hertz ${contact_stiffness}
pair_coeff 1 2 smd/hertz 0.2
####################################################################################################
# TIME INTEGRATION
####################################################################################################
fix dtfix tlsph smd/adjust_dt 0.1 # dynamically adjust time increment every step
fix integration_fix tlsph smd/integrate_tlsph
####################################################################################################
# SPECIFY TRAJECTORY OUTPUT
####################################################################################################
variable dumpFreq equal 30
compute S all smd/tlsph/stress # Cauchy stress tensor
compute nn all smd/tlsph/num/neighs # number of neighbors for each particle
compute cr all smd/contact/radius
compute p all smd/plastic/strain
compute eint all smd/internal/energy
compute alleint all reduce sum c_eint
variable etot equal c_alleint+ke+pe
dump dump_id all custom ${dumpFreq} dump.LAMMPS id type x y z vx vy vz c_S[1] c_S[2] c_S[3] c_S[4] c_S[5] c_S[6] c_S[7] c_nn c_cr proc c_p radius
dump dump_id all custom 30 dump.LAMMPS id type x y z vx vy vz c_S[1] c_S[2] c_S[3] c_S[4] c_S[5] c_S[6] c_S[7] c_nn c_cr proc c_p radius
dump_modify dump_id first yes
####################################################################################################
# STATUS OUTPUT
####################################################################################################
thermo 100
thermo_style custom step dt f_dtfix ke pe c_alleint v_etot
####################################################################################################
# PERFORM INITIAL LOAD BALANCING AND RUN SIMULATION
####################################################################################################
run 5000
Neighbor list info ...
update every 10 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.03346
ghost atom cutoff = 5.03346
binsize = 2.51673, bins = 18 9 2
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair smd/tlsph, perpetual, skip from (2)
attributes: half, newton off, size
pair build: skip/half/size
stencil: none
bin: none
(2) pair smd/hertz, perpetual
attributes: half, newton off, size
pair build: half/size/bin/newtoff
stencil: half/bin/3d/newtoff
bin: standard
TLSPH neighbors:
max # of neighbors for a single particle = 25
average # of neighbors/particle in group tlsph = 19.5
Per MPI rank memory allocation (min/avg/max) = 31.78 | 31.78 | 31.78 Mbytes
Step Dt f_dtfix KinEng PotEng c_alleint v_etot
0 1e-16 0 23.410848 0.060572575 0 23.471421
100 0.00015666649 0.016356954 20.148089 2.4614703 0.88204888 23.491608
200 0.00014262117 0.029137237 15.961904 1.2722367 6.2709749 23.505115
300 0.0001518851 0.040479236 12.655022 1.2006287 9.6354839 23.491135
400 7.7738193e-05 0.049775456 10.871902 1.2281214 11.389757 23.48978
500 1.8429103e-05 0.060183029 8.7695775 1.2699313 13.456195 23.495704
600 0.00010757849 0.070430227 5.5688193 1.1696716 16.760318 23.498809
700 0.0001289497 0.081158731 3.8025755 0.86307658 18.812772 23.478424
800 0.00012007642 0.091645485 3.856234 1.3767491 18.247459 23.480443
900 0.00014077413 0.10262444 4.4139569 1.321799 17.734354 23.470109
1000 0.0001257272 0.11458111 4.1503587 2.592308 16.740533 23.4832
1100 7.6945869e-05 0.12588363 5.3447883 1.8321479 16.294353 23.471289
1200 0.00015187286 0.13647552 7.1237056 0.9128414 15.445221 23.481768
1300 0.00015210416 0.15104371 6.3439496 0.55435508 16.580923 23.479228
1400 0.00015182916 0.16454276 6.6806926 0.40938137 16.395717 23.485791
1500 0.0001528694 0.17804964 6.7855219 0.37382438 16.317924 23.47727
1600 7.703976e-05 0.19048378 6.2373843 0.3486351 16.898101 23.48412
1700 0.00010214208 0.20274327 6.769279 0.3492385 16.35508 23.473597
1800 0.00010032727 0.21678037 6.5238437 0.34684219 16.622317 23.493003
1900 5.6736369e-05 0.22767419 6.2097596 0.32488393 16.946663 23.481306
2000 0.00015292401 0.24183738 6.1562373 0.32968684 16.998772 23.484697
2100 0.00015225654 0.25697105 5.8410938 0.32772922 17.313053 23.481876
2200 0.00015377216 0.27227614 6.3041933 0.34151718 16.838003 23.483714
2300 0.00015326823 0.28760492 6.5906041 0.35138616 16.543031 23.485021
2400 0.00015258649 0.30198012 6.0670861 0.35118512 17.067006 23.485277
2500 0.00014856769 0.31668472 6.4317019 0.35508564 16.702064 23.488851
2600 0.00015280172 0.33185417 5.7673153 0.36675813 17.340673 23.474747
2700 0.00015504742 0.34717238 5.8440255 0.35126072 17.293126 23.488412
2800 0.00015242512 0.36251092 6.5388692 0.34768127 16.595944 23.482494
2900 0.00015440145 0.37786838 6.0766232 0.33118261 17.071061 23.478867
3000 0.00015277119 0.393256 6.109573 0.32449342 17.058761 23.492827
3100 0.00015409564 0.40859036 6.0227418 0.32763704 17.130016 23.480395
3200 0.00015288402 0.42394103 5.5260829 0.32830233 17.631588 23.485973
3300 0.00015291821 0.43926273 6.2797973 0.31586081 16.886848 23.482506
3400 0.00015327068 0.45459953 6.1174882 0.32982247 17.033492 23.480802
3500 0.0001530929 0.46996781 6.3295082 0.33460136 16.825067 23.489177
3600 0.0001533502 0.48528894 5.9816875 0.35271191 17.145166 23.479565
3700 0.00015209312 0.50060339 5.4752557 0.35685021 17.655694 23.4878
3800 0.00015354214 0.51588716 6.1015521 0.35449153 17.026868 23.482911
3900 0.00015287949 0.531242 5.9769519 0.34801378 17.157091 23.482057
4000 0.00015393133 0.54654223 6.1476078 0.35704913 16.982903 23.48756
4100 0.00015416746 0.56195432 6.1413591 0.33255309 17.010668 23.48458
4200 0.0001532273 0.57727826 5.4196975 0.33819903 17.727017 23.484913
4300 0.00015302549 0.59260313 6.101494 0.31635767 17.067762 23.485614
4400 0.0001398853 0.60790433 5.6186366 0.33739874 17.522175 23.47821
4500 0.00015383703 0.62264148 6.3660146 0.32337391 16.798768 23.488156
4600 0.00015378151 0.63805632 5.9285588 0.32295515 17.23094 23.482454
4700 0.00015253626 0.65342211 5.7514092 0.3293362 17.405041 23.485787
4800 0.00015344416 0.66875617 5.6922298 0.34841688 17.446458 23.487105
4900 0.00015267471 0.68409025 5.8947773 0.35142383 17.231805 23.478006
5000 0.00015317474 0.69943572 5.9748395 0.35445933 17.156551 23.48585
Loop time of 16.8208 on 1 procs for 5000 steps with 960 atoms
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 15.933 | 15.933 | 15.933 | 0.0 | 94.72
Neigh | 0.067325 | 0.067325 | 0.067325 | 0.0 | 0.40
Comm | 0.0011568 | 0.0011568 | 0.0011568 | 0.0 | 0.01
Output | 0.74695 | 0.74695 | 0.74695 | 0.0 | 4.44
Modify | 0.060244 | 0.060244 | 0.060244 | 0.0 | 0.36
Other | | 0.01193 | | | 0.07
Nlocal: 960.000 ave 960 max 960 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: 24542.0 ave 24542 max 24542 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 24542
Ave neighs/atom = 25.564583
Neighbor list builds = 89
Dangerous builds = 0
Total wall time: 0:00:16

View File

@ -0,0 +1,253 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
####################################################################################################
#
# TLSPH example: Two rubber rings impact each other.
#
# unit system: GPa / mm / ms
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable rho equal 1 # initial mass density
variable E equal 1.0 # Young's modulus
variable nu equal 0.3 # Poisson ratio
variable sigma_yield equal 0.051 # plastic yield stress
variable contact_stiffness equal 0.2 # contact stress for contact force between rings
variable q1 equal 0.06 # standard artificial viscosity linear coefficient
variable q2 equal 0.0 # standard artificial viscosity quadratic coefficient
variable hg equal 10.0 # hourglass control coefficient
variable cp equal 1.0 # heat capacity of material -- not used here
####################################################################################################
# INITIALIZE LAMMPS
####################################################################################################
dimension 3
units si
boundary sm sm sm # simulation box boundaries
atom_style smd
atom_modify map array
comm_modify vel yes
neigh_modify every 10 delay 0 check yes # re-build neighbor list every 10 steps
newton off
####################################################################################################
# READ GEOMETRY
####################################################################################################
read_data washer_hex_adjusted.data # read geometry of one rubber ring from file
Reading data file ...
orthogonal box = (-12.000000 -12.000000 -0.5) to (12.200000 12.200000 5.5500000)
2 by 2 by 1 MPI processor grid
reading atoms ...
480 atoms
reading velocities ...
480 velocities
read_data CPU = 0.001 seconds
replicate 2 1 1
Replicating atoms ...
WARNING: Replicating in a non-periodic dimension (src/replicate.cpp:72)
orthogonal box = (-9.4111500 -9.4111500 0.832728) to (33.811150 12.200000 5.5500000)
4 by 1 by 1 MPI processor grid
960 atoms
replicate CPU = 0.001 seconds
region right block 12.2 EDGE EDGE EDGE EDGE EDGE units box
group right region right
480 atoms in group right
group left subtract all right
480 atoms in group left
set group left type 1
Setting atom values ...
480 settings made for type
set group right type 2
Setting atom values ...
480 settings made for type
group tlsph union left right
960 atoms in group tlsph
####################################################################################################
# DISCRETIZATION PARAMETERS
####################################################################################################
variable l0 equal 0.3 # we need to set a length scale for the neighbor list skin
variable skin equal 4.0*${l0} # Verlet list range
variable skin equal 4.0*0.3
neighbor ${skin} bin
neighbor 1.2 bin
set group all smd/contact/radius 1.0
Setting atom values ...
960 settings made for smd/contact/radius
####################################################################################################
# DEFINE INITIAL VELOCITY BOUNDARY CONDITIONS
####################################################################################################
variable vel equal 100.0 # initial velocity
velocity left set ${vel} 0 0 sum no units box
velocity left set 100 0 0 sum no units box
velocity right set -${vel} 0 0 sum no units box
velocity right set -100 0 0 sum no units box
####################################################################################################
# INTERACTION PHYSICS / MATERIAL MODEL
# One rubber ring is linear elastic, the other rubber ring is elastic-ideal plastic.
# Contact forces between both rubber rings are used to realize physical contact.
####################################################################################################
pair_style hybrid/overlay smd/tlsph smd/hertz 1.0 # activate Total-Lagrangian SPH
pair_coeff 1 1 smd/tlsph *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 0.3 ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 0.3 0.06 ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 0.3 0.06 0 ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 0.3 0.06 0 10 ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 smd/tlsph *COMMON 1 1 0.3 0.06 0 10 1 *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 0.06 ${q2} ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 0.06 0 ${hg} ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 0.06 0 10 ${cp} *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 0.06 0 10 1 *STRENGTH_LINEAR_PLASTIC ${sigma_yield} 0.0 *EOS_LINEAR *END
pair_coeff 2 2 smd/tlsph *COMMON 1 1 0.3 0.06 0 10 1 *STRENGTH_LINEAR_PLASTIC 0.051 0.0 *EOS_LINEAR *END
pair_coeff 1 1 smd/hertz ${contact_stiffness}
pair_coeff 1 1 smd/hertz 0.2
pair_coeff 2 2 smd/hertz ${contact_stiffness}
pair_coeff 2 2 smd/hertz 0.2
pair_coeff 1 2 smd/hertz ${contact_stiffness}
pair_coeff 1 2 smd/hertz 0.2
####################################################################################################
# TIME INTEGRATION
####################################################################################################
fix dtfix tlsph smd/adjust_dt 0.1 # dynamically adjust time increment every step
fix integration_fix tlsph smd/integrate_tlsph
####################################################################################################
# SPECIFY TRAJECTORY OUTPUT
####################################################################################################
variable dumpFreq equal 30
compute S all smd/tlsph/stress # Cauchy stress tensor
compute nn all smd/tlsph/num/neighs # number of neighbors for each particle
compute cr all smd/contact/radius
compute p all smd/plastic/strain
compute eint all smd/internal/energy
compute alleint all reduce sum c_eint
variable etot equal c_alleint+ke+pe
dump dump_id all custom ${dumpFreq} dump.LAMMPS id type x y z vx vy vz c_S[1] c_S[2] c_S[3] c_S[4] c_S[5] c_S[6] c_S[7] c_nn c_cr proc c_p radius
dump dump_id all custom 30 dump.LAMMPS id type x y z vx vy vz c_S[1] c_S[2] c_S[3] c_S[4] c_S[5] c_S[6] c_S[7] c_nn c_cr proc c_p radius
dump_modify dump_id first yes
####################################################################################################
# STATUS OUTPUT
####################################################################################################
thermo 100
thermo_style custom step dt f_dtfix ke pe c_alleint v_etot
####################################################################################################
# PERFORM INITIAL LOAD BALANCING AND RUN SIMULATION
####################################################################################################
run 5000
Neighbor list info ...
update every 10 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.03346
ghost atom cutoff = 5.03346
binsize = 2.51673, bins = 18 9 2
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair smd/tlsph, perpetual, skip from (2)
attributes: half, newton off, size
pair build: skip/half/size
stencil: none
bin: none
(2) pair smd/hertz, perpetual
attributes: half, newton off, size
pair build: half/size/bin/newtoff
stencil: half/bin/3d/newtoff
bin: standard
TLSPH neighbors:
max # of neighbors for a single particle = 25
average # of neighbors/particle in group tlsph = 19.5
Per MPI rank memory allocation (min/avg/max) = 31.77 | 31.77 | 31.78 Mbytes
Step Dt f_dtfix KinEng PotEng c_alleint v_etot
0 1e-16 0 23.410848 0.060572575 0 23.471421
100 0.00015666649 0.016356954 20.148089 2.4614703 0.88204889 23.491608
200 0.00015575833 0.02923502 15.928298 1.263601 6.313278 23.505177
300 0.00015184887 0.040667267 12.616324 1.2003807 9.6745946 23.491299
400 0.00010369516 0.048776713 11.03863 1.2313024 11.219397 23.48933
500 9.5672356e-05 0.058914839 9.0811296 1.2796126 13.133852 23.494595
600 0.00012330962 0.070021335 5.6914774 1.178099 16.629692 23.499269
700 0.00015120674 0.081392746 3.8081055 0.86142182 18.80784 23.477367
800 8.486921e-05 0.091838263 3.8439356 1.3850371 18.251489 23.480461
900 0.00015158135 0.10309022 4.4808549 1.3215117 17.667352 23.469718
1000 7.6430657e-05 0.11512577 4.0869508 2.6299905 16.766162 23.483103
1100 6.3117568e-05 0.12674746 5.5907384 1.6950685 16.184822 23.470629
1200 0.00015187557 0.13785163 7.0731799 0.90559441 15.504498 23.483272
1300 9.9425677e-05 0.15259051 6.4220815 0.510866 16.543328 23.476275
1400 0.00013792421 0.16618195 6.5539822 0.40275187 16.52818 23.484914
1500 0.00015289277 0.179608 6.8317195 0.37018914 16.277045 23.478954
1600 2.3400633e-05 0.19194432 6.1804617 0.34711317 16.954361 23.481936
1700 0.00015285674 0.2042224 6.9297784 0.35243306 16.190464 23.472675
1800 0.00013146904 0.21786432 6.3688483 0.34349624 16.779048 23.491392
1900 0.00012095079 0.22845934 6.2415595 0.32327916 16.915523 23.480362
2000 0.0001526633 0.24335612 6.145614 0.33042432 17.007808 23.483846
2100 0.00015243986 0.25844529 5.8951442 0.32801969 17.257088 23.480252
2200 0.00015388966 0.27376459 6.3194972 0.34151114 16.821454 23.482462
2300 0.00015346791 0.2890887 6.5770062 0.35129951 16.555915 23.484221
2400 0.00015265721 0.30339499 6.0698632 0.35099923 17.061218 23.48208
2500 0.00015265216 0.31814809 6.3104084 0.35486647 16.825057 23.490331
2600 0.000152797 0.33332858 5.9436384 0.3663574 17.163813 23.473809
2700 0.00015303304 0.3486691 5.7756331 0.35071313 17.358898 23.485245
2800 0.00015248569 0.36397077 6.543784 0.34602607 16.593884 23.483694
2900 0.00015489606 0.37934813 6.1899797 0.33043405 16.955717 23.47613
3000 0.00015278695 0.39471754 5.9452488 0.32529805 17.220286 23.490833
3100 0.00015341789 0.41006469 6.0749774 0.32882769 17.076914 23.480719
3200 0.00015290933 0.42540528 5.5026545 0.32707205 17.653628 23.483354
3300 0.00015288744 0.44072713 6.2852751 0.31666875 16.881495 23.483439
3400 0.00015333125 0.45606773 6.1795004 0.32985969 16.970099 23.479459
3500 0.0001528961 0.47143356 6.2157365 0.33771544 16.9356 23.489052
3600 0.00015356596 0.48675443 6.0613119 0.35105692 17.066771 23.47914
3700 0.00015202392 0.50205585 5.4238178 0.35780162 17.702862 23.484481
3800 0.00015388483 0.51735624 6.1107515 0.3531205 17.019242 23.483114
3900 0.00015303588 0.53270214 6.0216562 0.34830001 17.110251 23.480207
4000 0.00015396953 0.54801069 6.079106 0.3550684 17.052462 23.486637
4100 0.00015317391 0.56342459 6.1169754 0.33185539 17.036139 23.48497
4200 0.00015327712 0.57874199 5.4215835 0.33762379 17.722819 23.482026
4300 0.0001528997 0.594063 6.0529222 0.31570554 17.117873 23.486501
4400 0.00015332059 0.60930513 5.7366896 0.33712703 17.402424 23.476241
4500 0.00015373392 0.62434811 6.2605176 0.32263245 16.905442 23.488592
4600 0.00015343609 0.63976119 5.9602857 0.32297244 17.198763 23.482021
4700 0.00015266907 0.65511594 5.719579 0.33269619 17.43177 23.484045
4800 0.00015316621 0.6704581 5.6190537 0.34811179 17.519632 23.486797
4900 0.00015261317 0.68578477 6.0179421 0.35084208 17.109484 23.478269
5000 0.00015304874 0.70113556 5.9405925 0.35401126 17.190102 23.484706
Loop time of 7.92939 on 4 procs for 5000 steps with 960 atoms
97.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 4.6257 | 5.5547 | 6.386 | 30.0 | 70.05
Neigh | 0.013979 | 0.020431 | 0.026448 | 4.0 | 0.26
Comm | 0.024949 | 0.036925 | 0.054285 | 5.9 | 0.47
Output | 0.35933 | 0.36402 | 0.37138 | 0.8 | 4.59
Modify | 1.1183 | 1.9481 | 2.8842 | 50.8 | 24.57
Other | | 0.005201 | | | 0.07
Nlocal: 240.000 ave 480 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 27.0000 ave 108 max 0 min
Histogram: 3 0 0 0 0 0 0 0 0 1
Neighs: 6135.50 ave 12336 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 24542
Ave neighs/atom = 25.564583
Neighbor list builds = 89
Dangerous builds = 0
Total wall time: 0:00:07

View File

@ -1,12 +1,11 @@
####################################################################################################
#
# TLSPH example: elongate a 2d strip of a linear elastic material py pulling its ends apart
# TLSPH example: elongate a 2d strip of a linear elastic material py pulling its ends apart
#
# unit system: GPa / mm / ms
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
@ -62,8 +61,8 @@ group top region top
group bot region bot
variable vel_up equal ${vel0}*(1.0-exp(-0.01*time))
variable vel_down equal -v_vel_up
fix veltop_fix top smd/setvelocity 0 v_vel_up 0
fix velbot_fix bot smd/setvelocity 0 v_vel_down 0
fix veltop_fix top smd/setvel 0 v_vel_up 0
fix velbot_fix bot smd/setvel 0 v_vel_down 0
####################################################################################################
# INTERACTION PHYSICS / MATERIAL MODEL
@ -87,9 +86,9 @@ compute S all smd/tlsph/stress # Cauchy stress tensor
compute E all smd/tlsph/strain # Green-Lagrange strain tensor
compute nn all smd/tlsph/num/neighs # number of neighbors for each particle
dump dump_id all custom 10 dump.LAMMPS id type x y z vx vy vz &
c_S[1] c_S[2] c_S[4] c_nn &
c_E[1] c_E[2] c_E[4] &
vx vy vz
c_S[1] c_S[2] c_S[4] c_nn &
c_E[1] c_E[2] c_E[4] &
vx vy vz
dump_modify dump_id first yes
####################################################################################################

View File

@ -0,0 +1,206 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
####################################################################################################
#
# TLSPH example: elongate a 2d strip of a linear elastic material py pulling its ends apart
#
# unit system: GPa / mm / ms
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable E equal 1.0 # Young's modulus
variable nu equal 0.3 # Poisson ratio
variable rho equal 1 # 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 10.0 # hourglass control coefficient
variable cp equal 1.0 # heat capacity of material -- not used here
####################################################################################################
# INITIALIZE LAMMPS
####################################################################################################
dimension 2
units si
boundary sm sm p # simulation box boundaries
atom_style smd
atom_modify map array
comm_modify vel yes
neigh_modify every 10 delay 0 check yes # re-build neighbor list every 10 steps
newton off
####################################################################################################
# CREATE INITIAL GEOMETRY
####################################################################################################
variable l0 equal 1.0 # lattice spacing for creating particles
lattice sq ${l0}
lattice sq 1
Lattice spacing in x,y,z = 1.0000000 1.0000000 1.0000000
region box block -10 10 -10 10 -0.1 0.1 units box
create_box 1 box
Created orthogonal box = (-10.000000 -10.000000 -0.1) to (10.000000 10.000000 0.1)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 400 atoms
create_atoms CPU = 0.001 seconds
group tlsph type 1
400 atoms in group tlsph
####################################################################################################
# DISCRETIZATION PARAMETERS
####################################################################################################
variable h equal 2.01*${l0} # SPH smoothing kernel radius
variable h equal 2.01*1
variable vol_one equal ${l0}^2 # volume of one particle -- assuming unit thickness
variable vol_one equal 1^2
variable skin equal ${h} # Verlet list range
variable skin equal 2.01
neighbor ${skin} bin
neighbor 2.01 bin
set group all volume ${vol_one}
set group all volume 1
Setting atom values ...
400 settings made for volume
set group all smd/mass/density ${rho}
set group all smd/mass/density 1
Setting atom values ...
400 settings made for smd/mass/density
set group all diameter ${h} # set SPH kernel radius
set group all diameter 2.01
Setting atom values ...
400 settings made for diameter
####################################################################################################
# DEFINE VELOCITY BOUNDARY CONDITIONS
####################################################################################################
variable vel0 equal 0.005 # pull velocity
region top block EDGE EDGE 9.0 EDGE EDGE EDGE units box
region bot block EDGE EDGE EDGE -9.1 EDGE EDGE units box
group top region top
20 atoms in group top
group bot region bot
20 atoms in group bot
variable vel_up equal ${vel0}*(1.0-exp(-0.01*time))
variable vel_up equal 0.005*(1.0-exp(-0.01*time))
variable vel_down equal -v_vel_up
fix veltop_fix top smd/setvel 0 v_vel_up 0
fix velbot_fix bot smd/setvel 0 v_vel_down 0
####################################################################################################
# INTERACTION PHYSICS / MATERIAL MODEL
####################################################################################################
pair_style smd/tlsph
pair_coeff 1 1 *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 0.3 ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 0.3 0.06 ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 0.3 0.06 0 ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 0.3 0.06 0 10 ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 0.3 0.06 0 10 1 *STRENGTH_LINEAR *EOS_LINEAR *END
####################################################################################################
# TIME INTEGRATION
####################################################################################################
fix dtfix tlsph smd/adjust_dt 0.1 # dynamically adjust time increment every step
fix integration_fix tlsph smd/integrate_tlsph
####################################################################################################
# SPECIFY TRAJECTORY OUTPUT
####################################################################################################
compute S all smd/tlsph/stress # Cauchy stress tensor
compute E all smd/tlsph/strain # Green-Lagrange strain tensor
compute nn all smd/tlsph/num/neighs # number of neighbors for each particle
dump dump_id all custom 10 dump.LAMMPS id type x y z vx vy vz c_S[1] c_S[2] c_S[4] c_nn c_E[1] c_E[2] c_E[4] vx vy vz
dump_modify dump_id first yes
####################################################################################################
# STATUS OUTPUT
####################################################################################################
variable stress equal 0.5*(f_velbot_fix[2]-f_veltop_fix[2])/20 # stress = force / initial width
variable length equal xcm(top,y)-xcm(bot,y)
variable strain equal (v_length-${length})/${length} # engineering strain
variable strain equal (v_length-19)/${length}
variable strain equal (v_length-19)/19
fix stress_curve all print 10 "${strain} ${stress}" file stress_strain.dat screen no
thermo 100
thermo_style custom step dt f_dtfix v_strain
####################################################################################################
# RUN SIMULATION
####################################################################################################
run 2500
Neighbor list info ...
update every 10 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.02
ghost atom cutoff = 4.02
binsize = 2.01, bins = 10 10 1
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair smd/tlsph, perpetual
attributes: half, newton off, size
pair build: half/size/bin/newtoff
stencil: half/bin/2d/newtoff
bin: standard
TLSPH neighbors:
max # of neighbors for a single particle = 12
average # of neighbors/particle in group tlsph = 11.01
Per MPI rank memory allocation (min/avg/max) = 28.28 | 28.28 | 28.28 Mbytes
Step Dt f_dtfix v_strain
0 1e-16 0 0
100 0.17317865 17.148126 0.00073838703
200 0.17302794 34.459008 0.0028069616
300 0.1728021 51.751078 0.0059887051
400 0.17250637 69.016914 0.010099618
500 0.17216933 86.251256 0.014984838
600 0.17178723 103.44937 0.020514034
700 0.17138012 120.60826 0.02657841
800 0.17094835 137.72494 0.033086624
900 0.17048766 154.79684 0.039962191
1000 0.17001247 171.8224 0.047141498
1100 0.16952868 188.79946 0.054570846
1200 0.1690323 205.72795 0.062206334
1300 0.16853845 222.60654 0.070010475
1400 0.16803316 239.43548 0.077952714
1500 0.16753793 256.21417 0.086006923
1600 0.16703225 272.94295 0.094151722
1700 0.16654035 289.6218 0.10236896
1800 0.16604036 306.25101 0.11064355
1900 0.16555457 322.83105 0.11896297
2000 0.1650644 339.36209 0.12731648
2100 0.16458608 355.84498 0.13569549
2200 0.16410847 372.27975 0.14409231
2300 0.16363867 388.66748 0.15250107
2400 0.16317499 405.0082 0.16091628
2500 0.16271459 421.30301 0.16933392
Loop time of 1.95516 on 1 procs for 2500 steps with 400 atoms
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.535 | 1.535 | 1.535 | 0.0 | 78.51
Neigh | 0.00012112 | 0.00012112 | 0.00012112 | 0.0 | 0.01
Comm | 0.00013638 | 0.00013638 | 0.00013638 | 0.0 | 0.01
Output | 0.39186 | 0.39186 | 0.39186 | 0.0 | 20.04
Modify | 0.026408 | 0.026408 | 0.026408 | 0.0 | 1.35
Other | | 0.001638 | | | 0.08
Nlocal: 400.000 ave 400 max 400 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: 8078.00 ave 8078 max 8078 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 8078
Ave neighs/atom = 20.195000
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,206 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
####################################################################################################
#
# TLSPH example: elongate a 2d strip of a linear elastic material py pulling its ends apart
#
# unit system: GPa / mm / ms
#
####################################################################################################
####################################################################################################
# MATERIAL PARAMETERS
####################################################################################################
variable E equal 1.0 # Young's modulus
variable nu equal 0.3 # Poisson ratio
variable rho equal 1 # 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 10.0 # hourglass control coefficient
variable cp equal 1.0 # heat capacity of material -- not used here
####################################################################################################
# INITIALIZE LAMMPS
####################################################################################################
dimension 2
units si
boundary sm sm p # simulation box boundaries
atom_style smd
atom_modify map array
comm_modify vel yes
neigh_modify every 10 delay 0 check yes # re-build neighbor list every 10 steps
newton off
####################################################################################################
# CREATE INITIAL GEOMETRY
####################################################################################################
variable l0 equal 1.0 # lattice spacing for creating particles
lattice sq ${l0}
lattice sq 1
Lattice spacing in x,y,z = 1.0000000 1.0000000 1.0000000
region box block -10 10 -10 10 -0.1 0.1 units box
create_box 1 box
Created orthogonal box = (-10.000000 -10.000000 -0.1) to (10.000000 10.000000 0.1)
2 by 2 by 1 MPI processor grid
create_atoms 1 box
Created 400 atoms
create_atoms CPU = 0.001 seconds
group tlsph type 1
400 atoms in group tlsph
####################################################################################################
# DISCRETIZATION PARAMETERS
####################################################################################################
variable h equal 2.01*${l0} # SPH smoothing kernel radius
variable h equal 2.01*1
variable vol_one equal ${l0}^2 # volume of one particle -- assuming unit thickness
variable vol_one equal 1^2
variable skin equal ${h} # Verlet list range
variable skin equal 2.01
neighbor ${skin} bin
neighbor 2.01 bin
set group all volume ${vol_one}
set group all volume 1
Setting atom values ...
400 settings made for volume
set group all smd/mass/density ${rho}
set group all smd/mass/density 1
Setting atom values ...
400 settings made for smd/mass/density
set group all diameter ${h} # set SPH kernel radius
set group all diameter 2.01
Setting atom values ...
400 settings made for diameter
####################################################################################################
# DEFINE VELOCITY BOUNDARY CONDITIONS
####################################################################################################
variable vel0 equal 0.005 # pull velocity
region top block EDGE EDGE 9.0 EDGE EDGE EDGE units box
region bot block EDGE EDGE EDGE -9.1 EDGE EDGE units box
group top region top
20 atoms in group top
group bot region bot
20 atoms in group bot
variable vel_up equal ${vel0}*(1.0-exp(-0.01*time))
variable vel_up equal 0.005*(1.0-exp(-0.01*time))
variable vel_down equal -v_vel_up
fix veltop_fix top smd/setvel 0 v_vel_up 0
fix velbot_fix bot smd/setvel 0 v_vel_down 0
####################################################################################################
# INTERACTION PHYSICS / MATERIAL MODEL
####################################################################################################
pair_style smd/tlsph
pair_coeff 1 1 *COMMON ${rho} ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 ${E} ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 ${nu} ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 0.3 ${q1} ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 0.3 0.06 ${q2} ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 0.3 0.06 0 ${hg} ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 0.3 0.06 0 10 ${cp} *STRENGTH_LINEAR *EOS_LINEAR *END
pair_coeff 1 1 *COMMON 1 1 0.3 0.06 0 10 1 *STRENGTH_LINEAR *EOS_LINEAR *END
####################################################################################################
# TIME INTEGRATION
####################################################################################################
fix dtfix tlsph smd/adjust_dt 0.1 # dynamically adjust time increment every step
fix integration_fix tlsph smd/integrate_tlsph
####################################################################################################
# SPECIFY TRAJECTORY OUTPUT
####################################################################################################
compute S all smd/tlsph/stress # Cauchy stress tensor
compute E all smd/tlsph/strain # Green-Lagrange strain tensor
compute nn all smd/tlsph/num/neighs # number of neighbors for each particle
dump dump_id all custom 10 dump.LAMMPS id type x y z vx vy vz c_S[1] c_S[2] c_S[4] c_nn c_E[1] c_E[2] c_E[4] vx vy vz
dump_modify dump_id first yes
####################################################################################################
# STATUS OUTPUT
####################################################################################################
variable stress equal 0.5*(f_velbot_fix[2]-f_veltop_fix[2])/20 # stress = force / initial width
variable length equal xcm(top,y)-xcm(bot,y)
variable strain equal (v_length-${length})/${length} # engineering strain
variable strain equal (v_length-19)/${length}
variable strain equal (v_length-19)/19
fix stress_curve all print 10 "${strain} ${stress}" file stress_strain.dat screen no
thermo 100
thermo_style custom step dt f_dtfix v_strain
####################################################################################################
# RUN SIMULATION
####################################################################################################
run 2500
Neighbor list info ...
update every 10 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.02
ghost atom cutoff = 4.02
binsize = 2.01, bins = 10 10 1
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair smd/tlsph, perpetual
attributes: half, newton off, size
pair build: half/size/bin/newtoff
stencil: half/bin/2d/newtoff
bin: standard
TLSPH neighbors:
max # of neighbors for a single particle = 12
average # of neighbors/particle in group tlsph = 11.01
Per MPI rank memory allocation (min/avg/max) = 28.28 | 28.29 | 28.30 Mbytes
Step Dt f_dtfix v_strain
0 1e-16 0 0
100 0.17317865 17.148126 0.00073838703
200 0.17302794 34.459008 0.0028069616
300 0.1728021 51.751078 0.0059887051
400 0.17250637 69.016914 0.010099618
500 0.17216933 86.251256 0.014984838
600 0.17178723 103.44937 0.020514034
700 0.17138012 120.60826 0.02657841
800 0.17094835 137.72494 0.033086624
900 0.17048766 154.79684 0.039962191
1000 0.17001247 171.8224 0.047141498
1100 0.16952868 188.79946 0.054570846
1200 0.1690323 205.72795 0.062206334
1300 0.16853845 222.60654 0.070010475
1400 0.16803316 239.43548 0.077952714
1500 0.16753793 256.21417 0.086006923
1600 0.16703225 272.94295 0.094151722
1700 0.16654035 289.6218 0.10236896
1800 0.16604036 306.25101 0.11064355
1900 0.16555457 322.83105 0.11896297
2000 0.1650644 339.36209 0.12731648
2100 0.16458608 355.84498 0.13569549
2200 0.16410847 372.27975 0.14409231
2300 0.16363867 388.66748 0.15250107
2400 0.16317499 405.0082 0.16091628
2500 0.16271459 421.30301 0.16933392
Loop time of 0.630632 on 4 procs for 2500 steps with 400 atoms
97.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.43174 | 0.44288 | 0.45437 | 1.3 | 70.23
Neigh | 4.0531e-05 | 4.2737e-05 | 4.6015e-05 | 0.0 | 0.01
Comm | 0.015033 | 0.02121 | 0.025645 | 2.6 | 3.36
Output | 0.11669 | 0.12027 | 0.12409 | 0.8 | 19.07
Modify | 0.035852 | 0.045031 | 0.056387 | 3.6 | 7.14
Other | | 0.001202 | | | 0.19
Nlocal: 100.000 ave 109 max 91 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 103.000 ave 105 max 101 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 2384.00 ave 2610 max 2158 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 9536
Ave neighs/atom = 23.840000
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,86 +0,0 @@
# 2d micelle simulation
dimension 2
neighbor 0.3 bin
neigh_modify delay 5
atom_style bond
# Soft potential push-off
read_data data.micelle
special_bonds fene
pair_style soft 1.12246
pair_coeff * * 0.0 1.12246
bond_style harmonic
bond_coeff 1 50.0 0.75
velocity all create 0.45 2349852
variable prefactor equal ramp(1.0,20.0)
fix 1 all nve
fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0
fix 3 all adapt 1 pair soft a * * v_prefactor
fix 4 all enforce2d
thermo 50
run 1000
unfix 3
# Main run
pair_style lj/cut 2.5
# solvent/head - full-size and long-range
pair_coeff 1 1 1.0 1.0 2.5
pair_coeff 2 2 1.0 1.0 2.5
pair_coeff 1 2 1.0 1.0 2.5
# tail/tail - size-averaged and long-range
pair_coeff 3 3 1.0 0.75 2.5
pair_coeff 4 4 1.0 0.50 2.5
pair_coeff 3 4 1.0 0.67 2.5
# solvent/tail - full-size and repulsive
pair_coeff 1 3 1.0 1.0 1.12246
pair_coeff 1 4 1.0 1.0 1.12246
# head/tail - size-averaged and repulsive
pair_coeff 2 3 1.0 0.88 1.12246
pair_coeff 2 4 1.0 0.75 1.12246
thermo 1000
#dump 1 all atom 2000 dump.micelle
#dump 2 all image 2000 image.*.jpg type type zoom 1.6
#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
#dump 3 all movie 2000 movie.mpg type type zoom 1.6
#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
reset_timestep 0
group solvent molecule 0
group solute subtract all solvent
unfix 1
unfix 2
unfix 4
fix 1 solvent nve
fix 2 solvent temp/rescale 100 0.45 0.45 0.02 1.0
fix 5 solute rigid molecule langevin 0.45 0.45 0.5 112211
fix 4 all enforce2d
run 20000
unfix 5
unfix 4
fix 5 solute rigid/small molecule langevin 0.45 0.45 0.5 112211
fix 4 all enforce2d
run 20000

View File

@ -180,11 +180,11 @@ void PairTlsph::PreCompute() {
h = 2.0 * radius[i];
r0 = 0.0;
spiky_kernel_and_derivative(h, r0, domain->dimension, wf, wfd);
shepardWeight = wf * voli;
jnum = npartner[i];
irad = radius[i];
voli = vfrac[i];
shepardWeight = wf * voli;
// initialize Eigen data structures from LAMMPS data structures
for (idim = 0; idim < 3; idim++) {
@ -678,7 +678,8 @@ void PairTlsph::ComputeForces(int eflag, int vflag) {
} // end loop over jj neighbors of i
if (shepardWeight != 0.0) {
// avoid division by zero and overflow
if ((shepardWeight != 0.0) && (fabs(hourglass_error[i]) < 1.0e300)){
hourglass_error[i] /= shepardWeight;
}
@ -974,7 +975,7 @@ void PairTlsph::settings(int narg, char **arg) {
printf("... will update reference configuration if ratio pairwise distance / smoothing length exceeds %g\n",
update_threshold);
} else if (update_method == UPDATE_NONE) {
printf("... will never update reference configuration");
printf("... will never update reference configuration\n");
}
printf(
">>========>>========>>========>>========>>========>>========>>========>>========>>========>>========>>========>>========\n");

View File

@ -681,7 +681,7 @@ int main(int argc, char **argv)
// switch to the user's documents directory. Avoid buffer overflow
// and skip this step if the path is too long for our buffer.
if (getcwd(buf, buflen)) {
if ((strstr(buf, "System32") || strstr(buf, "system32")) {
if ((strstr(buf, "System32") || strstr(buf, "system32"))) {
char *drive = getenv("HOMEDRIVE");
char *path = getenv("HOMEPATH");
buf[0] = '\0';
@ -716,6 +716,16 @@ int main(int argc, char **argv)
omp_threads = dupstring(std::string("OMP_NUM_THREADS=" + std::to_string(nthreads)));
putenv(omp_threads);
// handle the special case where the first argument is not a flag but a file
// this happens for example when using file type associations on Windows.
// in this case we save the pointer and remove it from argv.
char *input_file = nullptr;
if ((argc > 1) && (argv[1][0] != '-')) {
--argc;
input_file = argv[1];
for (int i = 1; i < argc; ++i) argv[i] = argv[i+1];
}
lmp = lammps_open_no_mpi(argc, argv, nullptr);
if (lmp == nullptr) return 1;
@ -723,9 +733,13 @@ int main(int argc, char **argv)
init_commands();
// pre-load an input file that was provided on the command line
for (int i = 0; i < argc; ++i) {
if ((strcmp(argv[i], "-in") == 0) || (strcmp(argv[i], "-i") == 0)) {
lammps_file(lmp, argv[i + 1]);
if (input_file) {
lammps_file(lmp, input_file);
} else {
for (int i = 0; i < argc; ++i) {
if ((strcmp(argv[i], "-in") == 0) || (strcmp(argv[i], "-i") == 0)) {
lammps_file(lmp, argv[i + 1]);
}
}
}