From a04c8c8a3b09943ab08702e94ae831b9609767f7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 16 Oct 2020 22:46:20 -0400 Subject: [PATCH 1/8] fix typo --- tools/lammps-shell/lammps-shell.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lammps-shell/lammps-shell.cpp b/tools/lammps-shell/lammps-shell.cpp index c1f9d2ffbd..d4d3b291b6 100644 --- a/tools/lammps-shell/lammps-shell.cpp +++ b/tools/lammps-shell/lammps-shell.cpp @@ -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'; From 722b9c8cf30b38e11dcf06f3b33ebd63d78d4616 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 16 Oct 2020 22:46:33 -0400 Subject: [PATCH 2/8] small tweak --- doc/src/Tools.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index 8c68ad4c73..78cb6ea32e 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -427,10 +427,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 ` + 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 ^^^^^^^^^^^^^ From f67d9bb52306ca60c90fb084e6b4da9efe656174 Mon Sep 17 00:00:00 2001 From: Dominik Boemer Date: Mon, 19 Oct 2020 14:56:40 +0200 Subject: [PATCH 3/8] Correct USER smd examples and remove tabs --- .../aluminum_strip_pull.lmp | 98 +++++++++---------- .../fluid_structure_interaction.lmp | 14 ++- examples/USER/smd/funnel_flow/funnel_flow.lmp | 53 +++++----- .../smd/rubber_rings_3d/rubber_rings_3d.lmp | 14 +-- .../rubber_strip_pull/rubber_strip_pull.lmp | 13 ++- 5 files changed, 92 insertions(+), 100 deletions(-) diff --git a/examples/USER/smd/aluminum_strip_pull/aluminum_strip_pull.lmp b/examples/USER/smd/aluminum_strip_pull/aluminum_strip_pull.lmp index 50b20a0787..2e74567abc 100644 --- a/examples/USER/smd/aluminum_strip_pull/aluminum_strip_pull.lmp +++ b/examples/USER/smd/aluminum_strip_pull/aluminum_strip_pull.lmp @@ -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 25000 diff --git a/examples/USER/smd/fluid_structure_interaction/fluid_structure_interaction.lmp b/examples/USER/smd/fluid_structure_interaction/fluid_structure_interaction.lmp index e4f3ea603a..40b7b4a59e 100644 --- a/examples/USER/smd/fluid_structure_interaction/fluid_structure_interaction.lmp +++ b/examples/USER/smd/fluid_structure_interaction/fluid_structure_interaction.lmp @@ -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 #################################################################################################### @@ -152,5 +152,3 @@ thermo_modify lost ignore #################################################################################################### fix balance_fix all balance 1000 0.9 rcb # load balancing for MPI run 40000 - - diff --git a/examples/USER/smd/funnel_flow/funnel_flow.lmp b/examples/USER/smd/funnel_flow/funnel_flow.lmp index b1fde2c2db..1cf33a1146 100644 --- a/examples/USER/smd/funnel_flow/funnel_flow.lmp +++ b/examples/USER/smd/funnel_flow/funnel_flow.lmp @@ -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 +fix balance_fix all balance 1000 1.1 rcb run 20000 diff --git a/examples/USER/smd/rubber_rings_3d/rubber_rings_3d.lmp b/examples/USER/smd/rubber_rings_3d/rubber_rings_3d.lmp index 11b988e818..2dee8816c3 100644 --- a/examples/USER/smd/rubber_rings_3d/rubber_rings_3d.lmp +++ b/examples/USER/smd/rubber_rings_3d/rubber_rings_3d.lmp @@ -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} diff --git a/examples/USER/smd/rubber_strip_pull/rubber_strip_pull.lmp b/examples/USER/smd/rubber_strip_pull/rubber_strip_pull.lmp index 0e8be3b9da..b1cfc0978c 100644 --- a/examples/USER/smd/rubber_strip_pull/rubber_strip_pull.lmp +++ b/examples/USER/smd/rubber_strip_pull/rubber_strip_pull.lmp @@ -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 #################################################################################################### From 4795e01d5469cd22dff545dd837897822af7a318 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 19 Oct 2020 11:40:28 -0400 Subject: [PATCH 4/8] Support being called from a graphical shell through filename association. This adds a hack to the LAMMPS shell that hides the first argument from the LAMMPS class, if it does not start with a '-' and instead tries to open it as an input file. --- tools/lammps-shell/lammps-shell.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/tools/lammps-shell/lammps-shell.cpp b/tools/lammps-shell/lammps-shell.cpp index d4d3b291b6..b2c8137aba 100644 --- a/tools/lammps-shell/lammps-shell.cpp +++ b/tools/lammps-shell/lammps-shell.cpp @@ -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]); + } } } From 2c54b7e505f9906ddb19cef84f6c0e2c9b22debe Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 19 Oct 2020 15:45:26 -0400 Subject: [PATCH 5/8] update USER-SMD examples: rename files, shorten runs and add logfiles --- ..._strip_pull.lmp => in.aluminum_strip_pull} | 2 +- .../log.9Oct20.aluminum_strip_pull.g++.1 | 242 ++++++++++++ .../log.9Oct20.aluminum_strip_pull.g++.4 | 242 ++++++++++++ ...ion.lmp => in.fluid_structure_interaction} | 4 +- ...g.9Oct20.fluid_structure_interaction.g++.1 | 369 ++++++++++++++++++ ...g.9Oct20.fluid_structure_interaction.g++.4 | 369 ++++++++++++++++++ .../{funnel_flow.lmp => in.funnel_flow} | 4 +- .../funnel_flow/log.9Oct20.funnel_flow.g++.1 | 335 ++++++++++++++++ .../funnel_flow/log.9Oct20.funnel_flow.g++.4 | 339 ++++++++++++++++ ...rubber_rings_3d.lmp => in.rubber_rings_3d} | 0 .../log.9Oct20.rubber_rings_3d.g++.1 | 253 ++++++++++++ .../log.9Oct20.rubber_rings_3d.g++.4 | 253 ++++++++++++ ...er_strip_pull.lmp => in.rubber_strip_pull} | 0 .../log.9Oct20.rubber_strip_pull.g++.1 | 206 ++++++++++ .../log.9Oct20.rubber_strip_pull.g++.4 | 206 ++++++++++ 15 files changed, 2819 insertions(+), 5 deletions(-) rename examples/USER/smd/aluminum_strip_pull/{aluminum_strip_pull.lmp => in.aluminum_strip_pull} (99%) create mode 100644 examples/USER/smd/aluminum_strip_pull/log.9Oct20.aluminum_strip_pull.g++.1 create mode 100644 examples/USER/smd/aluminum_strip_pull/log.9Oct20.aluminum_strip_pull.g++.4 rename examples/USER/smd/fluid_structure_interaction/{fluid_structure_interaction.lmp => in.fluid_structure_interaction} (98%) create mode 100644 examples/USER/smd/fluid_structure_interaction/log.9Oct20.fluid_structure_interaction.g++.1 create mode 100644 examples/USER/smd/fluid_structure_interaction/log.9Oct20.fluid_structure_interaction.g++.4 rename examples/USER/smd/funnel_flow/{funnel_flow.lmp => in.funnel_flow} (98%) create mode 100644 examples/USER/smd/funnel_flow/log.9Oct20.funnel_flow.g++.1 create mode 100644 examples/USER/smd/funnel_flow/log.9Oct20.funnel_flow.g++.4 rename examples/USER/smd/rubber_rings_3d/{rubber_rings_3d.lmp => in.rubber_rings_3d} (100%) create mode 100644 examples/USER/smd/rubber_rings_3d/log.9Oct20.rubber_rings_3d.g++.1 create mode 100644 examples/USER/smd/rubber_rings_3d/log.9Oct20.rubber_rings_3d.g++.4 rename examples/USER/smd/rubber_strip_pull/{rubber_strip_pull.lmp => in.rubber_strip_pull} (100%) create mode 100644 examples/USER/smd/rubber_strip_pull/log.9Oct20.rubber_strip_pull.g++.1 create mode 100644 examples/USER/smd/rubber_strip_pull/log.9Oct20.rubber_strip_pull.g++.4 diff --git a/examples/USER/smd/aluminum_strip_pull/aluminum_strip_pull.lmp b/examples/USER/smd/aluminum_strip_pull/in.aluminum_strip_pull similarity index 99% rename from examples/USER/smd/aluminum_strip_pull/aluminum_strip_pull.lmp rename to examples/USER/smd/aluminum_strip_pull/in.aluminum_strip_pull index 2e74567abc..280a66df8a 100644 --- a/examples/USER/smd/aluminum_strip_pull/aluminum_strip_pull.lmp +++ b/examples/USER/smd/aluminum_strip_pull/in.aluminum_strip_pull @@ -134,4 +134,4 @@ thermo_style custom step dt f_dtfix time v_strain # RUN SIMULATION #################################################################################################### #fix 2 all enforce2d -run 25000 +run 2000 diff --git a/examples/USER/smd/aluminum_strip_pull/log.9Oct20.aluminum_strip_pull.g++.1 b/examples/USER/smd/aluminum_strip_pull/log.9Oct20.aluminum_strip_pull.g++.1 new file mode 100644 index 0000000000..a654c55772 --- /dev/null +++ b/examples/USER/smd/aluminum_strip_pull/log.9Oct20.aluminum_strip_pull.g++.1 @@ -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 diff --git a/examples/USER/smd/aluminum_strip_pull/log.9Oct20.aluminum_strip_pull.g++.4 b/examples/USER/smd/aluminum_strip_pull/log.9Oct20.aluminum_strip_pull.g++.4 new file mode 100644 index 0000000000..fedbf094e4 --- /dev/null +++ b/examples/USER/smd/aluminum_strip_pull/log.9Oct20.aluminum_strip_pull.g++.4 @@ -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 diff --git a/examples/USER/smd/fluid_structure_interaction/fluid_structure_interaction.lmp b/examples/USER/smd/fluid_structure_interaction/in.fluid_structure_interaction similarity index 98% rename from examples/USER/smd/fluid_structure_interaction/fluid_structure_interaction.lmp rename to examples/USER/smd/fluid_structure_interaction/in.fluid_structure_interaction index 40b7b4a59e..dee0917ed4 100644 --- a/examples/USER/smd/fluid_structure_interaction/fluid_structure_interaction.lmp +++ b/examples/USER/smd/fluid_structure_interaction/in.fluid_structure_interaction @@ -150,5 +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 diff --git a/examples/USER/smd/fluid_structure_interaction/log.9Oct20.fluid_structure_interaction.g++.1 b/examples/USER/smd/fluid_structure_interaction/log.9Oct20.fluid_structure_interaction.g++.1 new file mode 100644 index 0000000000..2dcd75b0c4 --- /dev/null +++ b/examples/USER/smd/fluid_structure_interaction/log.9Oct20.fluid_structure_interaction.g++.1 @@ -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 diff --git a/examples/USER/smd/fluid_structure_interaction/log.9Oct20.fluid_structure_interaction.g++.4 b/examples/USER/smd/fluid_structure_interaction/log.9Oct20.fluid_structure_interaction.g++.4 new file mode 100644 index 0000000000..ed2b1db24e --- /dev/null +++ b/examples/USER/smd/fluid_structure_interaction/log.9Oct20.fluid_structure_interaction.g++.4 @@ -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 diff --git a/examples/USER/smd/funnel_flow/funnel_flow.lmp b/examples/USER/smd/funnel_flow/in.funnel_flow similarity index 98% rename from examples/USER/smd/funnel_flow/funnel_flow.lmp rename to examples/USER/smd/funnel_flow/in.funnel_flow index 1cf33a1146..d300e84032 100644 --- a/examples/USER/smd/funnel_flow/funnel_flow.lmp +++ b/examples/USER/smd/funnel_flow/in.funnel_flow @@ -123,5 +123,5 @@ 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 diff --git a/examples/USER/smd/funnel_flow/log.9Oct20.funnel_flow.g++.1 b/examples/USER/smd/funnel_flow/log.9Oct20.funnel_flow.g++.1 new file mode 100644 index 0000000000..3680f33e4d --- /dev/null +++ b/examples/USER/smd/funnel_flow/log.9Oct20.funnel_flow.g++.1 @@ -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 diff --git a/examples/USER/smd/funnel_flow/log.9Oct20.funnel_flow.g++.4 b/examples/USER/smd/funnel_flow/log.9Oct20.funnel_flow.g++.4 new file mode 100644 index 0000000000..158187310a --- /dev/null +++ b/examples/USER/smd/funnel_flow/log.9Oct20.funnel_flow.g++.4 @@ -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 diff --git a/examples/USER/smd/rubber_rings_3d/rubber_rings_3d.lmp b/examples/USER/smd/rubber_rings_3d/in.rubber_rings_3d similarity index 100% rename from examples/USER/smd/rubber_rings_3d/rubber_rings_3d.lmp rename to examples/USER/smd/rubber_rings_3d/in.rubber_rings_3d diff --git a/examples/USER/smd/rubber_rings_3d/log.9Oct20.rubber_rings_3d.g++.1 b/examples/USER/smd/rubber_rings_3d/log.9Oct20.rubber_rings_3d.g++.1 new file mode 100644 index 0000000000..8425e12748 --- /dev/null +++ b/examples/USER/smd/rubber_rings_3d/log.9Oct20.rubber_rings_3d.g++.1 @@ -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 diff --git a/examples/USER/smd/rubber_rings_3d/log.9Oct20.rubber_rings_3d.g++.4 b/examples/USER/smd/rubber_rings_3d/log.9Oct20.rubber_rings_3d.g++.4 new file mode 100644 index 0000000000..9e14658789 --- /dev/null +++ b/examples/USER/smd/rubber_rings_3d/log.9Oct20.rubber_rings_3d.g++.4 @@ -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 diff --git a/examples/USER/smd/rubber_strip_pull/rubber_strip_pull.lmp b/examples/USER/smd/rubber_strip_pull/in.rubber_strip_pull similarity index 100% rename from examples/USER/smd/rubber_strip_pull/rubber_strip_pull.lmp rename to examples/USER/smd/rubber_strip_pull/in.rubber_strip_pull diff --git a/examples/USER/smd/rubber_strip_pull/log.9Oct20.rubber_strip_pull.g++.1 b/examples/USER/smd/rubber_strip_pull/log.9Oct20.rubber_strip_pull.g++.1 new file mode 100644 index 0000000000..f7394db4a2 --- /dev/null +++ b/examples/USER/smd/rubber_strip_pull/log.9Oct20.rubber_strip_pull.g++.1 @@ -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 diff --git a/examples/USER/smd/rubber_strip_pull/log.9Oct20.rubber_strip_pull.g++.4 b/examples/USER/smd/rubber_strip_pull/log.9Oct20.rubber_strip_pull.g++.4 new file mode 100644 index 0000000000..75fb4c86ed --- /dev/null +++ b/examples/USER/smd/rubber_strip_pull/log.9Oct20.rubber_strip_pull.g++.4 @@ -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 From 4b2fd6558504b7e59029b3de2847d254651265ec Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 19 Oct 2020 15:46:03 -0400 Subject: [PATCH 6/8] fix issue where a variable was used before it was assigned. --- src/USER-SMD/pair_smd_tlsph.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/USER-SMD/pair_smd_tlsph.cpp b/src/USER-SMD/pair_smd_tlsph.cpp index 3c87119553..4737b5e6a6 100644 --- a/src/USER-SMD/pair_smd_tlsph.cpp +++ b/src/USER-SMD/pair_smd_tlsph.cpp @@ -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++) { From 56cecf2c3aaaaba28dbc3fc4659f05770920b329 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 19 Oct 2020 15:46:33 -0400 Subject: [PATCH 7/8] small tweaks: avoid overflow and add missing newline --- src/USER-SMD/pair_smd_tlsph.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/USER-SMD/pair_smd_tlsph.cpp b/src/USER-SMD/pair_smd_tlsph.cpp index 4737b5e6a6..387022bd87 100644 --- a/src/USER-SMD/pair_smd_tlsph.cpp +++ b/src/USER-SMD/pair_smd_tlsph.cpp @@ -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"); From 5ac910a7483d4c1410a102c0d52ba0951b893213 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 19 Oct 2020 15:46:49 -0400 Subject: [PATCH 8/8] remove redundant file --- examples/micelle/in.micelle.rigid | 86 ------------------------------- 1 file changed, 86 deletions(-) delete mode 100644 examples/micelle/in.micelle.rigid diff --git a/examples/micelle/in.micelle.rigid b/examples/micelle/in.micelle.rigid deleted file mode 100644 index 47d2f74950..0000000000 --- a/examples/micelle/in.micelle.rigid +++ /dev/null @@ -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