From b3d2fb91bb6c959c4c6e045ac95afc3013b7ca76 Mon Sep 17 00:00:00 2001 From: Steve Plimpton <sjplimp@sandia.gov> Date: Thu, 6 Oct 2016 15:47:41 -0600 Subject: [PATCH] new fix wall/gran/region command, REBO bug fix, new example log files --- doc/src/JPG/gran_funnel.png | Bin 0 -> 119645 bytes doc/src/JPG/gran_funnel_small.jpg | Bin 0 -> 2266 bytes doc/src/JPG/gran_mixer.png | Bin 0 -> 229532 bytes doc/src/JPG/gran_mixer_small.jpg | Bin 0 -> 3053 bytes doc/src/Manual.txt | 4 +- doc/src/Section_commands.txt | 1 + doc/src/fix_wall_gran.txt | 4 +- doc/src/fix_wall_gran_region.txt | 199 ++++++ examples/README | 1 + examples/granregion/in.granregion.box | 66 ++ examples/granregion/in.granregion.funnel | 157 +++++ examples/granregion/in.granregion.mixer | 96 +++ .../log.6Oct16.granregion.box.g++.1 | 468 ++++++++++++++ .../log.6Oct16.granregion.box.g++.4 | 468 ++++++++++++++ .../log.6Oct16.granregion.funnel.g++.1 | 608 +++++++++++++++++ .../log.6Oct16.granregion.funnel.g++.4 | 608 +++++++++++++++++ .../log.6Oct16.granregion.mixer.g++.1 | 609 ++++++++++++++++++ .../log.6Oct16.granregion.mixer.g++.4 | 609 ++++++++++++++++++ src/GRANULAR/fix_wall_gran.cpp | 601 ++++++++++++----- src/GRANULAR/fix_wall_gran.h | 60 +- src/GRANULAR/fix_wall_gran_region.cpp | 548 ++++++++++++++++ src/GRANULAR/fix_wall_gran_region.h | 106 +++ src/KOKKOS/atom_kokkos.cpp | 7 + src/KOKKOS/fix_deform_kokkos.cpp | 1 + src/KOKKOS/fix_langevin_kokkos.cpp | 1 + src/KOKKOS/fix_nh_kokkos.cpp | 1 + src/KOKKOS/fix_nph_kokkos.cpp | 1 + src/KOKKOS/fix_npt_kokkos.cpp | 1 + src/KOKKOS/fix_nve_kokkos.cpp | 1 + src/KOKKOS/fix_nvt_kokkos.cpp | 1 + src/KOKKOS/fix_qeq_reax_kokkos.cpp | 1 + src/KOKKOS/fix_setforce_kokkos.cpp | 1 + src/KOKKOS/fix_wall_reflect_kokkos.cpp | 1 + src/KOKKOS/kokkos.cpp | 2 + src/KOKKOS/kokkos.h | 1 + src/KOKKOS/modify_kokkos.cpp | 75 +++ src/KOKKOS/neighbor_kokkos.cpp | 10 + src/KOKKOS/verlet_kokkos.cpp | 58 +- src/MANYBODY/pair_airebo.cpp | 12 +- src/MANYBODY/pair_airebo.h | 2 + src/MANYBODY/pair_rebo.cpp | 5 + src/accelerator_kokkos.h | 2 + src/fix.cpp | 1 + src/fix.h | 1 + src/region.cpp | 180 +++++- src/region.h | 50 +- src/region_block.cpp | 240 ++++++- src/region_block.h | 5 + src/region_cone.cpp | 207 +++--- src/region_cone.h | 4 - src/region_cylinder.cpp | 375 +++++++++-- src/region_cylinder.h | 2 + src/region_intersect.cpp | 71 +- src/region_intersect.h | 6 +- src/region_plane.cpp | 6 +- src/region_prism.cpp | 143 ++-- src/region_prism.h | 6 - src/region_sphere.cpp | 46 ++ src/region_sphere.h | 3 + src/region_union.cpp | 74 ++- src/region_union.h | 6 +- src/special.cpp | 5 + src/version.h | 2 +- 63 files changed, 6347 insertions(+), 483 deletions(-) create mode 100644 doc/src/JPG/gran_funnel.png create mode 100644 doc/src/JPG/gran_funnel_small.jpg create mode 100644 doc/src/JPG/gran_mixer.png create mode 100644 doc/src/JPG/gran_mixer_small.jpg create mode 100644 doc/src/fix_wall_gran_region.txt create mode 100644 examples/granregion/in.granregion.box create mode 100644 examples/granregion/in.granregion.funnel create mode 100644 examples/granregion/in.granregion.mixer create mode 100644 examples/granregion/log.6Oct16.granregion.box.g++.1 create mode 100644 examples/granregion/log.6Oct16.granregion.box.g++.4 create mode 100644 examples/granregion/log.6Oct16.granregion.funnel.g++.1 create mode 100644 examples/granregion/log.6Oct16.granregion.funnel.g++.4 create mode 100644 examples/granregion/log.6Oct16.granregion.mixer.g++.1 create mode 100644 examples/granregion/log.6Oct16.granregion.mixer.g++.4 create mode 100644 src/GRANULAR/fix_wall_gran_region.cpp create mode 100644 src/GRANULAR/fix_wall_gran_region.h diff --git a/doc/src/JPG/gran_funnel.png b/doc/src/JPG/gran_funnel.png new file mode 100644 index 0000000000000000000000000000000000000000..8e26005f7838825773e7e352f4a844d31a578cc3 GIT binary patch literal 119645 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 DhBU~+ literal 0 HcmV?d00001 diff --git a/doc/src/JPG/gran_funnel_small.jpg b/doc/src/JPG/gran_funnel_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6e298033884409151f12b8439e8dd49539391294 GIT binary patch literal 2266 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 literal 0 HcmV?d00001 diff --git a/doc/src/JPG/gran_mixer.png b/doc/src/JPG/gran_mixer.png new file mode 100644 index 0000000000000000000000000000000000000000..6ea7221241b4b66c870fd065d97ed8e282c9f2c6 GIT binary patch literal 229532 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�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%0DLvT#4_D%MyZ)MmOf07fBm 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 literal 0 HcmV?d00001 diff --git a/doc/src/JPG/gran_mixer_small.jpg b/doc/src/JPG/gran_mixer_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7cc85d92bf23d2e8efed340410271462f63a3f49 GIT binary patch literal 3053 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 J==cvu{sTp`be8}C literal 0 HcmV?d00001 diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 10487375f9..21cc9bcccc 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ <!-- HTML_ONLY --> <HEAD> <TITLE>LAMMPS Users Manual</TITLE> -<META NAME="docnumber" CONTENT="5 Oct 2016 version"> +<META NAME="docnumber" CONTENT="6 Oct 2016 version"> <META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories"> <META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License."> </HEAD> @@ -21,7 +21,7 @@ <H1></H1> LAMMPS Documentation :c,h3 -5 Oct 2016 version :c,h4 +6 Oct 2016 version :c,h4 Version info: :h4 diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index 3a6de833fe..2eef5d1d29 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -599,6 +599,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "viscous"_fix_viscous.html, "wall/colloid"_fix_wall.html, "wall/gran"_fix_wall_gran.html, +"wall/gran/region"_fix_wall_gran_region.html, "wall/harmonic"_fix_wall.html, "wall/lj1043"_fix_wall.html, "wall/lj126"_fix_wall.html, diff --git a/doc/src/fix_wall_gran.txt b/doc/src/fix_wall_gran.txt index d19f243ad8..f30872186d 100644 --- a/doc/src/fix_wall_gran.txt +++ b/doc/src/fix_wall_gran.txt @@ -163,6 +163,8 @@ Any dimension (xyz) that has a granular wall must be non-periodic. [Related commands:] -"fix move"_fix_move.html, "pair_style granular"_pair_gran.html +"fix move"_fix_move.html, +"fix wall/gran/region"_fix_wall_gran_region.html, +"pair_style granular"_pair_gran.html [Default:] none diff --git a/doc/src/fix_wall_gran_region.txt b/doc/src/fix_wall_gran_region.txt new file mode 100644 index 0000000000..7a5597765e --- /dev/null +++ b/doc/src/fix_wall_gran_region.txt @@ -0,0 +1,199 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +fix wall/gran/region command :h3 + +[Syntax:] + +fix ID group-ID wall/gran/region fstyle Kn Kt gamma_n gamma_t xmu dampflag wallstyle regionID :pre + +ID, group-ID are documented in "fix"_fix.html command :ulb,l +wall/region = style name of this fix command :l +fstyle = style of force interactions between particles and wall :l + possible choices: hooke, hooke/history, hertz/history :pre +Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below) :l +Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below) :l +gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below) :l +gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below) :l +xmu = static yield criterion (unitless value between 0.0 and 1.0e4) :l +dampflag = 0 or 1 if tangential damping force is excluded or included :l +wallstyle = region (see "fix wall/gran"_fix_wall_gran.html for options for other kinds of walls) :l +region-ID = region whose boundary will act as wall :l,ule + +[Examples:] + +fix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone :pre + +[Description:] + +Treat the surface of the geometric region defined by the {region-ID} +as a bounding frictional wall which interacts with nearby finite-size +granular particles when they are close enough to touch the wall. See +the "fix wall/region"_fix_wall_region.html and "fix +wall/gran"_fix_wall_gran.html commands for related kinds of walls for +non-granular particles and simpler wall geometries, respectively. + +Here are snapshots of example models using this command. +Corresponding input scripts can be found in examples/granregion. +Click on the images to see a bigger picture. Movies of these +simulations are "here on the Movies +page"_http://lammps.sandia.gov/movies.html#granregion.html of the +LAMMPS web site. + +:image(JPG/gran_funnel_small.jpg,JPG/gran_funnel.png) +:image(JPG/gran_mixer_small.jpg,JPG/gran_mixer.png) + +:line + +The distance between a particle and the region boundary is the +distance to the nearest point on the region surface. The force the +wall exerts on the particle is along the direction between that point +and the particle center, which is the direction normal to the surface +at that point. Note that if the region surface is comprised of +multiple "faces", then each face can exert a force on the particle if +it is close enough. E.g. for "region_style block"_region.html, a +particle in the interior, near a corner of the block, could feel wall +forces from 1, 2, or 3 faces of the block. + +Regions are defined using the "region"_region.html command. Note that +the region volume can be interior or exterior to the bounding surface, +which will determine in which direction the surface interacts with +particles, i.e. the direction of the surface normal. The exception to +this is if one or more {open} options are specified for the region +command, in which case particles interact with both the interior and +exterior surfaces of regions. + +Regions can either be primitive shapes (block, sphere, cylinder, etc) +or combinations of primitive shapes specified via the {union} or +{intersect} region styles. These latter styles can be used to +construct particle containers with complex shapes. Regions can also +move dynamically via the "region"_region.html command keywords (move) +and {rotate}, or change their shape by use of variables as inputs to +the "region"_region.html command. If such a region is used with this +fix, then the region surface will move in time in the corresponding +manner. + +NOTE: As discussed on the "region"_region.html command doc page, +regions in LAMMPS do not get wrapped across periodic boundaries. It +is up to you to ensure that the region location with respect to +periodic or non-periodic boundaries is specified appropriately via the +"region"_region.html and "boundary"_boundary.html commands when using +a region as a wall that bounds particle motion. + +NOTE: For primitive regions with sharp corners and/or edges (e.g. a +block or cylinder), wall/particle forces are computed accurately for +both interior and exterior regions. For {union} and {intersect} +regions, additional sharp corners and edges may be present due to the +intersection of the surfaces of 2 or more primitive volumes. These +corners and edges can be of two types: concave or convex. Concave +points/edges are like the corners of a cube as seen by particles in +the interior of a cube. Wall/particle forces around these features +are computed correctly. Convex points/edges are like the corners of a +cube as seen by particles exterior to the cube, i.e. the points jut +into the volume where particles are present. LAMMPS does NOT compute +the location of these convex points directly, and hence wall/particle +forces in the cutoff volume around these points suffer from +inaccuracies. The basic problem is that the outward normal of the +surface is not continuous at these points. This can cause particles +to feel no force (they don't "see" the wall) when in one location, +then move a distance epsilon, and suddenly feel a large force because +they now "see" the wall. In a worst-case scenario, this can blow +particles out of the simulation box. Thus, as a general rule you +should not use the fix wall/gran/region command with {union} or +{interesect} regions that have convex points or edges resulting from +the union/intersection (convex points/edges in the union/intersection +due to a single sub-region are still OK). + +NOTE: Similarly, you should not define {union} or {intersert} regions +for use with this command that share an overlapping common face that +is part of the overall outer boundary (interior boundary is OK), even +if the face is smooth. E.g. two regions of style block in a {union} +region, where the two blocks overlap on one or more of their faces. +This is because LAMMPS discards points that are part of multiple +sub-regions when calculating wall/particle interactions, to avoid +double-counting the interaction. Having two coincident faces could +cause the face to become invisible to the particles. The solution is +to make the two faces differ by epsilon in their position. + +The nature of the wall/particle interactions are determined by the +{fstyle} setting. It can be any of the styles defined by the +"pair_style granular"_pair_gran.html commands. Currently this is +{hooke}, {hooke/history}, or {hertz/history}. The equation for the +force between the wall and particles touching it is the same as the +corresponding equation on the "pair_style granular"_pair_gran.html doc +page, but the effective radius is calculated using the radius of the +particle and the radius of curvature of the wall at the contact point. + +Specifically, delta = radius - r = overlap of particle with wall, +m_eff = mass of particle, and RiRj/Ri+Rj is the effective radius, with +Rj replaced by the radius of curvature of the wall at the contact +point. The radius of curvature can be negative for a concave wall +section, e.g. the interior of cylinder. For a flat wall, delta = +radius - r = overlap of particle with wall, m_eff = mass of particle, +and the effective radius of contact is just the radius of the +particle. + +The parameters {Kn}, {Kt}, {gamma_n}, {gamma_t}, {xmu} and {dampflag} +have the same meaning and units as those specified with the +"pair_style granular"_pair_gran.html commands. This means a NULL can +be used for either {Kt} or {gamma_t} as described on that page. If a +NULL is used for {Kt}, then a default value is used where {Kt} = 2/7 +{Kn}. If a NULL is used for {gamma_t}, then a default value is used +where {gamma_t} = 1/2 {gamma_n}. + +Note that you can choose a different force styles and/or different +values for the 6 wall/particle coefficients than for particle/particle +interactions. E.g. if you wish to model the wall as a different +material. + +[Restart, fix_modify, output, run start/stop, minimize info:] + +Similiar to "fix wall/gran"_fix_wall_gran.html command, this fix +writes the shear friction state of atoms interacting with the wall to +"binary restart files"_restart.html, so that a simulation can continue +correctly if granular potentials with shear "history" effects are +being used. This fix also includes info about a moving region in the +restart file. See the "read_restart"_read_restart.html command for +info on how to re-specify a fix in an input script that reads a +restart file, so that the operation of the fix continues in an +uninterrupted fashion. + +Note that info about region definitions is NOT included in restart +files. So you must re-define your region and if it is a moving +region, define its motion attributes in a way that is consistent with +the simulation that wrote the restart file. In particular, if you +want to change its motion attributes (e.g. its velocity), then you +should insure the postition/orientation of the region at the initial +restart timestep is the same as it was on the timestep the restart +file was written. If this is not possible, then you may need to +ignore info in the restart file by defining a new fix wall/gran/region +command in your restart script (e.g. with a different fix ID). + +None of the "fix_modify"_fix_modify.html options are relevant to this +fix. No global or per-atom quantities are stored by this fix for +access by various "output commands"_Section_howto.html#howto_15. No +parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. + +[Restrictions:] + +This fix is part of the GRANULAR package. It is only enabled if +LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +[Related commands:] + +"fix_move"_fix_move.html, +"fix wall/gran"_fix_wall_gran.html, +"fix wall/region"_fix_wall_region.html, +"pair_style granular"_pair_gran.html, +"region"_region.html + +[Default:] none + diff --git a/examples/README b/examples/README index 462fa93e12..a6925878e0 100644 --- a/examples/README +++ b/examples/README @@ -74,6 +74,7 @@ eim: NaCl using the EIM potential ellipse: ellipsoidal particles in spherical solvent, 2d system flow: Couette and Poiseuille flow in a 2d channel friction: frictional contact of spherical asperities between 2d surfaces +granregion: use of fix wall/region/gran as boundary on granular particles hugoniostat: Hugoniostat shock dynamics indent: spherical indenter into a 2d solid kim: use of potentials in Knowledge Base for Interatomic Models (KIM) diff --git a/examples/granregion/in.granregion.box b/examples/granregion/in.granregion.box new file mode 100644 index 0000000000..91f06744d3 --- /dev/null +++ b/examples/granregion/in.granregion.box @@ -0,0 +1,66 @@ +# pouring spheres into container box + +units lj +atom_style sphere +boundary f f f +dimension 3 +comm_modify vel yes + +region box block -10 10 -10 10 -10 10 units box +create_box 2 box + +pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 +pair_coeff * * gran/hooke + +region container block -6 6 -6 6 -6 6 units box +fix container all wall/gran/region hooke/history & + 4000.0 NULL 100.0 NULL 0.5 1 region container + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 2 all nve/sphere +fix 3 all gravity 1.0 vector 0 0 -1 + +region slab block -2 2 -2 2 -2 2 units box +fix ins all pour 100 2 4767548 vol 0.4 10 & + diam one 1.0 region slab ignore + +timestep 0.005 + +compute 1 all temp +compute_modify 1 dynamic yes + +compute 2 all temp/sphere +compute_modify 2 dynamic yes + +thermo 100 +thermo_style custom step atoms temp c_1 c_2 press +thermo_modify lost ignore +compute_modify thermo_temp dynamic yes + +#dump 2 all image 100 image.*.jpg type type & +# zoom 1.4 adiam 1.0 box no 0.0 axes yes 0.9 0.03 +#dump_modify 2 pad 5 + +run 5000 + +region container delete +variable theta equal (step-5000)*(4.0*PI/5000) +region container block -6 6 -6 6 -6 6 units box & + rotate v_theta 0 0 0 0 0 1 +run 5000 + +region container delete +region container block -6 6 -6 6 -6 6 units box +run 5000 + +region container delete +variable theta equal (step-15000)*(4.0*PI/5000) +region container block -6 6 -6 6 -6 6 units box & + rotate v_theta 0 0 0 1 1 1 +run 5000 + +region container delete +region container block -6 6 -6 6 -6 6 units box +run 5000 diff --git a/examples/granregion/in.granregion.funnel b/examples/granregion/in.granregion.funnel new file mode 100644 index 0000000000..63e79a7114 --- /dev/null +++ b/examples/granregion/in.granregion.funnel @@ -0,0 +1,157 @@ +# pour particles into cone-shaped funnel, settle them, let them run out bottom + +variable name string funnel_pour + +thermo_modify flush yes +units si +variable PI equal 3.141592653589 +variable seed equal 14314 + +############################################### +# Geometry-related parameters +############################################### + +variable xlo equal 10 +variable xhi equal 40 +variable ylo equal 10 +variable yhi equal 40 +variable zlo equal -20 +variable zhi equal 50 + +variable xc equal 25 +variable yc equal 25 + +variable zconehi equal 50 +variable zconelo equal 10 +variable zcyllo equal 0 +variable radconelo equal 2 +variable radconehi equal 20 + +################################################ +# Particle sizes +################################################ + +variable rlo equal 0.25 +variable rhi equal 0.5 +variable dlo equal 2.0*${rlo} +variable dhi equal 2.0*${rhi} + +variable skin equal ${rhi} + +############################################### +# Granular contact parameters +############################################### + +variable coeffRes equal 0.1 +variable coeffFric equal 0.5 + +variable density equal 1.0 +variable EYoung equal 10^5 +variable Poisson equal 2.0/7.0 +variable GShear equal ${EYoung}/(2*(1+${Poisson})) + +variable gravity equal 1.0 + +variable reff equal 0.5*(${rhi}+${rlo}) +variable meff equal ${density}*4.0/3.0*${PI}*${reff}^3 +variable min_mass equal ${density}*4.0/3.0*${PI}*${rlo}*${rlo}*${rlo} +variable max_mass equal ${density}*4.0/3.0*${PI}*${rhi}*${rhi}*${rhi} + +## Typical way to set kn, kt, etc.: +variable kn equal 4.0*${GShear}/(3*(1-${Poisson})) +variable kt equal 4.0*${GShear}/(2-${Poisson}) + +variable a equal (-2.0*log(${coeffRes})/${PI})^2 +variable gamma_n equal sqrt($a*2*${kn}/${min_mass}/(1+0.25*$a)) +variable gamma_t equal ${gamma_n}*0.5 + +variable tcol equal ${PI}/sqrt(2*${kn}/${min_mass}-${gamma_n}/4.0) + +variable dt equal ${tcol}*0.05 +timestep ${dt} + +############################################### +variable dumpfreq equal 1000 +variable logfreq equal 1000 + +newton off +atom_style sphere + +boundary p p f + +region boxreg block ${xlo} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} +create_box 1 boxreg + +pair_style gran/hertz/history & + ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_coeff * * + +neighbor ${skin} bin +thermo ${logfreq} + +comm_style brick +comm_modify mode multi group all vel yes +balance 1.1 shift xyz 20 1.1 +fix bal all balance 10000 1.1 shift xyz 20 1.01 + +####################### Options specific to pouring ######################### + +# insertion region for fix/pour + +region insreg cylinder z ${xc} ${yc} 10 30 50 side in units box + +# define cone and cylinder regions - see lammps doc on region command +# note new open options + +region cylreg cylinder z ${xc} ${yc} ${radconelo} & + ${zcyllo} ${zconelo} side in units box & + open 2 #Top is open + +region conereg cone z ${xc} ${yc} ${radconelo} ${radconehi} & + ${zconelo} ${zconehi} side in units box & + open 1 open 2 #Bottom and top are open + +region hopreg union 2 conereg cylreg + +fix grav all gravity ${gravity} vector 0 0 -1 +fix 1 all nve/sphere + + +fix hopper3 all wall/gran/region hertz/history & + ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg + +fix ins all pour 2000 1 42424 region insreg & + diam range ${dlo} ${dhi} dens ${density} ${density} + +#dump 1 all custom ${dumpfreq} ${name}.dump & +# id type mass diameter x y z + +#dump 2 all image 4000 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 zoom 3.0 & +# box no 0.0 axes no 0.0 0.0 +#dump_modify 2 pad 6 + +thermo_style custom step cpu atoms ke +thermo_modify flush yes lost warn + +# Initial run to fill up the cone + +run 20000 +unfix ins +run 150000 + +# remove "plug" - need to redefine cylinder region & union + +region cylreg delete +region hopreg delete +region cylreg cylinder z ${xc} ${yc} ${radconelo} & + ${zcyllo} ${zconelo} side in units box & + open 1 open 2 #Bottom & top are open + +region hopreg union 2 cylreg conereg + +unfix hopper3 +fix hopper3 all wall/gran/region hertz/history & + ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg + +run 100000 diff --git a/examples/granregion/in.granregion.mixer b/examples/granregion/in.granregion.mixer new file mode 100644 index 0000000000..f9a9d04cbe --- /dev/null +++ b/examples/granregion/in.granregion.mixer @@ -0,0 +1,96 @@ +variable name string mixer + +thermo_modify flush yes +variable seed equal 14314 + +############################################### +# Particle parameters +################################################ + +variable rlo equal 0.3 +variable rhi equal 0.6 +variable dlo equal 2.0*${rlo} +variable dhi equal 2.0*${rhi} +variable skin equal ${rhi} + +variable coeffRes equal 0.1 +variable coeffFric equal 0.5 + +variable kn equal 10^5 +variable kt equal 0.2*${kn} + +variable gravity equal 1.0 +variable density equal 1.0 + +variable min_mass equal ${density}*4.0/3.0*PI*${rlo}*${rlo}*${rlo} +variable a equal (-2.0*log(${coeffRes})/PI)^2 +variable gamma_n equal sqrt($a*2*${kn}/${min_mass}/(1+0.25*$a)) +variable gamma_t equal ${gamma_n}*0.5 + +variable tcol equal PI/sqrt(2*${kn}/${min_mass}-${gamma_n}/4.0) + +variable dt equal ${tcol}*0.02 +timestep ${dt} + +############################################### + +variable dumpfreq equal 1000 +variable logfreq equal 1000 + +newton on +atom_style sphere + +boundary p p f + +region boxreg block 0 20 0 20 0 20 +create_box 1 boxreg + +pair_style gran/hertz/history & + ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_coeff * * + +neighbor ${skin} bin +thermo ${logfreq} + +comm_style brick +comm_modify mode multi group all vel yes +balance 1.1 shift xyz 20 1.1 +fix bal all balance 10000 1.1 shift xyz 20 1.01 + +####################### Options specific to pouring ######################### + +region insreg cylinder z 10 10 8 10 18 side in units box +region cylreg cylinder z 10 10 10 0 20 side in units box + +variable theta equal (step/400000)*2*PI + +region b1 block 2 18 9 11 0 4 side out & + rotate v_theta 10 10 0 0 0 1 units box +region b2 block 9 11 2 18 0 3.99999 side out & + rotate v_theta 10 10 0 0 0 1 units box + +region mixer intersect 3 cylreg b1 b2 side in + +fix grav all gravity ${gravity} vector 0 0 -1 +fix 1 all nve/sphere + +fix mixwall all wall/gran/region hertz/history & + ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region mixer + +fix ins all pour 1000 1 42424 region insreg & + diam range ${dlo} ${dhi} dens ${density} ${density} + +#dump 1 all custom ${dumpfreq} ${name}_pour.dump & +# id type mass diameter x y z + +#dump 2 all image 4000 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 zoom 1.5 & +# box no 0.0 axes no 0.0 0.0 +#dump_modify 2 pad 6 + +thermo_style custom step cpu atoms ke v_theta +thermo_modify flush yes lost warn + +run 200000 +unfix ins +run 200000 diff --git a/examples/granregion/log.6Oct16.granregion.box.g++.1 b/examples/granregion/log.6Oct16.granregion.box.g++.1 new file mode 100644 index 0000000000..ae2ec694e9 --- /dev/null +++ b/examples/granregion/log.6Oct16.granregion.box.g++.1 @@ -0,0 +1,468 @@ +LAMMPS (5 Oct 2016) +# pouring spheres into container box + +units lj +atom_style sphere +boundary f f f +dimension 3 +comm_modify vel yes + +region box block -10 10 -10 10 -10 10 units box +create_box 2 box +Created orthogonal box = (-10 -10 -10) to (10 10 10) + 1 by 1 by 1 MPI processor grid + +pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 +pair_coeff * * gran/hooke + +region container block -6 6 -6 6 -6 6 units box +fix container all wall/gran/region hooke/history 4000.0 NULL 100.0 NULL 0.5 1 region container + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 2 all nve/sphere +fix 3 all gravity 1.0 vector 0 0 -1 + +region slab block -2 2 -2 2 -2 2 units box +fix ins all pour 100 2 4767548 vol 0.4 10 diam one 1.0 region slab ignore +Particle insertion: 48 every 566 steps, 100 by step 1133 + +timestep 0.005 + +compute 1 all temp +compute_modify 1 dynamic yes + +compute 2 all temp/sphere +compute_modify 2 dynamic yes + +thermo 100 +thermo_style custom step atoms temp c_1 c_2 press +thermo_modify lost ignore +compute_modify thermo_temp dynamic yes + +#dump 2 all image 100 image.*.jpg type type # zoom 1.4 adiam 1.0 box no 0.0 axes yes 0.9 0.03 +#dump_modify 2 pad 5 + +run 5000 +Neighbor list info ... + 1 neighbor list requests + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65 -> bins = 31 31 31 +Memory usage per processor = 0.201172 Mbytes +Step Atoms Temp c_1 c_2 Press + 0 0 0 0 0 0 + 100 21 0.54270729 0.54270729 0.26473526 0.0013567682 + 200 21 0.87606961 0.87606961 0.42735103 0.002190174 + 300 21 1.1428374 1.1428374 0.55748167 0.0028570936 + 400 21 1.3543103 1.3543103 0.66829516 0.0033857758 + 500 21 1.0677786 1.0677786 0.53582407 0.0045048164 + 600 56 0.6744286 0.6744286 0.3502938 0.0047464584 + 700 56 0.75569283 0.75569283 0.39779462 0.0051953882 + 800 56 0.61597505 0.61597505 0.32943642 0.0086022783 + 900 56 0.65260802 0.65260802 0.34474044 0.0059298996 + 1000 56 0.51624952 0.51624952 0.28326898 0.0067827337 + 1100 56 0.46050076 0.46050076 0.25656319 0.0061891094 + 1200 81 0.39112377 0.39112377 0.21690744 0.0086559347 + 1300 81 0.33302801 0.33302801 0.19110222 0.0033381288 + 1400 81 0.39333146 0.39333146 0.21220965 0.0041348597 + 1500 81 0.35493951 0.35493951 0.19924958 0.00373736 + 1600 81 0.34154491 0.34154491 0.19031147 0.005349672 + 1700 100 0.25598828 0.25598828 0.14171498 0.0092236643 + 1800 100 0.2114074 0.2114074 0.12162965 0.0027213483 + 1900 100 0.21810423 0.21810423 0.12176698 0.0036436034 + 2000 100 0.2553198 0.2553198 0.13900087 0.0032844504 + 2100 100 0.24809937 0.24809937 0.13753654 0.0088764373 + 2200 100 0.22455642 0.22455642 0.12500977 0.0043517009 + 2300 100 0.19586874 0.19586874 0.11064996 0.0055178814 + 2400 100 0.059619074 0.059619074 0.045535036 0.00079051539 + 2500 100 0.052222462 0.052222462 0.038563852 0.00098981299 + 2600 100 0.036930777 0.036930777 0.027579114 0.0012285499 + 2700 100 0.027937818 0.027937818 0.020587353 0.00063085447 + 2800 100 0.02103783 0.02103783 0.015469157 0.00050316582 + 2900 100 0.010408128 0.010408128 0.0084894275 0.00035440391 + 3000 100 0.0077664382 0.0077664382 0.0068149074 0.0011153614 + 3100 100 0.0088789208 0.0088789208 0.0070143391 0.00032679783 + 3200 100 0.0077683432 0.0077683432 0.0059711038 0.00044762363 + 3300 100 0.00411 0.00411 0.00372409 0.00015328221 + 3400 100 0.0039192171 0.0039192171 0.0032409072 9.3603399e-05 + 3500 100 0.0023532199 0.0023532199 0.0020924799 0.00049044152 + 3600 100 0.0022544513 0.0022544513 0.0019545724 8.1086108e-05 + 3700 100 0.0012696379 0.0012696379 0.0013134108 5.0058058e-05 + 3800 100 0.0012035225 0.0012035225 0.0012490584 6.0331967e-05 + 3900 100 0.00080361803 0.00080361803 0.00094424552 6.7229227e-05 + 4000 100 0.00060715659 0.00060715659 0.00076521759 6.7029916e-05 + 4100 100 0.00058510487 0.00058510487 0.00073844578 5.5867098e-05 + 4200 100 0.00046832309 0.00046832309 0.00060848748 5.3853715e-05 + 4300 100 0.00045207186 0.00045207186 0.00057825336 4.8367831e-05 + 4400 100 0.00041874845 0.00041874845 0.00053103589 8.666037e-05 + 4500 100 0.00041136295 0.00041136295 0.00052246056 6.0456585e-05 + 4600 100 0.00041021147 0.00041021147 0.0005190668 4.8701604e-05 + 4700 100 0.00037176253 0.00037176253 0.00049156279 5.8874891e-05 + 4800 100 0.0003262417 0.0003262417 0.00045551846 5.0610728e-05 + 4900 100 0.00028093583 0.00028093583 0.00042099654 4.6558605e-05 + 5000 100 0.00027730599 0.00027730599 0.00041664922 4.7053044e-05 +Loop time of 0.081454 on 1 procs for 5000 steps with 100 atoms + +Performance: 26518022.146 tau/day, 61384.311 timesteps/s +99.4% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0085223 | 0.0085223 | 0.0085223 | 0.0 | 10.46 +Neigh | 0.01466 | 0.01466 | 0.01466 | 0.0 | 18.00 +Comm | 0.00076532 | 0.00076532 | 0.00076532 | 0.0 | 0.94 +Output | 0.00052285 | 0.00052285 | 0.00052285 | 0.0 | 0.64 +Modify | 0.05317 | 0.05317 | 0.05317 | 0.0 | 65.28 +Other | | 0.003814 | | | 4.68 + +Nlocal: 100 ave 100 max 100 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 158 ave 158 max 158 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 158 +Ave neighs/atom = 1.58 +Neighbor list builds = 306 +Dangerous builds = 0 + +region container delete +variable theta equal (step-5000)*(4.0*PI/5000) +region container block -6 6 -6 6 -6 6 units box rotate v_theta 0 0 0 0 0 1 +run 5000 +Memory usage per processor = 5.26337 Mbytes +Step Atoms Temp c_1 c_2 Press + 5000 100 0.00027730599 0.00027730599 0.00041664922 4.705763e-05 + 5100 100 0.60717077 0.60717077 0.33118944 0.010686501 + 5200 100 0.64991179 0.64991179 0.35498767 0.011370453 + 5300 100 0.72038713 0.72038713 0.38745069 0.010507667 + 5400 100 0.81357499 0.81357499 0.42946808 0.012920419 + 5500 100 0.90488411 0.90488411 0.46803321 0.015077428 + 5600 100 0.99065617 0.99065617 0.50811954 0.015556572 + 5700 100 1.0701203 1.0701203 0.54641187 0.016464366 + 5800 100 1.1351242 1.1351242 0.57607707 0.017832476 + 5900 100 1.1883602 1.1883602 0.60022389 0.019571838 + 6000 100 1.2153421 1.2153421 0.61245652 0.020549414 + 6100 100 1.2369293 1.2369293 0.62229634 0.01827529 + 6200 100 1.2556883 1.2556883 0.63207905 0.020286322 + 6300 100 1.2618555 1.2618555 0.63610311 0.019844583 + 6400 100 1.2671678 1.2671678 0.63873131 0.019817249 + 6500 100 1.2875312 1.2875312 0.64728693 0.020097362 + 6600 100 1.3014055 1.3014055 0.65413071 0.020000886 + 6700 100 1.2904021 1.2904021 0.6485358 0.020009625 + 6800 100 1.2962767 1.2962767 0.65088367 0.021340143 + 6900 100 1.3056081 1.3056081 0.65490644 0.020455771 + 7000 100 1.3116731 1.3116731 0.65766216 0.020475061 + 7100 100 1.319457 1.319457 0.66105016 0.020937651 + 7200 100 1.3213585 1.3213585 0.66207982 0.02120792 + 7300 100 1.3232411 1.3232411 0.66392391 0.021040683 + 7400 100 1.3300163 1.3300163 0.66599805 0.021202273 + 7500 100 1.3350122 1.3350122 0.66894534 0.021161833 + 7600 100 1.3344633 1.3344633 0.6688403 0.020871936 + 7700 100 1.3492825 1.3492825 0.6751371 0.021415859 + 7800 100 1.3539647 1.3539647 0.67757279 0.021306442 + 7900 100 1.3527157 1.3527157 0.67722774 0.021793531 + 8000 100 1.3526931 1.3526931 0.67713399 0.022973395 + 8100 100 1.3568279 1.3568279 0.67936578 0.021422428 + 8200 100 1.3599258 1.3599258 0.68113142 0.021397012 + 8300 100 1.3601893 1.3601893 0.68165656 0.021643375 + 8400 100 1.3752164 1.3752164 0.68788213 0.022208765 + 8500 100 1.3821458 1.3821458 0.69165274 0.022015877 + 8600 100 1.3784691 1.3784691 0.68964478 0.022144188 + 8700 100 1.3801422 1.3801422 0.6904093 0.0220402 + 8800 100 1.3900051 1.3900051 0.6947875 0.02216362 + 8900 100 1.3897902 1.3897902 0.69427134 0.023078569 + 9000 100 1.3909918 1.3909918 0.69456955 0.022043699 + 9100 100 1.3925028 1.3925028 0.69519141 0.022180156 + 9200 100 1.3923277 1.3923277 0.69512657 0.022113729 + 9300 100 1.3945193 1.3945193 0.69625374 0.022344694 + 9400 100 1.3960782 1.3960782 0.69705144 0.022181158 + 9500 100 1.3932407 1.3932407 0.69560365 0.022129998 + 9600 100 1.3925489 1.3925489 0.69532399 0.022124653 + 9700 100 1.3935299 1.3935299 0.69581607 0.022258368 + 9800 100 1.3933949 1.3933949 0.69579137 0.022209028 + 9900 100 1.3934712 1.3934712 0.69587898 0.022214942 + 10000 100 1.3935828 1.3935828 0.69598655 0.022231414 +Loop time of 0.261407 on 1 procs for 5000 steps with 100 atoms + +Performance: 8262972.563 tau/day, 19127.251 timesteps/s +99.8% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.042233 | 0.042233 | 0.042233 | 0.0 | 16.16 +Neigh | 0.035131 | 0.035131 | 0.035131 | 0.0 | 13.44 +Comm | 0.0010462 | 0.0010462 | 0.0010462 | 0.0 | 0.40 +Output | 0.00051785 | 0.00051785 | 0.00051785 | 0.0 | 0.20 +Modify | 0.17687 | 0.17687 | 0.17687 | 0.0 | 67.66 +Other | | 0.00561 | | | 2.15 + +Nlocal: 100 ave 100 max 100 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 187 ave 187 max 187 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 187 +Ave neighs/atom = 1.87 +Neighbor list builds = 634 +Dangerous builds = 0 + +region container delete +region container block -6 6 -6 6 -6 6 units box +run 5000 +Memory usage per processor = 5.26337 Mbytes +Step Atoms Temp c_1 c_2 Press + 10000 100 1.3935828 1.3935828 0.69598655 0.02230659 + 10100 100 0.3402861 0.3402861 0.19584226 0.014767914 + 10200 100 0.19064555 0.19064555 0.12536788 0.0025413789 + 10300 100 0.13281358 0.13281358 0.10275768 0.002843208 + 10400 100 0.10124671 0.10124671 0.077914135 0.0017745353 + 10500 100 0.082636734 0.082636734 0.063857622 0.001419336 + 10600 100 0.066744462 0.066744462 0.051927437 0.0010830674 + 10700 100 0.060778462 0.060778462 0.047461784 0.0011418844 + 10800 100 0.043437178 0.043437178 0.032805669 0.0017050393 + 10900 100 0.036483219 0.036483219 0.027387805 0.00086936813 + 11000 100 0.027639076 0.027639076 0.021221241 0.00054920607 + 11100 100 0.023614696 0.023614696 0.018445634 0.00058724552 + 11200 100 0.020103248 0.020103248 0.015933089 0.00072830275 + 11300 100 0.018645345 0.018645345 0.014559759 0.0002319388 + 11400 100 0.015499672 0.015499672 0.01248828 0.00036020862 + 11500 100 0.013421296 0.013421296 0.010743248 0.00043093929 + 11600 100 0.011214892 0.011214892 0.0089653924 0.00059789544 + 11700 100 0.0086660806 0.0086660806 0.0070563902 0.00029684573 + 11800 100 0.0064777244 0.0064777244 0.0052946156 0.00046466386 + 11900 100 0.0059360881 0.0059360881 0.0048568813 8.361561e-05 + 12000 100 0.0045341025 0.0045341025 0.003883229 0.00016408047 + 12100 100 0.0042504415 0.0042504415 0.0036944958 6.5005147e-05 + 12200 100 0.0041367637 0.0041367637 0.0035928232 7.3025698e-05 + 12300 100 0.0037700129 0.0037700129 0.003283398 6.381318e-05 + 12400 100 0.0033494476 0.0033494476 0.0029274495 4.7731105e-05 + 12500 100 0.0030903175 0.0030903175 0.0027068073 6.797313e-05 + 12600 100 0.0026406999 0.0026406999 0.0023315387 0.0002371331 + 12700 100 0.0025020713 0.0025020713 0.0022367855 4.2787276e-05 + 12800 100 0.0022977381 0.0022977381 0.0020778307 3.9744567e-05 + 12900 100 0.002039634 0.002039634 0.0018862012 0.00011669223 + 13000 100 0.0018044702 0.0018044702 0.00171399 0.00013835538 + 13100 100 0.0016600965 0.0016600965 0.0015553191 3.2320019e-05 + 13200 100 0.0015596204 0.0015596204 0.001486374 1.9246911e-05 + 13300 100 0.001316505 0.001316505 0.0012105249 9.1469679e-05 + 13400 100 0.0012517536 0.0012517536 0.0011525753 4.815292e-05 + 13500 100 0.0010827608 0.0010827608 0.001038339 2.0913017e-05 + 13600 100 0.0009863908 0.0009863908 0.00095924929 9.7716736e-05 + 13700 100 0.00094543599 0.00094543599 0.00092425645 1.378887e-05 + 13800 100 0.00087893271 0.00087893271 0.00086801608 1.8981177e-05 + 13900 100 0.00080241572 0.00080241572 0.0007930026 5.0987122e-05 + 14000 100 0.00070705631 0.00070705631 0.00069238137 1.2900066e-05 + 14100 100 0.0006525032 0.0006525032 0.000637991 0.00010838464 + 14200 100 0.00059338444 0.00059338444 0.00057560454 7.3431324e-06 + 14300 100 0.00058641228 0.00058641228 0.00056944735 7.256852e-06 + 14400 100 0.00056221112 0.00056221112 0.00054625666 8.1343426e-06 + 14500 100 0.00055493127 0.00055493127 0.00053957583 1.1713058e-05 + 14600 100 0.00052854921 0.00052854921 0.00051816618 8.6527225e-06 + 14700 100 0.00052630581 0.00052630581 0.00051584277 6.4890475e-06 + 14800 100 0.00052563819 0.00052563819 0.00051493123 1.2687153e-05 + 14900 100 0.00052131364 0.00052131364 0.00050917244 7.4589995e-08 + 15000 100 0.00051902191 0.00051902191 0.00050725364 6.4228962e-06 +Loop time of 0.0895741 on 1 procs for 5000 steps with 100 atoms + +Performance: 24114113.723 tau/day, 55819.708 timesteps/s +99.3% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0098987 | 0.0098987 | 0.0098987 | 0.0 | 11.05 +Neigh | 0.0061045 | 0.0061045 | 0.0061045 | 0.0 | 6.81 +Comm | 0.00069976 | 0.00069976 | 0.00069976 | 0.0 | 0.78 +Output | 0.00049758 | 0.00049758 | 0.00049758 | 0.0 | 0.56 +Modify | 0.068435 | 0.068435 | 0.068435 | 0.0 | 76.40 +Other | | 0.003939 | | | 4.40 + +Nlocal: 100 ave 100 max 100 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 160 +Ave neighs/atom = 1.6 +Neighbor list builds = 111 +Dangerous builds = 0 + +region container delete +variable theta equal (step-15000)*(4.0*PI/5000) +region container block -6 6 -6 6 -6 6 units box rotate v_theta 0 0 0 1 1 1 +run 5000 +Memory usage per processor = 5.26337 Mbytes +Step Atoms Temp c_1 c_2 Press + 15000 100 0.00051902191 0.00051902191 0.00050725364 6.4228962e-06 + 15100 100 1.1235353 1.1235353 0.72003773 0.013686681 + 15200 100 1.0778556 1.0778556 0.69137925 0.013478363 + 15300 100 1.069015 1.069015 0.69798184 0.014165255 + 15400 100 1.2249943 1.2249943 0.79096059 0.020933395 + 15500 100 1.5225664 1.5225664 0.94822282 0.023932611 + 15600 100 1.5867194 1.5867194 0.98143504 0.024565132 + 15700 100 1.6595267 1.6595267 1.0203985 0.025152432 + 15800 100 1.8188027 1.8188027 1.0857586 0.031597641 + 15900 100 1.9234102 1.9234102 1.1099361 0.032381895 + 16000 100 2.039435 2.039435 1.1656948 0.032501981 + 16100 100 2.17315 2.17315 1.2265552 0.032675825 + 16200 100 2.2017279 2.2017279 1.23995 0.028634878 + 16300 100 2.3510902 2.3510902 1.3055642 0.03248003 + 16400 100 2.373932 2.373932 1.3059254 0.031292969 + 16500 100 2.5010862 2.5010862 1.3607219 0.032322054 + 16600 100 2.4815092 2.4815092 1.3524159 0.031223889 + 16700 100 2.6549226 2.6549226 1.4383508 0.033713507 + 16800 100 2.8087564 2.8087564 1.5261538 0.036598837 + 16900 100 2.8653588 2.8653588 1.5649123 0.035890231 + 17000 100 2.903748 2.903748 1.5907716 0.038038745 + 17100 100 2.9679376 2.9679376 1.6195577 0.051771432 + 17200 100 2.9632377 2.9632377 1.6233074 0.039825751 + 17300 100 3.0436883 3.0436883 1.6591248 0.042862982 + 17400 100 3.0969015 3.0969015 1.6811582 0.042104811 + 17500 100 3.0827135 3.0827135 1.691414 0.045839327 + 17600 100 3.0854805 3.0854805 1.689399 0.041770144 + 17700 100 3.07523 3.07523 1.6685518 0.045104715 + 17800 100 2.9610899 2.9610899 1.6349099 0.039060791 + 17900 100 2.8002989 2.8002989 1.5665223 0.037917927 + 18000 100 2.9139644 2.9139644 1.6206891 0.050841302 + 18100 100 3.0134757 3.0134757 1.6673916 0.040967255 + 18200 100 3.0731184 3.0731184 1.6777507 0.043503474 + 18300 100 3.0915242 3.0915242 1.6843452 0.040157898 + 18400 100 3.098896 3.098896 1.6904524 0.039629218 + 18500 100 3.1651814 3.1651814 1.7290259 0.042604953 + 18600 100 3.353247 3.353247 1.8236992 0.045132486 + 18700 100 3.540156 3.540156 1.9078363 0.046602063 + 18800 100 3.6395129 3.6395129 1.9578976 0.045659959 + 18900 100 3.7638134 3.7638134 2.0179445 0.051061068 + 19000 100 3.7603453 3.7603453 2.003355 0.057123184 + 19100 100 3.9218495 3.9218495 2.0968869 0.057671742 + 19200 100 3.9924222 3.9924222 2.1321955 0.051824898 + 19300 100 3.9690887 3.9690887 2.1270643 0.054832867 + 19400 100 3.9408481 3.9408481 2.1146593 0.057020024 + 19500 100 3.8313782 3.8313782 2.0610797 0.055164704 + 19600 100 3.8317496 3.8317496 2.0668123 0.049840804 + 19700 100 3.6068628 3.6068628 1.964227 0.05142407 + 19800 100 3.5477437 3.5477437 1.9314948 0.051076014 + 19900 100 3.6526881 3.6526881 1.9855353 0.047130029 + 20000 100 3.7243709 3.7243709 2.0380212 0.048446835 +Loop time of 0.206397 on 1 procs for 5000 steps with 100 atoms + +Performance: 10465265.522 tau/day, 24225.152 timesteps/s +100.3% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.014297 | 0.014297 | 0.014297 | 0.0 | 6.93 +Neigh | 0.050213 | 0.050213 | 0.050213 | 0.0 | 24.33 +Comm | 0.0011115 | 0.0011115 | 0.0011115 | 0.0 | 0.54 +Output | 0.00051141 | 0.00051141 | 0.00051141 | 0.0 | 0.25 +Modify | 0.13415 | 0.13415 | 0.13415 | 0.0 | 65.00 +Other | | 0.006114 | | | 2.96 + +Nlocal: 100 ave 100 max 100 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 142 ave 142 max 142 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 142 +Ave neighs/atom = 1.42 +Neighbor list builds = 899 +Dangerous builds = 0 + +region container delete +region container block -6 6 -6 6 -6 6 units box +run 5000 +Memory usage per processor = 5.26337 Mbytes +Step Atoms Temp c_1 c_2 Press + 20000 100 3.7243709 3.7243709 2.0380212 0.048156434 + 20100 100 1.1186527 1.1186527 0.69104385 0.014964891 + 20200 100 0.91445605 0.91445605 0.57005236 0.011324474 + 20300 100 0.8936601 0.8936601 0.55534411 0.011071843 + 20400 100 0.90773143 0.90773143 0.55999953 0.011254101 + 20500 100 0.91995508 0.91995508 0.55837916 0.011548541 + 20600 100 0.91682167 0.91682167 0.54095261 0.012563797 + 20700 100 0.97806337 0.97806337 0.56016442 0.012396925 + 20800 100 0.97778738 0.97778738 0.55606194 0.015441479 + 20900 100 0.77253213 0.77253213 0.44636799 0.011428992 + 21000 100 0.63053468 0.63053468 0.35995394 0.01005502 + 21100 100 0.25437539 0.25437539 0.16544433 0.004628738 + 21200 100 0.11828032 0.11828032 0.087911985 0.0037076362 + 21300 100 0.11219312 0.11219312 0.080957112 0.0015847347 + 21400 100 0.10765357 0.10765357 0.074676159 0.0022823419 + 21500 100 0.060787093 0.060787093 0.046135213 0.00091422949 + 21600 100 0.040447932 0.040447932 0.033050575 0.0013404194 + 21700 100 0.035227782 0.035227782 0.02916621 0.00138779 + 21800 100 0.03309101 0.03309101 0.026613861 0.00058184323 + 21900 100 0.031461843 0.031461843 0.024751985 0.0013090333 + 22000 100 0.021624144 0.021624144 0.017872639 0.0010893822 + 22100 100 0.016728267 0.016728267 0.01403934 0.00049128736 + 22200 100 0.016256915 0.016256915 0.013763903 0.00047288638 + 22300 100 0.01349256 0.01349256 0.011498343 0.0013508309 + 22400 100 0.010027007 0.010027007 0.0087924966 0.00030117996 + 22500 100 0.0107355 0.0107355 0.0088715062 0.001043188 + 22600 100 0.0095852245 0.0095852245 0.007965421 0.00028464236 + 22700 100 0.0072956464 0.0072956464 0.0062403843 0.00061636772 + 22800 100 0.0060874415 0.0060874415 0.0054788049 0.00021135824 + 22900 100 0.0059688159 0.0059688159 0.0049530273 0.00022094116 + 23000 100 0.0050218996 0.0050218996 0.0043518404 0.00022527705 + 23100 100 0.005022208 0.005022208 0.0043118432 0.00052482006 + 23200 100 0.0047096056 0.0047096056 0.0039698638 0.00026423471 + 23300 100 0.0039510068 0.0039510068 0.0034773285 0.0001891104 + 23400 100 0.0037308781 0.0037308781 0.0031763304 0.00027163016 + 23500 100 0.0036278619 0.0036278619 0.0030371899 0.00017961072 + 23600 100 0.0033598677 0.0033598677 0.0027586323 0.00015034494 + 23700 100 0.0028530843 0.0028530843 0.0024809444 0.00012294415 + 23800 100 0.0025388819 0.0025388819 0.0022812799 0.00018946676 + 23900 100 0.0021129272 0.0021129272 0.0019905358 0.00015816903 + 24000 100 0.0021010978 0.0021010978 0.0019864539 0.00017086049 + 24100 100 0.0022189886 0.0022189886 0.0020466911 0.00030932562 + 24200 100 0.0019226314 0.0019226314 0.0017933042 9.3246067e-05 + 24300 100 0.0016875781 0.0016875781 0.0015999656 9.9935458e-05 + 24400 100 0.0015929611 0.0015929611 0.001531011 9.7429139e-05 + 24500 100 0.0015143044 0.0015143044 0.0014044175 9.807117e-05 + 24600 100 0.0018595492 0.0018595492 0.0014740944 7.4734729e-05 + 24700 100 0.0011646988 0.0011646988 0.0010881356 6.1197025e-05 + 24800 100 0.0014641612 0.0014641612 0.0012316664 8.81462e-05 + 24900 100 0.001024996 0.001024996 0.00094311114 5.8776472e-05 + 25000 100 0.00097890442 0.00097890442 0.00090302317 3.3980657e-05 +Loop time of 0.0954661 on 1 procs for 5000 steps with 100 atoms + +Performance: 22625823.872 tau/day, 52374.592 timesteps/s +99.5% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.01234 | 0.01234 | 0.01234 | 0.0 | 12.93 +Neigh | 0.015404 | 0.015404 | 0.015404 | 0.0 | 16.14 +Comm | 0.00077391 | 0.00077391 | 0.00077391 | 0.0 | 0.81 +Output | 0.000494 | 0.000494 | 0.000494 | 0.0 | 0.52 +Modify | 0.062222 | 0.062222 | 0.062222 | 0.0 | 65.18 +Other | | 0.004233 | | | 4.43 + +Nlocal: 100 ave 100 max 100 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 150 ave 150 max 150 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 150 +Ave neighs/atom = 1.5 +Neighbor list builds = 283 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/granregion/log.6Oct16.granregion.box.g++.4 b/examples/granregion/log.6Oct16.granregion.box.g++.4 new file mode 100644 index 0000000000..daaae2019e --- /dev/null +++ b/examples/granregion/log.6Oct16.granregion.box.g++.4 @@ -0,0 +1,468 @@ +LAMMPS (5 Oct 2016) +# pouring spheres into container box + +units lj +atom_style sphere +boundary f f f +dimension 3 +comm_modify vel yes + +region box block -10 10 -10 10 -10 10 units box +create_box 2 box +Created orthogonal box = (-10 -10 -10) to (10 10 10) + 1 by 2 by 2 MPI processor grid + +pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 +pair_coeff * * gran/hooke + +region container block -6 6 -6 6 -6 6 units box +fix container all wall/gran/region hooke/history 4000.0 NULL 100.0 NULL 0.5 1 region container + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 2 all nve/sphere +fix 3 all gravity 1.0 vector 0 0 -1 + +region slab block -2 2 -2 2 -2 2 units box +fix ins all pour 100 2 4767548 vol 0.4 10 diam one 1.0 region slab ignore +Particle insertion: 48 every 566 steps, 100 by step 1133 + +timestep 0.005 + +compute 1 all temp +compute_modify 1 dynamic yes + +compute 2 all temp/sphere +compute_modify 2 dynamic yes + +thermo 100 +thermo_style custom step atoms temp c_1 c_2 press +thermo_modify lost ignore +compute_modify thermo_temp dynamic yes + +#dump 2 all image 100 image.*.jpg type type # zoom 1.4 adiam 1.0 box no 0.0 axes yes 0.9 0.03 +#dump_modify 2 pad 5 + +run 5000 +Neighbor list info ... + 1 neighbor list requests + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65 -> bins = 31 31 31 +Memory usage per processor = 0.0990257 Mbytes +Step Atoms Temp c_1 c_2 Press + 0 0 0 0 0 0 + 100 21 0.54270729 0.54270729 0.26473526 0.0013567682 + 200 21 0.87606961 0.87606961 0.42735103 0.002190174 + 300 21 1.1428374 1.1428374 0.55748167 0.0028570936 + 400 21 1.3543103 1.3543103 0.66829516 0.0033857758 + 500 21 1.0677786 1.0677786 0.53582407 0.0045048164 + 600 56 0.6744286 0.6744286 0.3502938 0.0047464584 + 700 56 0.75569283 0.75569283 0.39779462 0.0051953882 + 800 56 0.61597505 0.61597505 0.32943642 0.0086022783 + 900 56 0.65260802 0.65260802 0.34474044 0.0059298996 + 1000 56 0.51624952 0.51624952 0.28326898 0.0067827337 + 1100 56 0.46050076 0.46050076 0.25656319 0.0061891094 + 1200 81 0.39112377 0.39112377 0.21690744 0.0086559347 + 1300 81 0.33302801 0.33302801 0.19110222 0.0033381288 + 1400 81 0.39333146 0.39333146 0.21220965 0.0041348597 + 1500 81 0.35493951 0.35493951 0.19924958 0.00373736 + 1600 81 0.34154491 0.34154491 0.19031147 0.005349672 + 1700 100 0.25598828 0.25598828 0.14171498 0.0092236643 + 1800 100 0.2114074 0.2114074 0.12162965 0.0027213483 + 1900 100 0.21810423 0.21810423 0.12176698 0.0036436054 + 2000 100 0.2553198 0.2553198 0.13900087 0.0032844518 + 2100 100 0.24809936 0.24809936 0.13753654 0.0088764777 + 2200 100 0.22455625 0.22455625 0.12500973 0.0043515755 + 2300 100 0.19586871 0.19586871 0.11064996 0.0055176298 + 2400 100 0.059621411 0.059621411 0.045535517 0.00079910861 + 2500 100 0.052217518 0.052217518 0.038542594 0.0009759424 + 2600 100 0.036907358 0.036907358 0.027550263 0.0014047668 + 2700 100 0.027926944 0.027926944 0.020599405 0.00063362027 + 2800 100 0.020876282 0.020876282 0.015385856 0.00066161626 + 2900 100 0.010390963 0.010390963 0.0085038611 0.00026222195 + 3000 100 0.0080105974 0.0080105974 0.006995365 0.00059521652 + 3100 100 0.0087388005 0.0087388005 0.0069051613 0.00028045343 + 3200 100 0.0078828927 0.0078828927 0.0060159861 0.00014819289 + 3300 100 0.0039336821 0.0039336821 0.0036525886 0.0001439482 + 3400 100 0.0037684472 0.0037684472 0.0031531439 0.00010653386 + 3500 100 0.0023527874 0.0023527874 0.0020983632 6.3797052e-05 + 3600 100 0.0018768162 0.0018768162 0.0017248798 0.00014904114 + 3700 100 0.00135595 0.00135595 0.0013962044 6.2461444e-05 + 3800 100 0.0012673777 0.0012673777 0.0013074364 0.00028034063 + 3900 100 0.00081311806 0.00081311806 0.00095642595 7.9543605e-05 + 4000 100 0.00059774673 0.00059774673 0.00074849615 6.8190201e-05 + 4100 100 0.00052811986 0.00052811986 0.00067263919 5.012633e-05 + 4200 100 0.00049555855 0.00049555855 0.00061736675 4.9888372e-05 + 4300 100 0.00048274473 0.00048274473 0.00059050389 5.1381757e-05 + 4400 100 0.00047341333 0.00047341333 0.00058083446 5.02623e-05 + 4500 100 0.00046792237 0.00046792237 0.00057416894 4.9019652e-05 + 4600 100 0.00046035378 0.00046035378 0.00056694823 6.0353699e-05 + 4700 100 0.00038114933 0.00038114933 0.0004980117 6.5173515e-05 + 4800 100 0.0003783967 0.0003783967 0.00049488428 4.8463898e-05 + 4900 100 0.00027940611 0.00027940611 0.00041517649 5.0979155e-05 + 5000 100 0.00026071989 0.00026071989 0.00040045214 5.151673e-05 +Loop time of 0.0799825 on 4 procs for 5000 steps with 100 atoms + +Performance: 27005901.076 tau/day, 62513.660 timesteps/s +96.6% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00093961 | 0.0032012 | 0.0054553 | 3.8 | 4.00 +Neigh | 0.0032456 | 0.0046872 | 0.0061908 | 2.0 | 5.86 +Comm | 0.014328 | 0.02121 | 0.029619 | 4.7 | 26.52 +Output | 0.0011828 | 0.0014142 | 0.0015574 | 0.4 | 1.77 +Modify | 0.002455 | 0.013876 | 0.026567 | 9.6 | 17.35 +Other | | 0.03559 | | | 44.50 + +Nlocal: 25 ave 51 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 4.75 ave 11 max 0 min +Histogram: 2 0 0 0 0 0 0 1 0 1 +Neighs: 39.5 ave 85 max 0 min +Histogram: 2 0 0 0 0 0 0 0 1 1 + +Total # of neighbors = 158 +Ave neighs/atom = 1.58 +Neighbor list builds = 305 +Dangerous builds = 0 + +region container delete +variable theta equal (step-5000)*(4.0*PI/5000) +region container block -6 6 -6 6 -6 6 units box rotate v_theta 0 0 0 0 0 1 +run 5000 +Memory usage per processor = 5.16122 Mbytes +Step Atoms Temp c_1 c_2 Press + 5000 100 0.00026071989 0.00026071989 0.00040045214 5.1497323e-05 + 5100 100 0.66352492 0.66352492 0.35750241 0.015948709 + 5200 100 0.6922229 0.6922229 0.37176131 0.011025479 + 5300 100 0.76307067 0.76307067 0.40325027 0.010979511 + 5400 100 0.83871418 0.83871418 0.43756084 0.012600965 + 5500 100 0.93090048 0.93090048 0.4817574 0.012306942 + 5600 100 0.98338567 0.98338567 0.50374148 0.015434412 + 5700 100 1.0455442 1.0455442 0.53265847 0.017959409 + 5800 100 1.1081511 1.1081511 0.56112842 0.018832417 + 5900 100 1.1724309 1.1724309 0.59276447 0.019257973 + 6000 100 1.1914813 1.1914813 0.60201665 0.019694573 + 6100 100 1.2417733 1.2417733 0.62578893 0.019616524 + 6200 100 1.2612898 1.2612898 0.63503847 0.020442394 + 6300 100 1.2657345 1.2657345 0.63714395 0.020498843 + 6400 100 1.2678009 1.2678009 0.63828941 0.019900919 + 6500 100 1.284156 1.284156 0.64724666 0.020147256 + 6600 100 1.3090278 1.3090278 0.65925035 0.02136883 + 6700 100 1.3122075 1.3122075 0.66136807 0.020782325 + 6800 100 1.3147107 1.3147107 0.66026206 0.022887611 + 6900 100 1.3185295 1.3185295 0.66157265 0.021249838 + 7000 100 1.3232771 1.3232771 0.66334852 0.021738995 + 7100 100 1.3375003 1.3375003 0.67017176 0.021997185 + 7200 100 1.3349835 1.3349835 0.66895884 0.022149977 + 7300 100 1.3388711 1.3388711 0.67061163 0.021662545 + 7400 100 1.338676 1.338676 0.67074642 0.021076102 + 7500 100 1.3409052 1.3409052 0.67205098 0.021664853 + 7600 100 1.3499236 1.3499236 0.67612412 0.021653422 + 7700 100 1.3479719 1.3479719 0.67510646 0.021873569 + 7800 100 1.3489138 1.3489138 0.67563223 0.021419315 + 7900 100 1.357018 1.357018 0.6795804 0.022201202 + 8000 100 1.3540513 1.3540513 0.67843711 0.02275761 + 8100 100 1.3560429 1.3560429 0.67947065 0.022421723 + 8200 100 1.3590694 1.3590694 0.6806094 0.022004213 + 8300 100 1.3592154 1.3592154 0.68083948 0.021923269 + 8400 100 1.3601392 1.3601392 0.68121418 0.022155184 + 8500 100 1.3622149 1.3622149 0.6824182 0.022126924 + 8600 100 1.3651697 1.3651697 0.68397342 0.022195287 + 8700 100 1.3679254 1.3679254 0.68540978 0.023609651 + 8800 100 1.3686254 1.3686254 0.68559712 0.02242291 + 8900 100 1.3761277 1.3761277 0.68897201 0.023594162 + 9000 100 1.379968 1.379968 0.69045216 0.022516846 + 9100 100 1.3784732 1.3784732 0.68955121 0.022836115 + 9200 100 1.376848 1.376848 0.6885551 0.02279321 + 9300 100 1.3799231 1.3799231 0.68964009 0.023105818 + 9400 100 1.3817992 1.3817992 0.69057466 0.023062265 + 9500 100 1.3836544 1.3836544 0.69156755 0.024363244 + 9600 100 1.388032 1.388032 0.69348762 0.024930983 + 9700 100 1.3943738 1.3943738 0.6965703 0.024448451 + 9800 100 1.3963094 1.3963094 0.6971039 0.02341203 + 9900 100 1.3995489 1.3995489 0.69881652 0.023502542 + 10000 100 1.3974742 1.3974742 0.69765474 0.02340004 +Loop time of 0.18267 on 4 procs for 5000 steps with 100 atoms + +Performance: 11824571.055 tau/day, 27371.692 timesteps/s +99.1% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0010765 | 0.012038 | 0.023519 | 9.9 | 6.59 +Neigh | 0.0057316 | 0.010541 | 0.015351 | 4.6 | 5.77 +Comm | 0.0067229 | 0.017007 | 0.028509 | 7.8 | 9.31 +Output | 0.0011928 | 0.002021 | 0.0027668 | 1.6 | 1.11 +Modify | 0.009697 | 0.053707 | 0.098413 | 19.0 | 29.40 +Other | | 0.08736 | | | 47.82 + +Nlocal: 25 ave 51 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 3.25 ave 8 max 0 min +Histogram: 2 0 0 0 0 0 1 0 0 1 +Neighs: 46.75 ave 104 max 0 min +Histogram: 2 0 0 0 0 0 0 1 0 1 + +Total # of neighbors = 187 +Ave neighs/atom = 1.87 +Neighbor list builds = 633 +Dangerous builds = 0 + +region container delete +region container block -6 6 -6 6 -6 6 units box +run 5000 +Memory usage per processor = 5.16122 Mbytes +Step Atoms Temp c_1 c_2 Press + 10000 100 1.3974742 1.3974742 0.69765474 0.023347613 + 10100 100 0.34944285 0.34944285 0.20251378 0.019176827 + 10200 100 0.22524385 0.22524385 0.14368424 0.0033260831 + 10300 100 0.15243438 0.15243438 0.11070165 0.0064816535 + 10400 100 0.1143586 0.1143586 0.087867032 0.0024091961 + 10500 100 0.092025102 0.092025102 0.071291506 0.0030683413 + 10600 100 0.071051442 0.071051442 0.05700858 0.00100243 + 10700 100 0.058346771 0.058346771 0.04843626 0.0006073275 + 10800 100 0.048700232 0.048700232 0.039550383 0.00091511006 + 10900 100 0.036880936 0.036880936 0.029482183 0.0011698854 + 11000 100 0.028768807 0.028768807 0.023865852 0.0011980794 + 11100 100 0.022823005 0.022823005 0.018819891 0.0004639259 + 11200 100 0.016954703 0.016954703 0.014075803 0.00085142865 + 11300 100 0.015359685 0.015359685 0.01295219 0.00026241662 + 11400 100 0.012748378 0.012748378 0.011085291 0.00045626939 + 11500 100 0.010464459 0.010464459 0.0087024732 0.00029325411 + 11600 100 0.0099186727 0.0099186727 0.0080127406 0.00031388584 + 11700 100 0.0088308874 0.0088308874 0.0072317369 0.00017850972 + 11800 100 0.0081740195 0.0081740195 0.0066522963 0.00012282618 + 11900 100 0.0079005289 0.0079005289 0.0063346391 0.00010630403 + 12000 100 0.0066277573 0.0066277573 0.0054122601 5.4791661e-05 + 12100 100 0.00567928 0.00567928 0.0047331385 9.2668647e-05 + 12200 100 0.005282803 0.005282803 0.0043827202 8.7820361e-05 + 12300 100 0.0051590302 0.0051590302 0.0042806737 6.5433983e-05 + 12400 100 0.0049013329 0.0049013329 0.0040882737 6.2007733e-05 + 12500 100 0.0044725745 0.0044725745 0.0037535523 6.1132729e-05 + 12600 100 0.0043131884 0.0043131884 0.0035845765 5.3375706e-05 + 12700 100 0.0042020236 0.0042020236 0.0034902096 0.0001192142 + 12800 100 0.0041367453 0.0041367453 0.003433341 0.00011052418 + 12900 100 0.0039862367 0.0039862367 0.0033026224 5.2674711e-05 + 13000 100 0.0033163769 0.0033163769 0.0028118123 5.9042575e-05 + 13100 100 0.0030645983 0.0030645983 0.002571872 4.9521551e-05 + 13200 100 0.002808301 0.002808301 0.0023652684 3.4748246e-05 + 13300 100 0.002556475 0.002556475 0.0021699595 0.00042840611 + 13400 100 0.0023430405 0.0023430405 0.0019913198 2.2687303e-05 + 13500 100 0.0021422817 0.0021422817 0.0018017112 -6.7761855e-06 + 13600 100 0.0020993702 0.0020993702 0.001749657 2.5979707e-05 + 13700 100 0.0019871396 0.0019871396 0.0016647634 5.754995e-05 + 13800 100 0.0017311886 0.0017311886 0.0014696399 2.1585018e-05 + 13900 100 0.0016249641 0.0016249641 0.0013982224 2.0108931e-05 + 14000 100 0.0015874763 0.0015874763 0.0013613318 0.00018348921 + 14100 100 0.0013772541 0.0013772541 0.0012193388 1.9336869e-05 + 14200 100 0.0013587865 0.0013587865 0.0012054213 1.807845e-05 + 14300 100 0.0011824329 0.0011824329 0.0010348168 0.00017307518 + 14400 100 0.0011387278 0.0011387278 0.0010010725 1.4091757e-05 + 14500 100 0.0010441599 0.0010441599 0.00092205881 1.3630652e-05 + 14600 100 0.00096839518 0.00096839518 0.00086828535 1.2437299e-05 + 14700 100 0.00094215882 0.00094215882 0.00084418599 5.3989122e-05 + 14800 100 0.00077297853 0.00077297853 0.00070382005 8.5049867e-06 + 14900 100 0.00072181281 0.00072181281 0.00066110432 8.9324335e-06 + 15000 100 0.00070122327 0.00070122327 0.00063826734 3.4876262e-05 +Loop time of 0.0815294 on 4 procs for 5000 steps with 100 atoms + +Performance: 26493517.176 tau/day, 61327.586 timesteps/s +97.8% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00076294 | 0.0033154 | 0.0062585 | 4.3 | 4.07 +Neigh | 0.0010953 | 0.0020078 | 0.002914 | 2.0 | 2.46 +Comm | 0.0021389 | 0.012184 | 0.023433 | 9.1 | 14.94 +Output | 0.0011332 | 0.0014591 | 0.0017147 | 0.7 | 1.79 +Modify | 0.00083971 | 0.017889 | 0.035367 | 12.7 | 21.94 +Other | | 0.04467 | | | 54.79 + +Nlocal: 25 ave 54 max 0 min +Histogram: 2 0 0 0 0 0 0 0 1 1 +Nghost: 3.75 ave 8 max 0 min +Histogram: 2 0 0 0 0 0 0 0 1 1 +Neighs: 37.5 ave 97 max 0 min +Histogram: 2 0 0 0 0 1 0 0 0 1 + +Total # of neighbors = 150 +Ave neighs/atom = 1.5 +Neighbor list builds = 120 +Dangerous builds = 0 + +region container delete +variable theta equal (step-15000)*(4.0*PI/5000) +region container block -6 6 -6 6 -6 6 units box rotate v_theta 0 0 0 1 1 1 +run 5000 +Memory usage per processor = 5.16122 Mbytes +Step Atoms Temp c_1 c_2 Press + 15000 100 0.00070122327 0.00070122327 0.00063826734 3.4742207e-05 + 15100 100 1.1981004 1.1981004 0.74046013 0.017300203 + 15200 100 1.2197457 1.2197457 0.75847511 0.016724637 + 15300 100 1.1794198 1.1794198 0.77076582 0.017228755 + 15400 100 1.4027714 1.4027714 0.87950036 0.021028602 + 15500 100 1.5514702 1.5514702 0.95040716 0.019935207 + 15600 100 1.8360404 1.8360404 1.0987247 0.02494663 + 15700 100 2.0317625 2.0317625 1.2004001 0.029286087 + 15800 100 2.0478625 2.0478625 1.189893 0.031660426 + 15900 100 2.1289888 2.1289888 1.2083316 0.028754408 + 16000 100 2.2261493 2.2261493 1.2550891 0.030665647 + 16100 100 2.3005184 2.3005184 1.29238 0.036511242 + 16200 100 2.4515818 2.4515818 1.3563253 0.033787104 + 16300 100 2.4524614 2.4524614 1.3571527 0.031905963 + 16400 100 2.5592541 2.5592541 1.405001 0.035688651 + 16500 100 2.5311864 2.5311864 1.3918694 0.032451265 + 16600 100 2.6471904 2.6471904 1.4481739 0.034763978 + 16700 100 2.7024085 2.7024085 1.4785065 0.037514299 + 16800 100 2.8116979 2.8116979 1.5403269 0.03585152 + 16900 100 2.9095374 2.9095374 1.5962283 0.038244982 + 17000 100 2.9228985 2.9228985 1.5978628 0.037971615 + 17100 100 2.983589 2.983589 1.6205713 0.038332341 + 17200 100 3.1245984 3.1245984 1.6925827 0.042532223 + 17300 100 3.1060575 3.1060575 1.6713928 0.052589575 + 17400 100 3.2494904 3.2494904 1.7567188 0.044783721 + 17500 100 3.2313349 3.2313349 1.7549177 0.044959213 + 17600 100 3.3928412 3.3928412 1.822978 0.052512199 + 17700 100 3.3064729 3.3064729 1.7924768 0.046624738 + 17800 100 3.1907518 3.1907518 1.7406131 0.042864325 + 17900 100 3.0224556 3.0224556 1.6641648 0.040151025 + 18000 100 3.105271 3.105271 1.7045599 0.047137803 + 18100 100 3.0293425 3.0293425 1.6626024 0.04198758 + 18200 100 3.139773 3.139773 1.7310307 0.040137164 + 18300 100 2.9732894 2.9732894 1.6555933 0.03777758 + 18400 100 3.1250324 3.1250324 1.739812 0.038542298 + 18500 100 3.1687407 3.1687407 1.7593494 0.041591022 + 18600 100 3.2880821 3.2880821 1.8169373 0.042503015 + 18700 100 3.4877047 3.4877047 1.9049979 0.048156272 + 18800 100 3.7982973 3.7982973 2.055323 0.049805341 + 18900 100 3.9922267 3.9922267 2.1260665 0.062688073 + 19000 100 3.8620284 3.8620284 2.0652184 0.064418518 + 19100 100 3.8757665 3.8757665 2.0615465 0.058600317 + 19200 100 3.9425495 3.9425495 2.1030375 0.053714175 + 19300 100 3.8589133 3.8589133 2.0485568 0.05531747 + 19400 100 3.9202395 3.9202395 2.0904529 0.056324297 + 19500 100 3.9748628 3.9748628 2.1114492 0.055590699 + 19600 100 3.8876771 3.8876771 2.0918436 0.052415532 + 19700 100 3.8975921 3.8975921 2.0755799 0.050647718 + 19800 100 3.7488333 3.7488333 2.0024562 0.056966734 + 19900 100 3.7818574 3.7818574 2.00915 0.050079148 + 20000 100 3.4510736 3.4510736 1.8525818 0.053548452 +Loop time of 0.156607 on 4 procs for 5000 steps with 100 atoms + +Performance: 13792452.627 tau/day, 31926.974 timesteps/s +98.5% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0030923 | 0.0049732 | 0.0071678 | 2.1 | 3.18 +Neigh | 0.012225 | 0.015592 | 0.017859 | 1.7 | 9.96 +Comm | 0.034876 | 0.037526 | 0.040807 | 1.1 | 23.96 +Output | 0.0013812 | 0.0015668 | 0.0017419 | 0.3 | 1.00 +Modify | 0.026932 | 0.044011 | 0.054787 | 5.0 | 28.10 +Other | | 0.05294 | | | 33.80 + +Nlocal: 25 ave 41 max 12 min +Histogram: 1 0 0 1 1 0 0 0 0 1 +Nghost: 3.25 ave 6 max 1 min +Histogram: 1 0 1 0 0 0 1 0 0 1 +Neighs: 35.75 ave 59 max 9 min +Histogram: 1 0 0 0 0 1 1 0 0 1 + +Total # of neighbors = 143 +Ave neighs/atom = 1.43 +Neighbor list builds = 917 +Dangerous builds = 0 + +region container delete +region container block -6 6 -6 6 -6 6 units box +run 5000 +Memory usage per processor = 5.16122 Mbytes +Step Atoms Temp c_1 c_2 Press + 20000 100 3.4510736 3.4510736 1.8525818 0.053182767 + 20100 100 0.99241675 0.99241675 0.61590164 0.015233656 + 20200 100 0.92799489 0.92799489 0.55540992 0.011885237 + 20300 100 0.9171573 0.9171573 0.54477252 0.012926388 + 20400 100 0.86718407 0.86718407 0.5145422 0.011384414 + 20500 100 0.84470122 0.84470122 0.50181203 0.010482207 + 20600 100 0.93025469 0.93025469 0.53939952 0.011377044 + 20700 100 0.96631348 0.96631348 0.55772027 0.015287231 + 20800 100 0.90708015 0.90708015 0.52037018 0.014854537 + 20900 100 0.73319001 0.73319001 0.42824847 0.0092980012 + 21000 100 0.3371096 0.3371096 0.21272171 0.0061783554 + 21100 100 0.21771022 0.21771022 0.14128887 0.0082147558 + 21200 100 0.18133275 0.18133275 0.11945636 0.0055722731 + 21300 100 0.17117199 0.17117199 0.11048263 0.0027980106 + 21400 100 0.15741047 0.15741047 0.10346676 0.0023057723 + 21500 100 0.10045855 0.10045855 0.069905343 0.0023941181 + 21600 100 0.066094864 0.066094864 0.051285108 0.0022519002 + 21700 100 0.048622069 0.048622069 0.040662255 0.00073951939 + 21800 100 0.046829799 0.046829799 0.037431722 0.0015913976 + 21900 100 0.025308514 0.025308514 0.02092076 0.00064225773 + 22000 100 0.016326886 0.016326886 0.013588504 0.00087416572 + 22100 100 0.011892981 0.011892981 0.010417133 0.00080132313 + 22200 100 0.011974602 0.011974602 0.010342276 0.00044437732 + 22300 100 0.012567486 0.012567486 0.010294969 0.00048413872 + 22400 100 0.011676022 0.011676022 0.0091714238 0.00066567365 + 22500 100 0.0098737136 0.0098737136 0.0079252142 0.00024081335 + 22600 100 0.0052495523 0.0052495523 0.0047802341 0.00029167814 + 22700 100 0.0049396543 0.0049396543 0.0043570686 0.00019793167 + 22800 100 0.004469254 0.004469254 0.0038657445 0.00052965165 + 22900 100 0.0043837877 0.0043837877 0.0034611363 0.00045595698 + 23000 100 0.003439309 0.003439309 0.0028031344 0.00025784869 + 23100 100 0.0034805091 0.0034805091 0.0027537344 0.00012746906 + 23200 100 0.0045502061 0.0045502061 0.0032298328 0.00024006432 + 23300 100 0.0028553043 0.0028553043 0.0023107483 0.00012803066 + 23400 100 0.0022736412 0.0022736412 0.0018560302 0.0002706771 + 23500 100 0.0020966521 0.0020966521 0.0017106541 0.00014239612 + 23600 100 0.0018760993 0.0018760993 0.0015415318 0.00010892634 + 23700 100 0.0022362451 0.0022362451 0.0017014519 0.00012547256 + 23800 100 0.0017603403 0.0017603403 0.0014681398 0.00023372731 + 23900 100 0.0023396747 0.0023396747 0.0016700312 0.00017014305 + 24000 100 0.0012059144 0.0012059144 0.0009982224 3.6215959e-05 + 24100 100 0.0011739433 0.0011739433 0.00097155852 3.6169918e-05 + 24200 100 0.0011071139 0.0011071139 0.00092095478 8.8000847e-05 + 24300 100 0.0011078659 0.0011078659 0.00092073833 4.8706222e-05 + 24400 100 0.0011037562 0.0011037562 0.00091673546 3.7548502e-05 + 24500 100 0.00098422752 0.00098422752 0.00083054499 9.1151844e-05 + 24600 100 0.00097403646 0.00097403646 0.00082364881 5.0914687e-05 + 24700 100 0.00093082012 0.00093082012 0.00079047801 3.2230016e-05 + 24800 100 0.0009138973 0.0009138973 0.00075880177 2.8780789e-05 + 24900 100 0.0012881027 0.0012881027 0.00093025416 1.6385252e-05 + 25000 100 0.00076099168 0.00076099168 0.00065175575 9.417272e-06 +Loop time of 0.0846543 on 4 procs for 5000 steps with 100 atoms + +Performance: 25515528.493 tau/day, 59063.723 timesteps/s +98.9% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0010469 | 0.0037468 | 0.0067947 | 4.3 | 4.43 +Neigh | 0.0032442 | 0.0047541 | 0.0065064 | 2.0 | 5.62 +Comm | 0.0085762 | 0.016923 | 0.024509 | 5.8 | 19.99 +Output | 0.0011523 | 0.0014572 | 0.0016789 | 0.6 | 1.72 +Modify | 0.0017715 | 0.016296 | 0.031399 | 11.1 | 19.25 +Other | | 0.04148 | | | 49.00 + +Nlocal: 25 ave 50 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 6 ave 13 max 0 min +Histogram: 2 0 0 0 0 0 0 0 1 1 +Neighs: 39 ave 80 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 2 + +Total # of neighbors = 156 +Ave neighs/atom = 1.56 +Neighbor list builds = 284 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/granregion/log.6Oct16.granregion.funnel.g++.1 b/examples/granregion/log.6Oct16.granregion.funnel.g++.1 new file mode 100644 index 0000000000..86faeb3401 --- /dev/null +++ b/examples/granregion/log.6Oct16.granregion.funnel.g++.1 @@ -0,0 +1,608 @@ +LAMMPS (5 Oct 2016) +# pour particles into cone-shaped funnel, settle them, let them run out bottom + +variable name string funnel_pour + +thermo_modify flush yes +units si +variable PI equal 3.141592653589 +variable seed equal 14314 + +############################################### +# Geometry-related parameters +############################################### + +variable xlo equal 10 +variable xhi equal 40 +variable ylo equal 10 +variable yhi equal 40 +variable zlo equal -20 +variable zhi equal 50 + +variable xc equal 25 +variable yc equal 25 + +variable zconehi equal 50 +variable zconelo equal 10 +variable zcyllo equal 0 +variable radconelo equal 2 +variable radconehi equal 20 + +################################################ +# Particle sizes +################################################ + +variable rlo equal 0.25 +variable rhi equal 0.5 +variable dlo equal 2.0*${rlo} +variable dlo equal 2.0*0.25 +variable dhi equal 2.0*${rhi} +variable dhi equal 2.0*0.5 + +variable skin equal ${rhi} +variable skin equal 0.5 + +############################################### +# Granular contact parameters +############################################### + +variable coeffRes equal 0.1 +variable coeffFric equal 0.5 + +variable density equal 1.0 +variable EYoung equal 10^5 +variable Poisson equal 2.0/7.0 +variable GShear equal ${EYoung}/(2*(1+${Poisson})) +variable GShear equal 100000/(2*(1+${Poisson})) +variable GShear equal 100000/(2*(1+0.285714285714286)) + +variable gravity equal 1.0 + +variable reff equal 0.5*(${rhi}+${rlo}) +variable reff equal 0.5*(0.5+${rlo}) +variable reff equal 0.5*(0.5+0.25) +variable meff equal ${density}*4.0/3.0*${PI}*${reff}^3 +variable meff equal 1*4.0/3.0*${PI}*${reff}^3 +variable meff equal 1*4.0/3.0*3.141592653589*${reff}^3 +variable meff equal 1*4.0/3.0*3.141592653589*0.375^3 +variable min_mass equal ${density}*4.0/3.0*${PI}*${rlo}*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*${PI}*${rlo}*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*3.141592653589*${rlo}*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*3.141592653589*0.25*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*3.141592653589*0.25*0.25*${rlo} +variable min_mass equal 1*4.0/3.0*3.141592653589*0.25*0.25*0.25 +variable max_mass equal ${density}*4.0/3.0*${PI}*${rhi}*${rhi}*${rhi} +variable max_mass equal 1*4.0/3.0*${PI}*${rhi}*${rhi}*${rhi} +variable max_mass equal 1*4.0/3.0*3.141592653589*${rhi}*${rhi}*${rhi} +variable max_mass equal 1*4.0/3.0*3.141592653589*0.5*${rhi}*${rhi} +variable max_mass equal 1*4.0/3.0*3.141592653589*0.5*0.5*${rhi} +variable max_mass equal 1*4.0/3.0*3.141592653589*0.5*0.5*0.5 + +## Typical way to set kn, kt, etc.: +variable kn equal 4.0*${GShear}/(3*(1-${Poisson})) +variable kn equal 4.0*38888.8888888889/(3*(1-${Poisson})) +variable kn equal 4.0*38888.8888888889/(3*(1-0.285714285714286)) +variable kt equal 4.0*${GShear}/(2-${Poisson}) +variable kt equal 4.0*38888.8888888889/(2-${Poisson}) +variable kt equal 4.0*38888.8888888889/(2-0.285714285714286) + +variable a equal (-2.0*log(${coeffRes})/${PI})^2 +variable a equal (-2.0*log(0.1)/${PI})^2 +variable a equal (-2.0*log(0.1)/3.141592653589)^2 +variable gamma_n equal sqrt($a*2*${kn}/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569556*2*${kn}/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569556*2*72592.5925925926/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569556*2*72592.5925925926/0.0654498469497708/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569556*2*72592.5925925926/0.0654498469497708/(1+0.25*0.405284734569556)) +variable gamma_t equal ${gamma_n}*0.5 +variable gamma_t equal 903.503751814138*0.5 + +variable tcol equal ${PI}/sqrt(2*${kn}/${min_mass}-${gamma_n}/4.0) +variable tcol equal 3.141592653589/sqrt(2*${kn}/${min_mass}-${gamma_n}/4.0) +variable tcol equal 3.141592653589/sqrt(2*72592.5925925926/${min_mass}-${gamma_n}/4.0) +variable tcol equal 3.141592653589/sqrt(2*72592.5925925926/0.0654498469497708-${gamma_n}/4.0) +variable tcol equal 3.141592653589/sqrt(2*72592.5925925926/0.0654498469497708-903.503751814138/4.0) + +variable dt equal ${tcol}*0.05 +variable dt equal 0.00210943016014969*0.05 +timestep ${dt} +timestep 0.000105471508007485 + +############################################### +variable dumpfreq equal 1000 +variable logfreq equal 1000 + +newton off +atom_style sphere + +boundary p p f + +region boxreg block ${xlo} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} +region boxreg block 10 ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} +region boxreg block 10 40 ${ylo} ${yhi} ${zlo} ${zhi} +region boxreg block 10 40 10 ${yhi} ${zlo} ${zhi} +region boxreg block 10 40 10 40 ${zlo} ${zhi} +region boxreg block 10 40 10 40 -20 ${zhi} +region boxreg block 10 40 10 40 -20 50 +create_box 1 boxreg +Created orthogonal box = (10 10 -20) to (40 40 50) + 1 by 1 by 1 MPI processor grid + +pair_style gran/hertz/history ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 72592.5925925926 ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 72592.5925925926 90740.7407407408 ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 72592.5925925926 90740.7407407408 903.503751814138 ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 ${coeffFric} 1 +pair_style gran/hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 0.5 1 +pair_coeff * * + +neighbor ${skin} bin +neighbor 0.5 bin +thermo ${logfreq} +thermo 1000 + +comm_style brick +comm_modify mode multi group all vel yes +balance 1.1 shift xyz 20 1.1 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 30 -> bins = 1 1 3 +fix bal all balance 10000 1.1 shift xyz 20 1.01 + +####################### Options specific to pouring ######################### + +# insertion region for fix/pour + +region insreg cylinder z ${xc} ${yc} 10 30 50 side in units box +region insreg cylinder z 25 ${yc} 10 30 50 side in units box +region insreg cylinder z 25 25 10 30 50 side in units box + +# define cone and cylinder regions - see lammps doc on region command +# note new open options + +region cylreg cylinder z ${xc} ${yc} ${radconelo} ${zcyllo} ${zconelo} side in units box open 2 #Top is open +region cylreg cylinder z 25 ${yc} ${radconelo} ${zcyllo} ${zconelo} side in units box open 2 +region cylreg cylinder z 25 25 ${radconelo} ${zcyllo} ${zconelo} side in units box open 2 +region cylreg cylinder z 25 25 2 ${zcyllo} ${zconelo} side in units box open 2 +region cylreg cylinder z 25 25 2 0 ${zconelo} side in units box open 2 +region cylreg cylinder z 25 25 2 0 10 side in units box open 2 + +region conereg cone z ${xc} ${yc} ${radconelo} ${radconehi} ${zconelo} ${zconehi} side in units box open 1 open 2 #Bottom and top are open +region conereg cone z 25 ${yc} ${radconelo} ${radconehi} ${zconelo} ${zconehi} side in units box open 1 open 2 +region conereg cone z 25 25 ${radconelo} ${radconehi} ${zconelo} ${zconehi} side in units box open 1 open 2 +region conereg cone z 25 25 2 ${radconehi} ${zconelo} ${zconehi} side in units box open 1 open 2 +region conereg cone z 25 25 2 20 ${zconelo} ${zconehi} side in units box open 1 open 2 +region conereg cone z 25 25 2 20 10 ${zconehi} side in units box open 1 open 2 +region conereg cone z 25 25 2 20 10 50 side in units box open 1 open 2 + +region hopreg union 2 conereg cylreg + +fix grav all gravity ${gravity} vector 0 0 -1 +fix grav all gravity 1 vector 0 0 -1 +fix 1 all nve/sphere + + +fix hopper3 all wall/gran/region hertz/history ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 0.5 1 region hopreg + +fix ins all pour 2000 1 42424 region insreg diam range ${dlo} ${dhi} dens ${density} ${density} +fix ins all pour 2000 1 42424 region insreg diam range 0.5 ${dhi} dens ${density} ${density} +fix ins all pour 2000 1 42424 region insreg diam range 0.5 1 dens ${density} ${density} +fix ins all pour 2000 1 42424 region insreg diam range 0.5 1 dens 1 ${density} +fix ins all pour 2000 1 42424 region insreg diam range 0.5 1 dens 1 1 +Particle insertion: 3000 every 59965 steps, 2000 by step 1 + +#dump 1 all custom ${dumpfreq} ${name}.dump # id type mass diameter x y z + +#dump 2 all image 4000 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30 zoom 3.0 # box no 0.0 axes no 0.0 0.0 +#dump_modify 2 pad 6 + +thermo_style custom step cpu atoms ke +WARNING: New thermo_style command, previous thermo_modify settings will be lost (../output.cpp:690) +thermo_modify flush yes lost warn + +# Initial run to fill up the cone + +run 20000 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.5 + ghost atom cutoff = 1.5 + binsize = 0.75 -> bins = 40 40 94 +Memory usage per processor = 3.59417 Mbytes +Step CPU Atoms KinEng + 0 0 0 -0 + 1000 0.54582715 2000 -0 + 2000 0.93155909 2000 -0 + 3000 1.3159981 2000 -0 + 4000 1.697911 2000 -0 + 5000 2.080133 2000 -0 + 6000 2.461525 2000 -0 + 7000 2.842278 2000 -0 + 8000 3.222302 2000 -0 + 9000 3.6018171 2000 -0 + 10000 3.9843922 2000 -0 + 11000 4.363066 2000 -0 + 12000 4.743022 2000 -0 + 13000 5.121953 2000 -0 + 14000 5.5021431 2000 -0 + 15000 5.8807089 2000 -0 + 16000 6.2604752 2000 -0 + 17000 6.640244 2000 -0 + 18000 7.0199981 2000 -0 + 19000 7.40029 2000 -0 + 20000 7.7834539 2000 -0 +Loop time of 7.78348 on 1 procs for 20000 steps with 2000 atoms + +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.64588 | 0.64588 | 0.64588 | 0.0 | 8.30 +Neigh | 0.097229 | 0.097229 | 0.097229 | 0.0 | 1.25 +Comm | 0.011505 | 0.011505 | 0.011505 | 0.0 | 0.15 +Output | 0.00041127 | 0.00041127 | 0.00041127 | 0.0 | 0.01 +Modify | 6.8117 | 6.8117 | 6.8117 | 0.0 | 87.51 +Other | | 0.2168 | | | 2.79 + +Nlocal: 2000 ave 2000 max 2000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 1537 ave 1537 max 1537 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 1537 +Ave neighs/atom = 0.7685 +Neighbor list builds = 69 +Dangerous builds = 0 +unfix ins +run 150000 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.49993 + ghost atom cutoff = 1.49993 + binsize = 0.749963 -> bins = 41 41 94 +Memory usage per processor = 9.40639 Mbytes +Step CPU Atoms KinEng + 20000 0 2000 6443.7665 + 21000 0.37979388 2000 6572.3531 + 22000 0.76149178 2000 6723.8376 + 23000 1.1449339 2000 6853.1812 + 24000 1.529017 2000 6976.0209 + 25000 1.9145579 2000 7096.9955 + 26000 2.30124 2000 7215.5795 + 27000 2.6893978 2000 7349.2382 + 28000 3.0777299 2000 7471.8719 + 29000 3.4699018 2000 7574.7988 + 30000 3.8656738 2000 7660.2353 + 31000 4.2606828 2000 7703.5736 + 32000 4.6632309 2000 7643.5299 + 33000 5.0728998 2000 7520.14 + 34000 5.4878559 2000 7372.2247 + 35000 5.910604 2000 7192.1639 + 36000 6.340683 2000 6985.7075 + 37000 6.8159268 2000 6858.944 + 38000 7.2553098 2000 6717.0485 + 39000 7.699847 2000 6541.6874 + 40000 8.1524599 2000 6382.1661 + 41000 8.6083429 2000 6235.6681 + 42000 9.0669999 2000 6103.095 + 43000 9.5359929 2000 5951.0523 + 44000 10.012767 2000 5811.0158 + 45000 10.497891 2000 5627.7273 + 46000 10.988827 2000 5471.7262 + 47000 11.48741 2000 5299.1205 + 48000 11.990619 2000 5164.1642 + 49000 12.497663 2000 5006.5014 + 50000 13.020399 2000 4872.2336 + 51000 13.548012 2000 4694.5332 + 52000 14.082238 2000 4515.5164 + 53000 14.622731 2000 4384.7531 + 54000 15.170292 2000 4215.1354 + 55000 15.721908 2000 4063.0658 + 56000 16.285099 2000 3895.7872 + 57000 16.858606 2000 3693.0537 + 58000 17.440427 2000 3514.887 + 59000 18.03239 2000 3268.5625 + 60000 18.640969 2000 3049.7365 + 61000 19.245721 2000 2885.6786 + 62000 19.85574 2000 2652.9108 + 63000 20.47405 2000 2408.6484 + 64000 21.10165 2000 2126.9549 + 65000 21.743939 2000 1879.2829 + 66000 22.39462 2000 1645.0406 + 67000 23.059044 2000 1425.8023 + 68000 23.730976 2000 1160.2206 + 69000 24.410132 2000 961.78467 + 70000 25.096468 2000 785.64232 + 71000 25.778622 2000 626.09642 + 72000 26.474474 2000 468.40645 + 73000 27.171065 2000 358.58331 + 74000 27.860177 2000 299.43443 + 75000 28.544588 2000 246.40717 + 76000 29.226358 2000 206.30408 + 77000 29.902697 2000 176.97739 + 78000 30.577693 2000 144.25328 + 79000 31.269697 2000 115.11502 + 80000 31.977588 2000 97.780887 + 81000 32.685445 2000 82.593472 + 82000 33.397946 2000 72.226521 + 83000 34.114464 2000 62.978026 + 84000 34.831341 2000 55.350711 + 85000 35.545558 2000 51.162661 + 86000 36.266238 2000 46.100957 + 87000 36.99804 2000 41.19148 + 88000 37.743379 2000 36.31567 + 89000 38.499655 2000 32.456379 + 90000 39.270287 2000 30.16589 + 91000 40.035401 2000 27.36473 + 92000 40.799095 2000 25.488138 + 93000 41.564371 2000 23.674866 + 94000 42.335499 2000 22.219066 + 95000 43.114508 2000 20.982603 + 96000 43.897793 2000 19.840979 + 97000 44.685675 2000 19.092279 + 98000 45.483452 2000 18.20277 + 99000 46.282718 2000 17.512786 + 100000 47.085373 2000 16.921053 + 101000 47.888376 2000 16.228234 + 102000 48.698546 2000 15.958752 + 103000 49.51312 2000 15.640913 + 104000 50.330832 2000 14.016542 + 105000 51.146589 2000 13.484725 + 106000 51.96128 2000 13.369222 + 107000 52.781047 2000 12.965898 + 108000 53.604374 2000 12.268212 + 109000 54.424389 2000 11.492904 + 110000 55.253544 2000 11.110936 + 111000 56.077677 2000 10.05383 + 112000 56.904333 2000 10.159311 + 113000 57.729366 2000 10.071694 + 114000 58.559509 2000 9.820289 + 115000 59.391732 2000 9.4736012 + 116000 60.221045 2000 9.5616457 + 117000 61.052557 2000 8.6478552 + 118000 61.890195 2000 8.7425719 + 119000 62.726358 2000 8.4741204 + 120000 63.565646 2000 7.772287 + 121000 64.397804 2000 6.9466866 + 122000 65.231394 2000 6.7645153 + 123000 66.064887 2000 6.6568629 + 124000 66.901915 2000 6.7578346 + 125000 67.741833 2000 6.7845523 + 126000 68.582414 2000 6.8385357 + 127000 69.421944 2000 6.8984218 + 128000 70.262972 2000 7.031649 + 129000 71.108668 2000 6.5894805 + 130000 71.954121 2000 6.6452991 + 131000 72.795366 2000 6.7278453 + 132000 73.639866 2000 6.679577 + 133000 74.484945 2000 6.8049542 + 134000 75.326506 2000 6.9015567 + 135000 76.171268 2000 7.2052436 + 136000 77.015739 2000 7.5532841 + 137000 77.861613 2000 7.2577958 + 138000 78.706479 2000 7.5218509 + 139000 79.549466 2000 7.5221639 + 140000 80.398284 2000 7.6657717 + 141000 81.240794 2000 7.9761942 + 142000 82.087164 2000 8.2314258 + 143000 82.931215 2000 8.3019975 + 144000 83.777896 2000 8.0179905 + 145000 84.622383 2000 8.2517491 + 146000 85.469753 2000 6.9481522 + 147000 86.315756 2000 6.6131212 + 148000 87.164711 2000 6.7706881 + 149000 88.012004 2000 6.8104528 + 150000 88.861557 2000 6.7339102 + 151000 89.708494 2000 6.4777998 + 152000 90.558437 2000 6.3011889 + 153000 91.40365 2000 6.3101502 + 154000 92.249997 2000 6.5542552 + 155000 93.099774 2000 6.7687268 + 156000 93.945557 2000 6.7974687 + 157000 94.795065 2000 6.4615869 + 158000 95.645761 2000 6.5566144 + 159000 96.495711 2000 6.4371 + 160000 97.349979 2000 6.4540668 + 161000 98.19875 2000 6.6987231 + 162000 99.049934 2000 6.2464506 + 163000 99.902813 2000 4.7573102 + 164000 100.75416 2000 4.7782706 + 165000 101.60479 2000 4.9414064 + 166000 102.45183 2000 4.970526 + 167000 103.30172 2000 5.1492473 + 168000 104.15283 2000 5.3633229 + 169000 105.00583 2000 4.3464936 + 170000 105.85919 2000 3.6784016 +Loop time of 105.859 on 1 procs for 150000 steps with 2000 atoms + +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 46.786 | 46.786 | 46.786 | -nan | 44.20 +Neigh | 0.88556 | 0.88556 | 0.88556 | 0.0 | 0.84 +Comm | 0.080127 | 0.080127 | 0.080127 | 0.0 | 0.08 +Output | 0.0033967 | 0.0033967 | 0.0033967 | 0.0 | 0.00 +Modify | 56.418 | 56.418 | 56.418 | 0.0 | 53.29 +Other | | 1.687 | | | 1.59 + +Nlocal: 2000 ave 2000 max 2000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 15507 ave 15507 max 15507 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 15507 +Ave neighs/atom = 7.7535 +Neighbor list builds = 401 +Dangerous builds = 0 + +# remove "plug" - need to redefine cylinder region & union + +region cylreg delete +region hopreg delete +region cylreg cylinder z ${xc} ${yc} ${radconelo} ${zcyllo} ${zconelo} side in units box open 1 open 2 #Bottom & top are open +region cylreg cylinder z 25 ${yc} ${radconelo} ${zcyllo} ${zconelo} side in units box open 1 open 2 +region cylreg cylinder z 25 25 ${radconelo} ${zcyllo} ${zconelo} side in units box open 1 open 2 +region cylreg cylinder z 25 25 2 ${zcyllo} ${zconelo} side in units box open 1 open 2 +region cylreg cylinder z 25 25 2 0 ${zconelo} side in units box open 1 open 2 +region cylreg cylinder z 25 25 2 0 10 side in units box open 1 open 2 + +region hopreg union 2 cylreg conereg + +unfix hopper3 +fix hopper3 all wall/gran/region hertz/history ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 0.5 1 region hopreg + +run 100000 +Memory usage per processor = 9.40667 Mbytes +Step CPU Atoms KinEng + 170000 0 2000 3.6784016 + 171000 0.84847808 2000 4.3936331 + 172000 1.6901879 2000 5.5750342 + 173000 2.523411 2000 6.8205762 + 174000 3.3501492 2000 8.9700613 + 175000 4.1766891 2000 11.336633 + 176000 4.9954321 2000 14.225242 + 177000 5.814229 2000 17.653262 + 178000 6.630548 2000 21.796078 + 179000 7.4493361 2000 26.660801 + 180000 8.2656369 2000 32.428193 + 181000 9.069953 2000 39.229088 + 182000 9.8759181 2000 46.242732 + 183000 10.674972 2000 54.604245 + 184000 11.47082 2000 63.96931 + 185000 12.259916 2000 74.132316 + 186000 13.046788 2000 84.690798 + 187000 13.832446 2000 95.486707 + 188000 14.612976 2000 106.68052 + 189000 15.391779 2000 118.91376 + 190000 16.160107 2000 131.90023 + 191000 16.919573 2000 146.30664 + 192000 17.677855 2000 161.10142 + 193000 18.4352 2000 174.91947 + 194000 19.188156 2000 191.47629 + 195000 19.937255 2000 208.19912 + 196000 20.687716 2000 224.80045 + 197000 21.43754 2000 243.29637 + 198000 22.18579 2000 262.88685 + 199000 22.932473 2000 282.34797 + 200000 23.680828 2000 302.78689 + 201000 24.428559 2000 323.48767 + 202000 25.167341 2000 345.99414 + 203000 25.904465 2000 368.54389 + 204000 26.635727 2000 393.49643 + 205000 27.366891 2000 417.82722 + 206000 28.094282 2000 443.67976 + 207000 28.821021 2000 470.35934 + 208000 29.545596 2000 499.01368 + 209000 30.267439 2000 528.99746 + 210000 30.993287 2000 561.03931 + 211000 31.713729 2000 594.0482 + 212000 32.42933 2000 628.20118 + 213000 33.14608 2000 662.585 + 214000 33.863882 2000 697.41408 + 215000 34.580495 2000 733.36799 + 216000 35.302571 2000 770.46796 + 217000 36.023821 2000 806.72007 + 218000 36.74189 2000 844.06965 + 219000 37.460105 2000 884.31774 + 220000 38.177705 2000 926.23771 + 221000 38.886587 2000 970.02095 + 222000 39.594003 2000 1015.3938 + 223000 40.29579 2000 1061.1281 + 224000 41.001112 2000 1107.9962 + 225000 41.706489 2000 1155.3656 + 226000 42.417622 1998 1196.6939 + 227000 43.133238 1996 1240.8434 + 228000 43.844991 1990 1260.0436 + 229000 44.545565 1986 1280.0431 + 230000 45.246651 1974 1285.222 + 231000 45.934355 1970 1311.8189 + 232000 46.624066 1960 1300.7922 + 233000 47.310339 1943 1282.113 + 234000 47.993433 1932 1261.0871 + 235000 48.66937 1918 1211.0667 + 236000 49.332954 1911 1232.6411 + 237000 49.99742 1898 1209.112 + 238000 50.664096 1888 1189.4002 + 239000 51.336205 1875 1151.415 + 240000 52.010198 1863 1108.0821 + 241000 52.680788 1856 1090.2279 + 242000 53.343069 1843 1062.9726 + 243000 53.996768 1830 1016.0933 + 244000 54.635882 1825 1023.5568 + 245000 55.271259 1817 1012.2897 + 246000 55.902793 1811 1019.8355 + 247000 56.541437 1802 996.81934 + 248000 57.182244 1793 971.29353 + 249000 57.827453 1785 947.98166 + 250000 58.473311 1771 898.58408 + 251000 59.1075 1762 851.46342 + 252000 59.73473 1754 826.46301 + 253000 60.362094 1747 808.08292 + 254000 60.989489 1737 778.86892 + 255000 61.616293 1720 702.90046 + 256000 62.243096 1709 665.14293 + 257000 62.866596 1703 628.63036 + 258000 63.48969 1702 645.42118 + 259000 64.119075 1696 617.03362 + 260000 64.752187 1692 607.96874 + 261000 65.374973 1690 619.83155 + 262000 65.991365 1688 622.09585 + 263000 66.608686 1682 612.86762 + 264000 67.220696 1681 636.53769 + 265000 67.830797 1678 638.33305 + 266000 68.439964 1675 635.97419 + 267000 69.043459 1672 634.91103 + 268000 69.643043 1669 638.50196 + 269000 70.250146 1667 646.16045 + 270000 70.86361 1664 659.62209 +Loop time of 70.8636 on 1 procs for 100000 steps with 1664 atoms + +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 33.501 | 33.501 | 33.501 | 0.0 | 47.27 +Neigh | 0.63279 | 0.63279 | 0.63279 | 0.0 | 0.89 +Comm | 0.055495 | 0.055495 | 0.055495 | 0.0 | 0.08 +Output | 0.0021648 | 0.0021648 | 0.0021648 | 0.0 | 0.00 +Modify | 35.602 | 35.602 | 35.602 | 0.0 | 50.24 +Other | | 1.07 | | | 1.51 + +Nlocal: 1664 ave 1664 max 1664 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 11687 ave 11687 max 11687 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 11687 +Ave neighs/atom = 7.02344 +Neighbor list builds = 261 +Dangerous builds = 0 +Total wall time: 0:03:04 diff --git a/examples/granregion/log.6Oct16.granregion.funnel.g++.4 b/examples/granregion/log.6Oct16.granregion.funnel.g++.4 new file mode 100644 index 0000000000..fcbd050b76 --- /dev/null +++ b/examples/granregion/log.6Oct16.granregion.funnel.g++.4 @@ -0,0 +1,608 @@ +LAMMPS (5 Oct 2016) +# pour particles into cone-shaped funnel, settle them, let them run out bottom + +variable name string funnel_pour + +thermo_modify flush yes +units si +variable PI equal 3.141592653589 +variable seed equal 14314 + +############################################### +# Geometry-related parameters +############################################### + +variable xlo equal 10 +variable xhi equal 40 +variable ylo equal 10 +variable yhi equal 40 +variable zlo equal -20 +variable zhi equal 50 + +variable xc equal 25 +variable yc equal 25 + +variable zconehi equal 50 +variable zconelo equal 10 +variable zcyllo equal 0 +variable radconelo equal 2 +variable radconehi equal 20 + +################################################ +# Particle sizes +################################################ + +variable rlo equal 0.25 +variable rhi equal 0.5 +variable dlo equal 2.0*${rlo} +variable dlo equal 2.0*0.25 +variable dhi equal 2.0*${rhi} +variable dhi equal 2.0*0.5 + +variable skin equal ${rhi} +variable skin equal 0.5 + +############################################### +# Granular contact parameters +############################################### + +variable coeffRes equal 0.1 +variable coeffFric equal 0.5 + +variable density equal 1.0 +variable EYoung equal 10^5 +variable Poisson equal 2.0/7.0 +variable GShear equal ${EYoung}/(2*(1+${Poisson})) +variable GShear equal 100000/(2*(1+${Poisson})) +variable GShear equal 100000/(2*(1+0.285714285714286)) + +variable gravity equal 1.0 + +variable reff equal 0.5*(${rhi}+${rlo}) +variable reff equal 0.5*(0.5+${rlo}) +variable reff equal 0.5*(0.5+0.25) +variable meff equal ${density}*4.0/3.0*${PI}*${reff}^3 +variable meff equal 1*4.0/3.0*${PI}*${reff}^3 +variable meff equal 1*4.0/3.0*3.141592653589*${reff}^3 +variable meff equal 1*4.0/3.0*3.141592653589*0.375^3 +variable min_mass equal ${density}*4.0/3.0*${PI}*${rlo}*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*${PI}*${rlo}*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*3.141592653589*${rlo}*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*3.141592653589*0.25*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*3.141592653589*0.25*0.25*${rlo} +variable min_mass equal 1*4.0/3.0*3.141592653589*0.25*0.25*0.25 +variable max_mass equal ${density}*4.0/3.0*${PI}*${rhi}*${rhi}*${rhi} +variable max_mass equal 1*4.0/3.0*${PI}*${rhi}*${rhi}*${rhi} +variable max_mass equal 1*4.0/3.0*3.141592653589*${rhi}*${rhi}*${rhi} +variable max_mass equal 1*4.0/3.0*3.141592653589*0.5*${rhi}*${rhi} +variable max_mass equal 1*4.0/3.0*3.141592653589*0.5*0.5*${rhi} +variable max_mass equal 1*4.0/3.0*3.141592653589*0.5*0.5*0.5 + +## Typical way to set kn, kt, etc.: +variable kn equal 4.0*${GShear}/(3*(1-${Poisson})) +variable kn equal 4.0*38888.8888888889/(3*(1-${Poisson})) +variable kn equal 4.0*38888.8888888889/(3*(1-0.285714285714286)) +variable kt equal 4.0*${GShear}/(2-${Poisson}) +variable kt equal 4.0*38888.8888888889/(2-${Poisson}) +variable kt equal 4.0*38888.8888888889/(2-0.285714285714286) + +variable a equal (-2.0*log(${coeffRes})/${PI})^2 +variable a equal (-2.0*log(0.1)/${PI})^2 +variable a equal (-2.0*log(0.1)/3.141592653589)^2 +variable gamma_n equal sqrt($a*2*${kn}/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569556*2*${kn}/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569556*2*72592.5925925926/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569556*2*72592.5925925926/0.0654498469497708/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569556*2*72592.5925925926/0.0654498469497708/(1+0.25*0.405284734569556)) +variable gamma_t equal ${gamma_n}*0.5 +variable gamma_t equal 903.503751814138*0.5 + +variable tcol equal ${PI}/sqrt(2*${kn}/${min_mass}-${gamma_n}/4.0) +variable tcol equal 3.141592653589/sqrt(2*${kn}/${min_mass}-${gamma_n}/4.0) +variable tcol equal 3.141592653589/sqrt(2*72592.5925925926/${min_mass}-${gamma_n}/4.0) +variable tcol equal 3.141592653589/sqrt(2*72592.5925925926/0.0654498469497708-${gamma_n}/4.0) +variable tcol equal 3.141592653589/sqrt(2*72592.5925925926/0.0654498469497708-903.503751814138/4.0) + +variable dt equal ${tcol}*0.05 +variable dt equal 0.00210943016014969*0.05 +timestep ${dt} +timestep 0.000105471508007485 + +############################################### +variable dumpfreq equal 1000 +variable logfreq equal 1000 + +newton off +atom_style sphere + +boundary p p f + +region boxreg block ${xlo} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} +region boxreg block 10 ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} +region boxreg block 10 40 ${ylo} ${yhi} ${zlo} ${zhi} +region boxreg block 10 40 10 ${yhi} ${zlo} ${zhi} +region boxreg block 10 40 10 40 ${zlo} ${zhi} +region boxreg block 10 40 10 40 -20 ${zhi} +region boxreg block 10 40 10 40 -20 50 +create_box 1 boxreg +Created orthogonal box = (10 10 -20) to (40 40 50) + 1 by 1 by 4 MPI processor grid + +pair_style gran/hertz/history ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 72592.5925925926 ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 72592.5925925926 90740.7407407408 ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 72592.5925925926 90740.7407407408 903.503751814138 ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 ${coeffFric} 1 +pair_style gran/hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 0.5 1 +pair_coeff * * + +neighbor ${skin} bin +neighbor 0.5 bin +thermo ${logfreq} +thermo 1000 + +comm_style brick +comm_modify mode multi group all vel yes +balance 1.1 shift xyz 20 1.1 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 30 -> bins = 1 1 3 +fix bal all balance 10000 1.1 shift xyz 20 1.01 + +####################### Options specific to pouring ######################### + +# insertion region for fix/pour + +region insreg cylinder z ${xc} ${yc} 10 30 50 side in units box +region insreg cylinder z 25 ${yc} 10 30 50 side in units box +region insreg cylinder z 25 25 10 30 50 side in units box + +# define cone and cylinder regions - see lammps doc on region command +# note new open options + +region cylreg cylinder z ${xc} ${yc} ${radconelo} ${zcyllo} ${zconelo} side in units box open 2 #Top is open +region cylreg cylinder z 25 ${yc} ${radconelo} ${zcyllo} ${zconelo} side in units box open 2 +region cylreg cylinder z 25 25 ${radconelo} ${zcyllo} ${zconelo} side in units box open 2 +region cylreg cylinder z 25 25 2 ${zcyllo} ${zconelo} side in units box open 2 +region cylreg cylinder z 25 25 2 0 ${zconelo} side in units box open 2 +region cylreg cylinder z 25 25 2 0 10 side in units box open 2 + +region conereg cone z ${xc} ${yc} ${radconelo} ${radconehi} ${zconelo} ${zconehi} side in units box open 1 open 2 #Bottom and top are open +region conereg cone z 25 ${yc} ${radconelo} ${radconehi} ${zconelo} ${zconehi} side in units box open 1 open 2 +region conereg cone z 25 25 ${radconelo} ${radconehi} ${zconelo} ${zconehi} side in units box open 1 open 2 +region conereg cone z 25 25 2 ${radconehi} ${zconelo} ${zconehi} side in units box open 1 open 2 +region conereg cone z 25 25 2 20 ${zconelo} ${zconehi} side in units box open 1 open 2 +region conereg cone z 25 25 2 20 10 ${zconehi} side in units box open 1 open 2 +region conereg cone z 25 25 2 20 10 50 side in units box open 1 open 2 + +region hopreg union 2 conereg cylreg + +fix grav all gravity ${gravity} vector 0 0 -1 +fix grav all gravity 1 vector 0 0 -1 +fix 1 all nve/sphere + + +fix hopper3 all wall/gran/region hertz/history ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 0.5 1 region hopreg + +fix ins all pour 2000 1 42424 region insreg diam range ${dlo} ${dhi} dens ${density} ${density} +fix ins all pour 2000 1 42424 region insreg diam range 0.5 ${dhi} dens ${density} ${density} +fix ins all pour 2000 1 42424 region insreg diam range 0.5 1 dens ${density} ${density} +fix ins all pour 2000 1 42424 region insreg diam range 0.5 1 dens 1 ${density} +fix ins all pour 2000 1 42424 region insreg diam range 0.5 1 dens 1 1 +Particle insertion: 3000 every 59965 steps, 2000 by step 1 + +#dump 1 all custom ${dumpfreq} ${name}.dump # id type mass diameter x y z + +#dump 2 all image 4000 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30 zoom 3.0 # box no 0.0 axes no 0.0 0.0 +#dump_modify 2 pad 6 + +thermo_style custom step cpu atoms ke +WARNING: New thermo_style command, previous thermo_modify settings will be lost (../output.cpp:690) +thermo_modify flush yes lost warn + +# Initial run to fill up the cone + +run 20000 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.5 + ghost atom cutoff = 1.5 + binsize = 0.75 -> bins = 40 40 94 +Memory usage per processor = 2.99539 Mbytes +Step CPU Atoms KinEng + 0 0 0 -0 + 1000 0.53632808 2000 -0 + 2000 0.90599012 2000 -0 + 3000 1.2640941 2000 -0 + 4000 1.6225331 2000 -0 + 5000 1.9735272 2000 -0 + 6000 2.3156731 2000 -0 + 7000 2.6499262 2000 -0 + 8000 2.9751072 2000 -0 + 9000 3.2918322 2000 -0 + 10000 3.597712 2000 -0 + 11000 3.7157061 2000 -0 + 12000 3.833451 2000 -0 + 13000 3.9541111 2000 -0 + 14000 4.081727 2000 -0 + 15000 4.2142782 2000 -0 + 16000 4.3530872 2000 -0 + 17000 4.4987361 2000 -0 + 18000 4.6507492 2000 -0 + 19000 4.807373 2000 -0 + 20000 4.9710512 2000 -0 +Loop time of 4.97109 on 4 procs for 20000 steps with 2000 atoms + +98.5% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.067799 | 0.17326 | 0.37341 | 28.4 | 3.49 +Neigh | 0.013881 | 0.025808 | 0.045841 | 7.5 | 0.52 +Comm | 0.078163 | 0.1808 | 0.2915 | 21.0 | 3.64 +Output | 0.0011413 | 0.0027029 | 0.0036721 | 1.8 | 0.05 +Modify | 1.0146 | 1.8605 | 3.562 | 73.8 | 37.43 +Other | | 2.728 | | | 54.88 + +Nlocal: 500 ave 505 max 493 min +Histogram: 1 0 0 0 0 1 0 1 0 1 +Nghost: 159.25 ave 254 max 71 min +Histogram: 1 0 0 1 0 1 0 0 0 1 +Neighs: 397.5 ave 616 max 214 min +Histogram: 1 0 1 0 0 0 1 0 0 1 + +Total # of neighbors = 1590 +Ave neighs/atom = 0.795 +Neighbor list builds = 69 +Dangerous builds = 0 +unfix ins +run 150000 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.49993 + ghost atom cutoff = 1.49993 + binsize = 0.749963 -> bins = 41 41 94 +Memory usage per processor = 9.39737 Mbytes +Step CPU Atoms KinEng + 20000 0 2000 6443.7665 + 21000 0.11240888 2000 6572.3531 + 22000 0.23014092 2000 6723.8376 + 23000 0.35371184 2000 6853.1812 + 24000 0.4838469 2000 6976.0209 + 25000 0.62193394 2000 7096.9955 + 26000 0.76781893 2000 7215.5795 + 27000 0.92212081 2000 7349.2382 + 28000 1.0841098 2000 7471.8719 + 29000 1.2593179 2000 7574.7988 + 30000 1.4459748 2000 7660.2353 + 31000 1.5759299 2000 7703.5736 + 32000 1.7189329 2000 7643.5299 + 33000 1.876133 2000 7520.14 + 34000 2.0453629 2000 7372.2247 + 35000 2.2281299 2000 7192.1638 + 36000 2.4208269 2000 6985.7056 + 37000 2.6258228 2000 6858.9422 + 38000 2.839473 2000 6717.0655 + 39000 3.065336 2000 6541.5809 + 40000 3.3090389 2000 6381.8513 + 41000 3.4969938 2000 6236.4297 + 42000 3.6888108 2000 6104.2528 + 43000 3.8874888 2000 5951.0314 + 44000 4.0956569 2000 5819.0972 + 45000 4.312974 2000 5620.6457 + 46000 4.5343778 2000 5479.332 + 47000 4.757262 2000 5295.328 + 48000 4.9850328 2000 5179.9559 + 49000 5.2210319 2000 5022.5562 + 50000 5.4699879 2000 4899.1332 + 51000 5.6774018 2000 4699.4456 + 52000 5.8900218 2000 4522.5719 + 53000 6.110677 2000 4402.8664 + 54000 6.3361218 2000 4256.1664 + 55000 6.5778289 2000 4093.6265 + 56000 6.8319149 2000 3933.0179 + 57000 7.0925779 2000 3738.4628 + 58000 7.3578169 2000 3535.7866 + 59000 7.6344049 2000 3298.4079 + 60000 7.9258108 2000 3058.9356 + 61000 8.1758959 2000 2888.0074 + 62000 8.4278228 2000 2652.4613 + 63000 8.6815088 2000 2435.0991 + 64000 8.9371588 2000 2147.9441 + 65000 9.208025 2000 1898.0657 + 66000 9.4795358 2000 1650.5794 + 67000 9.7519388 2000 1425.7284 + 68000 10.025867 2000 1193.3786 + 69000 10.313816 2000 940.55767 + 70000 10.610488 2000 761.5312 + 71000 10.879718 2000 599.1989 + 72000 11.154029 2000 453.25929 + 73000 11.424376 2000 345.73222 + 74000 11.697359 2000 273.72167 + 75000 11.966099 2000 222.44251 + 76000 12.230213 2000 190.79993 + 77000 12.481982 2000 157.71153 + 78000 12.73433 2000 131.99208 + 79000 12.986017 2000 111.10589 + 80000 13.243904 2000 96.736337 + 81000 13.500538 2000 81.24169 + 82000 13.765755 2000 66.640863 + 83000 14.032985 2000 53.07725 + 84000 14.308284 2000 45.942738 + 85000 14.586721 2000 38.811918 + 86000 14.861759 2000 34.59113 + 87000 15.135665 2000 31.04487 + 88000 15.417487 2000 27.659144 + 89000 15.698281 2000 24.596119 + 90000 15.97969 2000 22.004865 + 91000 16.266118 2000 20.541665 + 92000 16.557007 2000 18.938077 + 93000 16.846745 2000 17.293956 + 94000 17.133408 2000 16.443596 + 95000 17.42023 2000 15.518083 + 96000 17.709025 2000 14.264343 + 97000 18.001337 2000 13.410217 + 98000 18.292414 2000 13.036621 + 99000 18.583887 2000 12.523214 + 100000 18.880312 2000 12.371509 + 101000 19.176964 2000 11.828077 + 102000 19.474371 2000 11.510333 + 103000 19.770957 2000 11.289304 + 104000 20.070744 2000 10.370661 + 105000 20.372617 2000 10.217921 + 106000 20.673949 2000 9.3275222 + 107000 20.9765 2000 8.9156372 + 108000 21.276062 2000 8.5850821 + 109000 21.585305 2000 8.5326934 + 110000 21.89079 2000 8.0579504 + 111000 22.194207 2000 8.1084595 + 112000 22.501593 2000 7.9190174 + 113000 22.81251 2000 8.0127499 + 114000 23.118514 2000 8.1791911 + 115000 23.432862 2000 8.3333032 + 116000 23.735549 2000 8.4833817 + 117000 24.038329 2000 8.315498 + 118000 24.343247 2000 7.9460007 + 119000 24.643288 2000 7.5922134 + 120000 24.94731 2000 7.4089143 + 121000 25.253605 2000 7.5790659 + 122000 25.56672 2000 7.3778204 + 123000 25.870958 2000 7.1384456 + 124000 26.180729 2000 6.9151887 + 125000 26.493089 2000 6.4671685 + 126000 26.806734 2000 5.6773128 + 127000 27.10969 2000 5.5603057 + 128000 27.410973 2000 5.6376136 + 129000 27.712398 2000 5.5578044 + 130000 28.015943 2000 5.4632646 + 131000 28.319002 2000 4.9669466 + 132000 28.620558 2000 5.0191026 + 133000 28.923233 2000 4.7146653 + 134000 29.235178 2000 4.4835803 + 135000 29.542816 2000 4.5469703 + 136000 29.8518 2000 4.3349926 + 137000 30.159096 2000 4.423031 + 138000 30.464283 2000 4.3680646 + 139000 30.769279 2000 4.2461787 + 140000 31.074457 2000 4.4140001 + 141000 31.380334 2000 4.3991236 + 142000 31.683855 2000 4.572989 + 143000 31.987308 2000 4.7601702 + 144000 32.28998 2000 4.7790587 + 145000 32.594971 2000 4.8127728 + 146000 32.89855 2000 4.8750003 + 147000 33.205142 2000 4.9830109 + 148000 33.509096 2000 4.9960037 + 149000 33.812951 2000 5.2151503 + 150000 34.117585 2000 5.2745187 + 151000 34.420995 2000 4.8959892 + 152000 34.725788 2000 4.7600627 + 153000 35.032001 2000 4.6944719 + 154000 35.337093 2000 4.7647384 + 155000 35.645299 2000 4.312228 + 156000 35.953225 2000 3.8513036 + 157000 36.258107 2000 3.8798947 + 158000 36.570122 2000 3.7116749 + 159000 36.880424 2000 3.7246469 + 160000 37.187331 2000 3.8165318 + 161000 37.491939 2000 3.8954595 + 162000 37.806365 2000 4.0109691 + 163000 38.122006 2000 3.3864369 + 164000 38.437246 2000 3.4533589 + 165000 38.753073 2000 3.4967205 + 166000 39.068713 2000 3.5758702 + 167000 39.376388 2000 2.8913997 + 168000 39.685628 2000 2.507523 + 169000 39.99294 2000 2.4910068 + 170000 40.302393 2000 2.4992886 +Loop time of 40.3024 on 4 procs for 150000 steps with 2000 atoms + +99.2% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 7.9352 | 13.451 | 15.947 | 88.7 | 33.37 +Neigh | 0.15394 | 0.23292 | 0.28243 | 10.0 | 0.58 +Comm | 2.1471 | 3.534 | 4.4671 | 47.3 | 8.77 +Output | 0.0070386 | 0.011774 | 0.021483 | 5.4 | 0.03 +Modify | 10.816 | 14.404 | 16.047 | 55.2 | 35.74 +Other | | 8.669 | | | 21.51 + +Nlocal: 500 ave 542 max 430 min +Histogram: 1 0 0 0 0 0 1 0 1 1 +Nghost: 449.5 ave 679 max 208 min +Histogram: 1 0 0 0 1 0 1 0 0 1 +Neighs: 4506.75 ave 5611 max 3508 min +Histogram: 1 0 1 0 0 0 1 0 0 1 + +Total # of neighbors = 18027 +Ave neighs/atom = 9.0135 +Neighbor list builds = 386 +Dangerous builds = 0 + +# remove "plug" - need to redefine cylinder region & union + +region cylreg delete +region hopreg delete +region cylreg cylinder z ${xc} ${yc} ${radconelo} ${zcyllo} ${zconelo} side in units box open 1 open 2 #Bottom & top are open +region cylreg cylinder z 25 ${yc} ${radconelo} ${zcyllo} ${zconelo} side in units box open 1 open 2 +region cylreg cylinder z 25 25 ${radconelo} ${zcyllo} ${zconelo} side in units box open 1 open 2 +region cylreg cylinder z 25 25 2 ${zcyllo} ${zconelo} side in units box open 1 open 2 +region cylreg cylinder z 25 25 2 0 ${zconelo} side in units box open 1 open 2 +region cylreg cylinder z 25 25 2 0 10 side in units box open 1 open 2 + +region hopreg union 2 cylreg conereg + +unfix hopper3 +fix hopper3 all wall/gran/region hertz/history ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 ${gamma_n} ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 ${gamma_t} ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 ${coeffFric} 1 region hopreg +fix hopper3 all wall/gran/region hertz/history 72592.5925925926 90740.7407407408 903.503751814138 451.751875907069 0.5 1 region hopreg + +run 100000 +Memory usage per processor = 9.41929 Mbytes +Step CPU Atoms KinEng + 170000 0 2000 2.4992886 + 171000 0.30864286 2000 3.6052039 + 172000 0.62273479 2000 4.8584577 + 173000 0.94411087 2000 6.5620833 + 174000 1.2588799 2000 8.8636423 + 175000 1.574302 2000 11.743197 + 176000 1.888201 2000 15.60405 + 177000 2.1948938 2000 20.29426 + 178000 2.508261 2000 25.069266 + 179000 2.8257489 2000 31.340924 + 180000 3.1444538 2000 38.454779 + 181000 3.4541628 2000 46.488676 + 182000 3.7632799 2000 55.279578 + 183000 4.0711808 2000 65.192327 + 184000 4.386853 2000 75.466011 + 185000 4.7000408 2000 86.06934 + 186000 5.00436 2000 97.157035 + 187000 5.3041189 2000 108.92242 + 188000 5.601872 2000 120.88599 + 189000 5.9027078 2000 134.09884 + 190000 6.2037618 2000 148.60143 + 191000 6.4879329 2000 163.96898 + 192000 6.7703898 2000 180.32931 + 193000 7.0603459 2000 198.83575 + 194000 7.3395619 2000 217.46631 + 195000 7.6245389 2000 235.34916 + 196000 7.911685 2000 253.61893 + 197000 8.1976559 2000 271.3908 + 198000 8.483418 2000 289.60064 + 199000 8.7664149 2000 309.44306 + 200000 9.0593698 2000 331.9367 + 201000 9.3373818 2000 354.86646 + 202000 9.612149 2000 380.56766 + 203000 9.8876739 2000 406.97399 + 204000 10.152671 2000 435.69917 + 205000 10.415859 2000 465.1954 + 206000 10.67967 2000 494.6045 + 207000 10.941435 2000 522.71704 + 208000 11.205367 2000 550.56072 + 209000 11.471415 2000 580.10547 + 210000 11.738137 2000 610.36222 + 211000 12.006432 2000 641.99128 + 212000 12.270102 2000 676.0736 + 213000 12.531937 2000 711.70118 + 214000 12.797442 2000 747.84561 + 215000 13.062646 2000 785.59575 + 216000 13.33019 2000 826.36549 + 217000 13.598467 2000 868.35085 + 218000 13.863022 2000 911.07041 + 219000 14.127777 2000 953.70251 + 220000 14.391496 2000 997.5717 + 221000 14.655347 2000 1043.5565 + 222000 14.923357 2000 1090.7944 + 223000 15.193349 2000 1140.1324 + 224000 15.462326 2000 1190.6956 + 225000 15.729748 1999 1238.1536 + 226000 15.996867 1998 1286.8076 + 227000 16.261762 1995 1326.9895 + 228000 16.527382 1989 1349.5997 + 229000 16.788356 1984 1370.593 + 230000 17.05426 1968 1344.3763 + 231000 17.320126 1962 1363.7958 + 232000 17.58387 1949 1340.1482 + 233000 17.850221 1940 1348.409 + 234000 18.116595 1929 1335.9703 + 235000 18.383276 1918 1328.201 + 236000 18.650066 1905 1309.6469 + 237000 18.916963 1896 1292.9758 + 238000 19.185209 1884 1266.3598 + 239000 19.453402 1872 1221.0069 + 240000 19.722178 1855 1166.1488 + 241000 19.98987 1842 1126.9482 + 242000 20.257783 1828 1107.128 + 243000 20.523743 1815 1060.6573 + 244000 20.793404 1805 1026.0259 + 245000 21.061462 1797 1009.4924 + 246000 21.325574 1790 995.26136 + 247000 21.587046 1782 976.04886 + 248000 21.840234 1778 989.11589 + 249000 22.09455 1762 903.62508 + 250000 22.356228 1748 852.03257 + 251000 22.602243 1738 807.41049 + 252000 22.852106 1722 738.82529 + 253000 23.097209 1712 706.05657 + 254000 23.341263 1696 626.53135 + 255000 23.58614 1692 613.89548 + 256000 23.83122 1686 598.9367 + 257000 24.076937 1683 589.27487 + 258000 24.321166 1681 591.42793 + 259000 24.566143 1678 595.25383 + 260000 24.820743 1677 617.50379 + 261000 25.057835 1675 623.39319 + 262000 25.294068 1673 627.08829 + 263000 25.526724 1669 623.52963 + 264000 25.766729 1667 626.44957 + 265000 26.005453 1664 631.58936 + 266000 26.244549 1660 605.22452 + 267000 26.478879 1657 611.76935 + 268000 26.71252 1655 611.73538 + 269000 26.951368 1652 624.58227 + 270000 27.186447 1648 625.97446 +Loop time of 27.1865 on 4 procs for 100000 steps with 1648 atoms + +99.2% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.6257 | 9.631 | 13.049 | 100.0 | 35.43 +Neigh | 0.1522 | 0.17549 | 0.19588 | 4.3 | 0.65 +Comm | 1.5797 | 2.7289 | 3.602 | 48.7 | 10.04 +Output | 0.0014181 | 0.007208 | 0.016675 | 6.8 | 0.03 +Modify | 7.7129 | 9.0949 | 10.256 | 31.9 | 33.45 +Other | | 5.549 | | | 20.41 + +Nlocal: 412 ave 436 max 388 min +Histogram: 1 1 0 0 0 0 0 0 1 1 +Nghost: 391 ave 629 max 158 min +Histogram: 1 0 0 1 0 1 0 0 0 1 +Neighs: 3406 ave 4479 max 2040 min +Histogram: 1 0 0 0 1 0 0 1 0 1 + +Total # of neighbors = 13624 +Ave neighs/atom = 8.26699 +Neighbor list builds = 260 +Dangerous builds = 0 +Total wall time: 0:01:12 diff --git a/examples/granregion/log.6Oct16.granregion.mixer.g++.1 b/examples/granregion/log.6Oct16.granregion.mixer.g++.1 new file mode 100644 index 0000000000..3cfa3eb0fc --- /dev/null +++ b/examples/granregion/log.6Oct16.granregion.mixer.g++.1 @@ -0,0 +1,609 @@ +LAMMPS (5 Oct 2016) +variable name string mixer + +thermo_modify flush yes +variable seed equal 14314 + +############################################### +# Particle parameters +################################################ + +variable rlo equal 0.3 +variable rhi equal 0.6 +variable dlo equal 2.0*${rlo} +variable dlo equal 2.0*0.3 +variable dhi equal 2.0*${rhi} +variable dhi equal 2.0*0.6 +variable skin equal ${rhi} +variable skin equal 0.6 + +variable coeffRes equal 0.1 +variable coeffFric equal 0.5 + +variable kn equal 10^5 +variable kt equal 0.2*${kn} +variable kt equal 0.2*100000 + +variable gravity equal 1.0 +variable density equal 1.0 + +variable min_mass equal ${density}*4.0/3.0*PI*${rlo}*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*PI*${rlo}*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*PI*0.3*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*PI*0.3*0.3*${rlo} +variable min_mass equal 1*4.0/3.0*PI*0.3*0.3*0.3 +variable a equal (-2.0*log(${coeffRes})/PI)^2 +variable a equal (-2.0*log(0.1)/PI)^2 +variable gamma_n equal sqrt($a*2*${kn}/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569351*2*${kn}/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569351*2*100000/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569351*2*100000/0.113097335529233/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569351*2*100000/0.113097335529233/(1+0.25*0.405284734569351)) +variable gamma_t equal ${gamma_n}*0.5 +variable gamma_t equal 806.699778405191*0.5 + +variable tcol equal PI/sqrt(2*${kn}/${min_mass}-${gamma_n}/4.0) +variable tcol equal PI/sqrt(2*100000/${min_mass}-${gamma_n}/4.0) +variable tcol equal PI/sqrt(2*100000/0.113097335529233-${gamma_n}/4.0) +variable tcol equal PI/sqrt(2*100000/0.113097335529233-806.699778405191/4.0) + +variable dt equal ${tcol}*0.02 +variable dt equal 0.00236257621510454*0.02 +timestep ${dt} +timestep 4.72515243020908e-05 + +############################################### + +variable dumpfreq equal 1000 +variable logfreq equal 1000 + +newton on +atom_style sphere + +boundary p p f + +region boxreg block 0 20 0 20 0 20 +create_box 1 boxreg +Created orthogonal box = (0 0 0) to (20 20 20) + 1 by 1 by 1 MPI processor grid + +pair_style gran/hertz/history ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 100000 ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 100000 20000 ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 100000 20000 806.699778405191 ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 100000 20000 806.699778405191 403.349889202595 ${coeffFric} 1 +pair_style gran/hertz/history 100000 20000 806.699778405191 403.349889202595 0.5 1 +pair_coeff * * + +neighbor ${skin} bin +neighbor 0.6 bin +thermo ${logfreq} +thermo 1000 + +comm_style brick +comm_modify mode multi group all vel yes +balance 1.1 shift xyz 20 1.1 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 20 -> bins = 1 1 1 +fix bal all balance 10000 1.1 shift xyz 20 1.01 + +####################### Options specific to pouring ######################### + +region insreg cylinder z 10 10 8 10 18 side in units box +region cylreg cylinder z 10 10 10 0 20 side in units box + +variable theta equal (step/400000)*2*PI + +region b1 block 2 18 9 11 0 4 side out rotate v_theta 10 10 0 0 0 1 units box +region b2 block 9 11 2 18 0 3.99999 side out rotate v_theta 10 10 0 0 0 1 units box + +region mixer intersect 3 cylreg b1 b2 side in + +fix grav all gravity ${gravity} vector 0 0 -1 +fix grav all gravity 1 vector 0 0 -1 +fix 1 all nve/sphere + +fix mixwall all wall/gran/region hertz/history ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region mixer +fix mixwall all wall/gran/region hertz/history 100000 ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region mixer +fix mixwall all wall/gran/region hertz/history 100000 20000 ${gamma_n} ${gamma_t} ${coeffFric} 1 region mixer +fix mixwall all wall/gran/region hertz/history 100000 20000 806.699778405191 ${gamma_t} ${coeffFric} 1 region mixer +fix mixwall all wall/gran/region hertz/history 100000 20000 806.699778405191 403.349889202595 ${coeffFric} 1 region mixer +fix mixwall all wall/gran/region hertz/history 100000 20000 806.699778405191 403.349889202595 0.5 1 region mixer + +fix ins all pour 1000 1 42424 region insreg diam range ${dlo} ${dhi} dens ${density} ${density} +fix ins all pour 1000 1 42424 region insreg diam range 0.6 ${dhi} dens ${density} ${density} +fix ins all pour 1000 1 42424 region insreg diam range 0.6 1.2 dens ${density} ${density} +fix ins all pour 1000 1 42424 region insreg diam range 0.6 1.2 dens 1 ${density} +fix ins all pour 1000 1 42424 region insreg diam range 0.6 1.2 dens 1 1 +Particle insertion: 444 every 84653 steps, 1000 by step 169307 + +#dump 1 all custom ${dumpfreq} ${name}_pour.dump # id type mass diameter x y z + +#dump 2 all image 4000 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30 zoom 1.5 # box no 0.0 axes no 0.0 0.0 +#dump_modify 2 pad 6 + +thermo_style custom step cpu atoms ke v_theta +WARNING: New thermo_style command, previous thermo_modify settings will be lost (../output.cpp:690) +thermo_modify flush yes lost warn + +run 200000 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.8 + ghost atom cutoff = 1.8 + binsize = 0.9 -> bins = 23 23 23 +Memory usage per processor = 2.80779 Mbytes +Step CPU Atoms KinEng v_theta + 0 0 0 -0 0 + 1000 0.16771817 444 -0 0.015707963 + 2000 0.33019304 444 -0 0.031415927 + 3000 0.4894321 444 -0 0.04712389 + 4000 0.64879322 444 -0 0.062831853 + 5000 0.80816507 444 -0 0.078539816 + 6000 0.96711302 444 -0 0.09424778 + 7000 1.1265812 444 -0 0.10995574 + 8000 1.286129 444 -0 0.12566371 + 9000 1.445487 444 -0 0.14137167 + 10000 1.6056392 444 -0 0.15707963 + 11000 1.7650061 444 -0 0.1727876 + 12000 1.9249642 444 -0 0.18849556 + 13000 2.0851831 444 -0 0.20420352 + 14000 2.244523 444 -0 0.21991149 + 15000 2.4043641 444 -0 0.23561945 + 16000 2.5638251 444 -0 0.25132741 + 17000 2.7155962 444 -0 0.26703538 + 18000 2.866904 444 -0 0.28274334 + 19000 3.0188181 444 -0 0.2984513 + 20000 3.17047 444 -0 0.31415927 + 21000 3.3214712 444 -0 0.32986723 + 22000 3.472692 444 -0 0.34557519 + 23000 3.6240032 444 -0 0.36128316 + 24000 3.7753551 444 -0 0.37699112 + 25000 3.926239 444 -0 0.39269908 + 26000 4.0782132 444 -0 0.40840704 + 27000 4.2301712 444 -0 0.42411501 + 28000 4.382267 444 -0 0.43982297 + 29000 4.5339992 444 -0 0.45553093 + 30000 4.6860211 444 -0 0.4712389 + 31000 4.8376751 444 -0 0.48694686 + 32000 4.989748 444 -0 0.50265482 + 33000 5.1418142 444 -0 0.51836279 + 34000 5.294476 444 -0 0.53407075 + 35000 5.4472861 444 -0 0.54977871 + 36000 5.5999811 444 -0 0.56548668 + 37000 5.7526181 444 -0 0.58119464 + 38000 5.9061031 444 -0 0.5969026 + 39000 6.0593271 444 -0 0.61261057 + 40000 6.2123802 444 -0 0.62831853 + 41000 6.3652351 444 -0 0.64402649 + 42000 6.5186551 444 -0 0.65973446 + 43000 6.672132 444 -0 0.67544242 + 44000 6.8245611 444 -0 0.69115038 + 45000 6.9778051 444 -0 0.70685835 + 46000 7.131258 444 -0 0.72256631 + 47000 7.2841291 444 -0 0.73827427 + 48000 7.4379101 444 -0 0.75398224 + 49000 7.5915 444 -0 0.7696902 + 50000 7.7461231 444 -0 0.78539816 + 51000 7.9047191 444 -0 0.80110613 + 52000 8.0634432 444 -0 0.81681409 + 53000 8.2226322 444 -0 0.83252205 + 54000 8.3817451 444 -0 0.84823002 + 55000 8.5419021 444 -0 0.86393798 + 56000 8.701194 444 -0 0.87964594 + 57000 8.8613491 444 -0 0.89535391 + 58000 9.0211501 444 -0 0.91106187 + 59000 9.180917 444 -0 0.92676983 + 60000 9.341964 444 -0 0.9424778 + 61000 9.5026722 444 -0 0.95818576 + 62000 9.6630561 444 -0 0.97389372 + 63000 9.8236201 444 -0 0.98960169 + 64000 9.9854801 444 -0 1.0053096 + 65000 10.148318 444 -0 1.0210176 + 66000 10.311267 444 -0 1.0367256 + 67000 10.476498 444 -0 1.0524335 + 68000 10.640768 444 -0 1.0681415 + 69000 10.804709 444 -0 1.0838495 + 70000 10.969271 444 -0 1.0995574 + 71000 11.133451 444 -0 1.1152654 + 72000 11.299253 444 -0 1.1309734 + 73000 11.463999 444 -0 1.1466813 + 74000 11.62903 444 -0 1.1623893 + 75000 11.795109 444 -0 1.1780972 + 76000 11.962154 444 -0 1.1938052 + 77000 12.1292 444 -0 1.2095132 + 78000 12.298106 444 -0 1.2252211 + 79000 12.46744 444 -0 1.2409291 + 80000 12.637916 444 -0 1.2566371 + 81000 12.808494 444 -0 1.272345 + 82000 12.97813 444 -0 1.288053 + 83000 13.149135 444 -0 1.303761 + 84000 13.32082 444 -0 1.3194689 + 85000 13.56205 888 -0 1.3351769 + 86000 13.908699 888 -0 1.3508848 + 87000 14.254615 888 -0 1.3665928 + 88000 14.600851 888 -0 1.3823008 + 89000 14.946295 888 -0 1.3980087 + 90000 15.291315 888 -0 1.4137167 + 91000 15.637396 888 -0 1.4294247 + 92000 15.981426 888 -0 1.4451326 + 93000 16.327519 888 -0 1.4608406 + 94000 16.675434 888 -0 1.4765485 + 95000 17.023515 888 -0 1.4922565 + 96000 17.372152 888 -0 1.5079645 + 97000 17.719346 888 -0 1.5236724 + 98000 18.067159 888 -0 1.5393804 + 99000 18.414599 888 -0 1.5550884 + 100000 18.764775 888 -0 1.5707963 + 101000 19.114239 888 -0 1.5865043 + 102000 19.464285 888 -0 1.6022123 + 103000 19.813956 888 -0 1.6179202 + 104000 20.163276 888 -0 1.6336282 + 105000 20.553808 888 -0 1.6493361 + 106000 20.904093 888 -0 1.6650441 + 107000 21.25918 888 -0 1.6807521 + 108000 21.615056 888 -0 1.69646 + 109000 21.971067 888 -0 1.712168 + 110000 22.326407 888 -0 1.727876 + 111000 22.68062 888 -0 1.7435839 + 112000 23.03653 888 -0 1.7592919 + 113000 23.39161 888 -0 1.7749998 + 114000 23.751273 888 -0 1.7907078 + 115000 24.106946 888 -0 1.8064158 + 116000 24.461182 888 -0 1.8221237 + 117000 24.797533 888 -0 1.8378317 + 118000 25.133924 888 -0 1.8535397 + 119000 25.472617 888 -0 1.8692476 + 120000 25.810786 888 -0 1.8849556 + 121000 26.147399 888 -0 1.9006636 + 122000 26.485868 888 -0 1.9163715 + 123000 26.82395 888 -0 1.9320795 + 124000 27.162345 888 -0 1.9477874 + 125000 27.501503 888 -0 1.9634954 + 126000 27.843318 888 -0 1.9792034 + 127000 28.183379 888 -0 1.9949113 + 128000 28.525406 888 -0 2.0106193 + 129000 28.869601 888 -0 2.0263273 + 130000 29.216232 888 -0 2.0420352 + 131000 29.562432 888 -0 2.0577432 + 132000 29.95624 888 -0 2.0734512 + 133000 30.308919 888 -0 2.0891591 + 134000 30.662184 888 -0 2.1048671 + 135000 31.015509 888 -0 2.120575 + 136000 31.366132 888 -0 2.136283 + 137000 31.71887 888 -0 2.151991 + 138000 32.0723 888 -0 2.1676989 + 139000 32.428657 888 -0 2.1834069 + 140000 32.781484 888 -0 2.1991149 + 141000 33.133593 888 -0 2.2148228 + 142000 33.487376 888 -0 2.2305308 + 143000 33.838656 888 -0 2.2462387 + 144000 34.188723 888 -0 2.2619467 + 145000 34.540083 888 -0 2.2776547 + 146000 34.895624 888 -0 2.2933626 + 147000 35.25153 888 -0 2.3090706 + 148000 35.607482 888 -0 2.3247786 + 149000 35.9642 888 -0 2.3404865 + 150000 36.321759 888 -0 2.3561945 + 151000 36.667172 888 -0 2.3719025 + 152000 37.013822 888 -0 2.3876104 + 153000 37.362735 888 -0 2.4033184 + 154000 37.712576 888 -0 2.4190263 + 155000 38.063528 888 -0 2.4347343 + 156000 38.414666 888 -0 2.4504423 + 157000 38.766119 888 -0 2.4661502 + 158000 39.115828 888 -0 2.4818582 + 159000 39.470874 888 -0 2.4975662 + 160000 39.827871 888 -0 2.5132741 + 161000 40.184885 888 -0 2.5289821 + 162000 40.543838 888 -0 2.54469 + 163000 40.901814 888 -0 2.560398 + 164000 41.258631 888 -0 2.576106 + 165000 41.619086 888 -0 2.5918139 + 166000 41.977332 888 -0 2.6075219 + 167000 42.33775 888 -0 2.6232299 + 168000 42.701344 888 -0 2.6389378 + 169000 43.067663 888 -0 2.6546458 + 170000 43.461687 1000 -0 2.6703538 + 171000 43.866086 1000 -0 2.6860617 + 172000 44.271406 1000 -0 2.7017697 + 173000 44.677085 1000 -0 2.7174776 + 174000 45.082441 1000 -0 2.7331856 + 175000 45.491593 1000 -0 2.7488936 + 176000 45.903002 1000 -0 2.7646015 + 177000 46.315031 1000 -0 2.7803095 + 178000 46.726531 1000 -0 2.7960175 + 179000 47.140818 1000 -0 2.8117254 + 180000 47.553784 1000 -0 2.8274334 + 181000 47.964021 1000 -0 2.8431414 + 182000 48.376739 1000 -0 2.8588493 + 183000 48.789612 1000 -0 2.8745573 + 184000 49.204073 1000 -0 2.8902652 + 185000 49.642401 1000 -0 2.9059732 + 186000 50.083479 1000 -0 2.9216812 + 187000 50.523357 1000 -0 2.9373891 + 188000 50.963685 1000 -0 2.9530971 + 189000 51.404166 1000 -0 2.9688051 + 190000 51.849094 1000 -0 2.984513 + 191000 52.291805 1000 -0 3.000221 + 192000 52.731855 1000 -0 3.0159289 + 193000 53.174104 1000 -0 3.0316369 + 194000 53.619739 1000 -0 3.0473449 + 195000 54.061019 1000 -0 3.0630528 + 196000 54.501149 1000 -0 3.0787608 + 197000 54.940486 1000 -0 3.0944688 + 198000 55.381843 1000 -0 3.1101767 + 199000 55.822243 1000 -0 3.1258847 + 200000 56.264319 1000 -0 3.1415927 +Loop time of 56.2643 on 1 procs for 200000 steps with 1000 atoms + +Performance: 14511.970 tau/day, 3554.650 timesteps/s +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.6309 | 4.6309 | 4.6309 | 0.0 | 8.23 +Neigh | 0.071456 | 0.071456 | 0.071456 | 0.0 | 0.13 +Comm | 0.50064 | 0.50064 | 0.50064 | 0.0 | 0.89 +Output | 0.0039163 | 0.0039163 | 0.0039163 | 0.0 | 0.01 +Modify | 50.189 | 50.189 | 50.189 | 0.0 | 89.20 +Other | | 0.8688 | | | 1.54 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 183 ave 183 max 183 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 3926 ave 3926 max 3926 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 3926 +Ave neighs/atom = 3.926 +Neighbor list builds = 217 +Dangerous builds = 0 +unfix ins +run 200000 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.79826 + ghost atom cutoff = 1.79826 + binsize = 0.899132 -> bins = 23 23 23 +Memory usage per processor = 8.62017 Mbytes +Step CPU Atoms KinEng v_theta + 200000 0 1000 0.90078559 3.1415927 + 201000 0.44072509 1000 0.90377135 3.1573006 + 202000 0.8800211 1000 0.89194106 3.1730086 + 203000 1.3210881 1000 0.8940532 3.1887165 + 204000 1.762887 1000 0.8967696 3.2044245 + 205000 2.2080901 1000 0.89758718 3.2201325 + 206000 2.6548181 1000 0.89434418 3.2358404 + 207000 3.1002531 1000 0.87633906 3.2515484 + 208000 3.547334 1000 0.86721615 3.2672564 + 209000 3.993988 1000 0.86214817 3.2829643 + 210000 4.4423161 1000 0.85463743 3.2986723 + 211000 4.889446 1000 0.85744914 3.3143802 + 212000 5.3357229 1000 0.84702799 3.3300882 + 213000 5.780273 1000 0.84375104 3.3457962 + 214000 6.2249129 1000 0.83820701 3.3615041 + 215000 6.670651 1000 0.83566708 3.3772121 + 216000 7.113143 1000 0.83620798 3.3929201 + 217000 7.5359521 1000 0.83581605 3.408628 + 218000 7.9623129 1000 0.84045719 3.424336 + 219000 8.3878851 1000 0.85410521 3.440044 + 220000 8.8153811 1000 0.84336839 3.4557519 + 221000 9.244349 1000 0.85145747 3.4714599 + 222000 9.6728511 1000 0.8476916 3.4871678 + 223000 10.104052 1000 0.8412701 3.5028758 + 224000 10.532736 1000 0.8390277 3.5185838 + 225000 10.959564 1000 0.8359107 3.5342917 + 226000 11.38617 1000 0.83920631 3.5499997 + 227000 11.814104 1000 0.83930526 3.5657077 + 228000 12.241758 1000 0.83152308 3.5814156 + 229000 12.67198 1000 0.81211079 3.5971236 + 230000 13.101597 1000 0.80395018 3.6128316 + 231000 13.532943 1000 0.79991397 3.6285395 + 232000 13.969412 1000 0.80828959 3.6442475 + 233000 14.403885 1000 0.80892923 3.6599554 + 234000 14.833452 1000 0.82048914 3.6756634 + 235000 15.266211 1000 0.8174713 3.6913714 + 236000 15.697822 1000 0.81898551 3.7070793 + 237000 16.133023 1000 0.82034714 3.7227873 + 238000 16.569559 1000 0.81950728 3.7384953 + 239000 17.006308 1000 0.82152915 3.7542032 + 240000 17.445493 1000 0.83217597 3.7699112 + 241000 17.885585 1000 0.83464253 3.7856191 + 242000 18.324268 1000 0.84326166 3.8013271 + 243000 18.763748 1000 0.84235055 3.8170351 + 244000 19.203869 1000 0.83325408 3.832743 + 245000 19.645 1000 0.82577315 3.848451 + 246000 20.08666 1000 0.83923456 3.864159 + 247000 20.530596 1000 0.84153419 3.8798669 + 248000 20.971984 1000 0.85768309 3.8955749 + 249000 21.413571 1000 0.86910799 3.9112829 + 250000 21.854153 1000 0.8775521 3.9269908 + 251000 22.302884 1000 0.87299296 3.9426988 + 252000 22.753789 1000 0.86613861 3.9584067 + 253000 23.202458 1000 0.85513456 3.9741147 + 254000 23.655372 1000 0.84629733 3.9898227 + 255000 24.108225 1000 0.84154885 4.0055306 + 256000 24.561535 1000 0.84162715 4.0212386 + 257000 25.012338 1000 0.83959672 4.0369466 + 258000 25.466506 1000 0.83577695 4.0526545 + 259000 25.919168 1000 0.83021368 4.0683625 + 260000 26.37215 1000 0.81106893 4.0840704 + 261000 26.823834 1000 0.79884608 4.0997784 + 262000 27.276505 1000 0.78360303 4.1154864 + 263000 27.728503 1000 0.77030843 4.1311943 + 264000 28.181969 1000 0.76127974 4.1469023 + 265000 28.636329 1000 0.75553065 4.1626103 + 266000 29.090593 1000 0.75332019 4.1783182 + 267000 29.549547 1000 0.74670528 4.1940262 + 268000 30.008774 1000 0.74216141 4.2097342 + 269000 30.463826 1000 0.74564756 4.2254421 + 270000 30.920159 1000 0.7416035 4.2411501 + 271000 31.377192 1000 0.73061389 4.256858 + 272000 31.836268 1000 0.71620113 4.272566 + 273000 32.291662 1000 0.70840181 4.288274 + 274000 32.743646 1000 0.70946906 4.3039819 + 275000 33.197723 1000 0.70418049 4.3196899 + 276000 33.651405 1000 0.69591327 4.3353979 + 277000 34.106289 1000 0.69499716 4.3511058 + 278000 34.564324 1000 0.69242545 4.3668138 + 279000 35.020887 1000 0.69690811 4.3825218 + 280000 35.478222 1000 0.70402124 4.3982297 + 281000 35.938226 1000 0.71936578 4.4139377 + 282000 36.39808 1000 0.72439386 4.4296456 + 283000 36.855587 1000 0.72221632 4.4453536 + 284000 37.309629 1000 0.70387029 4.4610616 + 285000 37.791869 1000 0.70505716 4.4767695 + 286000 38.277853 1000 0.70731734 4.4924775 + 287000 38.764774 1000 0.71149743 4.5081855 + 288000 39.24815 1000 0.70994023 4.5238934 + 289000 39.728005 1000 0.69794225 4.5396014 + 290000 40.206798 1000 0.6905751 4.5553093 + 291000 40.678802 1000 0.68652972 4.5710173 + 292000 41.147991 1000 0.6743341 4.5867253 + 293000 41.618836 1000 0.67357205 4.6024332 + 294000 42.08982 1000 0.66465346 4.6181412 + 295000 42.561323 1000 0.65587678 4.6338492 + 296000 43.034196 1000 0.65455827 4.6495571 + 297000 43.505748 1000 0.65135145 4.6652651 + 298000 43.975299 1000 0.65400349 4.6809731 + 299000 44.447556 1000 0.66186899 4.696681 + 300000 44.926073 1000 0.66844193 4.712389 + 301000 45.402658 1000 0.67720506 4.7280969 + 302000 45.880643 1000 0.68554918 4.7438049 + 303000 46.359444 1000 0.69321489 4.7595129 + 304000 46.841542 1000 0.70345329 4.7752208 + 305000 47.323539 1000 0.70172137 4.7909288 + 306000 47.809358 1000 0.70989191 4.8066368 + 307000 48.291664 1000 0.70546377 4.8223447 + 308000 48.770327 1000 0.70820389 4.8380527 + 309000 49.248974 1000 0.69637815 4.8537606 + 310000 49.72965 1000 0.68679532 4.8694686 + 311000 50.204503 1000 0.68824984 4.8851766 + 312000 50.683502 1000 0.68647935 4.9008845 + 313000 51.161407 1000 0.68289956 4.9165925 + 314000 51.638365 1000 0.68356788 4.9323005 + 315000 52.114341 1000 0.68269829 4.9480084 + 316000 52.590791 1000 0.67961769 4.9637164 + 317000 53.043198 1000 0.67437047 4.9794244 + 318000 53.499062 1000 0.66534726 4.9951323 + 319000 53.954004 1000 0.66052125 5.0108403 + 320000 54.409776 1000 0.65351962 5.0265482 + 321000 54.867935 1000 0.64155441 5.0422562 + 322000 55.324528 1000 0.63463177 5.0579642 + 323000 55.780399 1000 0.62945691 5.0736721 + 324000 56.239189 1000 0.63156746 5.0893801 + 325000 56.697767 1000 0.63883759 5.1050881 + 326000 57.155746 1000 0.64703516 5.120796 + 327000 57.618744 1000 0.65532057 5.136504 + 328000 58.083021 1000 0.66697061 5.152212 + 329000 58.547646 1000 0.66896271 5.1679199 + 330000 59.011518 1000 0.66551963 5.1836279 + 331000 59.478689 1000 0.65083894 5.1993358 + 332000 59.94887 1000 0.65171641 5.2150438 + 333000 60.416096 1000 0.65122777 5.2307518 + 334000 60.889826 1000 0.65844334 5.2464597 + 335000 61.363105 1000 0.66931264 5.2621677 + 336000 61.832482 1000 0.66847415 5.2778757 + 337000 62.300731 1000 0.65863495 5.2935836 + 338000 62.769011 1000 0.64977739 5.3092916 + 339000 63.232862 1000 0.6454395 5.3249995 + 340000 63.699228 1000 0.63484999 5.3407075 + 341000 64.165101 1000 0.62753448 5.3564155 + 342000 64.631118 1000 0.62781442 5.3721234 + 343000 65.099469 1000 0.63813963 5.3878314 + 344000 65.576568 1000 0.6485183 5.4035394 + 345000 66.054068 1000 0.67111606 5.4192473 + 346000 66.531747 1000 0.68435581 5.4349553 + 347000 67.007296 1000 0.69526046 5.4506633 + 348000 67.478242 1000 0.6876531 5.4663712 + 349000 67.944422 1000 0.67962108 5.4820792 + 350000 68.410281 1000 0.6800934 5.4977871 + 351000 68.862112 1000 0.67658657 5.5134951 + 352000 69.316476 1000 0.67043355 5.5292031 + 353000 69.76356 1000 0.66863154 5.544911 + 354000 70.212144 1000 0.65806572 5.560619 + 355000 70.658375 1000 0.6498301 5.576327 + 356000 71.103688 1000 0.64384284 5.5920349 + 357000 71.551545 1000 0.64228421 5.6077429 + 358000 72.001238 1000 0.6408188 5.6234508 + 359000 72.45158 1000 0.64388002 5.6391588 + 360000 72.906369 1000 0.64347896 5.6548668 + 361000 73.358316 1000 0.65055455 5.6705747 + 362000 73.814119 1000 0.65545061 5.6862827 + 363000 74.277034 1000 0.6667431 5.7019907 + 364000 74.737593 1000 0.6869856 5.7176986 + 365000 75.20209 1000 0.69651407 5.7334066 + 366000 75.667448 1000 0.70824091 5.7491146 + 367000 76.132389 1000 0.7144853 5.7648225 + 368000 76.596067 1000 0.71780876 5.7805305 + 369000 77.059749 1000 0.7159398 5.7962384 + 370000 77.519236 1000 0.70648968 5.8119464 + 371000 77.977404 1000 0.69796557 5.8276544 + 372000 78.434017 1000 0.69876891 5.8433623 + 373000 78.887217 1000 0.70908957 5.8590703 + 374000 79.341658 1000 0.70831124 5.8747783 + 375000 79.802381 1000 0.70631178 5.8904862 + 376000 80.265165 1000 0.70533876 5.9061942 + 377000 80.727821 1000 0.70097225 5.9219022 + 378000 81.187538 1000 0.70139806 5.9376101 + 379000 81.645627 1000 0.69691027 5.9533181 + 380000 82.105692 1000 0.69163881 5.969026 + 381000 82.56483 1000 0.68973183 5.984734 + 382000 83.025126 1000 0.68059207 6.000442 + 383000 83.482786 1000 0.68096466 6.0161499 + 384000 83.939808 1000 0.6698933 6.0318579 + 385000 84.418408 1000 0.66795846 6.0475659 + 386000 84.898757 1000 0.66153854 6.0632738 + 387000 85.376756 1000 0.66560025 6.0789818 + 388000 85.853575 1000 0.66671699 6.0946897 + 389000 86.32865 1000 0.66013733 6.1103977 + 390000 86.807772 1000 0.66181942 6.1261057 + 391000 87.290335 1000 0.66281334 6.1418136 + 392000 87.773899 1000 0.66657879 6.1575216 + 393000 88.248567 1000 0.66608992 6.1732296 + 394000 88.723817 1000 0.66128929 6.1889375 + 395000 89.200089 1000 0.65764538 6.2046455 + 396000 89.671826 1000 0.65073015 6.2203535 + 397000 90.142595 1000 0.64967355 6.2360614 + 398000 90.616654 1000 0.65193957 6.2517694 + 399000 91.093856 1000 0.64936977 6.2674773 + 400000 91.571678 1000 0.65849743 6.2831853 +Loop time of 91.5717 on 1 procs for 200000 steps with 1000 atoms + +Performance: 8916.580 tau/day, 2184.081 timesteps/s +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 13.827 | 13.827 | 13.827 | 0.0 | 15.10 +Neigh | 0.097679 | 0.097679 | 0.097679 | 0.0 | 0.11 +Comm | 1.5668 | 1.5668 | 1.5668 | 0.0 | 1.71 +Output | 0.0042615 | 0.0042615 | 0.0042615 | 0.0 | 0.00 +Modify | 74.804 | 74.804 | 74.804 | 0.0 | 81.69 +Other | | 1.273 | | | 1.39 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 289 ave 289 max 289 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 5091 ave 5091 max 5091 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 5091 +Ave neighs/atom = 5.091 +Neighbor list builds = 160 +Dangerous builds = 0 +Total wall time: 0:02:27 diff --git a/examples/granregion/log.6Oct16.granregion.mixer.g++.4 b/examples/granregion/log.6Oct16.granregion.mixer.g++.4 new file mode 100644 index 0000000000..726b31f8fe --- /dev/null +++ b/examples/granregion/log.6Oct16.granregion.mixer.g++.4 @@ -0,0 +1,609 @@ +LAMMPS (5 Oct 2016) +variable name string mixer + +thermo_modify flush yes +variable seed equal 14314 + +############################################### +# Particle parameters +################################################ + +variable rlo equal 0.3 +variable rhi equal 0.6 +variable dlo equal 2.0*${rlo} +variable dlo equal 2.0*0.3 +variable dhi equal 2.0*${rhi} +variable dhi equal 2.0*0.6 +variable skin equal ${rhi} +variable skin equal 0.6 + +variable coeffRes equal 0.1 +variable coeffFric equal 0.5 + +variable kn equal 10^5 +variable kt equal 0.2*${kn} +variable kt equal 0.2*100000 + +variable gravity equal 1.0 +variable density equal 1.0 + +variable min_mass equal ${density}*4.0/3.0*PI*${rlo}*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*PI*${rlo}*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*PI*0.3*${rlo}*${rlo} +variable min_mass equal 1*4.0/3.0*PI*0.3*0.3*${rlo} +variable min_mass equal 1*4.0/3.0*PI*0.3*0.3*0.3 +variable a equal (-2.0*log(${coeffRes})/PI)^2 +variable a equal (-2.0*log(0.1)/PI)^2 +variable gamma_n equal sqrt($a*2*${kn}/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569351*2*${kn}/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569351*2*100000/${min_mass}/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569351*2*100000/0.113097335529233/(1+0.25*$a)) +variable gamma_n equal sqrt(0.405284734569351*2*100000/0.113097335529233/(1+0.25*0.405284734569351)) +variable gamma_t equal ${gamma_n}*0.5 +variable gamma_t equal 806.699778405191*0.5 + +variable tcol equal PI/sqrt(2*${kn}/${min_mass}-${gamma_n}/4.0) +variable tcol equal PI/sqrt(2*100000/${min_mass}-${gamma_n}/4.0) +variable tcol equal PI/sqrt(2*100000/0.113097335529233-${gamma_n}/4.0) +variable tcol equal PI/sqrt(2*100000/0.113097335529233-806.699778405191/4.0) + +variable dt equal ${tcol}*0.02 +variable dt equal 0.00236257621510454*0.02 +timestep ${dt} +timestep 4.72515243020908e-05 + +############################################### + +variable dumpfreq equal 1000 +variable logfreq equal 1000 + +newton on +atom_style sphere + +boundary p p f + +region boxreg block 0 20 0 20 0 20 +create_box 1 boxreg +Created orthogonal box = (0 0 0) to (20 20 20) + 1 by 2 by 2 MPI processor grid + +pair_style gran/hertz/history ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 100000 ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 100000 20000 ${gamma_n} ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 100000 20000 806.699778405191 ${gamma_t} ${coeffFric} 1 +pair_style gran/hertz/history 100000 20000 806.699778405191 403.349889202595 ${coeffFric} 1 +pair_style gran/hertz/history 100000 20000 806.699778405191 403.349889202595 0.5 1 +pair_coeff * * + +neighbor ${skin} bin +neighbor 0.6 bin +thermo ${logfreq} +thermo 1000 + +comm_style brick +comm_modify mode multi group all vel yes +balance 1.1 shift xyz 20 1.1 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 20 -> bins = 1 1 1 +fix bal all balance 10000 1.1 shift xyz 20 1.01 + +####################### Options specific to pouring ######################### + +region insreg cylinder z 10 10 8 10 18 side in units box +region cylreg cylinder z 10 10 10 0 20 side in units box + +variable theta equal (step/400000)*2*PI + +region b1 block 2 18 9 11 0 4 side out rotate v_theta 10 10 0 0 0 1 units box +region b2 block 9 11 2 18 0 3.99999 side out rotate v_theta 10 10 0 0 0 1 units box + +region mixer intersect 3 cylreg b1 b2 side in + +fix grav all gravity ${gravity} vector 0 0 -1 +fix grav all gravity 1 vector 0 0 -1 +fix 1 all nve/sphere + +fix mixwall all wall/gran/region hertz/history ${kn} ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region mixer +fix mixwall all wall/gran/region hertz/history 100000 ${kt} ${gamma_n} ${gamma_t} ${coeffFric} 1 region mixer +fix mixwall all wall/gran/region hertz/history 100000 20000 ${gamma_n} ${gamma_t} ${coeffFric} 1 region mixer +fix mixwall all wall/gran/region hertz/history 100000 20000 806.699778405191 ${gamma_t} ${coeffFric} 1 region mixer +fix mixwall all wall/gran/region hertz/history 100000 20000 806.699778405191 403.349889202595 ${coeffFric} 1 region mixer +fix mixwall all wall/gran/region hertz/history 100000 20000 806.699778405191 403.349889202595 0.5 1 region mixer + +fix ins all pour 1000 1 42424 region insreg diam range ${dlo} ${dhi} dens ${density} ${density} +fix ins all pour 1000 1 42424 region insreg diam range 0.6 ${dhi} dens ${density} ${density} +fix ins all pour 1000 1 42424 region insreg diam range 0.6 1.2 dens ${density} ${density} +fix ins all pour 1000 1 42424 region insreg diam range 0.6 1.2 dens 1 ${density} +fix ins all pour 1000 1 42424 region insreg diam range 0.6 1.2 dens 1 1 +Particle insertion: 444 every 84653 steps, 1000 by step 169307 + +#dump 1 all custom ${dumpfreq} ${name}_pour.dump # id type mass diameter x y z + +#dump 2 all image 4000 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30 zoom 1.5 # box no 0.0 axes no 0.0 0.0 +#dump_modify 2 pad 6 + +thermo_style custom step cpu atoms ke v_theta +WARNING: New thermo_style command, previous thermo_modify settings will be lost (../output.cpp:690) +thermo_modify flush yes lost warn + +run 200000 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.8 + ghost atom cutoff = 1.8 + binsize = 0.9 -> bins = 23 23 23 +Memory usage per processor = 2.76258 Mbytes +Step CPU Atoms KinEng v_theta + 0 0 0 -0 0 + 1000 0.10398197 444 -0 0.015707963 + 2000 0.20485091 444 -0 0.031415927 + 3000 0.3069241 444 -0 0.04712389 + 4000 0.40875912 444 -0 0.062831853 + 5000 0.50989199 444 -0 0.078539816 + 6000 0.60949397 444 -0 0.09424778 + 7000 0.708915 444 -0 0.10995574 + 8000 0.80870605 444 -0 0.12566371 + 9000 0.90752602 444 -0 0.14137167 + 10000 1.0054469 444 -0 0.15707963 + 11000 1.072515 444 -0 0.1727876 + 12000 1.139096 444 -0 0.18849556 + 13000 1.2049479 444 -0 0.20420352 + 14000 1.2707851 444 -0 0.21991149 + 15000 1.3377919 444 -0 0.23561945 + 16000 1.405757 444 -0 0.25132741 + 17000 1.471797 444 -0 0.26703538 + 18000 1.538343 444 -0 0.28274334 + 19000 1.6035659 444 -0 0.2984513 + 20000 1.6690421 444 -0 0.31415927 + 21000 1.729399 444 -0 0.32986723 + 22000 1.7885301 444 -0 0.34557519 + 23000 1.8496239 444 -0 0.36128316 + 24000 1.913486 444 -0 0.37699112 + 25000 1.977428 444 -0 0.39269908 + 26000 2.04282 444 -0 0.40840704 + 27000 2.1089439 444 -0 0.42411501 + 28000 2.1759491 444 -0 0.43982297 + 29000 2.243813 444 -0 0.45553093 + 30000 2.312156 444 -0 0.4712389 + 31000 2.3742449 444 -0 0.48694686 + 32000 2.435447 444 -0 0.50265482 + 33000 2.495765 444 -0 0.51836279 + 34000 2.556865 444 -0 0.53407075 + 35000 2.6201291 444 -0 0.54977871 + 36000 2.6843281 444 -0 0.56548668 + 37000 2.7505059 444 -0 0.58119464 + 38000 2.817348 444 -0 0.5969026 + 39000 2.8837919 444 -0 0.61261057 + 40000 2.951216 444 -0 0.62831853 + 41000 3.012845 444 -0 0.64402649 + 42000 3.074688 444 -0 0.65973446 + 43000 3.13556 444 -0 0.67544242 + 44000 3.1965449 444 -0 0.69115038 + 45000 3.2582009 444 -0 0.70685835 + 46000 3.3201971 444 -0 0.72256631 + 47000 3.3819821 444 -0 0.73827427 + 48000 3.4455171 444 -0 0.75398224 + 49000 3.508738 444 -0 0.7696902 + 50000 3.5734961 444 -0 0.78539816 + 51000 3.6333289 444 -0 0.80110613 + 52000 3.694531 444 -0 0.81681409 + 53000 3.757041 444 -0 0.83252205 + 54000 3.820612 444 -0 0.84823002 + 55000 3.8852711 444 -0 0.86393798 + 56000 3.950211 444 -0 0.87964594 + 57000 4.015795 444 -0 0.89535391 + 58000 4.0818441 444 -0 0.91106187 + 59000 4.1476641 444 -0 0.92676983 + 60000 4.2141221 444 -0 0.9424778 + 61000 4.276612 444 -0 0.95818576 + 62000 4.339952 444 -0 0.97389372 + 63000 4.404351 444 -0 0.98960169 + 64000 4.4700999 444 -0 1.0053096 + 65000 4.5364759 444 -0 1.0210176 + 66000 4.605715 444 -0 1.0367256 + 67000 4.677629 444 -0 1.0524335 + 68000 4.7494669 444 -0 1.0681415 + 69000 4.8212609 444 -0 1.0838495 + 70000 4.894326 444 -0 1.0995574 + 71000 4.9639831 444 -0 1.1152654 + 72000 5.0345671 444 -0 1.1309734 + 73000 5.1048689 444 -0 1.1466813 + 74000 5.175498 444 -0 1.1623893 + 75000 5.2477591 444 -0 1.1780972 + 76000 5.3205409 444 -0 1.1938052 + 77000 5.394573 444 -0 1.2095132 + 78000 5.4685309 444 -0 1.2252211 + 79000 5.5431759 444 -0 1.2409291 + 80000 5.6212411 444 -0 1.2566371 + 81000 5.6890731 444 -0 1.272345 + 82000 5.7582159 444 -0 1.288053 + 83000 5.8298571 444 -0 1.303761 + 84000 5.9029069 444 -0 1.3194689 + 85000 6.0061591 888 -0 1.3351769 + 86000 6.1541281 888 -0 1.3508848 + 87000 6.3004079 888 -0 1.3665928 + 88000 6.4460659 888 -0 1.3823008 + 89000 6.591886 888 -0 1.3980087 + 90000 6.7376239 888 -0 1.4137167 + 91000 6.850734 888 -0 1.4294247 + 92000 6.9631939 888 -0 1.4451326 + 93000 7.0786369 888 -0 1.4608406 + 94000 7.1958089 888 -0 1.4765485 + 95000 7.3130219 888 -0 1.4922565 + 96000 7.430867 888 -0 1.5079645 + 97000 7.5498819 888 -0 1.5236724 + 98000 7.673686 888 -0 1.5393804 + 99000 7.7966969 888 -0 1.5550884 + 100000 7.921546 888 -0 1.5707963 + 101000 8.0396931 888 -0 1.5865043 + 102000 8.1583791 888 -0 1.6022123 + 103000 8.276613 888 -0 1.6179202 + 104000 8.3952639 888 -0 1.6336282 + 105000 8.514308 888 -0 1.6493361 + 106000 8.6361439 888 -0 1.6650441 + 107000 8.762326 888 -0 1.6807521 + 108000 8.8900061 888 -0 1.69646 + 109000 9.0179789 888 -0 1.712168 + 110000 9.1496761 888 -0 1.727876 + 111000 9.2728269 888 -0 1.7435839 + 112000 9.398078 888 -0 1.7592919 + 113000 9.519841 888 -0 1.7749998 + 114000 9.642343 888 -0 1.7907078 + 115000 9.7643859 888 -0 1.8064158 + 116000 9.8893411 888 -0 1.8221237 + 117000 10.01295 888 -0 1.8378317 + 118000 10.137574 888 -0 1.8535397 + 119000 10.263738 888 -0 1.8692476 + 120000 10.388673 888 -0 1.8849556 + 121000 10.507599 888 -0 1.9006636 + 122000 10.623901 888 -0 1.9163715 + 123000 10.740251 888 -0 1.9320795 + 124000 10.857467 888 -0 1.9477874 + 125000 10.975856 888 -0 1.9634954 + 126000 11.096002 888 -0 1.9792034 + 127000 11.217218 888 -0 1.9949113 + 128000 11.341925 888 -0 2.0106193 + 129000 11.467607 888 -0 2.0263273 + 130000 11.59517 888 -0 2.0420352 + 131000 11.71358 888 -0 2.0577432 + 132000 11.833024 888 -0 2.0734512 + 133000 11.954967 888 -0 2.0891591 + 134000 12.078482 888 -0 2.1048671 + 135000 12.202435 888 -0 2.120575 + 136000 12.327202 888 -0 2.136283 + 137000 12.453334 888 -0 2.151991 + 138000 12.583142 888 -0 2.1676989 + 139000 12.718396 888 -0 2.1834069 + 140000 12.854459 888 -0 2.1991149 + 141000 12.981024 888 -0 2.2148228 + 142000 13.108875 888 -0 2.2305308 + 143000 13.236802 888 -0 2.2462387 + 144000 13.36691 888 -0 2.2619467 + 145000 13.500126 888 -0 2.2776547 + 146000 13.633748 888 -0 2.2933626 + 147000 13.769077 888 -0 2.3090706 + 148000 13.90522 888 -0 2.3247786 + 149000 14.040417 888 -0 2.3404865 + 150000 14.176483 888 -0 2.3561945 + 151000 14.303389 888 -0 2.3719025 + 152000 14.432187 888 -0 2.3876104 + 153000 14.559857 888 -0 2.4033184 + 154000 14.691256 888 -0 2.4190263 + 155000 14.823413 888 -0 2.4347343 + 156000 14.956581 888 -0 2.4504423 + 157000 15.090666 888 -0 2.4661502 + 158000 15.228012 888 -0 2.4818582 + 159000 15.364569 888 -0 2.4975662 + 160000 15.501847 888 -0 2.5132741 + 161000 15.642772 888 -0 2.5289821 + 162000 15.783889 888 -0 2.54469 + 163000 15.926508 888 -0 2.560398 + 164000 16.07293 888 -0 2.576106 + 165000 16.221293 888 -0 2.5918139 + 166000 16.371738 888 -0 2.6075219 + 167000 16.523027 888 -0 2.6232299 + 168000 16.675525 888 -0 2.6389378 + 169000 16.830527 888 -0 2.6546458 + 170000 16.989955 1000 -0 2.6703538 + 171000 17.14772 1000 -0 2.6860617 + 172000 17.305565 1000 -0 2.7017697 + 173000 17.463517 1000 -0 2.7174776 + 174000 17.623862 1000 -0 2.7331856 + 175000 17.788165 1000 -0 2.7488936 + 176000 17.952028 1000 -0 2.7646015 + 177000 18.119269 1000 -0 2.7803095 + 178000 18.285714 1000 -0 2.7960175 + 179000 18.452439 1000 -0 2.8117254 + 180000 18.621119 1000 -0 2.8274334 + 181000 18.777982 1000 -0 2.8431414 + 182000 18.940248 1000 -0 2.8588493 + 183000 19.105385 1000 -0 2.8745573 + 184000 19.273934 1000 -0 2.8902652 + 185000 19.450922 1000 -0 2.9059732 + 186000 19.625563 1000 -0 2.9216812 + 187000 19.801329 1000 -0 2.9373891 + 188000 19.976869 1000 -0 2.9530971 + 189000 20.151134 1000 -0 2.9688051 + 190000 20.319214 1000 -0 2.984513 + 191000 20.485033 1000 -0 3.000221 + 192000 20.652254 1000 -0 3.0159289 + 193000 20.820876 1000 -0 3.0316369 + 194000 20.988597 1000 -0 3.0473449 + 195000 21.154705 1000 -0 3.0630528 + 196000 21.322634 1000 -0 3.0787608 + 197000 21.489394 1000 -0 3.0944688 + 198000 21.659512 1000 -0 3.1101767 + 199000 21.833228 1000 -0 3.1258847 + 200000 22.006487 1000 -0 3.1415927 +Loop time of 22.0065 on 4 procs for 200000 steps with 1000 atoms + +Performance: 37102.953 tau/day, 9088.222 timesteps/s +99.1% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.67692 | 1.166 | 1.6704 | 44.4 | 5.30 +Neigh | 0.01562 | 0.018723 | 0.0222 | 2.3 | 0.09 +Comm | 3.845 | 4.4454 | 5.0282 | 26.1 | 20.20 +Output | 0.0043464 | 0.0052906 | 0.0056455 | 0.8 | 0.02 +Modify | 12.239 | 13.152 | 14.347 | 25.1 | 59.76 +Other | | 3.22 | | | 14.63 + +Nlocal: 250 ave 257 max 244 min +Histogram: 1 1 0 0 0 0 1 0 0 1 +Nghost: 305.75 ave 372 max 242 min +Histogram: 1 0 0 1 0 1 0 0 0 1 +Neighs: 982.5 ave 1380 max 572 min +Histogram: 2 0 0 0 0 0 0 0 0 2 + +Total # of neighbors = 3930 +Ave neighs/atom = 3.93 +Neighbor list builds = 216 +Dangerous builds = 0 +unfix ins +run 200000 +Neighbor list info ... + 2 neighbor list requests + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.79826 + ghost atom cutoff = 1.79826 + binsize = 0.899132 -> bins = 23 23 23 +Memory usage per processor = 8.63577 Mbytes +Step CPU Atoms KinEng v_theta + 200000 0 1000 0.90316284 3.1415927 + 201000 0.16518497 1000 0.8867387 3.1573006 + 202000 0.33065486 1000 0.88745316 3.1730086 + 203000 0.4991529 1000 0.87793424 3.1887165 + 204000 0.6695168 1000 0.87009551 3.2044245 + 205000 0.83599901 1000 0.86431259 3.2201325 + 206000 1.001833 1000 0.85039776 3.2358404 + 207000 1.166487 1000 0.82897867 3.2515484 + 208000 1.3331649 1000 0.82069182 3.2672564 + 209000 1.5031869 1000 0.82349024 3.2829643 + 210000 1.6751509 1000 0.81859611 3.2986723 + 211000 1.846776 1000 0.82053992 3.3143802 + 212000 2.0198569 1000 0.82832647 3.3300882 + 213000 2.1932938 1000 0.82676865 3.3457962 + 214000 2.3676898 1000 0.82425781 3.3615041 + 215000 2.5424879 1000 0.83127148 3.3772121 + 216000 2.715348 1000 0.83925992 3.3929201 + 217000 2.8844988 1000 0.84390181 3.408628 + 218000 3.0485029 1000 0.85705713 3.424336 + 219000 3.211767 1000 0.85325946 3.440044 + 220000 3.3767338 1000 0.85641557 3.4557519 + 221000 3.5419538 1000 0.86922287 3.4714599 + 222000 3.710084 1000 0.89591143 3.4871678 + 223000 3.880873 1000 0.90395821 3.5028758 + 224000 4.054816 1000 0.91161431 3.5185838 + 225000 4.2260928 1000 0.92716425 3.5342917 + 226000 4.3996999 1000 0.91664886 3.5499997 + 227000 4.5679309 1000 0.9128853 3.5657077 + 228000 4.7353978 1000 0.91063998 3.5814156 + 229000 4.9045198 1000 0.90616712 3.5971236 + 230000 5.079206 1000 0.9042797 3.6128316 + 231000 5.252316 1000 0.91588137 3.6285395 + 232000 5.4218178 1000 0.92322871 3.6442475 + 233000 5.592988 1000 0.92370885 3.6599554 + 234000 5.753634 1000 0.91531408 3.6756634 + 235000 5.9159088 1000 0.91016621 3.6913714 + 236000 6.0817358 1000 0.89501073 3.7070793 + 237000 6.249059 1000 0.88504426 3.7227873 + 238000 6.4182718 1000 0.88268268 3.7384953 + 239000 6.5897119 1000 0.87811868 3.7542032 + 240000 6.758353 1000 0.88272663 3.7699112 + 241000 6.928581 1000 0.87751512 3.7856191 + 242000 7.0978079 1000 0.87017281 3.8013271 + 243000 7.268832 1000 0.86587613 3.8170351 + 244000 7.439904 1000 0.85157794 3.832743 + 245000 7.6105168 1000 0.8291738 3.848451 + 246000 7.7830069 1000 0.82315948 3.864159 + 247000 7.9578128 1000 0.81231703 3.8798669 + 248000 8.134944 1000 0.79931415 3.8955749 + 249000 8.3061719 1000 0.78877578 3.9112829 + 250000 8.476692 1000 0.78519942 3.9269908 + 251000 8.6525538 1000 0.78837716 3.9426988 + 252000 8.8288019 1000 0.79621044 3.9584067 + 253000 9.006846 1000 0.78744385 3.9741147 + 254000 9.1839809 1000 0.78810047 3.9898227 + 255000 9.3600328 1000 0.79053484 4.0055306 + 256000 9.538172 1000 0.79976932 4.0212386 + 257000 9.7188668 1000 0.81724577 4.0369466 + 258000 9.9032769 1000 0.81135963 4.0526545 + 259000 10.084928 1000 0.82017101 4.0683625 + 260000 10.266693 1000 0.82352898 4.0840704 + 261000 10.449515 1000 0.81662689 4.0997784 + 262000 10.630166 1000 0.82707216 4.1154864 + 263000 10.812056 1000 0.82001278 4.1311943 + 264000 10.991668 1000 0.81136264 4.1469023 + 265000 11.172162 1000 0.80507755 4.1626103 + 266000 11.353101 1000 0.80247583 4.1783182 + 267000 11.533476 1000 0.78870449 4.1940262 + 268000 11.716022 1000 0.77775428 4.2097342 + 269000 11.900351 1000 0.78170639 4.2254421 + 270000 12.083609 1000 0.78023258 4.2411501 + 271000 12.266298 1000 0.76257507 4.256858 + 272000 12.449454 1000 0.75871195 4.272566 + 273000 12.633748 1000 0.75909277 4.288274 + 274000 12.820916 1000 0.76329234 4.3039819 + 275000 13.004197 1000 0.76188557 4.3196899 + 276000 13.188507 1000 0.75974847 4.3353979 + 277000 13.372202 1000 0.75392834 4.3511058 + 278000 13.557712 1000 0.74837333 4.3668138 + 279000 13.747933 1000 0.74268307 4.3825218 + 280000 13.934871 1000 0.73840427 4.3982297 + 281000 14.11717 1000 0.73817851 4.4139377 + 282000 14.30208 1000 0.73666069 4.4296456 + 283000 14.485039 1000 0.74064713 4.4453536 + 284000 14.671087 1000 0.73916222 4.4610616 + 285000 14.863267 1000 0.73225442 4.4767695 + 286000 15.050005 1000 0.7312283 4.4924775 + 287000 15.234556 1000 0.72947519 4.5081855 + 288000 15.422593 1000 0.72469992 4.5238934 + 289000 15.609153 1000 0.70843645 4.5396014 + 290000 15.797906 1000 0.69731415 4.5553093 + 291000 15.983677 1000 0.69099822 4.5710173 + 292000 16.168935 1000 0.68855366 4.5867253 + 293000 16.355853 1000 0.69826256 4.6024332 + 294000 16.544831 1000 0.70211589 4.6181412 + 295000 16.733875 1000 0.7055847 4.6338492 + 296000 16.918698 1000 0.69692413 4.6495571 + 297000 17.100869 1000 0.68027227 4.6652651 + 298000 17.280404 1000 0.67254493 4.6809731 + 299000 17.46406 1000 0.67767946 4.696681 + 300000 17.652748 1000 0.68480172 4.712389 + 301000 17.84199 1000 0.67864643 4.7280969 + 302000 18.025759 1000 0.67656342 4.7438049 + 303000 18.208747 1000 0.67719641 4.7595129 + 304000 18.391225 1000 0.68049491 4.7752208 + 305000 18.576276 1000 0.68230722 4.7909288 + 306000 18.764125 1000 0.67985 4.8066368 + 307000 18.956063 1000 0.67790944 4.8223447 + 308000 19.147159 1000 0.6836647 4.8380527 + 309000 19.339173 1000 0.69705355 4.8537606 + 310000 19.530591 1000 0.69858847 4.8694686 + 311000 19.720214 1000 0.69448554 4.8851766 + 312000 19.907717 1000 0.68878539 4.9008845 + 313000 20.088793 1000 0.68810484 4.9165925 + 314000 20.268118 1000 0.68483484 4.9323005 + 315000 20.445564 1000 0.67732034 4.9480084 + 316000 20.627415 1000 0.67943319 4.9637164 + 317000 20.807826 1000 0.67326868 4.9794244 + 318000 20.983587 1000 0.67762092 4.9951323 + 319000 21.156655 1000 0.68914624 5.0108403 + 320000 21.331391 1000 0.69872806 5.0265482 + 321000 21.506313 1000 0.71510434 5.0422562 + 322000 21.679505 1000 0.71452122 5.0579642 + 323000 21.85396 1000 0.71765429 5.0736721 + 324000 22.02904 1000 0.72748838 5.0893801 + 325000 22.205191 1000 0.72974854 5.1050881 + 326000 22.38063 1000 0.73324928 5.120796 + 327000 22.555817 1000 0.72479525 5.136504 + 328000 22.729859 1000 0.71942855 5.152212 + 329000 22.903234 1000 0.71890587 5.1679199 + 330000 23.078575 1000 0.73495891 5.1836279 + 331000 23.252865 1000 0.74306733 5.1993358 + 332000 23.427175 1000 0.75274051 5.2150438 + 333000 23.604881 1000 0.75981346 5.2307518 + 334000 23.789045 1000 0.75410165 5.2464597 + 335000 23.971105 1000 0.74802374 5.2621677 + 336000 24.150954 1000 0.73111266 5.2778757 + 337000 24.331991 1000 0.72226021 5.2935836 + 338000 24.515157 1000 0.70866271 5.3092916 + 339000 24.69639 1000 0.70253496 5.3249995 + 340000 24.879524 1000 0.69381505 5.3407075 + 341000 25.061928 1000 0.68285569 5.3564155 + 342000 25.2437 1000 0.67262303 5.3721234 + 343000 25.423809 1000 0.67160137 5.3878314 + 344000 25.605531 1000 0.67658439 5.4035394 + 345000 25.78848 1000 0.67113748 5.4192473 + 346000 25.969866 1000 0.67506296 5.4349553 + 347000 26.152485 1000 0.67686518 5.4506633 + 348000 26.335445 1000 0.68878941 5.4663712 + 349000 26.522271 1000 0.70728493 5.4820792 + 350000 26.709942 1000 0.70870657 5.4977871 + 351000 26.889998 1000 0.71541489 5.5134951 + 352000 27.069872 1000 0.71827633 5.5292031 + 353000 27.249259 1000 0.7099127 5.544911 + 354000 27.428386 1000 0.70507946 5.560619 + 355000 27.607797 1000 0.70709703 5.576327 + 356000 27.788887 1000 0.70637714 5.5920349 + 357000 27.975344 1000 0.7088694 5.6077429 + 358000 28.164236 1000 0.70907948 5.6234508 + 359000 28.352999 1000 0.71504714 5.6391588 + 360000 28.539172 1000 0.71417205 5.6548668 + 361000 28.722691 1000 0.70716852 5.6705747 + 362000 28.906856 1000 0.70193967 5.6862827 + 363000 29.087598 1000 0.69786793 5.7019907 + 364000 29.268141 1000 0.68714789 5.7176986 + 365000 29.450765 1000 0.68170443 5.7334066 + 366000 29.633131 1000 0.67832571 5.7491146 + 367000 29.816219 1000 0.67809457 5.7648225 + 368000 29.999479 1000 0.66886004 5.7805305 + 369000 30.182675 1000 0.67233336 5.7962384 + 370000 30.36698 1000 0.67433369 5.8119464 + 371000 30.550787 1000 0.67478226 5.8276544 + 372000 30.736018 1000 0.67882814 5.8433623 + 373000 30.922576 1000 0.68494254 5.8590703 + 374000 31.107558 1000 0.69046765 5.8747783 + 375000 31.291329 1000 0.69398953 5.8904862 + 376000 31.474582 1000 0.68692367 5.9061942 + 377000 31.656979 1000 0.674184 5.9219022 + 378000 31.83851 1000 0.65899449 5.9376101 + 379000 32.019869 1000 0.65198402 5.9533181 + 380000 32.200375 1000 0.64366122 5.969026 + 381000 32.381651 1000 0.64443345 5.984734 + 382000 32.561897 1000 0.64655912 6.000442 + 383000 32.743947 1000 0.64894161 6.0161499 + 384000 32.927231 1000 0.65259561 6.0318579 + 385000 33.11882 1000 0.65230446 6.0475659 + 386000 33.311072 1000 0.64177598 6.0632738 + 387000 33.50435 1000 0.63900349 6.0789818 + 388000 33.695734 1000 0.64611067 6.0946897 + 389000 33.885915 1000 0.64943993 6.1103977 + 390000 34.076093 1000 0.66303716 6.1261057 + 391000 34.264909 1000 0.68916583 6.1418136 + 392000 34.45411 1000 0.71501556 6.1575216 + 393000 34.644116 1000 0.73685375 6.1732296 + 394000 34.834608 1000 0.74461041 6.1889375 + 395000 35.025693 1000 0.75251204 6.2046455 + 396000 35.217372 1000 0.75493054 6.2203535 + 397000 35.407008 1000 0.77028775 6.2360614 + 398000 35.594868 1000 0.7686439 6.2517694 + 399000 35.778411 1000 0.75167376 6.2674773 + 400000 35.962646 1000 0.73505917 6.2831853 +Loop time of 35.9627 on 4 procs for 200000 steps with 1000 atoms + +Performance: 22704.278 tau/day, 5561.323 timesteps/s +99.0% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.0549 | 3.4094 | 4.9773 | 72.1 | 9.48 +Neigh | 0.022087 | 0.026923 | 0.032716 | 2.9 | 0.07 +Comm | 7.3555 | 9.2143 | 10.854 | 53.0 | 25.62 +Output | 0.0046289 | 0.0058927 | 0.0071292 | 1.4 | 0.02 +Modify | 17.504 | 19.601 | 22.342 | 44.9 | 54.50 +Other | | 3.705 | | | 10.30 + +Nlocal: 250 ave 269 max 225 min +Histogram: 1 0 0 0 0 1 0 1 0 1 +Nghost: 408.5 ave 500 max 320 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 1262.25 ave 1665 max 880 min +Histogram: 1 0 1 0 0 0 0 1 0 1 + +Total # of neighbors = 5049 +Ave neighs/atom = 5.049 +Neighbor list builds = 166 +Dangerous builds = 0 +Total wall time: 0:00:57 diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index 4e927b2579..781ec91447 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -12,7 +12,8 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing authors: Leo Silbert (SNL), Gary Grest (SNL) + Contributing authors: Leo Silbert (SNL), Gary Grest (SNL), + Dan Bolintineanu (SNL) ------------------------------------------------------------------------- */ #include <math.h> @@ -34,8 +35,11 @@ using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; -enum{XPLANE=0,YPLANE=1,ZPLANE=2,ZCYLINDER}; // XYZ PLANE need to be 0,1,2 -enum{HOOKE,HOOKE_HISTORY,HERTZ_HISTORY}; +// XYZ PLANE need to be 0,1,2 + +enum{XPLANE=0,YPLANE=1,ZPLANE=2,ZCYLINDER,REGION}; +enum{HOOKE,HOOKE_HISTORY,HERTZ_HISTORY,BONDED_HISTORY}; +enum{NONE,CONSTANT,EQUAL}; #define BIG 1.0e20 @@ -44,7 +48,7 @@ enum{HOOKE,HOOKE_HISTORY,HERTZ_HISTORY}; FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { - if (narg < 11) error->all(FLERR,"Illegal fix wall/gran command"); + if (narg < 4) error->all(FLERR,"Illegal fix wall/gran command"); if (!atom->sphere_flag) error->all(FLERR,"Fix wall/gran requires atom style sphere"); @@ -53,43 +57,71 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : create_attribute = 1; // set interaction style + // disable bonded/history option for now if (strcmp(arg[3],"hooke") == 0) pairstyle = HOOKE; else if (strcmp(arg[3],"hooke/history") == 0) pairstyle = HOOKE_HISTORY; else if (strcmp(arg[3],"hertz/history") == 0) pairstyle = HERTZ_HISTORY; + //else if (strcmp(arg[3],"bonded/history") == 0) pairstyle = BONDED_HISTORY; else error->all(FLERR,"Invalid fix wall/gran interaction style"); history = 1; if (pairstyle == HOOKE) history = 0; - // particle/wall coefficients - - kn = force->numeric(FLERR,arg[4]); - if (strcmp(arg[5],"NULL") == 0) kt = kn * 2.0/7.0; - else kt = force->numeric(FLERR,arg[5]); + // wall/particle coefficients + + int iarg; + + if (pairstyle != BONDED_HISTORY) { + if (narg < 11) error->all(FLERR,"Illegal fix wall/gran command"); + + kn = force->numeric(FLERR,arg[4]); + if (strcmp(arg[5],"NULL") == 0) kt = kn * 2.0/7.0; + else kt = force->numeric(FLERR,arg[5]); + + gamman = force->numeric(FLERR,arg[6]); + if (strcmp(arg[7],"NULL") == 0) gammat = 0.5 * gamman; + else gammat = force->numeric(FLERR,arg[7]); + + xmu = force->numeric(FLERR,arg[8]); + int dampflag = force->inumeric(FLERR,arg[9]); + if (dampflag == 0) gammat = 0.0; + + if (kn < 0.0 || kt < 0.0 || gamman < 0.0 || gammat < 0.0 || + xmu < 0.0 || xmu > 10000.0 || dampflag < 0 || dampflag > 1) + error->all(FLERR,"Illegal fix wall/gran command"); + + // convert Kn and Kt from pressure units to force/distance^2 if Hertzian + + if (pairstyle == HERTZ_HISTORY) { + kn /= force->nktv2p; + kt /= force->nktv2p; + } - gamman = force->numeric(FLERR,arg[6]); - if (strcmp(arg[7],"NULL") == 0) gammat = 0.5 * gamman; - else gammat = force->numeric(FLERR,arg[7]); + iarg = 10; + } - xmu = force->numeric(FLERR,arg[8]); - int dampflag = force->inumeric(FLERR,arg[9]); - if (dampflag == 0) gammat = 0.0; + else { + if (narg < 10) error->all(FLERR,"Illegal fix wall/gran command"); - if (kn < 0.0 || kt < 0.0 || gamman < 0.0 || gammat < 0.0 || - xmu < 0.0 || xmu > 10000.0 || dampflag < 0 || dampflag > 1) - error->all(FLERR,"Illegal fix wall/gran command"); + E = force->numeric(FLERR,arg[4]); + G = force->numeric(FLERR,arg[5]); + SurfEnergy = force->numeric(FLERR,arg[6]); + // Note: this doesn't get used, check w/ Jeremy? + gamman = force->numeric(FLERR,arg[7]); - // convert Kn and Kt from pressure units to force/distance^2 if Hertzian + xmu = force->numeric(FLERR,arg[8]); + // pois = E/(2.0*G) - 1.0; + // kn = 2.0*E/(3.0*(1.0+pois)*(1.0-pois)); + // gammat=0.5*gamman; - if (pairstyle == HERTZ_HISTORY) { - kn /= force->nktv2p; - kt /= force->nktv2p; + iarg = 9; } // wallstyle args + + idregion = NULL; - int iarg = 10; if (strcmp(arg[iarg],"xplane") == 0) { if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/gran command"); wallstyle = XPLANE; @@ -118,15 +150,22 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/gran command"); wallstyle = ZCYLINDER; lo = hi = 0.0; - cylradius = force->numeric(FLERR,arg[iarg+1]); + cylradius = force->numeric(FLERR,arg[iarg+3]); + iarg += 2; + } else if (strcmp(arg[iarg],"region") == 0) { + if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/gran command"); + wallstyle = REGION; + int n = strlen(arg[iarg+1]) + 1; + idregion = new char[n]; + strcpy(idregion,arg[iarg+1]); iarg += 2; } - - // check for trailing keyword/values + + // optional args wiggle = 0; wshear = 0; - + while (iarg < narg) { if (strcmp(arg[iarg],"wiggle") == 0) { if (iarg+4 > narg) error->all(FLERR,"Illegal fix wall/gran command"); @@ -149,7 +188,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : iarg += 3; } else error->all(FLERR,"Illegal fix wall/gran command"); } - + if (wallstyle == XPLANE && domain->xperiodic) error->all(FLERR,"Cannot use wall in periodic dimension"); if (wallstyle == YPLANE && domain->yperiodic) @@ -158,7 +197,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Cannot use wall in periodic dimension"); if (wallstyle == ZCYLINDER && (domain->xperiodic || domain->yperiodic)) error->all(FLERR,"Cannot use wall in periodic dimension"); - + if (wiggle && wshear) error->all(FLERR,"Cannot wiggle and shear fix wall/gran"); if (wiggle && wallstyle == ZCYLINDER && axis != 2) @@ -169,15 +208,20 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Invalid shear direction for fix wall/gran"); if (wshear && wallstyle == ZPLANE && axis == 2) error->all(FLERR,"Invalid shear direction for fix wall/gran"); + if ((wiggle || wshear) && wallstyle == REGION) + error->all(FLERR,"Cannot wiggle or shear with fix wall/gran/region"); // setup oscillations - + if (wiggle) omega = 2.0*MY_PI / period; - + // perform initial allocation of atom-based arrays // register with Atom class - shear = NULL; + if (pairstyle == BONDED_HISTORY) sheardim = 7; + else sheardim = 3; + + shearone = NULL; grow_arrays(atom->nmax); atom->add_callback(0); atom->add_callback(1); @@ -185,12 +229,14 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : nmax = 0; mass_rigid = NULL; - // initialize as if particle is not touching wall + // initialize shear history as if particle is not touching region + // shearone will be NULL for wallstyle = REGION - if (history) { + if (history && shearone) { int nlocal = atom->nlocal; for (int i = 0; i < nlocal; i++) - shear[i][0] = shear[i][1] = shear[i][2] = 0.0; + for (int j = 0; j < sheardim; j++) + shearone[i][j] = 0.0; } time_origin = update->ntimestep; @@ -205,9 +251,10 @@ FixWallGran::~FixWallGran() atom->delete_callback(id,0); atom->delete_callback(id,1); - // delete locally stored arrays + // delete local storage - memory->destroy(shear); + delete [] idregion; + memory->destroy(shearone); memory->destroy(mass_rigid); } @@ -257,8 +304,8 @@ void FixWallGran::setup(int vflag) void FixWallGran::post_force(int vflag) { - int i; - double dx,dy,dz,del1,del2,delxy,delr,rsq,meff; + int i,j; + double dx,dy,dz,del1,del2,delxy,delr,rsq,rwall,meff; double vwall[3]; // do not update shear history during setup @@ -301,7 +348,7 @@ void FixWallGran::post_force(int vflag) } vwall[axis] = amplitude*omega*sin(arg); } else if (wshear) vwall[axis] = vshear; - + // loop over all my atoms // rsq = distance from wall // dx,dy,dz = signed distance from wall @@ -311,7 +358,7 @@ void FixWallGran::post_force(int vflag) // compute force and torque on atom if close enough to wall // via wall potential matched to pair potential // set shear if pair potential stores history - + double **x = atom->x; double **v = atom->v; double **f = atom->f; @@ -321,12 +368,14 @@ void FixWallGran::post_force(int vflag) double *rmass = atom->rmass; int *mask = atom->mask; int nlocal = atom->nlocal; + + rwall = 0.0; for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { - + dx = dy = dz = 0.0; - + if (wallstyle == XPLANE) { del1 = x[i][0] - wlo; del2 = whi - x[i][0]; @@ -345,26 +394,29 @@ void FixWallGran::post_force(int vflag) } else if (wallstyle == ZCYLINDER) { delxy = sqrt(x[i][0]*x[i][0] + x[i][1]*x[i][1]); delr = cylradius - delxy; - if (delr > radius[i]) dz = cylradius; - else { + if (delr > radius[i]) { + dz = cylradius; + rwall = 0.0; + } else { dx = -delr/delxy * x[i][0]; dy = -delr/delxy * x[i][1]; + // rwall = -2r_c if inside cylinder, 2r_c outside + rwall = 2*(1-2*(delxy < cylradius))*cylradius; if (wshear && axis != 2) { - vwall[0] = vshear * x[i][1]/delxy; - vwall[1] = -vshear * x[i][0]/delxy; + vwall[0] += vshear * x[i][1]/delxy; + vwall[1] += -vshear * x[i][0]/delxy; vwall[2] = 0.0; } } } - + rsq = dx*dx + dy*dy + dz*dz; - + if (rsq > radius[i]*radius[i]) { - if (pairstyle != HOOKE) { - shear[i][0] = 0.0; - shear[i][1] = 0.0; - shear[i][2] = 0.0; - } + if (history) + for (j = 0; j < sheardim; j++) + shearone[i][j] = 0.0; + } else { // meff = effective mass of sphere @@ -373,17 +425,20 @@ void FixWallGran::post_force(int vflag) meff = rmass[i]; if (fix_rigid && mass_rigid[i] > 0.0) meff = mass_rigid[i]; - // inovke sphere/wall interaction + // invoke sphere/wall interaction if (pairstyle == HOOKE) - hooke(rsq,dx,dy,dz,vwall,v[i],f[i],omega[i],torque[i], - radius[i],meff); + hooke(rsq,dx,dy,dz,vwall,v[i],f[i], + omega[i],torque[i],radius[i],meff); else if (pairstyle == HOOKE_HISTORY) - hooke_history(rsq,dx,dy,dz,vwall,v[i],f[i],omega[i],torque[i], - radius[i],meff,shear[i]); + hooke_history(rsq,dx,dy,dz,vwall,v[i],f[i], + omega[i],torque[i],radius[i],meff,shearone[i]); else if (pairstyle == HERTZ_HISTORY) - hertz_history(rsq,dx,dy,dz,vwall,v[i],f[i],omega[i],torque[i], - radius[i],meff,shear[i]); + hertz_history(rsq,dx,dy,dz,vwall,rwall,v[i],f[i], + omega[i],torque[i],radius[i],meff,shearone[i]); + else if (pairstyle == BONDED_HISTORY) + bonded_history(rsq,dx,dy,dz,vwall,rwall,v[i],f[i], + omega[i],torque[i],radius[i],meff,shearone[i]); } } } @@ -412,66 +467,66 @@ void FixWallGran::hooke(double rsq, double dx, double dy, double dz, rsqinv = 1.0/rsq; // relative translational velocity - + vr1 = v[0] - vwall[0]; vr2 = v[1] - vwall[1]; vr3 = v[2] - vwall[2]; - + // normal component - + vnnr = vr1*dx + vr2*dy + vr3*dz; vn1 = dx*vnnr * rsqinv; vn2 = dy*vnnr * rsqinv; vn3 = dz*vnnr * rsqinv; - + // tangential component - + vt1 = vr1 - vn1; vt2 = vr2 - vn2; vt3 = vr3 - vn3; - + // relative rotational velocity - + wr1 = radius*omega[0] * rinv; wr2 = radius*omega[1] * rinv; wr3 = radius*omega[2] * rinv; - + // normal forces = Hookian contact + normal velocity damping - + damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; - + // relative velocities - + vtr1 = vt1 - (dz*wr2-dy*wr3); vtr2 = vt2 - (dx*wr3-dz*wr1); vtr3 = vt3 - (dy*wr1-dx*wr2); vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3; vrel = sqrt(vrel); - + // force normalization - + fn = xmu * fabs(ccel*r); fs = meff*gammat*vrel; if (vrel != 0.0) ft = MIN(fn,fs) / vrel; else ft = 0.0; - + // tangential force due to tangential velocity damping - + fs1 = -ft*vtr1; fs2 = -ft*vtr2; fs3 = -ft*vtr3; - + // forces & torques - + fx = dx*ccel + fs1; fy = dy*ccel + fs2; fz = dz*ccel + fs3; - + f[0] += fx; f[1] += fy; f[2] += fz; - + tor1 = rinv * (dy*fs3 - dz*fs2); tor2 = rinv * (dz*fs1 - dx*fs3); tor3 = rinv * (dx*fs2 - dy*fs1); @@ -491,60 +546,60 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz, double wr1,wr2,wr3,damp,ccel,vtr1,vtr2,vtr3,vrel; double fn,fs,fs1,fs2,fs3,fx,fy,fz,tor1,tor2,tor3; double shrmag,rsht,rinv,rsqinv; - + r = sqrt(rsq); rinv = 1.0/r; rsqinv = 1.0/rsq; - + // relative translational velocity - + vr1 = v[0] - vwall[0]; vr2 = v[1] - vwall[1]; vr3 = v[2] - vwall[2]; - + // normal component - + vnnr = vr1*dx + vr2*dy + vr3*dz; vn1 = dx*vnnr * rsqinv; vn2 = dy*vnnr * rsqinv; vn3 = dz*vnnr * rsqinv; - + // tangential component - + vt1 = vr1 - vn1; vt2 = vr2 - vn2; vt3 = vr3 - vn3; - + // relative rotational velocity - + wr1 = radius*omega[0] * rinv; wr2 = radius*omega[1] * rinv; wr3 = radius*omega[2] * rinv; - + // normal forces = Hookian contact + normal velocity damping - + damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; - + // relative velocities - + vtr1 = vt1 - (dz*wr2-dy*wr3); vtr2 = vt2 - (dx*wr3-dz*wr1); vtr3 = vt3 - (dy*wr1-dx*wr2); vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3; vrel = sqrt(vrel); - + // shear history effects - + if (shearupdate) { shear[0] += vtr1*dt; shear[1] += vtr2*dt; shear[2] += vtr3*dt; } shrmag = sqrt(shear[0]*shear[0] + shear[1]*shear[1] + shear[2]*shear[2]); - + // rotate shear displacements - + rsht = shear[0]*dx + shear[1]*dy + shear[2]*dz; rsht = rsht*rsqinv; if (shearupdate) { @@ -552,18 +607,18 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz, shear[1] -= rsht*dy; shear[2] -= rsht*dz; } - + // tangential forces = shear + tangential velocity damping - + fs1 = - (kt*shear[0] + meff*gammat*vtr1); fs2 = - (kt*shear[1] + meff*gammat*vtr2); fs3 = - (kt*shear[2] + meff*gammat*vtr3); - + // rescale frictional displacements and forces if needed - + fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3); fn = xmu * fabs(ccel*r); - + if (fs > fn) { if (shrmag != 0.0) { shear[0] = (fn/fs) * (shear[0] + meff*gammat*vtr1/kt) - @@ -577,17 +632,17 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz, fs3 *= fn/fs; } else fs1 = fs2 = fs3 = 0.0; } - + // forces & torques - + fx = dx*ccel + fs1; fy = dy*ccel + fs2; fz = dz*ccel + fs3; - + f[0] += fx; f[1] += fy; f[2] += fz; - + tor1 = rinv * (dy*fs3 - dz*fs2); tor2 = rinv * (dz*fs1 - dx*fs3); tor3 = rinv * (dx*fs2 - dy*fs1); @@ -599,7 +654,7 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz, /* ---------------------------------------------------------------------- */ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, - double *vwall, double *v, + double *vwall, double rwall, double *v, double *f, double *omega, double *torque, double radius, double meff, double *shear) { @@ -607,6 +662,141 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, double wr1,wr2,wr3,damp,ccel,vtr1,vtr2,vtr3,vrel; double fn,fs,fs1,fs2,fs3,fx,fy,fz,tor1,tor2,tor3; double shrmag,rsht,polyhertz,rinv,rsqinv; + + r = sqrt(rsq); + rinv = 1.0/r; + rsqinv = 1.0/rsq; + + // relative translational velocity + + vr1 = v[0] - vwall[0]; + vr2 = v[1] - vwall[1]; + vr3 = v[2] - vwall[2]; + + // normal component + + vnnr = vr1*dx + vr2*dy + vr3*dz; + vn1 = dx*vnnr / rsq; + vn2 = dy*vnnr / rsq; + vn3 = dz*vnnr / rsq; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // relative rotational velocity + + wr1 = radius*omega[0] * rinv; + wr2 = radius*omega[1] * rinv; + wr3 = radius*omega[2] * rinv; + + // normal forces = Hertzian contact + normal velocity damping + // rwall = 0 is flat wall case + // rwall positive or negative is curved wall + // will break (as it should) if rwall is negative and + // its absolute value < radius of particle + + damp = meff*gamman*vnnr*rsqinv; + ccel = kn*(radius-r)*rinv - damp; + if (rwall == 0.0) polyhertz = sqrt((radius-r)*radius); + else polyhertz = sqrt((radius-r)*radius*rwall/(rwall+radius)); + ccel *= polyhertz; + + // relative velocities + + vtr1 = vt1 - (dz*wr2-dy*wr3); + vtr2 = vt2 - (dx*wr3-dz*wr1); + vtr3 = vt3 - (dy*wr1-dx*wr2); + vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3; + vrel = sqrt(vrel); + + // shear history effects + + if (shearupdate) { + shear[0] += vtr1*dt; + shear[1] += vtr2*dt; + shear[2] += vtr3*dt; + } + shrmag = sqrt(shear[0]*shear[0] + shear[1]*shear[1] + shear[2]*shear[2]); + + // rotate shear displacements + + rsht = shear[0]*dx + shear[1]*dy + shear[2]*dz; + rsht = rsht*rsqinv; + if (shearupdate) { + shear[0] -= rsht*dx; + shear[1] -= rsht*dy; + shear[2] -= rsht*dz; + } + + // tangential forces = shear + tangential velocity damping + + fs1 = -polyhertz * (kt*shear[0] + meff*gammat*vtr1); + fs2 = -polyhertz * (kt*shear[1] + meff*gammat*vtr2); + fs3 = -polyhertz * (kt*shear[2] + meff*gammat*vtr3); + + // rescale frictional displacements and forces if needed + + fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3); + fn = xmu * fabs(ccel*r); + + if (fs > fn) { + if (shrmag != 0.0) { + shear[0] = (fn/fs) * (shear[0] + meff*gammat*vtr1/kt) - + meff*gammat*vtr1/kt; + shear[1] = (fn/fs) * (shear[1] + meff*gammat*vtr2/kt) - + meff*gammat*vtr2/kt; + shear[2] = (fn/fs) * (shear[2] + meff*gammat*vtr3/kt) - + meff*gammat*vtr3/kt; + fs1 *= fn/fs ; + fs2 *= fn/fs; + fs3 *= fn/fs; + } else fs1 = fs2 = fs3 = 0.0; + } + + // forces & torques + + fx = dx*ccel + fs1; + fy = dy*ccel + fs2; + fz = dz*ccel + fs3; + + f[0] += fx; + f[1] += fy; + f[2] += fz; + + tor1 = rinv * (dy*fs3 - dz*fs2); + tor2 = rinv * (dz*fs1 - dx*fs3); + tor3 = rinv * (dx*fs2 - dy*fs1); + torque[0] -= radius*tor1; + torque[1] -= radius*tor2; + torque[2] -= radius*tor3; +} + + +/* ---------------------------------------------------------------------- */ + +void FixWallGran::bonded_history(double rsq, double dx, double dy, double dz, + double *vwall, double rwall, double *v, + double *f, double *omega, double *torque, + double radius, double meff, double *shear) +{ + double r,vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double wr1,wr2,wr3,damp,ccel,vtr1,vtr2,vtr3,vrel; + double fn,fs,fs1,fs2,fs3,fx,fy,fz,tor1,tor2,tor3; + double shrmag,rsht,polyhertz,rinv,rsqinv; + + double pois,E_eff,G_eff,rad_eff; + double a0,Fcrit,delcrit,delcritinv; + double overlap,olapsq,olapcubed,sqrtterm,tmp,keyterm,keyterm2,keyterm3; + double aovera0,foverFc; + double gammatsuji; + + double ktwist,kroll,twistcrit,rollcrit; + double relrot1,relrot2,relrot3,vrl1,vrl2,vrl3,vrlmag,vrlmaginv; + double magtwist,magtortwist; + double magrollsq,magroll,magrollinv,magtorroll; r = sqrt(rsq); rinv = 1.0/r; @@ -638,11 +828,49 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, wr3 = radius*omega[2] * rinv; // normal forces = Hertzian contact + normal velocity damping - - damp = meff*gamman*vnnr*rsqinv; - ccel = kn*(radius-r)*rinv - damp; - polyhertz = sqrt((radius-r)*radius); - ccel *= polyhertz; + // material properties: currently assumes identical materials + + pois = E/(2.0*G) - 1.0; + E_eff=0.5*E/(1.0-pois*pois); + G_eff=G/(4.0-2.0*pois); + + // rwall = 0 is infinite wall radius of curvature (flat wall) + + if (rwall == 0) rad_eff = radius; + else rad_eff = radius*rwall/(radius+rwall); + + Fcrit = rad_eff * (3.0 * M_PI * SurfEnergy); + a0=pow(9.0*M_PI*SurfEnergy*rad_eff*rad_eff/E_eff,1.0/3.0); + delcrit = 1.0/rad_eff*(0.5 * a0*a0/pow(6.0,1.0/3.0)); + delcritinv = 1.0/delcrit; + + overlap = (radius-r) * delcritinv; + olapsq = overlap*overlap; + olapcubed = olapsq*overlap; + sqrtterm = sqrt(1.0 + olapcubed); + tmp = 2.0 + olapcubed + 2.0*sqrtterm; + keyterm = pow(tmp,THIRD); + keyterm2 = olapsq/keyterm; + keyterm3 = sqrt(overlap + keyterm2 + keyterm); + aovera0 = pow(6.0,-TWOTHIRDS) * (keyterm3 + + sqrt(2.0*overlap - keyterm2 - keyterm + 4.0/keyterm3)); + foverFc = 4.0*((aovera0*aovera0*aovera0) - pow(aovera0,1.5)); + ccel = Fcrit*foverFc*rinv; + + // damp = meff*gamman*vnnr*rsqinv; + // ccel = kn*(radius-r)*rinv - damp; + // polyhertz = sqrt((radius-r)*radius); + // ccel *= polyhertz; + + // use Tsuji et al form + + polyhertz = 1.2728- 4.2783*0.9 + 11.087*0.9*0.9 - 22.348*0.9*0.9*0.9 + + 27.467*0.9*0.9*0.9*0.9 - 18.022*0.9*0.9*0.9*0.9*0.9 + + 4.8218*0.9*0.9*0.9*0.9*0.9*0.9; + + gammatsuji = 0.2*sqrt(meff*kn); + damp = gammatsuji*vnnr/rsq; + ccel = ccel - polyhertz * damp; // relative velocities @@ -677,25 +905,90 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, fs2 = -polyhertz * (kt*shear[1] + meff*gammat*vtr2); fs3 = -polyhertz * (kt*shear[2] + meff*gammat*vtr3); + kt=8.0*G_eff*a0*aovera0; + + // shear damping uses Tsuji et al form also + + fs1 = -kt*shear[0] - polyhertz*gammatsuji*vtr1; + fs2 = -kt*shear[1] - polyhertz*gammatsuji*vtr2; + fs3 = -kt*shear[2] - polyhertz*gammatsuji*vtr3; + // rescale frictional displacements and forces if needed fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3); - fn = xmu * fabs(ccel*r); + fn = xmu * fabs(ccel*r + 2.0*Fcrit); if (fs > fn) { if (shrmag != 0.0) { - shear[0] = (fn/fs) * (shear[0] + meff*gammat*vtr1/kt) - - meff*gammat*vtr1/kt; - shear[1] = (fn/fs) * (shear[1] + meff*gammat*vtr2/kt) - - meff*gammat*vtr2/kt; - shear[2] = (fn/fs) * (shear[2] + meff*gammat*vtr3/kt) - - meff*gammat*vtr3/kt; + shear[0] = (fn/fs) * (shear[0] + polyhertz*gammatsuji*vtr1/kt) - + polyhertz*gammatsuji*vtr1/kt; + shear[1] = (fn/fs) * (shear[1] + polyhertz*gammatsuji*vtr2/kt) - + polyhertz*gammatsuji*vtr2/kt; + shear[2] = (fn/fs) * (shear[2] + polyhertz*gammatsuji*vtr3/kt) - + polyhertz*gammatsuji*vtr3/kt; fs1 *= fn/fs ; fs2 *= fn/fs; fs3 *= fn/fs; } else fs1 = fs2 = fs3 = 0.0; } + // calculate twisting and rolling components of torque + // NOTE: this assumes spheres! + + relrot1 = omega[0]; + relrot2 = omega[1]; + relrot3 = omega[2]; + + // rolling velocity + // NOTE: this assumes mondisperse spheres! + + vrl1 = -rad_eff*rinv * (relrot2*dz - relrot3*dy); + vrl2 = -rad_eff*rinv * (relrot3*dx - relrot1*dz); + vrl3 = -rad_eff*rinv * (relrot1*dy - relrot2*dx); + vrlmag = sqrt(vrl1*vrl1+vrl2*vrl2+vrl3*vrl3); + if (vrlmag != 0.0) vrlmaginv = 1.0/vrlmag; + else vrlmaginv = 0.0; + + // bond history effects + + shear[3] += vrl1*dt; + shear[4] += vrl2*dt; + shear[5] += vrl3*dt; + + // rotate bonded displacements correctly + + double rlt = shear[3]*dx + shear[4]*dy + shear[5]*dz; + rlt /= rsq; + shear[3] -= rlt*dx; + shear[4] -= rlt*dy; + shear[5] -= rlt*dz; + + // twisting torque + + magtwist = rinv*(relrot1*dx + relrot2*dy + relrot3*dz); + shear[6] += magtwist*dt; + + ktwist = 0.5*kt*(a0*aovera0)*(a0*aovera0); + magtortwist = -ktwist*shear[6] - + 0.5*polyhertz*gammatsuji*(a0*aovera0)*(a0*aovera0)*magtwist; + + twistcrit=TWOTHIRDS*a0*aovera0*Fcrit; + if (fabs(magtortwist) > twistcrit) + magtortwist = -twistcrit * magtwist/fabs(magtwist); + + // rolling torque + + magrollsq = shear[3]*shear[3] + shear[4]*shear[4] + shear[5]*shear[5]; + magroll = sqrt(magrollsq); + if (magroll != 0.0) magrollinv = 1.0/magroll; + else magrollinv = 0.0; + + kroll = 1.0*4.0*Fcrit*pow(aovera0,1.5); + magtorroll = -kroll*magroll - 0.1*gammat*vrlmag; + + rollcrit = 0.01; + if (magroll > rollcrit) magtorroll = -kroll*rollcrit; + // forces & torques fx = dx*ccel + fs1; @@ -712,6 +1005,14 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, torque[0] -= radius*tor1; torque[1] -= radius*tor2; torque[2] -= radius*tor3; + + torque[0] += magtortwist * dx*rinv; + torque[1] += magtortwist * dy*rinv; + torque[2] += magtortwist * dz*rinv; + + torque[0] += magtorroll * (shear[4]*dz - shear[5]*dy)*rinv*magrollinv; + torque[1] += magtorroll * (shear[5]*dx - shear[3]*dz)*rinv*magrollinv; + torque[2] += magtorroll * (shear[3]*dy - shear[4]*dx)*rinv*magrollinv; } /* ---------------------------------------------------------------------- @@ -722,8 +1023,8 @@ double FixWallGran::memory_usage() { int nmax = atom->nmax; double bytes = 0.0; - if (history) bytes += 3*nmax * sizeof(double); // shear history - if (fix_rigid) bytes += nmax * sizeof(int); // mass_rigid + if (history) bytes += nmax*sheardim * sizeof(double); // shear history + if (fix_rigid) bytes += nmax * sizeof(int); // mass_rigid return bytes; } @@ -733,7 +1034,7 @@ double FixWallGran::memory_usage() void FixWallGran::grow_arrays(int nmax) { - if (history) memory->grow(shear,nmax,3,"fix_wall_gran:shear"); + if (history) memory->grow(shearone,nmax,sheardim,"fix_wall_gran:shearone"); } /* ---------------------------------------------------------------------- @@ -742,11 +1043,9 @@ void FixWallGran::grow_arrays(int nmax) void FixWallGran::copy_arrays(int i, int j, int delflag) { - if (history) { - shear[j][0] = shear[i][0]; - shear[j][1] = shear[i][1]; - shear[j][2] = shear[i][2]; - } + if (history) + for (int m = 0; m < sheardim; m++) + shearone[j][m] = shearone[i][m]; } /* ---------------------------------------------------------------------- @@ -755,7 +1054,9 @@ void FixWallGran::copy_arrays(int i, int j, int delflag) void FixWallGran::set_arrays(int i) { - if (history) shear[i][0] = shear[i][1] = shear[i][2] = 0.0; + if (history) + for (int m = 0; m < sheardim; m++) + shearone[i][m] = 0; } /* ---------------------------------------------------------------------- @@ -766,10 +1067,10 @@ int FixWallGran::pack_exchange(int i, double *buf) { if (!history) return 0; - buf[0] = shear[i][0]; - buf[1] = shear[i][1]; - buf[2] = shear[i][2]; - return 3; + int n = 0; + for (int m = 0; m < sheardim; m++) + buf[n++] = shearone[i][m]; + return n; } /* ---------------------------------------------------------------------- @@ -780,10 +1081,10 @@ int FixWallGran::unpack_exchange(int nlocal, double *buf) { if (!history) return 0; - shear[nlocal][0] = buf[0]; - shear[nlocal][1] = buf[1]; - shear[nlocal][2] = buf[2]; - return 3; + int n = 0; + for (int m = 0; m < sheardim; m++) + shearone[nlocal][m] = buf[n++]; + return n; } /* ---------------------------------------------------------------------- @@ -794,12 +1095,11 @@ int FixWallGran::pack_restart(int i, double *buf) { if (!history) return 0; - int m = 0; - buf[m++] = 4; - buf[m++] = shear[i][0]; - buf[m++] = shear[i][1]; - buf[m++] = shear[i][2]; - return m; + int n = 0; + buf[n++] = sheardim + 1; + for (int m = 0; m < sheardim; m++) + buf[n++] = shearone[i][m]; + return n; } /* ---------------------------------------------------------------------- @@ -808,19 +1108,18 @@ int FixWallGran::pack_restart(int i, double *buf) void FixWallGran::unpack_restart(int nlocal, int nth) { - double **extra = atom->extra; - if (!history) return; - // skip to Nth set of extra values + double **extra = atom->extra; + // skip to Nth set of extra values + int m = 0; for (int i = 0; i < nth; i++) m += static_cast<int> (extra[nlocal][m]); m++; - - shear[nlocal][0] = extra[nlocal][m++]; - shear[nlocal][1] = extra[nlocal][m++]; - shear[nlocal][2] = extra[nlocal][m++]; + + for (int i = 0; i < sheardim; i++) + shearone[nlocal][i] = extra[nlocal][m++]; } /* ---------------------------------------------------------------------- @@ -830,7 +1129,7 @@ void FixWallGran::unpack_restart(int nlocal, int nth) int FixWallGran::maxsize_restart() { if (!history) return 0; - return 4; + return 1 + sheardim; } /* ---------------------------------------------------------------------- @@ -840,7 +1139,7 @@ int FixWallGran::maxsize_restart() int FixWallGran::size_restart(int nlocal) { if (!history) return 0; - return 4; + return 1 + sheardim; } /* ---------------------------------------------------------------------- */ diff --git a/src/GRANULAR/fix_wall_gran.h b/src/GRANULAR/fix_wall_gran.h index df15cd739c..e9b6a73b9d 100644 --- a/src/GRANULAR/fix_wall_gran.h +++ b/src/GRANULAR/fix_wall_gran.h @@ -29,51 +29,59 @@ class FixWallGran : public Fix { FixWallGran(class LAMMPS *, int, char **); virtual ~FixWallGran(); int setmask(); - void init(); + virtual void init(); void setup(int); virtual void post_force(int); virtual void post_force_respa(int, int, int); - double memory_usage(); - void grow_arrays(int); - void copy_arrays(int, int, int); - void set_arrays(int); - int pack_exchange(int, double *); - int unpack_exchange(int, double *); - int pack_restart(int, double *); - void unpack_restart(int, int); - int size_restart(int); - int maxsize_restart(); + virtual double memory_usage(); + virtual void grow_arrays(int); + virtual void copy_arrays(int, int, int); + virtual void set_arrays(int); + virtual int pack_exchange(int, double *); + virtual int unpack_exchange(int, double *); + virtual int pack_restart(int, double *); + virtual void unpack_restart(int, int); + virtual int size_restart(int); + virtual int maxsize_restart(); void reset_dt(); + void hooke(double, double, double, double, double *, + double *, double *, double *, double *, double, double); + void hooke_history(double, double, double, double, double *, + double *, double *, double *, double *, double, double, + double *); + void hertz_history(double, double, double, double, double *, double, + double *, double *, double *, double *, double, double, + double *); + void bonded_history(double, double, double, double, double *, double, + double *, double *, double *, double *, double, double, + double *); + protected: - int wallstyle,pairstyle,history,wiggle,wshear,axis; + int wallstyle,wiggle,wshear,axis; + int pairstyle,nlevels_respa; + bigint time_origin; double kn,kt,gamman,gammat,xmu; + double E,G,SurfEnergy; double lo,hi,cylradius; double amplitude,period,omega,vshear; double dt; - int nlevels_respa; - int time_origin; + char *idregion; + + int history; // if particle/wall interaction stores history + int shearupdate; // flag for whether shear history is updated + int sheardim; // # of shear history values per contact - // shear history values + // shear history for single contact per particle - double **shear; - int shearupdate; + double **shearone; // rigid body masses for use in granular interactions class Fix *fix_rigid; // ptr to rigid body fix, NULL if none double *mass_rigid; // rigid mass for owned+ghost atoms int nmax; // allocated size of mass_rigid - - void hooke(double, double, double, double, double *, - double *, double *, double *, double *, double, double); - void hooke_history(double, double, double, double, double *, - double *, double *, double *, double *, double, double, - double *); - void hertz_history(double, double, double, double, double *, - double *, double *, double *, double *, double, double, - double *); }; } diff --git a/src/GRANULAR/fix_wall_gran_region.cpp b/src/GRANULAR/fix_wall_gran_region.cpp new file mode 100644 index 0000000000..3ed7cf3d90 --- /dev/null +++ b/src/GRANULAR/fix_wall_gran_region.cpp @@ -0,0 +1,548 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. + ------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing authors: Dan Bolintineanu (SNL) +------------------------------------------------------------------------- */ + +#include "math.h" +#include "stdlib.h" +#include "string.h" +#include "fix_wall_gran_region.h" +#include "region.h" +#include "atom.h" +#include "domain.h" +#include "update.h" +#include "force.h" +#include "pair.h" +#include "modify.h" +#include "respa.h" +#include "math_const.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; + +// same as FixWallGran + +enum{HOOKE,HOOKE_HISTORY,HERTZ_HISTORY,BONDED_HISTORY}; + +#define BIG 1.0e20 + +/* ---------------------------------------------------------------------- */ + +FixWallGranRegion::FixWallGranRegion(LAMMPS *lmp, int narg, char **arg) : + FixWallGran(lmp, narg, arg) +{ + restart_global = 1; + motion_resetflag = 0; + + int iregion = domain->find_region(idregion); + if (iregion == -1) + error->all(FLERR,"Region ID for fix wall/gran/region does not exist"); + region = domain->regions[iregion]; + region_style = new char[strlen(region->style)+1]; + strcpy(region_style,region->style); + nregion = region->nregion; + + tmax = domain->regions[iregion]->tmax; + c2r = new int[tmax]; + + // re-allocate atom-based arrays with nshear + // do not register with Atom class, since parent class did that + + memory->destroy(shearone); + shearone = NULL; + + ncontact = NULL; + walls = NULL; + shearmany = NULL; + grow_arrays(atom->nmax); + + // initialize shear history as if particle is not touching region + + if (history) { + int nlocal = atom->nlocal; + for (int i = 0; i < nlocal; i++) + ncontact[i] = 0; + } +} + +/* ---------------------------------------------------------------------- */ + +FixWallGranRegion::~FixWallGranRegion() +{ + delete [] c2r; + memory->destroy(ncontact); + memory->destroy(walls); + memory->destroy(shearmany); +} + +/* ---------------------------------------------------------------------- */ + +void FixWallGranRegion::init() +{ + FixWallGran::init(); + + int iregion = domain->find_region(idregion); + if (iregion == -1) + error->all(FLERR,"Region ID for fix wall/gran/region does not exist"); + region = domain->regions[iregion]; + + // region displacement and orientation theta at previous step + // check if region properties changed between runs + + if (motion_resetflag) { + if (comm->me == 0) { + char str[128]; + sprintf(str,"Properties for region %s do not match restart file, " + "resetting its motion",idregion); + error->warning(FLERR,str); + } + region->reset_vel(); + } +} + + +/* ---------------------------------------------------------------------- */ + +void FixWallGranRegion::post_force(int vflag) +{ + int i,m,nc,iwall; + double rinv,fx,fy,fz,tooclose; + double dx,dy,dz,rsq,meff; + double xc[3],vwall[3]; + + // do not update shear history during setup + + shearupdate = 1; + if (update->setupflag) shearupdate = 0; + + // if just reneighbored: + // update rigid body masses for owned atoms if using FixRigid + // body[i] = which body atom I is in, -1 if none + // mass_body = mass of each rigid body + + if (neighbor->ago == 0 && fix_rigid) { + int tmp; + int *body = (int *) fix_rigid->extract("body",tmp); + double *mass_body = (double *) fix_rigid->extract("masstotal",tmp); + if (atom->nmax > nmax) { + memory->destroy(mass_rigid); + nmax = atom->nmax; + memory->create(mass_rigid,nmax,"wall/gran:mass_rigid"); + } + int nlocal = atom->nlocal; + for (i = 0; i < nlocal; i++) { + if (body[i] >= 0) mass_rigid[i] = mass_body[body[i]]; + else mass_rigid[i] = 0.0; + } + } + + int regiondynamic = region->dynamic_check(); + if (!regiondynamic) vwall[0] = vwall[1] = vwall[2] = 0.0; + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + double **omega = atom->omega; + double **torque = atom->torque; + double *radius = atom->radius; + double *rmass = atom->rmass; + + int *mask = atom->mask; + int nlocal = atom->nlocal; + + // set current motion attributes of region + // set_velocity() also updates prev to current step + + if (regiondynamic) { + region->prematch(); + region->set_velocity(); + } + + for (i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (!region->match(x[i][0],x[i][1],x[i][2])) continue; + + nc = region->surface(x[i][0],x[i][1],x[i][2],radius[i]); + if (nc > tmax) + error->one(FLERR,"Too many wall/gran/region contacts for one particle"); + + // shear history maintenance + // update ncontact,walls,shear2many for particle I + // to reflect new and persistent shear history values + // also set c2r[] = indices into region->contact[] for each of N contacts + // process zero or one contact here, otherwise invoke update_contacts() + + if (history) { + if (nc == 0) { + ncontact[i] = 0; + continue; + } + if (nc == 1) { + c2r[0] = 0; + iwall = region->contact[0].iwall; + if (ncontact[i] == 0) { + ncontact[i] = 1; + walls[i][0] = iwall; + for (m = 0; m < sheardim; m++) + shearmany[i][0][m] = 0.0; + } else if (ncontact[i] > 1 || iwall != walls[i][0]) + update_contacts(i,nc); + } else update_contacts(i,nc); + } + + // process current contacts + + for (int ic = 0; ic < nc; ic++) { + + // rsq = squared contact distance + // xc = contact point + + rsq = region->contact[ic].r*region->contact[ic].r; + + dx = region->contact[ic].delx; + dy = region->contact[ic].dely; + dz = region->contact[ic].delz; + + if (regiondynamic) region->velocity_contact(vwall, x[i], ic); + + + // meff = effective mass of sphere + // if I is part of rigid body, use body mass + + meff = rmass[i]; + if (fix_rigid && mass_rigid[i] > 0.0) meff = mass_rigid[i]; + + // invoke sphere/wall interaction + + if (pairstyle == HOOKE) + hooke(rsq,dx,dy,dz,vwall,v[i],f[i], + omega[i],torque[i],radius[i],meff); + else if (pairstyle == HOOKE_HISTORY) + hooke_history(rsq,dx,dy,dz,vwall,v[i],f[i], + omega[i],torque[i],radius[i],meff, + shearmany[i][c2r[ic]]); + else if (pairstyle == HERTZ_HISTORY) + hertz_history(rsq,dx,dy,dz,vwall,region->contact[ic].radius, + v[i],f[i],omega[i],torque[i], + radius[i],meff,shearmany[i][c2r[ic]]); + else if (pairstyle == BONDED_HISTORY) + bonded_history(rsq,dx,dy,dz,vwall,region->contact[ic].radius, + v[i],f[i],omega[i],torque[i], + radius[i],meff,shearmany[i][c2r[ic]]); + } + } + } +} + +/* ---------------------------------------------------------------------- + update contact info in ncontact, walls, shear2many for particle I + based on ncontacts[i] old contacts and N new contacts + matched via their associated walls + delete/zero shear history for broken/new contacts + also set c2r[i] = index of Ith contact in region list of contacts +------------------------------------------------------------------------- */ + +void FixWallGranRegion::update_contacts(int i, int nc) +{ + int j,m,iold,nold,ilast,inew,iadd,iwall; + + // loop over old contacts + // if not in new contact list: + // delete old contact by copying last contact over it + + iold = 0; + while (iold < ncontact[i]) { + for (m = 0; m < nc; m++) + if (region->contact[m].iwall = walls[i][iold]) break; + if (m < nc) { + ilast = ncontact[i]-1; + for (j = 0; j < sheardim; j++) + shearmany[i][iold][j] = shearmany[i][ilast][j]; + walls[i][iold] = walls[i][ilast]; + ncontact[i]--; + } else iold++; + } + + // loop over new contacts + // if not in newly compressed contact list of length nold: + // add it with zeroed shear history + // set all values in c2r + + nold = ncontact[i]; + + for (inew = 0; inew < nc; inew++) { + iwall = region->contact[inew].iwall; + for (m = 0; m < nold; m++) + if (walls[i][m] == iwall) break; + if (m < nold) c2r[m] = inew; + else { + iadd = ncontact[i]; + + c2r[iadd] = inew; + for (j = 0; j < sheardim; j++) + shearmany[i][iadd][j] = 0.0; + walls[i][iadd] = iwall; + ncontact[i]++; + } + } +} + +/* ---------------------------------------------------------------------- + memory usage of local atom-based arrays +------------------------------------------------------------------------- */ + +double FixWallGranRegion::memory_usage() +{ + int nmax = atom->nmax; + double bytes = 0.0; + if (history) { // shear history + bytes += nmax * sizeof(int); // ncontact + bytes += nmax*tmax * sizeof(int); // walls + bytes += nmax*tmax*sheardim * sizeof(double); // shearmany + } + if (fix_rigid) bytes += nmax * sizeof(int); // mass_rigid + return bytes; +} + +/* ---------------------------------------------------------------------- + allocate local atom-based arrays +------------------------------------------------------------------------- */ + +void FixWallGranRegion::grow_arrays(int nmax) +{ + if (history) { + memory->grow(ncontact,nmax,"fix_wall_gran:ncontact"); + memory->grow(walls,nmax,tmax,"fix_wall_gran:walls"); + memory->grow(shearmany,nmax,tmax,sheardim,"fix_wall_gran:shearmany"); + } +} + +/* ---------------------------------------------------------------------- + copy values within local atom-based arrays +------------------------------------------------------------------------- */ + +void FixWallGranRegion::copy_arrays(int i, int j, int delflag) +{ + int m,n,iwall; + + if (!history) return; + + n = ncontact[i]; + + for (iwall = 0; iwall < n; iwall++) { + walls[j][iwall] = walls[i][iwall]; + for (m = 0; m < sheardim; m++) + shearmany[j][iwall][m] = shearmany[i][iwall][m]; + } + ncontact[j] = ncontact[i]; +} + +/* ---------------------------------------------------------------------- + initialize one atom's array values, called when atom is created +------------------------------------------------------------------------- */ + +void FixWallGranRegion::set_arrays(int i) +{ + if (!history) return; + ncontact[i] = 0; +} + +/* ---------------------------------------------------------------------- + pack values in local atom-based arrays for exchange with another proc +------------------------------------------------------------------------- */ + +int FixWallGranRegion::pack_exchange(int i, double *buf) +{ + int m; + + if (!history) return 0; + + int n = 0; + int count = ncontact[i]; + + buf[n++] = ubuf(count).d; + for (int iwall = 0; iwall < count; iwall++) { + buf[n++] = ubuf(walls[i][iwall]).d; + for (m = 0; m < sheardim; m++) + buf[n++] = shearmany[i][iwall][m]; + } + + return n; +} + +/* ---------------------------------------------------------------------- + unpack values into local atom-based arrays after exchange +------------------------------------------------------------------------- */ + +int FixWallGranRegion::unpack_exchange(int nlocal, double *buf) +{ + int m; + + if (!history) return 0; + + int n = 0; + int count = ncontact[nlocal] = (int) ubuf(buf[n++]).i; + + for (int iwall = 0; iwall < count; iwall++) { + walls[nlocal][iwall] = (int) ubuf(buf[n++]).i; + for (m = 0; m < sheardim; m++) + shearmany[nlocal][iwall][m] = buf[n++]; + } + + return n; +} + +/* ---------------------------------------------------------------------- + pack values in local atom-based arrays for restart file +------------------------------------------------------------------------- */ + +int FixWallGranRegion::pack_restart(int i, double *buf) +{ + int m; + + if (!history) return 0; + + int n = 1; + int count = ncontact[i]; + + buf[n++] = ubuf(count).d; + for (int iwall = 0; iwall < count; iwall++) { + buf[n++] = ubuf(walls[i][iwall]).d; + for (m = 0; m < sheardim; m++) + buf[n++] = shearmany[i][iwall][m]; + } + buf[0] = n; + return n; +} + +/* ---------------------------------------------------------------------- + unpack values from atom->extra array to restart the fix +------------------------------------------------------------------------- */ + +void FixWallGranRegion::unpack_restart(int nlocal, int nth) +{ + int k; + + if (!history) return; + + double **extra = atom->extra; + + // skip to Nth set of extra values + + int m = 0; + for (int i = 0; i < nth; i++) m += static_cast<int> (extra[nlocal][m]); + m++; + + int count = ncontact[nlocal] = (int) ubuf(extra[nlocal][m++]).i; + for (int iwall = 0; iwall < count; iwall++) { + walls[nlocal][iwall] = (int) ubuf(extra[nlocal][m++]).i; + for (k = 0; k < sheardim; k++) + shearmany[nlocal][iwall][k] = extra[nlocal][m++]; + } +} + +/* ---------------------------------------------------------------------- + maxsize of any atom's restart data +------------------------------------------------------------------------- */ + +int FixWallGranRegion::maxsize_restart() +{ + if (!history) return 0; + return 2 + tmax*(sheardim+1); +} + +/* ---------------------------------------------------------------------- + size of atom nlocal's restart data +------------------------------------------------------------------------- */ + +int FixWallGranRegion::size_restart(int nlocal) +{ + if (!history) return 0; + return 2 + ncontact[nlocal]*(sheardim+1); +} + +/* ---------------------------------------------------------------------- + pack entire state of Fix into one write +------------------------------------------------------------------------- */ + +void FixWallGranRegion::write_restart(FILE *fp) +{ + if (comm->me) return; + int size_id_str = (strlen(region->id) + 1) * sizeof(char); + int size_style_str = (strlen(region->style) + 1) * sizeof(char); + int size_tot = sizeof(int) + size_id_str + + sizeof(int) + size_style_str + sizeof(int) + + region->size_restart*sizeof(double); + + fwrite(&size_tot,sizeof(int),1,fp); + fwrite(&size_id_str,sizeof(int),1,fp); + fwrite(region->id,sizeof(char),size_id_str,fp); + fwrite(&size_style_str,sizeof(int),1,fp); + fwrite(region->style,sizeof(char),size_style_str,fp); + fwrite(®ion->nregion,sizeof(int),1,fp); + + region->write_restart(fp); +} + +/* ---------------------------------------------------------------------- + use state info from restart file to restart the Fix +------------------------------------------------------------------------- */ + +void FixWallGranRegion::restart(char *buf) +{ + int n = 0; + int size_id_str = buf[n]; + n += sizeof(int); + char *region_id_restart = new char[size_id_str]; + for (int i = 0; i < size_id_str; i++){ + region_id_restart[i] = buf[n++]; + } + + int size_style_str = buf[n]; + n += sizeof(int); + char *region_style_restart = new char[size_style_str]; + for (int i = 0; i < size_style_str; i++) + region_style_restart[i] = buf[n++]; + + int nregion_restart = buf[n]; + n += sizeof(int); + + if (check_consistent_region(region,region_id_restart, + region_style_restart,nregion_restart)) + region->restart(buf,n); + else motion_resetflag = 1; + + delete [] region_id_restart; + delete [] region_style_restart; +} + + +/* ---------------------------------------------------------------------- + check that region id/style/number of sub-regions are consistent +------------------------------------------------------------------------- */ + +int FixWallGranRegion::check_consistent_region(Region *region, + char* region_id, + char* region_style, int nregion) +{ + if (strcmp(region_id, region->id) != 0 || + strcmp(region_style, region->style) != 0 || + nregion != region->nregion) + return 0; + return 1; +} diff --git a/src/GRANULAR/fix_wall_gran_region.h b/src/GRANULAR/fix_wall_gran_region.h new file mode 100644 index 0000000000..d7bc8be53e --- /dev/null +++ b/src/GRANULAR/fix_wall_gran_region.h @@ -0,0 +1,106 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef FIX_CLASS + +FixStyle(wall/gran/region,FixWallGranRegion) + +#else + +#ifndef LMP_FIX_WALL_GRAN_REGION_H +#define LMP_FIX_WALL_GRAN_REGION_H + +#include "fix_wall_gran.h" + +namespace LAMMPS_NS { + +class FixWallGranRegion : public FixWallGran { + public: + FixWallGranRegion(class LAMMPS *, int, char **); + ~FixWallGranRegion(); + void post_force(int); + void write_restart(FILE *); + void restart(char* ); + void init(); + + double memory_usage(); + void grow_arrays(int); + void copy_arrays(int, int, int); + void set_arrays(int); + int pack_exchange(int, double *); + int unpack_exchange(int, double *); + int pack_restart(int, double *); + void unpack_restart(int, int); + int size_restart(int); + int maxsize_restart(); + + private: + class Region *region; + char *region_style; + int nregion; + + // shear history for multiple contacts per particle + + int tmax; // max # of region walls one particle can touch + int *ncontact; // # of shear contacts per particle + int **walls; // which wall each contact is with + double ***shearmany; // shear history per particle per contact + int *c2r; // contact to region mapping + // c2r[i] = index of Ith contact in + // region-contact[] list of contacts + int motion_resetflag; // used by restart to indicate that region + // vel info is to be reset + + void update_contacts(int, int); + int check_consistent_region(Region *, char*, char*, int); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Illegal ... command + +Self-explanatory. Check the input script syntax and compare to the +documentation for the command. You can use -echo screen as a +command-line option when running LAMMPS to see the offending line. + +E: Fix wall/gran requires atom style sphere + +Self-explanatory. + +E: Cannot use wall in periodic dimension + +Self-explanatory. + +E: Cannot wiggle and shear fix wall/gran + +Cannot specify both options at the same time. + +E: Invalid wiggle direction for fix wall/gran + +Self-explanatory. + +E: Invalid shear direction for fix wall/gran + +Self-explanatory. + +E: Fix wall/gran is incompatible with Pair style + +Must use a granular pair style to define the parameters needed for +this fix. + +*/ diff --git a/src/KOKKOS/atom_kokkos.cpp b/src/KOKKOS/atom_kokkos.cpp index 4d343367f1..577eff2364 100644 --- a/src/KOKKOS/atom_kokkos.cpp +++ b/src/KOKKOS/atom_kokkos.cpp @@ -21,6 +21,7 @@ #include "atom_masks.h" #include "memory.h" #include "error.h" +#include "kokkos.h" using namespace LAMMPS_NS; @@ -78,6 +79,9 @@ AtomKokkos::~AtomKokkos() void AtomKokkos::sync(const ExecutionSpace space, unsigned int mask) { + if (space == Device && lmp->kokkos->auto_sync) + ((AtomVecKokkos *) avec)->modified(Host,mask); + ((AtomVecKokkos *) avec)->sync(space,mask); } @@ -86,6 +90,9 @@ void AtomKokkos::sync(const ExecutionSpace space, unsigned int mask) void AtomKokkos::modified(const ExecutionSpace space, unsigned int mask) { ((AtomVecKokkos *) avec)->modified(space,mask); + + if (space == Device && lmp->kokkos->auto_sync) + ((AtomVecKokkos *) avec)->sync(Host,mask); } void AtomKokkos::sync_overlapping_device(const ExecutionSpace space, unsigned int mask) diff --git a/src/KOKKOS/fix_deform_kokkos.cpp b/src/KOKKOS/fix_deform_kokkos.cpp index b3316022f1..5295320734 100644 --- a/src/KOKKOS/fix_deform_kokkos.cpp +++ b/src/KOKKOS/fix_deform_kokkos.cpp @@ -49,6 +49,7 @@ enum{NO_REMAP,X_REMAP,V_REMAP}; FixDeformKokkos::FixDeformKokkos(LAMMPS *lmp, int narg, char **arg) : FixDeform(lmp, narg, arg) { + kokkosable = 1; domainKK = (DomainKokkos *) domain; datamask_read = EMPTY_MASK; diff --git a/src/KOKKOS/fix_langevin_kokkos.cpp b/src/KOKKOS/fix_langevin_kokkos.cpp index 43af4168f3..b51c934c3e 100644 --- a/src/KOKKOS/fix_langevin_kokkos.cpp +++ b/src/KOKKOS/fix_langevin_kokkos.cpp @@ -44,6 +44,7 @@ template<class DeviceType> FixLangevinKokkos<DeviceType>::FixLangevinKokkos(LAMMPS *lmp, int narg, char **arg) : FixLangevin(lmp, narg, arg),rand_pool(seed + comm->me) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; int ntypes = atomKK->ntypes; diff --git a/src/KOKKOS/fix_nh_kokkos.cpp b/src/KOKKOS/fix_nh_kokkos.cpp index 8cc06fc52c..2b55259365 100644 --- a/src/KOKKOS/fix_nh_kokkos.cpp +++ b/src/KOKKOS/fix_nh_kokkos.cpp @@ -55,6 +55,7 @@ enum{ISO,ANISO,TRICLINIC}; template<class DeviceType> FixNHKokkos<DeviceType>::FixNHKokkos(LAMMPS *lmp, int narg, char **arg) : FixNH(lmp, narg, arg) { + kokkosable = 1; domainKK = (DomainKokkos *) domain; execution_space = ExecutionSpaceFromDevice<DeviceType>::space; diff --git a/src/KOKKOS/fix_nph_kokkos.cpp b/src/KOKKOS/fix_nph_kokkos.cpp index f3f7c271d6..34fc212c0f 100644 --- a/src/KOKKOS/fix_nph_kokkos.cpp +++ b/src/KOKKOS/fix_nph_kokkos.cpp @@ -25,6 +25,7 @@ template<class DeviceType> FixNPHKokkos<DeviceType>::FixNPHKokkos(LAMMPS *lmp, int narg, char **arg) : FixNHKokkos<DeviceType>(lmp, narg, arg) { + this->kokkosable = 1; if (this->tstat_flag) this->error->all(FLERR,"Temperature control can not be used with fix nph"); if (!this->pstat_flag) diff --git a/src/KOKKOS/fix_npt_kokkos.cpp b/src/KOKKOS/fix_npt_kokkos.cpp index bbc26b8e88..c99a322a01 100644 --- a/src/KOKKOS/fix_npt_kokkos.cpp +++ b/src/KOKKOS/fix_npt_kokkos.cpp @@ -25,6 +25,7 @@ template<class DeviceType> FixNPTKokkos<DeviceType>::FixNPTKokkos(LAMMPS *lmp, int narg, char **arg) : FixNHKokkos<DeviceType>(lmp, narg, arg) { + this->kokkosable = 1; if (!this->tstat_flag) this->error->all(FLERR,"Temperature control must be used with fix npt"); if (!this->pstat_flag) diff --git a/src/KOKKOS/fix_nve_kokkos.cpp b/src/KOKKOS/fix_nve_kokkos.cpp index 5e7e9b5298..4c041f85b0 100644 --- a/src/KOKKOS/fix_nve_kokkos.cpp +++ b/src/KOKKOS/fix_nve_kokkos.cpp @@ -30,6 +30,7 @@ template<class DeviceType> FixNVEKokkos<DeviceType>::FixNVEKokkos(LAMMPS *lmp, int narg, char **arg) : FixNVE(lmp, narg, arg) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; execution_space = ExecutionSpaceFromDevice<DeviceType>::space; diff --git a/src/KOKKOS/fix_nvt_kokkos.cpp b/src/KOKKOS/fix_nvt_kokkos.cpp index c479251c33..9628ff0231 100644 --- a/src/KOKKOS/fix_nvt_kokkos.cpp +++ b/src/KOKKOS/fix_nvt_kokkos.cpp @@ -26,6 +26,7 @@ template<class DeviceType> FixNVTKokkos<DeviceType>::FixNVTKokkos(LAMMPS *lmp, int narg, char **arg) : FixNHKokkos<DeviceType>(lmp, narg, arg) { + this->kokkosable = 1; if (!this->tstat_flag) this->error->all(FLERR,"Temperature control must be used with fix nvt"); if (this->pstat_flag) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index 8ae132e575..e54be74124 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -53,6 +53,7 @@ template<class DeviceType> FixQEqReaxKokkos<DeviceType>::FixQEqReaxKokkos(LAMMPS *lmp, int narg, char **arg) : FixQEqReax(lmp, narg, arg) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; execution_space = ExecutionSpaceFromDevice<DeviceType>::space; diff --git a/src/KOKKOS/fix_setforce_kokkos.cpp b/src/KOKKOS/fix_setforce_kokkos.cpp index 93e5e19377..27f7d100fa 100644 --- a/src/KOKKOS/fix_setforce_kokkos.cpp +++ b/src/KOKKOS/fix_setforce_kokkos.cpp @@ -38,6 +38,7 @@ template<class DeviceType> FixSetForceKokkos<DeviceType>::FixSetForceKokkos(LAMMPS *lmp, int narg, char **arg) : FixSetForce(lmp, narg, arg) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; execution_space = ExecutionSpaceFromDevice<DeviceType>::space; datamask_read = EMPTY_MASK; diff --git a/src/KOKKOS/fix_wall_reflect_kokkos.cpp b/src/KOKKOS/fix_wall_reflect_kokkos.cpp index 27c0080234..55be7e5cd7 100644 --- a/src/KOKKOS/fix_wall_reflect_kokkos.cpp +++ b/src/KOKKOS/fix_wall_reflect_kokkos.cpp @@ -40,6 +40,7 @@ template<class DeviceType> FixWallReflectKokkos<DeviceType>::FixWallReflectKokkos(LAMMPS *lmp, int narg, char **arg) : FixWallReflect(lmp, narg, arg) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; execution_space = ExecutionSpaceFromDevice<DeviceType>::space; datamask_read = X_MASK | V_MASK | MASK_MASK; diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 180e3d8499..72bf094e4b 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -33,6 +33,8 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) kokkos_exists = 1; lmp->kokkos = this; + auto_sync = 1; + int me = 0; MPI_Comm_rank(world,&me); if (me == 0) error->message(FLERR,"KOKKOS mode is enabled"); diff --git a/src/KOKKOS/kokkos.h b/src/KOKKOS/kokkos.h index f6d3404283..1058affcfc 100644 --- a/src/KOKKOS/kokkos.h +++ b/src/KOKKOS/kokkos.h @@ -29,6 +29,7 @@ class KokkosLMP : protected Pointers { int forward_comm_on_host; int num_threads,ngpu; int numa; + int auto_sync; KokkosLMP(class LAMMPS *, int, char **); ~KokkosLMP(); diff --git a/src/KOKKOS/modify_kokkos.cpp b/src/KOKKOS/modify_kokkos.cpp index b1b98144a6..9a035ac20c 100644 --- a/src/KOKKOS/modify_kokkos.cpp +++ b/src/KOKKOS/modify_kokkos.cpp @@ -16,6 +16,7 @@ #include "update.h" #include "fix.h" #include "compute.h" +#include "kokkos.h" using namespace LAMMPS_NS; @@ -43,13 +44,17 @@ void ModifyKokkos::setup(int vflag) if (update->whichflag == 1) for (int i = 0; i < nfix; i++) { atomKK->sync(fix[i]->execution_space,fix[i]->datamask_read); + if (!fix[i]->kokkosable) lmp->kokkos->auto_sync = 1; fix[i]->setup(vflag); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[i]->execution_space,fix[i]->datamask_modify); } else if (update->whichflag == 2) for (int i = 0; i < nfix; i++) { atomKK->sync(fix[i]->execution_space,fix[i]->datamask_read); + if (!fix[i]->kokkosable) lmp->kokkos->auto_sync = 1; fix[i]->min_setup(vflag); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[i]->execution_space,fix[i]->datamask_modify); } } @@ -65,7 +70,9 @@ void ModifyKokkos::setup_pre_exchange() for (int i = 0; i < n_pre_exchange; i++) { atomKK->sync(fix[list_pre_exchange[i]]->execution_space, fix[list_pre_exchange[i]]->datamask_read); + if (!fix[list_pre_exchange[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_pre_exchange[i]]->setup_pre_exchange(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_pre_exchange[i]]->execution_space, fix[list_pre_exchange[i]]->datamask_modify); } @@ -73,7 +80,9 @@ void ModifyKokkos::setup_pre_exchange() for (int i = 0; i < n_min_pre_exchange; i++) { atomKK->sync(fix[list_min_pre_exchange[i]]->execution_space, fix[list_min_pre_exchange[i]]->datamask_read); + if (!fix[list_min_pre_exchange[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_pre_exchange[i]]->min_setup_pre_exchange(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_pre_exchange[i]]->execution_space, fix[list_min_pre_exchange[i]]->datamask_modify); } @@ -90,7 +99,9 @@ void ModifyKokkos::setup_pre_neighbor() for (int i = 0; i < n_pre_neighbor; i++) { atomKK->sync(fix[list_pre_neighbor[i]]->execution_space, fix[list_pre_neighbor[i]]->datamask_read); + if (!fix[list_pre_neighbor[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_pre_neighbor[i]]->setup_pre_neighbor(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_pre_neighbor[i]]->execution_space, fix[list_pre_neighbor[i]]->datamask_modify); } @@ -98,7 +109,9 @@ void ModifyKokkos::setup_pre_neighbor() for (int i = 0; i < n_min_pre_neighbor; i++) { atomKK->sync(fix[list_min_pre_neighbor[i]]->execution_space, fix[list_min_pre_neighbor[i]]->datamask_read); + if (!fix[list_min_pre_neighbor[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_pre_neighbor[i]]->min_setup_pre_neighbor(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_pre_neighbor[i]]->execution_space, fix[list_min_pre_neighbor[i]]->datamask_modify); } @@ -115,7 +128,9 @@ void ModifyKokkos::setup_pre_force(int vflag) for (int i = 0; i < n_pre_force; i++) { atomKK->sync(fix[list_pre_force[i]]->execution_space, fix[list_pre_force[i]]->datamask_read); + if (!fix[list_pre_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_pre_force[i]]->setup_pre_force(vflag); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_pre_force[i]]->execution_space, fix[list_pre_force[i]]->datamask_modify); } @@ -123,7 +138,9 @@ void ModifyKokkos::setup_pre_force(int vflag) for (int i = 0; i < n_min_pre_force; i++) { atomKK->sync(fix[list_min_pre_force[i]]->execution_space, fix[list_min_pre_force[i]]->datamask_read); + if (!fix[list_min_pre_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_pre_force[i]]->min_setup_pre_force(vflag); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_pre_force[i]]->execution_space, fix[list_min_pre_force[i]]->datamask_modify); } @@ -138,7 +155,9 @@ void ModifyKokkos::initial_integrate(int vflag) for (int i = 0; i < n_initial_integrate; i++) { atomKK->sync(fix[list_initial_integrate[i]]->execution_space, fix[list_initial_integrate[i]]->datamask_read); + if (!fix[list_initial_integrate[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_initial_integrate[i]]->initial_integrate(vflag); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_initial_integrate[i]]->execution_space, fix[list_initial_integrate[i]]->datamask_modify); } @@ -153,7 +172,9 @@ void ModifyKokkos::post_integrate() for (int i = 0; i < n_post_integrate; i++) { atomKK->sync(fix[list_post_integrate[i]]->execution_space, fix[list_post_integrate[i]]->datamask_read); + if (!fix[list_post_integrate[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_post_integrate[i]]->post_integrate(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_post_integrate[i]]->execution_space, fix[list_post_integrate[i]]->datamask_modify); } @@ -168,7 +189,9 @@ void ModifyKokkos::pre_exchange() for (int i = 0; i < n_pre_exchange; i++) { atomKK->sync(fix[list_pre_exchange[i]]->execution_space, fix[list_pre_exchange[i]]->datamask_read); + if (!fix[list_pre_exchange[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_pre_exchange[i]]->pre_exchange(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_pre_exchange[i]]->execution_space, fix[list_pre_exchange[i]]->datamask_modify); } @@ -183,7 +206,9 @@ void ModifyKokkos::pre_neighbor() for (int i = 0; i < n_pre_neighbor; i++) { atomKK->sync(fix[list_pre_neighbor[i]]->execution_space, fix[list_pre_neighbor[i]]->datamask_read); + if (!fix[list_pre_neighbor[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_pre_neighbor[i]]->pre_neighbor(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_pre_neighbor[i]]->execution_space, fix[list_pre_neighbor[i]]->datamask_modify); } @@ -198,7 +223,9 @@ void ModifyKokkos::pre_force(int vflag) for (int i = 0; i < n_pre_force; i++) { atomKK->sync(fix[list_pre_force[i]]->execution_space, fix[list_pre_force[i]]->datamask_read); + if (!fix[list_pre_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_pre_force[i]]->pre_force(vflag); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_pre_force[i]]->execution_space, fix[list_pre_force[i]]->datamask_modify); } @@ -213,7 +240,9 @@ void ModifyKokkos::post_force(int vflag) for (int i = 0; i < n_post_force; i++) { atomKK->sync(fix[list_post_force[i]]->execution_space, fix[list_post_force[i]]->datamask_read); + if (!fix[list_post_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_post_force[i]]->post_force(vflag); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_post_force[i]]->execution_space, fix[list_post_force[i]]->datamask_modify); } @@ -228,7 +257,9 @@ void ModifyKokkos::final_integrate() for (int i = 0; i < n_final_integrate; i++) { atomKK->sync(fix[list_final_integrate[i]]->execution_space, fix[list_final_integrate[i]]->datamask_read); + if (!fix[list_final_integrate[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_final_integrate[i]]->final_integrate(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_final_integrate[i]]->execution_space, fix[list_final_integrate[i]]->datamask_modify); } @@ -245,7 +276,9 @@ void ModifyKokkos::end_of_step() if (update->ntimestep % end_of_step_every[i] == 0) { atomKK->sync(fix[list_end_of_step[i]]->execution_space, fix[list_end_of_step[i]]->datamask_read); + if (!fix[list_end_of_step[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_end_of_step[i]]->end_of_step(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_end_of_step[i]]->execution_space, fix[list_end_of_step[i]]->datamask_modify); } @@ -263,7 +296,9 @@ double ModifyKokkos::thermo_energy() for (int i = 0; i < n_thermo_energy; i++) { atomKK->sync(fix[list_thermo_energy[i]]->execution_space, fix[list_thermo_energy[i]]->datamask_read); + if (!fix[list_thermo_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1; energy += fix[list_thermo_energy[i]]->compute_scalar(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_thermo_energy[i]]->execution_space, fix[list_thermo_energy[i]]->datamask_modify); } @@ -279,7 +314,9 @@ void ModifyKokkos::post_run() for (int i = 0; i < nfix; i++) { atomKK->sync(fix[i]->execution_space, fix[i]->datamask_read); + if (!fix[i]->kokkosable) lmp->kokkos->auto_sync = 1; fix[i]->post_run(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[i]->execution_space, fix[i]->datamask_modify); } @@ -294,7 +331,9 @@ void ModifyKokkos::setup_pre_force_respa(int vflag, int ilevel) for (int i = 0; i < n_pre_force; i++) { atomKK->sync(fix[list_pre_force[i]]->execution_space, fix[list_pre_force[i]]->datamask_read); + if (!fix[list_pre_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_pre_force[i]]->setup_pre_force_respa(vflag,ilevel); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_pre_force[i]]->execution_space, fix[list_pre_force[i]]->datamask_modify); } @@ -309,8 +348,10 @@ void ModifyKokkos::initial_integrate_respa(int vflag, int ilevel, int iloop) for (int i = 0; i < n_initial_integrate_respa; i++) { atomKK->sync(fix[list_initial_integrate_respa[i]]->execution_space, fix[list_initial_integrate_respa[i]]->datamask_read); + if (!fix[list_initial_integrate_respa[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_initial_integrate_respa[i]]-> initial_integrate_respa(vflag,ilevel,iloop); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_initial_integrate_respa[i]]->execution_space, fix[list_initial_integrate_respa[i]]->datamask_modify); } @@ -325,7 +366,9 @@ void ModifyKokkos::post_integrate_respa(int ilevel, int iloop) for (int i = 0; i < n_post_integrate_respa; i++) { atomKK->sync(fix[list_post_integrate_respa[i]]->execution_space, fix[list_post_integrate_respa[i]]->datamask_read); + if (!fix[list_post_integrate_respa[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_post_integrate_respa[i]]->post_integrate_respa(ilevel,iloop); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_post_integrate_respa[i]]->execution_space, fix[list_post_integrate_respa[i]]->datamask_modify); } @@ -340,7 +383,9 @@ void ModifyKokkos::pre_force_respa(int vflag, int ilevel, int iloop) for (int i = 0; i < n_pre_force_respa; i++) { atomKK->sync(fix[list_pre_force_respa[i]]->execution_space, fix[list_pre_force_respa[i]]->datamask_read); + if (!fix[list_pre_force_respa[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_pre_force_respa[i]]->pre_force_respa(vflag,ilevel,iloop); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_pre_force_respa[i]]->execution_space, fix[list_pre_force_respa[i]]->datamask_modify); } @@ -355,7 +400,9 @@ void ModifyKokkos::post_force_respa(int vflag, int ilevel, int iloop) for (int i = 0; i < n_post_force_respa; i++) { atomKK->sync(fix[list_post_force_respa[i]]->execution_space, fix[list_post_force_respa[i]]->datamask_read); + if (!fix[list_post_force_respa[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_post_force_respa[i]]->post_force_respa(vflag,ilevel,iloop); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_post_force_respa[i]]->execution_space, fix[list_post_force_respa[i]]->datamask_modify); } @@ -370,7 +417,9 @@ void ModifyKokkos::final_integrate_respa(int ilevel, int iloop) for (int i = 0; i < n_final_integrate_respa; i++) { atomKK->sync(fix[list_final_integrate_respa[i]]->execution_space, fix[list_final_integrate_respa[i]]->datamask_read); + if (!fix[list_final_integrate_respa[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_final_integrate_respa[i]]->final_integrate_respa(ilevel,iloop); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_final_integrate_respa[i]]->execution_space, fix[list_final_integrate_respa[i]]->datamask_modify); } @@ -385,7 +434,9 @@ void ModifyKokkos::min_pre_exchange() for (int i = 0; i < n_min_pre_exchange; i++) { atomKK->sync(fix[list_min_pre_exchange[i]]->execution_space, fix[list_min_pre_exchange[i]]->datamask_read); + if (!fix[list_min_pre_exchange[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_pre_exchange[i]]->min_pre_exchange(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_pre_exchange[i]]->execution_space, fix[list_min_pre_exchange[i]]->datamask_modify); } @@ -400,7 +451,9 @@ void ModifyKokkos::min_pre_neighbor() for (int i = 0; i < n_min_pre_neighbor; i++) { atomKK->sync(fix[list_min_pre_neighbor[i]]->execution_space, fix[list_min_pre_neighbor[i]]->datamask_read); + if (!fix[list_min_pre_neighbor[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_pre_neighbor[i]]->min_pre_neighbor(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_pre_neighbor[i]]->execution_space, fix[list_min_pre_neighbor[i]]->datamask_modify); } @@ -415,7 +468,9 @@ void ModifyKokkos::min_pre_force(int vflag) for (int i = 0; i < n_min_pre_force; i++) { atomKK->sync(fix[list_min_pre_force[i]]->execution_space, fix[list_min_pre_force[i]]->datamask_read); + if (!fix[list_min_pre_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_pre_force[i]]->min_pre_force(vflag); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_pre_force[i]]->execution_space, fix[list_min_pre_force[i]]->datamask_modify); } @@ -430,7 +485,9 @@ void ModifyKokkos::min_post_force(int vflag) for (int i = 0; i < n_min_post_force; i++) { atomKK->sync(fix[list_min_post_force[i]]->execution_space, fix[list_min_post_force[i]]->datamask_read); + if (!fix[list_min_post_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_post_force[i]]->min_post_force(vflag); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_post_force[i]]->execution_space, fix[list_min_post_force[i]]->datamask_modify); } @@ -450,8 +507,10 @@ double ModifyKokkos::min_energy(double *fextra) for (int i = 0; i < n_min_energy; i++) { ifix = list_min_energy[i]; atomKK->sync(fix[ifix]->execution_space,fix[ifix]->datamask_read); + if (!fix[ifix]->kokkosable) lmp->kokkos->auto_sync = 1; eng += fix[ifix]->min_energy(&fextra[index]); index += fix[ifix]->min_dof(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[ifix]->execution_space,fix[ifix]->datamask_modify); } return eng; @@ -466,7 +525,9 @@ void ModifyKokkos::min_store() for (int i = 0; i < n_min_energy; i++) { atomKK->sync(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_read); + if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_energy[i]]->min_store(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_modify); } @@ -481,7 +542,9 @@ void ModifyKokkos::min_clearstore() for (int i = 0; i < n_min_energy; i++) { atomKK->sync(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_read); + if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_energy[i]]->min_clearstore(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_modify); } @@ -492,7 +555,9 @@ void ModifyKokkos::min_pushstore() for (int i = 0; i < n_min_energy; i++) { atomKK->sync(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_read); + if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_energy[i]]->min_pushstore(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_modify); } @@ -503,7 +568,9 @@ void ModifyKokkos::min_popstore() for (int i = 0; i < n_min_energy; i++) { atomKK->sync(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_read); + if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1; fix[list_min_energy[i]]->min_popstore(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_modify); } @@ -521,8 +588,10 @@ void ModifyKokkos::min_step(double alpha, double *hextra) for (int i = 0; i < n_min_energy; i++) { ifix = list_min_energy[i]; atomKK->sync(fix[ifix]->execution_space,fix[ifix]->datamask_read); + if (!fix[ifix]->kokkosable) lmp->kokkos->auto_sync = 1; fix[ifix]->min_step(alpha,&hextra[index]); index += fix[ifix]->min_dof(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[ifix]->execution_space,fix[ifix]->datamask_modify); } } @@ -540,9 +609,11 @@ double ModifyKokkos::max_alpha(double *hextra) for (int i = 0; i < n_min_energy; i++) { ifix = list_min_energy[i]; atomKK->sync(fix[ifix]->execution_space,fix[ifix]->datamask_read); + if (!fix[ifix]->kokkosable) lmp->kokkos->auto_sync = 1; double alpha_one = fix[ifix]->max_alpha(&hextra[index]); alpha = MIN(alpha,alpha_one); index += fix[ifix]->min_dof(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[ifix]->execution_space,fix[ifix]->datamask_modify); } return alpha; @@ -558,7 +629,9 @@ int ModifyKokkos::min_dof() for (int i = 0; i < n_min_energy; i++) { atomKK->sync(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_read); + if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1; ndof += fix[list_min_energy[i]]->min_dof(); + lmp->kokkos->auto_sync = 0; atomKK->modified(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_modify); } @@ -576,7 +649,9 @@ int ModifyKokkos::min_reset_ref() for (int i = 0; i < n_min_energy; i++) { atomKK->sync(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_read); + if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1; itmp = fix[list_min_energy[i]]->min_reset_ref(); + lmp->kokkos->auto_sync = 0; if (itmp) itmpall = 1; atomKK->modified(fix[list_min_energy[i]]->execution_space, fix[list_min_energy[i]]->datamask_modify); diff --git a/src/KOKKOS/neighbor_kokkos.cpp b/src/KOKKOS/neighbor_kokkos.cpp index c420f34e8e..3bb8b0dce4 100644 --- a/src/KOKKOS/neighbor_kokkos.cpp +++ b/src/KOKKOS/neighbor_kokkos.cpp @@ -589,6 +589,11 @@ void NeighborKokkos::build_topology_kokkos() { k_dihedrallist = neighbond_device.k_dihedrallist; k_improperlist = neighbond_device.k_improperlist; + k_bondlist.sync<LMPDeviceType>(); + k_anglelist.sync<LMPDeviceType>(); + k_dihedrallist.sync<LMPDeviceType>(); + k_improperlist.sync<LMPDeviceType>(); + k_bondlist.modify<LMPDeviceType>(); k_anglelist.modify<LMPDeviceType>(); k_dihedrallist.modify<LMPDeviceType>(); @@ -601,6 +606,11 @@ void NeighborKokkos::build_topology_kokkos() { k_dihedrallist = neighbond_host.k_dihedrallist; k_improperlist = neighbond_host.k_improperlist; + k_bondlist.sync<LMPHostType>(); + k_anglelist.sync<LMPHostType>(); + k_dihedrallist.sync<LMPHostType>(); + k_improperlist.sync<LMPHostType>(); + k_bondlist.modify<LMPHostType>(); k_anglelist.modify<LMPHostType>(); k_dihedrallist.modify<LMPHostType>(); diff --git a/src/KOKKOS/verlet_kokkos.cpp b/src/KOKKOS/verlet_kokkos.cpp index f225249d53..20c4035276 100644 --- a/src/KOKKOS/verlet_kokkos.cpp +++ b/src/KOKKOS/verlet_kokkos.cpp @@ -75,11 +75,13 @@ void VerletKokkos::setup() } update->setupflag = 1; + lmp->kokkos->auto_sync = 0; // setup domain, communication and neighboring // acquire ghosts // build neighbor lists + atomKK->sync(Host,ALL_MASK); atomKK->modified(Host,ALL_MASK); atomKK->setup(); @@ -124,8 +126,8 @@ void VerletKokkos::setup() if (pair_compute_flag) { atomKK->sync(force->pair->execution_space,force->pair->datamask_read); - atomKK->modified(force->pair->execution_space,force->pair->datamask_modify); force->pair->compute(eflag,vflag); + atomKK->modified(force->pair->execution_space,force->pair->datamask_modify); timer->stamp(Timer::PAIR); } else if (force->pair) force->pair->compute_dummy(eflag,vflag); @@ -134,23 +136,23 @@ void VerletKokkos::setup() if (atomKK->molecular) { if (force->bond) { atomKK->sync(force->bond->execution_space,force->bond->datamask_read); - atomKK->modified(force->bond->execution_space,force->bond->datamask_modify); force->bond->compute(eflag,vflag); + atomKK->modified(force->bond->execution_space,force->bond->datamask_modify); } if (force->angle) { atomKK->sync(force->angle->execution_space,force->angle->datamask_read); - atomKK->modified(force->angle->execution_space,force->angle->datamask_modify); force->angle->compute(eflag,vflag); + atomKK->modified(force->angle->execution_space,force->angle->datamask_modify); } if (force->dihedral) { atomKK->sync(force->dihedral->execution_space,force->dihedral->datamask_read); - atomKK->modified(force->dihedral->execution_space,force->dihedral->datamask_modify); force->dihedral->compute(eflag,vflag); + atomKK->modified(force->dihedral->execution_space,force->dihedral->datamask_modify); } if (force->improper) { atomKK->sync(force->improper->execution_space,force->improper->datamask_read); - atomKK->modified(force->improper->execution_space,force->improper->datamask_modify); force->improper->compute(eflag,vflag); + atomKK->modified(force->improper->execution_space,force->improper->datamask_modify); } timer->stamp(Timer::BOND); } @@ -159,17 +161,17 @@ void VerletKokkos::setup() force->kspace->setup(); if (kspace_compute_flag) { atomKK->sync(force->kspace->execution_space,force->kspace->datamask_read); - atomKK->modified(force->kspace->execution_space,force->kspace->datamask_modify); force->kspace->compute(eflag,vflag); + atomKK->modified(force->kspace->execution_space,force->kspace->datamask_modify); timer->stamp(Timer::KSPACE); } else force->kspace->compute_dummy(eflag,vflag); } - if (force->newton) comm->reverse_comm(); modify->setup(vflag); output->setup(); - update->setupflag = 0; + lmp->kokkos->auto_sync = 0; + update->setupflag = 1; } /* ---------------------------------------------------------------------- @@ -181,12 +183,14 @@ void VerletKokkos::setup() void VerletKokkos::setup_minimal(int flag) { update->setupflag = 1; + lmp->kokkos->auto_sync = 0; // setup domain, communication and neighboring // acquire ghosts // build neighbor lists if (flag) { + atomKK->sync(Host,ALL_MASK); atomKK->modified(Host,ALL_MASK); modify->setup_pre_exchange(); @@ -226,8 +230,8 @@ void VerletKokkos::setup_minimal(int flag) if (pair_compute_flag) { atomKK->sync(force->pair->execution_space,force->pair->datamask_read); - atomKK->modified(force->pair->execution_space,force->pair->datamask_modify); force->pair->compute(eflag,vflag); + atomKK->modified(force->pair->execution_space,force->pair->datamask_modify); timer->stamp(Timer::PAIR); } else if (force->pair) force->pair->compute_dummy(eflag,vflag); @@ -236,23 +240,23 @@ void VerletKokkos::setup_minimal(int flag) if (atomKK->molecular) { if (force->bond) { atomKK->sync(force->bond->execution_space,force->bond->datamask_read); - atomKK->modified(force->bond->execution_space,force->bond->datamask_modify); force->bond->compute(eflag,vflag); + atomKK->modified(force->bond->execution_space,force->bond->datamask_modify); } if (force->angle) { atomKK->sync(force->angle->execution_space,force->angle->datamask_read); - atomKK->modified(force->angle->execution_space,force->angle->datamask_modify); force->angle->compute(eflag,vflag); + atomKK->modified(force->angle->execution_space,force->angle->datamask_modify); } if (force->dihedral) { atomKK->sync(force->dihedral->execution_space,force->dihedral->datamask_read); - atomKK->modified(force->dihedral->execution_space,force->dihedral->datamask_modify); force->dihedral->compute(eflag,vflag); + atomKK->modified(force->dihedral->execution_space,force->dihedral->datamask_modify); } if (force->improper) { atomKK->sync(force->improper->execution_space,force->improper->datamask_read); - atomKK->modified(force->improper->execution_space,force->improper->datamask_modify); force->improper->compute(eflag,vflag); + atomKK->modified(force->improper->execution_space,force->improper->datamask_modify); } timer->stamp(Timer::BOND); } @@ -261,8 +265,8 @@ void VerletKokkos::setup_minimal(int flag) force->kspace->setup(); if (kspace_compute_flag) { atomKK->sync(force->kspace->execution_space,force->kspace->datamask_read); - atomKK->modified(force->kspace->execution_space,force->kspace->datamask_modify); force->kspace->compute(eflag,vflag); + atomKK->modified(force->kspace->execution_space,force->kspace->datamask_modify); timer->stamp(Timer::KSPACE); } else force->kspace->compute_dummy(eflag,vflag); } @@ -270,6 +274,7 @@ void VerletKokkos::setup_minimal(int flag) if (force->newton) comm->reverse_comm(); modify->setup(vflag); + lmp->kokkos->auto_sync = 1; update->setupflag = 0; } @@ -289,6 +294,8 @@ void VerletKokkos::run(int n) int n_post_force = modify->n_post_force; int n_end_of_step = modify->n_end_of_step; + lmp->kokkos->auto_sync = 0; + if (atomKK->sortfreq > 0) sortflag = 1; else sortflag = 0; @@ -453,11 +460,11 @@ void VerletKokkos::run(int n) if (pair_compute_flag) { atomKK->sync(force->pair->execution_space,force->pair->datamask_read); - atomKK->modified(force->pair->execution_space,force->pair->datamask_modify); atomKK->sync(force->pair->execution_space,~(~force->pair->datamask_read|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); - atomKK->modified(force->pair->execution_space,~(~force->pair->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); Kokkos::Impl::Timer ktimer; force->pair->compute(eflag,vflag); + atomKK->modified(force->pair->execution_space,force->pair->datamask_modify); + atomKK->modified(force->pair->execution_space,~(~force->pair->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); timer->stamp(Timer::PAIR); } @@ -473,31 +480,31 @@ void VerletKokkos::run(int n) if (atomKK->molecular) { if (force->bond) { atomKK->sync(force->bond->execution_space,~(~force->bond->datamask_read|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); - atomKK->modified(force->bond->execution_space,~(~force->bond->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); force->bond->compute(eflag,vflag); + atomKK->modified(force->bond->execution_space,~(~force->bond->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); } if (force->angle) { atomKK->sync(force->angle->execution_space,~(~force->angle->datamask_read|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); - atomKK->modified(force->angle->execution_space,~(~force->angle->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); force->angle->compute(eflag,vflag); + atomKK->modified(force->angle->execution_space,~(~force->angle->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); } if (force->dihedral) { atomKK->sync(force->dihedral->execution_space,~(~force->dihedral->datamask_read|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); - atomKK->modified(force->dihedral->execution_space,~(~force->dihedral->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); force->dihedral->compute(eflag,vflag); + atomKK->modified(force->dihedral->execution_space,~(~force->dihedral->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); } if (force->improper) { atomKK->sync(force->improper->execution_space,~(~force->improper->datamask_read|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); - atomKK->modified(force->improper->execution_space,~(~force->improper->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); force->improper->compute(eflag,vflag); + atomKK->modified(force->improper->execution_space,~(~force->improper->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); } timer->stamp(Timer::BOND); } if (kspace_compute_flag) { atomKK->sync(force->kspace->execution_space,~(~force->kspace->datamask_read|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); - atomKK->modified(force->kspace->execution_space,~(~force->kspace->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); force->kspace->compute(eflag,vflag); + atomKK->modified(force->kspace->execution_space,~(~force->kspace->datamask_modify|(F_MASK | ENERGY_MASK | VIRIAL_MASK))); timer->stamp(Timer::KSPACE); } @@ -509,6 +516,7 @@ void VerletKokkos::run(int n) Kokkos::deep_copy(LMPHostType(),f_merge_copy,atomKK->k_f.h_view); Kokkos::parallel_for(atomKK->k_f.dimension_0(), ForceAdder<DAT::t_f_array,DAT::t_f_array>(atomKK->k_f.d_view,f_merge_copy)); + atomKK->k_f.modified_host() = 0; // special case atomKK->k_f.modify<LMPDeviceType>(); } @@ -535,6 +543,9 @@ void VerletKokkos::run(int n) timer->stamp(Timer::OUTPUT); } } + + atomKK->sync(Host,ALL_MASK); + lmp->kokkos->auto_sync = 1; } /* ---------------------------------------------------------------------- @@ -561,8 +572,9 @@ void VerletKokkos::force_clear() if (nbytes) { if (atomKK->k_f.modified_host() > atomKK->k_f.modified_device()) { - memset_kokkos(atomKK->k_f.view<LMPHostType>()); - atomKK->modified(Host,F_MASK); + memset_kokkos(atomKK->k_f.view<LMPHostType>()); + atomKK->modified(Host,F_MASK); + atomKK->sync(Device,F_MASK); } else { memset_kokkos(atomKK->k_f.view<LMPDeviceType>()); atomKK->modified(Device,F_MASK); diff --git a/src/MANYBODY/pair_airebo.cpp b/src/MANYBODY/pair_airebo.cpp index 2bb1c1da22..51cf221668 100644 --- a/src/MANYBODY/pair_airebo.cpp +++ b/src/MANYBODY/pair_airebo.cpp @@ -155,6 +155,11 @@ void PairAIREBO::settings(int narg, char **arg) ljflag = force->inumeric(FLERR,arg[1]); torflag = force->inumeric(FLERR,arg[2]); } + + // this one parameter for C-C interactions is different in AIREBO vs REBO + // see Favata, Micheletti, Ryu, Pugno, Comp Phys Comm (2016) + + PCCf_2_0 = -0.0276030; } /* ---------------------------------------------------------------------- @@ -4090,7 +4095,12 @@ void PairAIREBO::spline_init() PCCf[0][3] = 0.0161253646; PCCf[1][1] = -0.010960; PCCf[1][2] = 0.00632624824; - PCCf[2][0] = -0.0276030; + + // this one parameter for C-C interactions is different in REBO vs AIREBO + // see Favata, Micheletti, Ryu, Pugno, Comp Phys Comm (2016) + + PCCf[2][0] = PCCf_2_0; + PCCf[2][1] = 0.00317953083; PCHf[0][1] = 0.209336733; diff --git a/src/MANYBODY/pair_airebo.h b/src/MANYBODY/pair_airebo.h index 06bf6da554..e927794ec0 100644 --- a/src/MANYBODY/pair_airebo.h +++ b/src/MANYBODY/pair_airebo.h @@ -70,6 +70,7 @@ class PairAIREBO : public Pair { double epsilon[2][2],sigma[2][2],epsilonT[2][2]; // parameters for Morse variant + double epsilonM[2][2],alphaM[2][2],reqM[2][2]; // spline coefficients @@ -82,6 +83,7 @@ class PairAIREBO : public Pair { // spline knot values + double PCCf_2_0; double PCCf[5][5],PCCdfdx[5][5],PCCdfdy[5][5],PCHf[5][5]; double PCHdfdx[5][5],PCHdfdy[5][5]; double piCCf[5][5][11],piCCdfdx[5][5][11]; diff --git a/src/MANYBODY/pair_rebo.cpp b/src/MANYBODY/pair_rebo.cpp index 5b28eae4dd..1cec1aef40 100644 --- a/src/MANYBODY/pair_rebo.cpp +++ b/src/MANYBODY/pair_rebo.cpp @@ -30,4 +30,9 @@ void PairREBO::settings(int narg, char **arg) cutlj = 0.0; ljflag = torflag = 0; + + // this one parameter for C-C interactions is different in REBO vs AIREBO + // see Favata, Micheletti, Ryu, Pugno, Comp Phys Comm (2016) + + PCCf_2_0 = 0.0; } diff --git a/src/accelerator_kokkos.h b/src/accelerator_kokkos.h index 2a787ef116..a98263fad0 100644 --- a/src/accelerator_kokkos.h +++ b/src/accelerator_kokkos.h @@ -58,6 +58,8 @@ class AtomKokkos : public Atom { tagint **k_special; AtomKokkos(class LAMMPS *lmp) : Atom(lmp) {} ~AtomKokkos() {} + void sync(const ExecutionSpace space, unsigned int mask) {} + void modified(const ExecutionSpace space, unsigned int mask) {} }; class CommKokkos : public CommBrick { diff --git a/src/fix.cpp b/src/fix.cpp index 9918e40e0f..fbb7450225 100644 --- a/src/fix.cpp +++ b/src/fix.cpp @@ -101,6 +101,7 @@ id(NULL), style(NULL), eatom(NULL), vatom(NULL) datamask_read = ALL_MASK; datamask_modify = ALL_MASK; + kokkosable = 0; copymode = 0; } diff --git a/src/fix.h b/src/fix.h index 62cb565b15..65ababf287 100644 --- a/src/fix.h +++ b/src/fix.h @@ -96,6 +96,7 @@ class Fix : protected Pointers { // KOKKOS host/device flag and data masks + int kokkosable; // 1 if Kokkos fix ExecutionSpace execution_space; unsigned int datamask_read,datamask_modify; diff --git a/src/region.cpp b/src/region.cpp index ea0b6f1bc5..08505d1ba5 100644 --- a/src/region.cpp +++ b/src/region.cpp @@ -20,6 +20,7 @@ #include "lattice.h" #include "input.h" #include "variable.h" +#include "math_extra.h" #include "error.h" #include "force.h" @@ -41,7 +42,15 @@ Region::Region(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) xstr = ystr = zstr = tstr = NULL; dx = dy = dz = 0.0; + // used by set_velocity() even if no rotation specified + + point[0] = point[1] = point[2] = 0.0; + + size_restart = 5; + reset_vel(); copymode = 0; + list = NULL; + nregion = 1; } /* ---------------------------------------------------------------------- */ @@ -87,6 +96,7 @@ void Region::init() if (!input->variable->equalstyle(tvar)) error->all(FLERR,"Variable for region is not equal style"); } + vel_timestep = -1; } /* ---------------------------------------------------------------------- @@ -103,9 +113,9 @@ int Region::dynamic_check() /* ---------------------------------------------------------------------- called before looping over atoms with match() or surface() this insures any variables used by region are invoked once per timestep - also insures variables are invoked by all procs even those w/out atoms + also insures variables are invoked by all procs even those w/out atoms necessary if equal-style variable invokes global operation - with MPI_Allreduce, e.g. xcm() or count() + with MPI_Allreduce, e.g. xcm() or count() ------------------------------------------------------------------------- */ void Region::prematch() @@ -129,6 +139,7 @@ void Region::prematch() int Region::match(double x, double y, double z) { if (dynamic) inverse_transform(x,y,z); + if (openflag) return 1; return !(inside(x,y,z) ^ interior); } @@ -170,8 +181,15 @@ int Region::surface(double x, double y, double z, double cutoff) xnear[1] = y; xnear[2] = z; - if (interior) ncontact = surface_interior(xnear,cutoff); - else ncontact = surface_exterior(xnear,cutoff); + if (!openflag) { + if (interior) ncontact = surface_interior(xnear,cutoff); + else ncontact = surface_exterior(xnear,cutoff); + } + else{ + // one of surface_int/ext() will return 0 + // so no need to worry about offset of contact indices + ncontact = surface_exterior(xnear,cutoff) + surface_interior(xnear,cutoff); + } if (rotateflag && ncontact) { for (int i = 0; i < ncontact; i++) { @@ -200,6 +218,7 @@ void Region::add_contact(int n, double *x, double xp, double yp, double zp) double dely = x[1] - yp; double delz = x[2] - zp; contact[n].r = sqrt(delx*delx + dely*dely + delz*delz); + contact[n].radius = 0; contact[n].delx = delx; contact[n].dely = dely; contact[n].delz = delz; @@ -307,6 +326,9 @@ void Region::options(int narg, char **arg) scaleflag = 1; moveflag = rotateflag = 0; + openflag = 0; + for (int i = 0; i < 6; i++) open_faces[i] = 0; + int iarg = 0; while (iarg < narg) { if (strcmp(arg[iarg],"units") == 0) { @@ -363,9 +385,20 @@ void Region::options(int narg, char **arg) axis[2] = force->numeric(FLERR,arg[iarg+7]); rotateflag = 1; iarg += 8; - } else error->all(FLERR,"Illegal region command"); + + } else if (strcmp(arg[iarg],"open") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal region command"); + int iface = force->inumeric(FLERR,arg[iarg+1]); + if (iface < 1 || iface > 6) error->all(FLERR,"Illegal region command"); + // additional checks on valid face index are done by region classes + open_faces[iface-1] = 1; + openflag = 1; + iarg += 2; + } + else error->all(FLERR,"Illegal region command"); } + // error check if ((moveflag || rotateflag) && @@ -401,3 +434,140 @@ void Region::options(int narg, char **arg) if (moveflag || rotateflag) dynamic = 1; else dynamic = 0; } + +/* ---------------------------------------------------------------------- + find nearest point to C on line segment A,B and return it as D + project (C-A) onto (B-A) + t = length of that projection, normalized by length of (B-A) + t <= 0, C is closest to A + t >= 1, C is closest to B + else closest point is between A and B +------------------------------------------------------------------------- */ + +void Region::point_on_line_segment(double *a, double *b, + double *c, double *d) +{ + double ba[3],ca[3]; + + MathExtra::sub3(b,a,ba); + MathExtra::sub3(c,a,ca); + double t = MathExtra::dot3(ca,ba) / MathExtra::dot3(ba,ba); + if (t <= 0.0) { + d[0] = a[0]; + d[1] = a[1]; + d[2] = a[2]; + } else if (t >= 1.0) { + d[0] = b[0]; + d[1] = b[1]; + d[2] = b[2]; + } else { + d[0] = a[0] + t*ba[0]; + d[1] = a[1] + t*ba[1]; + d[2] = a[2] + t*ba[2]; + } +} + +/* ---------------------------------------------------------------------- + infer translational and angular velocity of region + necessary b/c motion variables are for displacement & theta + there is no analytic formula for v & omega + prev[4] contains values of dx,dy,dz,theta at previous step + used for difference, then updated to current step values + dt is time elapsed since previous step + rpoint = point updated by current displacement + called by fix wall/gran/region every timestep +------------------------------------------------------------------------- */ + +void Region::set_velocity() +{ + if (vel_timestep == update->ntimestep) return; + vel_timestep = update->ntimestep; + if (moveflag) { + if (update->ntimestep > 0) { + v[0] = (dx - prev[0])/update->dt; + v[1] = (dy - prev[1])/update->dt; + v[2] = (dz - prev[2])/update->dt; + } + else v[0] = v[1] = v[2] = 0.0; + prev[0] = dx; + prev[1] = dy; + prev[2] = dz; + } + + if (rotateflag) { + rpoint[0] = point[0] + dx; + rpoint[1] = point[1] + dy; + rpoint[2] = point[2] + dz; + if (update->ntimestep > 0) { + double angvel = (theta-prev[3]) / update->dt; + omega[0] = angvel*axis[0]; + omega[1] = angvel*axis[1]; + omega[2] = angvel*axis[2]; + } + else omega[0] = omega[1] = omega[2] = 0.0; + prev[3] = theta; + } + + if (varshape){ + set_velocity_shape(); + } +} + +/* ---------------------------------------------------------------------- + compute velocity of wall for given contact + since contacts only store delx/y/z, need to pass particle coords + to compute contact point + called by fix/wall/gran/region every contact every timestep +------------------------------------------------------------------------- */ + +void Region::velocity_contact(double *vwall, double *x, int ic) +{ + Contact c = contact[ic]; + double xc[3]; + xc[0] = x[0] - contact[ic].delx; + xc[1] = x[1] - contact[ic].dely; + xc[2] = x[2] - contact[ic].delz; + + vwall[0] = v[0] + omega[1]*(xc[2] - rpoint[2]) - omega[2]*(xc[1] - rpoint[1]); + vwall[1] = v[1] + omega[2]*(xc[0] - rpoint[0]) - omega[0]*(xc[2] - rpoint[2]); + vwall[2] = v[2] + omega[0]*(xc[1] - rpoint[1]) - omega[1]*(xc[0] - rpoint[0]); + + if (varshape && contact[ic].varflag) velocity_contact_shape(vwall,xc); +} + +/* ---------------------------------------------------------------------- + region writes its current position/angle + needed by fix/wall/gran/region to compute velocity by differencing scheme +------------------------------------------------------------------------- */ + +void Region::write_restart(FILE *fp) +{ + fwrite(prev, sizeof(double), size_restart, fp); +} + +/* ---------------------------------------------------------------------- + region reads its previous position/angle + needed by fix/wall/gran/region to compute velocity by differencing scheme +------------------------------------------------------------------------- */ + +int Region::restart(char *buf, int n) +{ + char *rlist = new char[size_restart*sizeof(double)]; + for (int i = 0; i < size_restart*sizeof(double); i++) + rlist[i] = buf[n++]; + for (int i = 0; i < size_restart; i++) { + prev[i] = ((double *)rlist)[i]; + } + delete [] rlist; + return n; +} + +/* ---------------------------------------------------------------------- + set prev vector to zero +------------------------------------------------------------------------- */ + +void Region::reset_vel() +{ + for (int i = 0; i < size_restart; i++) + prev[i] = 0; +} diff --git a/src/region.h b/src/region.h index d330a9bf3e..4b53c4e23b 100644 --- a/src/region.h +++ b/src/region.h @@ -31,17 +31,44 @@ class Region : protected Pointers { int bboxflag; // 1 if bounding box is computable int varshape; // 1 if region shape changes over time int dynamic; // 1 if position/orient changes over time + int moveflag,rotateflag; // 1 if position/orientation changes + int openflag; // 1 if any face is open + int open_faces[6]; // flags for which faces are open int copymode; // 1 if copy of original class - // contact = particle near region surface + // contact = particle near region surface (for soft interactions) + // touch = particle touching region surface (for granular interactions) struct Contact { double r; // distance between particle & surf, r > 0.0 double delx,dely,delz; // vector from surface pt to particle + double radius; // curvature of region at contact point + int iwall; // unique id of wall for storing shear history + int varflag; // 1 if wall can be variable-controlled }; Contact *contact; // list of contacts int cmax; // max # of contacts possible with region + int tmax; // max # of touching contacts possible + + // motion attributes of region + // public so can be accessed by other classes + + double dx,dy,dz,theta; // current displacement and orientation + double v[3]; // translational velocity + double rpoint[3]; // current origin of rotation axis + double omega[3]; // angular velocity + double rprev; // speed of time-dependent radius, if applicable + double xcenter[3]; // translated/rotated center of cylinder/sphere + // only used with varshape + double prev[5]; // stores displacement (X3), angle and if + // necessary, region variable size (e.g. radius) + // at previous time step + int vel_timestep; // store timestep at which set_velocity was called + // prevents multiple fix/wall/gran/region calls + int nregion; // For union and intersect + int size_restart; + int *list; Region(class LAMMPS *, int, char **); virtual ~Region(); @@ -54,6 +81,12 @@ class Region : protected Pointers { int match(double, double, double); int surface(double, double, double, double); + virtual void set_velocity(); + void velocity_contact(double *, double *, int); + virtual void write_restart(FILE *); + virtual int restart(char *, int); + virtual void reset_vel(); + // implemented by each region, not called by other classes virtual int inside(double, double, double) = 0; @@ -61,6 +94,8 @@ class Region : protected Pointers { virtual int surface_exterior(double *, double) = 0; virtual void shape_update() {} virtual void pretransform(); + virtual void set_velocity_shape() {} + virtual void velocity_contact_shape(double*, double*) {} // Kokkos function, implemented by each Kokkos region @@ -69,15 +104,14 @@ class Region : protected Pointers { protected: void add_contact(int, double *, double, double, double); void options(int, char **); + void point_on_line_segment(double *, double *, double *, double *); + void forward_transform(double &, double &, double &); - int moveflag,rotateflag; // 1 if position/orientation changes - - double point[3],axis[3],runit[3]; + private: char *xstr,*ystr,*zstr,*tstr; int xvar,yvar,zvar,tvar; - double dx,dy,dz,theta; + double axis[3],point[3],runit[3]; - void forward_transform(double &, double &, double &); void inverse_transform(double &, double &, double &); void rotate(double &, double &, double &, double); }; @@ -100,10 +134,6 @@ E: Variable for region is not equal style Self-explanatory. -E: Can only use Kokkos supported regions with Kokkos package - -Self-explanatory. - E: Illegal ... command Self-explanatory. Check the input script syntax and compare to the diff --git a/src/region_block.cpp b/src/region_block.cpp index f866903f3d..f48aa5af89 100644 --- a/src/region_block.cpp +++ b/src/region_block.cpp @@ -14,9 +14,10 @@ #include <stdlib.h> #include <string.h> #include "region_block.h" +#include "force.h" #include "domain.h" +#include "math_extra.h" #include "error.h" -#include "force.h" using namespace LAMMPS_NS; @@ -94,9 +95,91 @@ RegBlock::RegBlock(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) } else bboxflag = 0; // particle could be close to all 6 planes + // particle can only touch 3 planes cmax = 6; contact = new Contact[cmax]; + if (interior) tmax = 3; + else tmax = 1; + + // open face data structs + + face[0][0] = -1.0; + face[0][1] = 0.0; + face[0][2] = 0.0; + face[1][0] = 1.0; + face[1][1] = 0.0; + face[1][2] = 0.0; + face[2][0] = 0.0; + face[2][1] = -1.0; + face[2][2] = 0.0; + face[3][0] = 0.0; + face[3][1] = 1.0; + face[3][2] = 0.0; + face[4][0] = 0.0; + face[4][1] = 0.0; + face[4][2] = -1.0; + face[5][0] = 0.0; + face[5][1] = 0.0; + face[5][2] = 1.0; + + // face[0] + + corners[0][0][0] = xlo; + corners[0][0][1] = ylo; + corners[0][0][2] = zlo; + corners[0][1][0] = xlo; + corners[0][1][1] = ylo; + corners[0][1][2] = zhi; + corners[0][2][0] = xlo; + corners[0][2][1] = yhi; + corners[0][2][2] = zhi; + corners[0][3][0] = xlo; + corners[0][3][1] = yhi; + corners[0][3][2] = zlo; + + // face[1] + + corners[1][0][0] = xhi; + corners[1][0][1] = ylo; + corners[1][0][2] = zlo; + corners[1][1][0] = xhi; + corners[1][1][1] = ylo; + corners[1][1][2] = zhi; + corners[1][2][0] = xhi; + corners[1][2][1] = yhi; + corners[1][2][2] = zhi; + corners[1][3][0] = xhi; + corners[1][3][1] = yhi; + corners[1][3][2] = zlo; + + // face[2] + + MathExtra::copy3(corners[2][0],corners[0][0]); + MathExtra::copy3(corners[2][1],corners[1][0]); + MathExtra::copy3(corners[2][2],corners[1][1]); + MathExtra::copy3(corners[2][3],corners[0][1]); + + // face[3] + + MathExtra::copy3(corners[3][0],corners[0][3]); + MathExtra::copy3(corners[3][1],corners[0][2]); + MathExtra::copy3(corners[3][2],corners[1][2]); + MathExtra::copy3(corners[3][3],corners[1][3]); + + // face[4] + + MathExtra::copy3(corners[4][0],corners[0][0]); + MathExtra::copy3(corners[4][1],corners[0][3]); + MathExtra::copy3(corners[4][2],corners[1][3]); + MathExtra::copy3(corners[4][3],corners[1][0]); + + // face[5] + + MathExtra::copy3(corners[5][0],corners[0][1]); + MathExtra::copy3(corners[5][1],corners[1][1]); + MathExtra::copy3(corners[5][2],corners[1][2]); + MathExtra::copy3(corners[5][3],corners[0][2]); } /* ---------------------------------------------------------------------- */ @@ -141,47 +224,59 @@ int RegBlock::surface_interior(double *x, double cutoff) int n = 0; delta = x[0] - xlo; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[0]) { contact[n].r = delta; contact[n].delx = delta; contact[n].dely = contact[n].delz = 0.0; + contact[n].radius = 0; + contact[n].iwall = 0; n++; } delta = xhi - x[0]; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[1]) { contact[n].r = delta; contact[n].delx = -delta; contact[n].dely = contact[n].delz = 0.0; + contact[n].radius = 0; + contact[n].iwall = 1; n++; } delta = x[1] - ylo; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[2]) { contact[n].r = delta; contact[n].dely = delta; contact[n].delx = contact[n].delz = 0.0; + contact[n].radius = 0; + contact[n].iwall = 2; n++; } delta = yhi - x[1]; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[3]) { contact[n].r = delta; contact[n].dely = -delta; contact[n].delx = contact[n].delz = 0.0; + contact[n].radius = 0; + contact[n].iwall = 3; n++; } delta = x[2] - zlo; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[4]) { contact[n].r = delta; contact[n].delz = delta; contact[n].delx = contact[n].dely = 0.0; + contact[n].radius = 0; + contact[n].iwall = 4; n++; } delta = zhi - x[2]; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[5]) { contact[n].r = delta; contact[n].delz = -delta; contact[n].delx = contact[n].dely = 0.0; + contact[n].radius = 0; + contact[n].iwall = 5; n++; } @@ -197,6 +292,7 @@ int RegBlock::surface_interior(double *x, double cutoff) int RegBlock::surface_exterior(double *x, double cutoff) { double xp,yp,zp; + double xc,yc,zc,dist,mindist; // x is far enough from block that there is no contact // x is interior to block @@ -212,17 +308,129 @@ int RegBlock::surface_exterior(double *x, double cutoff) // could be edge or corner pt of block // do not add contact point if r >= cutoff - if (x[0] < xlo) xp = xlo; - else if (x[0] > xhi) xp = xhi; - else xp = x[0]; - if (x[1] < ylo) yp = ylo; - else if (x[1] > yhi) yp = yhi; - else yp = x[1]; - if (x[2] < zlo) zp = zlo; - else if (x[2] > zhi) zp = zhi; - else zp = x[2]; + if (!openflag){ + if (x[0] < xlo) xp = xlo; + else if (x[0] > xhi) xp = xhi; + else xp = x[0]; + if (x[1] < ylo) yp = ylo; + else if (x[1] > yhi) yp = yhi; + else yp = x[1]; + if (x[2] < zlo) zp = zlo; + else if (x[2] > zhi) zp = zhi; + else zp = x[2]; + } + else{ + mindist = BIG; + for (int i = 0; i < 6; i++){ + if (open_faces[i]) continue; + dist = find_closest_point(i,x,xc,yc,zc); + if (dist < mindist){ + xp = xc; + yp = yc; + zp = zc; + mindist = dist; + } + } + } add_contact(0,x,xp,yp,zp); + contact[0].iwall = 0; if (contact[0].r < cutoff) return 1; return 0; } + +/*------------------------------------------------------------------------ + return distance to closest point on surface I of block region + store closest point in xc,yc,zc +--------------------------------------------------------------------------*/ + +double RegBlock::find_closest_point(int i, double *x, + double &xc, double &yc, double &zc) +{ + double dot,d2,d2min; + double xr[3],xproj[3],p[3]; + + xr[0] = x[0] - corners[i][0][0]; + xr[1] = x[1] - corners[i][0][1]; + xr[2] = x[2] - corners[i][0][2]; + dot = face[i][0]*xr[0] + face[i][1]*xr[1] + face[i][2]*xr[2]; + xproj[0] = xr[0] - dot*face[i][0]; + xproj[1] = xr[1] - dot*face[i][1]; + xproj[2] = xr[2] - dot*face[i][2]; + + d2min = BIG; + + // check if point projects inside of face + + if (inside_face(xproj, i)){ + d2 = d2min = dot*dot; + xc = xproj[0] + corners[i][0][0]; + yc = xproj[1] + corners[i][0][1]; + zc = xproj[2] + corners[i][0][2]; + + // check each edge + + } else { + point_on_line_segment(corners[i][0],corners[i][1],x,p); + d2 = (p[0]-x[0])*(p[0]-x[0]) + (p[1]-x[1])*(p[1]-x[1]) + + (p[2]-x[2])*(p[2]-x[2]); + if (d2 < d2min) { + d2min = d2; + xc = p[0]; + yc = p[1]; + zc = p[2]; + } + + point_on_line_segment(corners[i][1],corners[i][2],x,p); + d2 = (p[0]-x[0])*(p[0]-x[0]) + (p[1]-x[1])*(p[1]-x[1]) + + (p[2]-x[2])*(p[2]-x[2]); + if (d2 < d2min) { + d2min = d2; + xc = p[0]; + yc = p[1]; + zc = p[2]; + } + + point_on_line_segment(corners[i][2],corners[i][3],x,p); + d2 = (p[0]-x[0])*(p[0]-x[0]) + (p[1]-x[1])*(p[1]-x[1]) + + (p[2]-x[2])*(p[2]-x[2]); + if (d2 < d2min) { + d2min = d2; + xc = p[0]; + yc = p[1]; + zc = p[2]; + } + + point_on_line_segment(corners[i][3],corners[i][4],x,p); + d2 = (p[0]-x[0])*(p[0]-x[0]) + (p[1]-x[1])*(p[1]-x[1]) + + (p[2]-x[2])*(p[2]-x[2]); + if (d2 < d2min) { + d2min = d2; + xc = p[0]; + yc = p[1]; + zc = p[2]; + } + } + + return d2min; +} + +/*------------------------------------------------------------------------ + determine if projected point is inside given face of the block +--------------------------------------------------------------------------*/ + +int RegBlock::inside_face(double *xproj, int iface) +{ + if (iface < 2) { + if (xproj[1] > 0 && (xproj[1] < yhi-ylo) && + xproj[2] > 0 && (xproj[2] < zhi-zlo)) return 1; + } else if (iface < 4) { + if (xproj[0] > 0 && (xproj[0] < (xhi-xlo)) && + xproj[2] > 0 && (xproj[2] < (zhi-zlo))) return 1; + } else { + if (xproj[0] > 0 && xproj[0] < (xhi-xlo) && + xproj[1] > 0 && xproj[1] < (yhi-ylo)) return 1; + } + + return 0; +} diff --git a/src/region_block.h b/src/region_block.h index fb9dcb3f5e..7989ddb8af 100644 --- a/src/region_block.h +++ b/src/region_block.h @@ -36,6 +36,11 @@ class RegBlock : public Region { protected: double xlo,xhi,ylo,yhi,zlo,zhi; + double corners[6][4][3]; + double face[6][3]; + + double find_closest_point(int, double *, double &, double &, double &); + int inside_face(double *, int); }; } diff --git a/src/region_cone.cpp b/src/region_cone.cpp index bc3197a02d..786b92d3b7 100644 --- a/src/region_cone.cpp +++ b/src/region_cone.cpp @@ -34,6 +34,11 @@ RegCone::RegCone(LAMMPS *lmp, int narg, char **arg) : { options(narg-9,&arg[9]); + // check open face settings + + if (openflag && (open_faces[3] || open_faces[4] || open_faces[5])) + error->all(FLERR,"Invalid region cone open setting"); + if (strcmp(arg[2],"x") && strcmp(arg[2],"y") && strcmp(arg[2],"z")) error->all(FLERR,"Illegal region cylinder command"); axis = arg[2][0]; @@ -118,7 +123,6 @@ RegCone::RegCone(LAMMPS *lmp, int narg, char **arg) : if (interior) { bboxflag = 1; - if (axis == 'x') { extent_xlo = lo; extent_xhi = hi; @@ -145,10 +149,13 @@ RegCone::RegCone(LAMMPS *lmp, int narg, char **arg) : } } else bboxflag = 0; - // particle could be contact cone surface and 2 ends + // particle could be close to cone surface and 2 ends + // particle can only touch surface and 1 end cmax = 3; contact = new Contact[cmax]; + if (interior) tmax = 2; + else tmax = 1; } /* ---------------------------------------------------------------------- */ @@ -167,7 +174,7 @@ int RegCone::inside(double x, double y, double z) { double del1,del2,dist; double currentradius; - int inside = 0; + int inside; if (axis == 'x') { del1 = y - c1; @@ -226,7 +233,7 @@ int RegCone::surface_interior(double *x, double cutoff) // surflo = pt on outer circle of bottom end plane, same dir as x vs axis // surfhi = pt on outer circle of top end plane, same dir as x vs axis - if (r > 0.0) { + if (r > 0.0 && !open_faces[2]) { surflo[0] = lo; surflo[1] = c1 + del1*radiuslo/r; surflo[2] = c2 + del2*radiuslo/r; @@ -243,22 +250,29 @@ int RegCone::surface_interior(double *x, double cutoff) contact[n].delx = delx; contact[n].dely = dely; contact[n].delz = delz; + contact[n].radius = -2.0*(radiuslo + (xs[0]-lo)* + (radiushi-radiuslo)/(hi-lo)); + contact[n].iwall = 2; n++; } } delta = x[0] - lo; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[0]) { contact[n].r = delta; contact[n].delx = delta; contact[n].dely = contact[n].delz = 0.0; + contact[n].radius = 0; + contact[n].iwall = 0; n++; } delta = hi - x[0]; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[1]) { contact[n].r = delta; contact[n].delx = -delta; contact[n].dely = contact[n].delz = 0.0; + contact[n].radius = 0; + contact[n].iwall = 1; n++; } @@ -266,7 +280,8 @@ int RegCone::surface_interior(double *x, double cutoff) del1 = x[0] - c1; del2 = x[2] - c2; r = sqrt(del1*del1 + del2*del2); - currentradius = radiuslo + (x[1]-lo)*(radiushi-radiuslo)/(hi-lo); + currentradius = radiuslo + (x[1]-lo)* + (radiushi-radiuslo)/(hi-lo); // y is exterior to cone @@ -276,7 +291,7 @@ int RegCone::surface_interior(double *x, double cutoff) // surflo = pt on outer circle of bottom end plane, same dir as y vs axis // surfhi = pt on outer circle of top end plane, same dir as y vs axis - if (r > 0.0) { + if (r > 0.0 && !open_faces[2]) { surflo[0] = c1 + del1*radiuslo/r; surflo[1] = lo; surflo[2] = c2 + del2*radiuslo/r; @@ -293,22 +308,29 @@ int RegCone::surface_interior(double *x, double cutoff) contact[n].delx = delx; contact[n].dely = dely; contact[n].delz = delz; + contact[n].iwall = 2; + contact[n].radius = -2.0*(radiuslo + (xs[1]-lo)* + (radiushi-radiuslo)/(hi-lo)); n++; } } delta = x[1] - lo; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[0]) { contact[n].r = delta; contact[n].delz = delta; contact[n].delx = contact[n].dely = 0.0; + contact[n].iwall = 0; + contact[n].radius = 0; n++; } delta = hi - x[1]; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[1]) { contact[n].r = delta; contact[n].delz = -delta; contact[n].delx = contact[n].dely = 0.0; + contact[n].iwall = 1; + contact[n].radius = 0; n++; } @@ -326,7 +348,7 @@ int RegCone::surface_interior(double *x, double cutoff) // surflo = pt on outer circle of bottom end plane, same dir as z vs axis // surfhi = pt on outer circle of top end plane, same dir as z vs axis - if (r > 0.0) { + if (r > 0.0 && !open_faces[2]) { surflo[0] = c1 + del1*radiuslo/r; surflo[1] = c2 + del2*radiuslo/r; surflo[2] = lo; @@ -343,22 +365,29 @@ int RegCone::surface_interior(double *x, double cutoff) contact[n].delx = delx; contact[n].dely = dely; contact[n].delz = delz; + contact[n].iwall = 2; + contact[n].radius = -2.0*(radiuslo + (xs[2]-lo)* + (radiushi-radiuslo)/(hi-lo)); n++; } } delta = x[2] - lo; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[0]) { contact[n].r = delta; contact[n].delz = delta; contact[n].delx = contact[n].dely = 0.0; + contact[n].iwall = 0; + contact[n].radius = 0; n++; } delta = hi - x[2]; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[1]) { contact[n].r = delta; contact[n].delz = -delta; contact[n].delx = contact[n].dely = 0.0; + contact[n].iwall = 1; + contact[n].radius = 0; n++; } } @@ -374,7 +403,7 @@ int RegCone::surface_interior(double *x, double cutoff) int RegCone::surface_exterior(double *x, double cutoff) { - double del1,del2,r,currentradius,distsq; + double del1,del2,r,currentradius,distsq,distsqprev,crad; double corner1[3],corner2[3],corner3[3],corner4[3],xp[3],nearest[3]; if (axis == 'x') { @@ -383,11 +412,15 @@ int RegCone::surface_exterior(double *x, double cutoff) r = sqrt(del1*del1 + del2*del2); currentradius = radiuslo + (x[0]-lo)*(radiushi-radiuslo)/(hi-lo); + // radius of curvature, only used for granular walls + + double crad = 0.0; + // x is far enough from cone that there is no contact // x is interior to cone - if (r >= maxradius+cutoff || - x[0] <= lo-cutoff || x[0] >= hi+cutoff) return 0; + if (r >= maxradius+cutoff || x[0] <= lo-cutoff || x[0] >= hi+cutoff) + return 0; if (r < currentradius && x[0] > lo && x[0] < hi) return 0; // x is exterior to cone or on its surface @@ -411,14 +444,31 @@ int RegCone::surface_exterior(double *x, double cutoff) corner4[2] = c2; distsq = BIG; - point_on_line_segment(corner1,corner2,x,xp); - distsq = closest(x,xp,nearest,distsq); - point_on_line_segment(corner1,corner3,x,xp); - distsq = closest(x,xp,nearest,distsq); - point_on_line_segment(corner2,corner4,x,xp); - distsq = closest(x,xp,nearest,distsq); + if (!open_faces[2]) { + point_on_line_segment(corner1,corner2,x,xp); + distsq = closest(x,xp,nearest,distsq); + crad = -2.0*(radiuslo + (nearest[0]-lo)*(radiushi-radiuslo)/(hi-lo)); + } + + if (!open_faces[0]) { + point_on_line_segment(corner1,corner3,x,xp); + distsqprev = distsq; + distsq = closest(x,xp,nearest,distsq); + if (distsq < distsqprev) crad = 0.0; + } + + if (!open_faces[1]) { + point_on_line_segment(corner2,corner4,x,xp); + distsqprev = distsq; + distsq = closest(x,xp,nearest,distsq); + if (distsq < distsqprev) crad = 0.0; + } + + if (distsq == BIG) return 0; add_contact(0,x,nearest[0],nearest[1],nearest[2]); + contact[0].radius = crad; + contact[0].iwall = 0; if (contact[0].r < cutoff) return 1; return 0; @@ -456,14 +506,30 @@ int RegCone::surface_exterior(double *x, double cutoff) corner4[2] = c2; distsq = BIG; - point_on_line_segment(corner1,corner2,x,xp); - distsq = closest(x,xp,nearest,distsq); - point_on_line_segment(corner1,corner3,x,xp); - distsq = closest(x,xp,nearest,distsq); - point_on_line_segment(corner2,corner4,x,xp); - distsq = closest(x,xp,nearest,distsq); + + if (!open_faces[2]){ + point_on_line_segment(corner1,corner2,x,xp); + distsq = closest(x,xp,nearest,distsq); + crad = -2.0*(radiuslo + (nearest[1]-lo)*(radiushi-radiuslo)/(hi-lo)); + } + + if (!open_faces[0]) { + point_on_line_segment(corner1,corner3,x,xp); + distsqprev = distsq; + distsq = closest(x,xp,nearest,distsq); + if (distsq < distsqprev) crad = 0; + } + + if (!open_faces[1]) { + point_on_line_segment(corner2,corner4,x,xp); + distsqprev = distsq; + distsq = closest(x,xp,nearest,distsq); + if (distsq < distsqprev) crad = 0; + } add_contact(0,x,nearest[0],nearest[1],nearest[2]); + contact[0].radius = crad; + contact[0].iwall = 0; if (contact[0].r < cutoff) return 1; return 0; @@ -476,8 +542,8 @@ int RegCone::surface_exterior(double *x, double cutoff) // z is far enough from cone that there is no contact // z is interior to cone - if (r >= maxradius+cutoff || - x[2] <= lo-cutoff || x[2] >= hi+cutoff) return 0; + if (r >= maxradius+cutoff || x[2] <= lo-cutoff || x[2] >= hi+cutoff) + return 0; if (r < currentradius && x[2] > lo && x[2] < hi) return 0; // z is exterior to cone or on its surface @@ -501,52 +567,35 @@ int RegCone::surface_exterior(double *x, double cutoff) corner4[2] = hi; distsq = BIG; - point_on_line_segment(corner1,corner2,x,xp); - distsq = closest(x,xp,nearest,distsq); - point_on_line_segment(corner1,corner3,x,xp); - distsq = closest(x,xp,nearest,distsq); - point_on_line_segment(corner2,corner4,x,xp); - distsq = closest(x,xp,nearest,distsq); + + if (!open_faces[2]){ + point_on_line_segment(corner1,corner2,x,xp); + distsq = closest(x,xp,nearest,distsq); + crad = -2.0*(radiuslo + (nearest[2]-lo)*(radiushi-radiuslo)/(hi-lo)); + } + + if (!open_faces[0]) { + point_on_line_segment(corner1,corner3,x,xp); + distsqprev = distsq; + distsq = closest(x,xp,nearest,distsq); + if (distsq < distsqprev) crad = 0; + } + + if (!open_faces[1]) { + point_on_line_segment(corner2,corner4,x,xp); + distsqprev = distsq; + distsq = closest(x,xp,nearest,distsq); + if (distsq < distsqprev) crad = 0; + } add_contact(0,x,nearest[0],nearest[1],nearest[2]); + contact[0].radius = crad; + contact[0].iwall = 0; if (contact[0].r < cutoff) return 1; return 0; } } -/* ---------------------------------------------------------------------- - find nearest point to C on line segment A,B and return it as D - project (C-A) onto (B-A) - t = length of that projection, normalized by length of (B-A) - t <= 0, C is closest to A - t >= 1, C is closest to B - else closest point is between A and B -------------------------------------------------------------------------- */ - -void RegCone::point_on_line_segment(double *a, double *b, - double *c, double *d) -{ - double ba[3],ca[3]; - - subtract(a,b,ba); - subtract(a,c,ca); - double t = dotproduct(ca,ba) / dotproduct(ba,ba); - - if (t <= 0.0) { - d[0] = a[0]; - d[1] = a[1]; - d[2] = a[2]; - } else if (t >= 1.0) { - d[0] = b[0]; - d[1] = b[1]; - d[2] = b[2]; - } else { - d[0] = a[0] + t*ba[0]; - d[1] = a[1] + t*ba[1]; - d[2] = a[2] + t*ba[2]; - } -} - /* ---------------------------------------------------------------------- */ double RegCone::closest(double *x, double *near, double *nearest, double dsq) @@ -562,23 +611,3 @@ double RegCone::closest(double *x, double *near, double *nearest, double dsq) nearest[2] = near[2]; return rsq; } - -/* ---------------------------------------------------------------------- - v3 = v2 - v1 -------------------------------------------------------------------------- */ - -void RegCone::subtract(double *v1, double *v2, double *v3) -{ - v3[0] = v2[0] - v1[0]; - v3[1] = v2[1] - v1[1]; - v3[2] = v2[2] - v1[2]; -} - -/* ---------------------------------------------------------------------- - return dotproduct = v1 dot v2 -------------------------------------------------------------------------- */ - -double RegCone::dotproduct(double *v1, double *v2) -{ - return (v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]); -} diff --git a/src/region_cone.h b/src/region_cone.h index 0f6ac71deb..62b2d05a8d 100644 --- a/src/region_cone.h +++ b/src/region_cone.h @@ -39,11 +39,7 @@ class RegCone : public Region { double lo,hi; double maxradius; - void point_on_line_segment(double *, double *, double *, double *); double closest(double *, double *, double *, double); - - void subtract(double *, double *, double *); - double dotproduct(double *, double *); }; } diff --git a/src/region_cylinder.cpp b/src/region_cylinder.cpp index b77ff2a881..b2935f22cb 100644 --- a/src/region_cylinder.cpp +++ b/src/region_cylinder.cpp @@ -34,6 +34,12 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : { options(narg-8,&arg[8]); + // check open face settings + + if (openflag && (open_faces[2] || open_faces[3] || + open_faces[4] || open_faces[5])) + error->all(FLERR,"Invalid region cylinder open setting"); + if (strcmp(arg[2],"x") && strcmp(arg[2],"y") && strcmp(arg[2],"z")) error->all(FLERR,"Illegal region cylinder command"); axis = arg[2][0]; @@ -61,7 +67,7 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : shape_update(); } else { radius = force->numeric(FLERR,arg[5]); - if (axis == 'x') radius *= yscale; + if (axis == 'x') radius *= xscale; else radius *= xscale; rstyle = CONSTANT; } @@ -149,10 +155,13 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) : } } else bboxflag = 0; - // particle could be contact cylinder surface and 2 ends + // particle could be close to cylinder surface and 2 ends + // particle can only touch surface and 1 end cmax = 3; contact = new Contact[cmax]; + if (interior) tmax = 2; + else tmax = 1; } /* ---------------------------------------------------------------------- */ @@ -230,25 +239,34 @@ int RegCylinder::surface_interior(double *x, double cutoff) // x is interior to cylinder or on its surface delta = radius - r; - if (delta < cutoff && r > 0.0) { + if (delta < cutoff && r > 0.0 && !open_faces[2]) { contact[n].r = delta; contact[n].delx = 0.0; contact[n].dely = del1*(1.0-radius/r); contact[n].delz = del2*(1.0-radius/r); + contact[n].radius = -2.0*radius; + contact[n].iwall = 2; + contact[n].varflag = 1; n++; } delta = x[0] - lo; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[0]) { contact[n].r = delta; contact[n].delx = delta; contact[n].dely = contact[n].delz = 0.0; + contact[n].radius = 0; + contact[n].iwall = 0; + contact[n].varflag = 0; n++; } delta = hi - x[0]; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[1]) { contact[n].r = delta; contact[n].delx = -delta; contact[n].dely = contact[n].delz = 0.0; + contact[n].radius = 0; + contact[n].iwall = 1; + contact[n].varflag = 0; n++; } @@ -264,25 +282,34 @@ int RegCylinder::surface_interior(double *x, double cutoff) // y is interior to cylinder or on its surface delta = radius - r; - if (delta < cutoff && r > 0.0) { + if (delta < cutoff && r > 0.0 && !open_faces[2]) { contact[n].r = delta; contact[n].delx = del1*(1.0-radius/r); contact[n].dely = 0.0; contact[n].delz = del2*(1.0-radius/r); + contact[n].radius = -2.0*radius; + contact[n].iwall = 2; + contact[n].varflag = 1; n++; } delta = x[1] - lo; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[0]) { contact[n].r = delta; contact[n].dely = delta; contact[n].delx = contact[n].delz = 0.0; + contact[n].radius = 0; + contact[n].iwall = 0; + contact[n].varflag = 0; n++; } delta = hi - x[1]; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[1]) { contact[n].r = delta; contact[n].dely = -delta; contact[n].delx = contact[n].delz = 0.0; + contact[n].radius = 0; + contact[n].iwall = 1; + contact[n].varflag = 0; n++; } @@ -298,25 +325,34 @@ int RegCylinder::surface_interior(double *x, double cutoff) // z is interior to cylinder or on its surface delta = radius - r; - if (delta < cutoff && r > 0.0) { + if (delta < cutoff && r > 0.0 && !open_faces[2]) { contact[n].r = delta; contact[n].delx = del1*(1.0-radius/r); contact[n].dely = del2*(1.0-radius/r); contact[n].delz = 0.0; + contact[n].radius = -2.0*radius; + contact[n].iwall = 2; + contact[n].varflag = 1; n++; } delta = x[2] - lo; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[0]) { contact[n].r = delta; contact[n].delz = delta; contact[n].delx = contact[n].dely = 0.0; + contact[n].radius = 0; + contact[n].iwall = 0; + contact[n].varflag = 0; n++; } delta = hi - x[2]; - if (delta < cutoff) { + if (delta < cutoff && !open_faces[1]) { contact[n].r = delta; contact[n].delz = -delta; contact[n].delx = contact[n].dely = 0.0; + contact[n].radius = 0; + contact[n].iwall = 1; + contact[n].varflag = 0; n++; } } @@ -334,6 +370,13 @@ int RegCylinder::surface_exterior(double *x, double cutoff) { double del1,del2,r; double xp,yp,zp; + double dx, dr, dr2, d2, d2prev; + + // radius of curvature for granular + // 0 for flat surfaces (infinite case), 2*radius for curved portion + + double crad = 0.0; + int varflag = 0; if (axis == 'x') { del1 = x[1] - c1; @@ -351,18 +394,81 @@ int RegCylinder::surface_exterior(double *x, double cutoff) // could be edge of cylinder // do not add contact point if r >= cutoff - if (r > radius) { - yp = c1 + del1*radius/r; - zp = c2 + del2*radius/r; - } else { - yp = x[1]; - zp = x[2]; + d2prev = BIG; + if (!openflag) { + if (r > radius) { + yp = c1 + del1*radius/r; + zp = c2 + del2*radius/r; + crad = 2.0*radius; + varflag = 1; + } else { + yp = x[1]; + zp = x[2]; + } + if (x[0] < lo) xp = lo; + else if (x[0] > hi) xp = hi; + else xp = x[0]; + } + + // closest point on curved surface + + else { + dr = r - radius; + dr2 = dr*dr; + if (!open_faces[2]){ + yp = c1 + del1*radius/r; + zp = c2 + del2*radius/r; + if (x[0] < lo) { + dx = lo-x[0]; + xp = lo; + } + else if (x[0] > hi) { + dx = x[0]-hi; + xp = hi; + } + else { + dx = 0; + xp = x[0]; + } + d2 = d2prev = dr2 + dx*dx; + } + + // closest point on bottom cap + + if (!open_faces[0]) { + dx = lo - x[0]; + if (r < radius) d2 = dx*dx; + else d2 = dr2 + dx*dx; + if (d2 < d2prev) { + xp = lo; + if (r < radius){ + yp = x[1]; + zp = x[2]; + } + d2prev = d2; + } + } + + // closest point on top cap + + if (!open_faces[1]) { + dx = hi - x[0]; + if (r < radius) d2 = dx*dx; + else d2 = dr2 + dx*dx; + if (d2 < d2prev) { + xp = hi; + if (r < radius){ + yp = x[1]; + zp = x[2]; + } + } + } } - if (x[0] < lo) xp = lo; - else if (x[0] > hi) xp = hi; - else xp = x[0]; add_contact(0,x,xp,yp,zp); + contact[0].radius = crad; + contact[0].varflag = varflag; + contact[0].iwall = 0; if (contact[0].r < cutoff) return 1; return 0; @@ -382,18 +488,81 @@ int RegCylinder::surface_exterior(double *x, double cutoff) // could be edge of cylinder // do not add contact point if r >= cutoff - if (r > radius) { - xp = c1 + del1*radius/r; - zp = c2 + del2*radius/r; - } else { - xp = x[0]; - zp = x[2]; + d2prev = BIG; + if (!openflag) { + if (r > radius) { + xp = c1 + del1*radius/r; + zp = c2 + del2*radius/r; + crad = 2.0*radius; + varflag = 1; + } else { + xp = x[0]; + zp = x[2]; + } + if (x[1] < lo) yp = lo; + else if (x[1] > hi) yp = hi; + else yp = x[1]; + } + + // closest point on curved surface + + else { + dr = r - radius; + dr2 = dr*dr; + if (!open_faces[2]){ + xp = c1 + del1*radius/r; + zp = c2 + del2*radius/r; + if (x[1] < lo) { + dx = lo-x[1]; + yp = lo; + } + else if (x[1] > hi) { + dx = x[1]-hi; + yp = hi; + } + else { + dx = 0; + yp = x[1]; + } + d2 = d2prev = dr2 + dx*dx; + } + + // closest point on bottom cap + + if (!open_faces[0]) { + dx = lo - x[1]; + if (r < radius) d2 = dx*dx; + else d2 = dr2 + dx*dx; + if (d2 < d2prev) { + yp = lo; + if (r < radius) { + xp = x[0]; + zp = x[2]; + } + d2prev = d2; + } + } + + // closest point on top cap + + if (!open_faces[1]) { + dx = hi - x[1]; + if (r < radius) d2 = dx*dx; + else d2 = dr2 + dx*dx; + if (d2 < d2prev) { + yp = hi; + if (r < radius) { + xp = x[0]; + zp = x[2]; + } + } + } } - if (x[1] < lo) yp = lo; - else if (x[1] > hi) yp = hi; - else yp = x[1]; add_contact(0,x,xp,yp,zp); + contact[0].radius = crad; + contact[0].varflag = varflag; + contact[0].iwall = 0; if (contact[0].r < cutoff) return 1; return 0; @@ -413,18 +582,81 @@ int RegCylinder::surface_exterior(double *x, double cutoff) // could be edge of cylinder // do not add contact point if r >= cutoff - if (r > radius) { - xp = c1 + del1*radius/r; - yp = c2 + del2*radius/r; - } else { - xp = x[0]; - yp = x[1]; + d2prev = BIG; + if (!openflag) { + if (r > radius) { + xp = c1 + del1*radius/r; + yp = c2 + del2*radius/r; + crad = 2.0*radius; + varflag = 1; + } else { + xp = x[0]; + yp = x[1]; + } + if (x[2] < lo) zp = lo; + else if (x[2] > hi) zp = hi; + else zp = x[2]; + } + + // closest point on curved surface + + else { + dr = r - radius; + dr2 = dr*dr; + if (!open_faces[2]){ + xp = c1 + del1*radius/r; + yp = c2 + del2*radius/r; + if (x[2] < lo) { + dx = lo-x[2]; + zp = lo; + } + else if (x[2] > hi) { + dx = x[2]-hi; + zp = hi; + } + else { + dx = 0; + zp = x[2]; + } + d2 = d2prev = dr2 + dx*dx; + } + + // closest point on bottom cap + + if (!open_faces[0]) { + dx = lo - x[2]; + if (r < radius) d2 = dx*dx; + else d2 = dr2 + dx*dx; + if (d2 < d2prev) { + zp = lo; + if (r < radius) { + xp = x[0]; + yp = x[1]; + } + d2prev = d2; + } + } + + // closest point on top cap + + if (!open_faces[1]) { + dx = hi - x[2]; + if (r < radius) d2 = dx*dx; + else d2 = dr2 + dx*dx; + if (d2 < d2prev) { + zp = hi; + if (r < radius) { + xp = x[0]; + yp = x[1]; + } + } + } } - if (x[2] < lo) zp = lo; - else if (x[2] > hi) zp = hi; - else zp = x[2]; add_contact(0,x,xp,yp,zp); + contact[0].radius = crad; + contact[0].varflag = varflag; + contact[0].iwall = 0; if (contact[0].r < cutoff) return 1; return 0; } @@ -439,8 +671,9 @@ void RegCylinder::shape_update() radius = input->variable->compute_equal(rvar); if (radius < 0.0) error->one(FLERR,"Variable evaluation in region gave bad value"); - if (axis == 'x') radius *= yscale; - else radius *= xscale; + if (axis == 'x') radius *= xscale; + else if (axis == 'y') radius*= yscale; + else radius *= zscale; } /* ---------------------------------------------------------------------- @@ -455,3 +688,65 @@ void RegCylinder::variable_check() if (!input->variable->equalstyle(rvar)) error->all(FLERR,"Variable for region cylinder is invalid style"); } + + +/* ---------------------------------------------------------------------- + Set values needed to calculate velocity due to shape changes. + These values do not depend on the contact, so this function is + called once per timestep by fix/wall/gran/region. + +------------------------------------------------------------------------- */ + +void RegCylinder::set_velocity_shape() +{ + if (axis == 'x'){ + xcenter[0] = 0; + xcenter[1] = c1; + xcenter[2] = c2; + } + else if (axis == 'y'){ + xcenter[0] = c1; + xcenter[1] = 0; + xcenter[2] = c2; + } + else{ + xcenter[0] = c1; + xcenter[1] = c2; + xcenter[2] = 0; + } + forward_transform(xcenter[0], xcenter[1], xcenter[2]); + if (update->ntimestep > 0) rprev = prev[4]; + else rprev = radius; + prev[4] = radius; +} + + + +/* ---------------------------------------------------------------------- + add velocity due to shape change to wall velocity +------------------------------------------------------------------------- */ + +void RegCylinder::velocity_contact_shape(double *vwall, double *xc) +{ + double delx, dely, delz; // Displacement of contact point in x,y,z + if (axis == 'x'){ + delx = 0; + dely = (xc[1] - xcenter[1])*(1 - rprev/radius); + delz = (xc[2] - xcenter[2])*(1 - rprev/radius); + } + else if (axis == 'y'){ + delx = (xc[0] - xcenter[0])*(1 - rprev/radius); + dely = 0; + delz = (xc[2] - xcenter[2])*(1 - rprev/radius); + } + else{ + delx = (xc[0] - xcenter[0])*(1 - rprev/radius); + dely = (xc[1] - xcenter[1])*(1 - rprev/radius); + delz = 0; + } + vwall[0] += delx/update->dt; + vwall[1] += dely/update->dt; + vwall[2] += delz/update->dt; + //printf ("R is %g, prev %g, velocity of wall at %g %g %g is %g %g %g\n",radius,rprev,xc[0],xc[1],xc[2],vwall[0],vwall[1],vwall[2]); +} + diff --git a/src/region_cylinder.h b/src/region_cylinder.h index 247d939c4f..bc5255b343 100644 --- a/src/region_cylinder.h +++ b/src/region_cylinder.h @@ -35,6 +35,8 @@ class RegCylinder : public Region { int surface_interior(double *, double); int surface_exterior(double *, double); void shape_update(); + void set_velocity_shape(); + void velocity_contact_shape(double *, double *); private: char axis; diff --git a/src/region_intersect.cpp b/src/region_intersect.cpp index bfbe579367..39e8d90d59 100644 --- a/src/region_intersect.cpp +++ b/src/region_intersect.cpp @@ -43,7 +43,7 @@ RegIntersect::RegIntersect(LAMMPS *lmp, int narg, char **arg) : idsub[nregion] = new char[m]; strcpy(idsub[nregion],arg[iarg+3]); iregion = domain->find_region(idsub[nregion]); - if (iregion == -1) + if (iregion == -1) error->all(FLERR,"Region intersect region ID does not exist"); list[nregion++] = iregion; } @@ -88,11 +88,21 @@ RegIntersect::RegIntersect(LAMMPS *lmp, int narg, char **arg) : } // possible contacts = sum of possible contacts in all sub-regions + // for near contacts and touching contacts cmax = 0; - for (int ilist = 0; ilist < nregion; ilist++) + size_restart = 0; + for (int ilist = 0; ilist < nregion; ilist++){ cmax += regions[list[ilist]]->cmax; + size_restart += regions[list[ilist]]->size_restart; + } contact = new Contact[cmax]; + + tmax = 0; + for (int ilist = 0; ilist < nregion; ilist++) { + if (interior) tmax += regions[list[ilist]]->tmax; + else tmax++; + } } /* ---------------------------------------------------------------------- */ @@ -117,7 +127,7 @@ void RegIntersect::init() int iregion; for (int ilist = 0; ilist < nregion; ilist++) { iregion = domain->find_region(idsub[ilist]); - if (iregion == -1) + if (iregion == -1) error->all(FLERR,"Region union region ID does not exist"); list[ilist] = iregion; } @@ -159,6 +169,7 @@ int RegIntersect::surface_interior(double *x, double cutoff) Region **regions = domain->regions; int n = 0; + int walloffset = 0; for (ilist = 0; ilist < nregion; ilist++) { iregion = list[ilist]; ncontacts = regions[iregion]->surface(x[0],x[1],x[2],cutoff); @@ -173,12 +184,18 @@ int RegIntersect::surface_interior(double *x, double cutoff) } if (jlist == nregion) { contact[n].r = regions[iregion]->contact[m].r; + contact[n].radius = regions[iregion]->contact[m].radius; contact[n].delx = regions[iregion]->contact[m].delx; contact[n].dely = regions[iregion]->contact[m].dely; contact[n].delz = regions[iregion]->contact[m].delz; + contact[n].iwall = regions[iregion]->contact[m].iwall + walloffset; + contact[n].varflag = regions[iregion]->contact[m].varflag; n++; } } + // increment by cmax instead of tmax to insure + // possible wall IDs for sub-regions are non overlapping + walloffset += regions[iregion]->cmax; } return n; @@ -218,9 +235,12 @@ int RegIntersect::surface_exterior(double *x, double cutoff) } if (jlist == nregion) { contact[n].r = regions[iregion]->contact[m].r; + contact[n].radius = regions[iregion]->contact[m].radius; contact[n].delx = regions[iregion]->contact[m].delx; contact[n].dely = regions[iregion]->contact[m].dely; contact[n].delz = regions[iregion]->contact[m].delz; + contact[n].iwall = ilist; + contact[n].varflag = regions[iregion]->contact[m].varflag; n++; } } @@ -253,3 +273,48 @@ void RegIntersect::pretransform() for (int ilist = 0; ilist < nregion; ilist++) regions[list[ilist]]->pretransform(); } + +/* ---------------------------------------------------------------------- + get translational/angular velocities of all subregions +------------------------------------------------------------------------- */ + +void RegIntersect::set_velocity() +{ + Region **regions = domain->regions; + for (int ilist = 0; ilist < nregion; ilist++) + regions[list[ilist]]->set_velocity(); +} + +/* ---------------------------------------------------------------------- + region writes its current position/angle + needed by fix/wall/gran/region to compute velocity by differencing scheme +------------------------------------------------------------------------- */ + +void RegIntersect::write_restart(FILE *fp) +{ + for (int ilist = 0; ilist < nregion; ilist++) + domain->regions[list[ilist]]->write_restart(fp); +} + +/* ---------------------------------------------------------------------- + region reads its previous position/angle + needed by fix/wall/gran/region to compute velocity by differencing scheme +------------------------------------------------------------------------- */ + +int RegIntersect::restart(char *buf, int n) +{ + for (int ilist = 0; ilist < nregion; ilist++) + n = domain->regions[list[ilist]]->restart(buf, n); + return n; +} + +/* ---------------------------------------------------------------------- + set prev vector to zero +------------------------------------------------------------------------- */ + +void RegIntersect::reset_vel() +{ + for (int ilist = 0; ilist < nregion; ilist++) + domain->regions[list[ilist]]->reset_vel(); +} + diff --git a/src/region_intersect.h b/src/region_intersect.h index 71399fb251..546baac265 100644 --- a/src/region_intersect.h +++ b/src/region_intersect.h @@ -34,10 +34,12 @@ class RegIntersect : public Region { int surface_exterior(double *, double); void shape_update(); void pretransform(); + void set_velocity(); + void write_restart(FILE *); + int restart(char *, int); + void reset_vel(); private: - int nregion; - int *list; char **idsub; }; diff --git a/src/region_plane.cpp b/src/region_plane.cpp index 38d5b92bcb..3c945eb553 100644 --- a/src/region_plane.cpp +++ b/src/region_plane.cpp @@ -45,9 +45,9 @@ RegPlane::RegPlane(LAMMPS *lmp, int narg, char **arg) : // plane has no bounding box bboxflag = 0; - cmax = 1; contact = new Contact[cmax]; + tmax = 1; } /* ---------------------------------------------------------------------- */ @@ -85,6 +85,8 @@ int RegPlane::surface_interior(double *x, double cutoff) contact[0].delx = dot*normal[0]; contact[0].dely = dot*normal[1]; contact[0].delz = dot*normal[2]; + contact[0].radius = 0; + contact[0].iwall = 0; return 1; } return 0; @@ -105,6 +107,8 @@ int RegPlane::surface_exterior(double *x, double cutoff) contact[0].delx = -dot*normal[0]; contact[0].dely = -dot*normal[1]; contact[0].delz = -dot*normal[2]; + contact[0].radius = 0; + contact[0].iwall = 0; return 1; } return 0; diff --git a/src/region_prism.cpp b/src/region_prism.cpp index 1efd3d964b..b8b7b30368 100644 --- a/src/region_prism.cpp +++ b/src/region_prism.cpp @@ -21,6 +21,7 @@ #include "region_prism.h" #include "domain.h" #include "force.h" +#include "math_extra.h" #include "error.h" using namespace LAMMPS_NS; @@ -116,10 +117,13 @@ RegPrism::RegPrism(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) extent_zhi = zhi; } else bboxflag = 0; - // particle could contact all 6 planes + // particle could be close to all 6 planes + // particle can only touch 3 planes cmax = 6; contact = new Contact[cmax]; + if (interior) tmax = 3; + else tmax = 1; // h = transformation matrix from tilt coords (0-1) to box coords (xyz) // columns of h are edge vectors of tilted box @@ -191,14 +195,28 @@ RegPrism::RegPrism(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) // face = 6 inward-facing unit normals to prism faces // order = xy plane, xz plane, yz plane - cross(a,b,face[0]); - cross(b,a,face[1]); - cross(c,a,face[2]); - cross(a,c,face[3]); - cross(b,c,face[4]); - cross(c,b,face[5]); + MathExtra::cross3(a,b,face[0]); + MathExtra::cross3(b,a,face[1]); + MathExtra::cross3(c,a,face[2]); + MathExtra::cross3(a,c,face[3]); + MathExtra::cross3(b,c,face[4]); + MathExtra::cross3(c,b,face[5]); + + // remap open face indices to be consistent + + if (openflag) { + int temp[6]; + for (int i = 0; i < 6; i++) + temp[i] = open_faces[i]; + open_faces[0] = temp[4]; + open_faces[1] = temp[5]; + open_faces[2] = temp[2]; + open_faces[3] = temp[3]; + open_faces[4] = temp[0]; + open_faces[5] = temp[1]; + } - for (int i = 0; i < 6; i++) normalize(face[i]); + for (int i = 0; i < 6; i++) MathExtra::norm3(face[i]); // tri = 3 vertices (0-7) in each of 12 triangles on 6 faces // verts in each tri are ordered so that right-hand rule gives inward norm @@ -275,7 +293,8 @@ int RegPrism::surface_interior(double *x, double cutoff) int n = 0; - for (int i = 0; i < 6; i++) { + for (i = 0; i < 6; i++) { + if (open_faces[i]) continue; if (i % 2) corner = chi; else corner = clo; dot = (x[0]-corner[0])*face[i][0] + (x[1]-corner[1])*face[i][1] + @@ -285,6 +304,8 @@ int RegPrism::surface_interior(double *x, double cutoff) contact[n].delx = dot*face[i][0]; contact[n].dely = dot*face[i][1]; contact[n].delz = dot*face[i][2]; + contact[n].radius = 0; + contact[n].iwall = i; n++; } } @@ -334,6 +355,8 @@ int RegPrism::surface_exterior(double *x, double cutoff) find_nearest(x,xp,yp,zp); add_contact(0,x,xp,yp,zp); + contact[0].radius = 0; + contact[0].iwall = 0; if (contact[0].r < cutoff) return 1; return 0; } @@ -361,6 +384,7 @@ void RegPrism::find_nearest(double *x, double &xp, double &yp, double &zp) for (int itri = 0; itri < 12; itri++) { iface = itri/2; + if (open_faces[iface]) continue; i = tri[itri][0]; j = tri[itri][1]; k = tri[itri][2]; @@ -370,8 +394,9 @@ void RegPrism::find_nearest(double *x, double &xp, double &yp, double &zp) xproj[0] = x[0] - dot*face[iface][0]; xproj[1] = x[1] - dot*face[iface][1]; xproj[2] = x[2] - dot*face[iface][2]; - if (inside_tri(xproj,corners[i],corners[j],corners[k],face[iface])) + if (inside_tri(xproj,corners[i],corners[j],corners[k],face[iface])){ distsq = closest(x,xproj,nearest,distsq); + } else { point_on_line_segment(corners[i],corners[j],xproj,xline); distsq = closest(x,xline,nearest,distsq); @@ -401,57 +426,24 @@ int RegPrism::inside_tri(double *x, double *v1, double *v2, double *v3, { double edge[3],pvec[3],xproduct[3]; - subtract(v1,v2,edge); - subtract(v1,x,pvec); - cross(edge,pvec,xproduct); - if (dotproduct(xproduct,norm) < 0.0) return 0; + MathExtra::sub3(v2,v1,edge); + MathExtra::sub3(x,v1,pvec); + MathExtra::cross3(edge,pvec,xproduct); + if (MathExtra::dot3(xproduct,norm) < 0.0) return 0; - subtract(v2,v3,edge); - subtract(v2,x,pvec); - cross(edge,pvec,xproduct); - if (dotproduct(xproduct,norm) < 0.0) return 0; + MathExtra::sub3(v3,v2,edge); + MathExtra::sub3(x,v2,pvec); + MathExtra::cross3(edge,pvec,xproduct); + if (MathExtra::dot3(xproduct,norm) < 0.0) return 0; - subtract(v3,v1,edge); - subtract(v3,x,pvec); - cross(edge,pvec,xproduct); - if (dotproduct(xproduct,norm) < 0.0) return 0; + MathExtra::sub3(v1,v3,edge); + MathExtra::sub3(x,v3,pvec); + MathExtra::cross3(edge,pvec,xproduct); + if (MathExtra::dot3(xproduct,norm) < 0.0) return 0; return 1; } -/* ---------------------------------------------------------------------- - find nearest point to C on line segment A,B and return it as D - project (C-A) onto (B-A) - t = length of that projection, normalized by length of (B-A) - t <= 0, C is closest to A - t >= 1, C is closest to B - else closest point is between A and B -------------------------------------------------------------------------- */ - -void RegPrism::point_on_line_segment(double *a, double *b, - double *c, double *d) -{ - double ba[3],ca[3]; - - subtract(a,b,ba); - subtract(a,c,ca); - double t = dotproduct(ca,ba) / dotproduct(ba,ba); - - if (t <= 0.0) { - d[0] = a[0]; - d[1] = a[1]; - d[2] = a[2]; - } else if (t >= 1.0) { - d[0] = b[0]; - d[1] = b[1]; - d[2] = b[2]; - } else { - d[0] = a[0] + t*ba[0]; - d[1] = a[1] + t*ba[1]; - d[2] = a[2] + t*ba[2]; - } -} - /* ---------------------------------------------------------------------- */ double RegPrism::closest(double *x, double *near, double *nearest, double dsq) @@ -467,44 +459,3 @@ double RegPrism::closest(double *x, double *near, double *nearest, double dsq) nearest[2] = near[2]; return rsq; } - -/* ---------------------------------------------------------------------- - v3 = v2 - v1 -------------------------------------------------------------------------- */ - -void RegPrism::subtract(double *v1, double *v2, double *v3) -{ - v3[0] = v2[0] - v1[0]; - v3[1] = v2[1] - v1[1]; - v3[2] = v2[2] - v1[2]; -} - -/* ---------------------------------------------------------------------- - v3 = v1 x v2 -------------------------------------------------------------------------- */ - -void RegPrism::cross(double *v1, double *v2, double *v3) -{ - v3[0] = v1[1]*v2[2] - v1[2]*v2[1]; - v3[1] = v1[2]*v2[0] - v1[0]*v2[2]; - v3[2] = v1[0]*v2[1] - v1[1]*v2[0]; -} - -/* ---------------------------------------------------------------------- - return dotproduct = v1 dot v2 -------------------------------------------------------------------------- */ - -double RegPrism::dotproduct(double *v1, double *v2) -{ - return (v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]); -} - -/* ---------------------------------------------------------------------- */ - -void RegPrism::normalize(double *x) -{ - double invlen = 1.0/sqrt(x[0]*x[0] + x[1]*x[1] + x[2]*x[2]); - x[0] *= invlen; - x[1] *= invlen; - x[2] *= invlen; -} diff --git a/src/region_prism.h b/src/region_prism.h index fefe20ce80..4b518def74 100644 --- a/src/region_prism.h +++ b/src/region_prism.h @@ -47,13 +47,7 @@ class RegPrism : public Region { void find_nearest(double *, double &, double &, double &); int inside_tri(double *, double *, double *, double *, double *); - void point_on_line_segment(double *, double *, double *, double *); double closest(double *, double *, double *, double); - - void subtract(double *, double *, double *); - void cross(double *, double *, double *); - double dotproduct(double *, double *); - void normalize(double *); }; } diff --git a/src/region_sphere.cpp b/src/region_sphere.cpp index 409a497f11..2f51baacc4 100644 --- a/src/region_sphere.cpp +++ b/src/region_sphere.cpp @@ -70,6 +70,7 @@ RegSphere::RegSphere(LAMMPS *lmp, int narg, char **arg) : cmax = 1; contact = new Contact[cmax]; + tmax = 1; } /* ---------------------------------------------------------------------- */ @@ -125,6 +126,9 @@ int RegSphere::surface_interior(double *x, double cutoff) contact[0].delx = delx*(1.0-radius/r); contact[0].dely = dely*(1.0-radius/r); contact[0].delz = delz*(1.0-radius/r); + contact[0].radius = -radius; + contact[0].iwall = 0; + contact[0].varflag = 1; return 1; } return 0; @@ -150,6 +154,9 @@ int RegSphere::surface_exterior(double *x, double cutoff) contact[0].delx = delx*(1.0-radius/r); contact[0].dely = dely*(1.0-radius/r); contact[0].delz = delz*(1.0-radius/r); + contact[0].radius = radius; + contact[0].iwall = 0; + contact[0].varflag = 1; return 1; } return 0; @@ -178,3 +185,42 @@ void RegSphere::variable_check() if (!input->variable->equalstyle(rvar)) error->all(FLERR,"Variable for region sphere is invalid style"); } + + +/* ---------------------------------------------------------------------- + Set values needed to calculate velocity due to shape changes. + These values do not depend on the contact, so this function is + called once per timestep by fix/wall/gran/region. + +------------------------------------------------------------------------- */ + +void RegSphere::set_velocity_shape() +{ + xcenter[0] = xc; + xcenter[1] = yc; + xcenter[2] = zc; + forward_transform(xcenter[0], xcenter[1], xcenter[2]); + if (update->ntimestep > 0) rprev = prev[4]; + else rprev = radius; + prev[4] = radius; +} + + + +/* ---------------------------------------------------------------------- + add velocity due to shape change to wall velocity +------------------------------------------------------------------------- */ + +void RegSphere::velocity_contact_shape(double *vwall, double *xc) +{ + double delx, dely, delz; // Displacement of contact point in x,y,z + + delx = (xc[0] - xcenter[0])*(1 - rprev/radius); + dely = (xc[1] - xcenter[1])*(1 - rprev/radius); + delz = (xc[2] - xcenter[2])*(1 - rprev/radius); + + vwall[0] += delx/update->dt; + vwall[1] += dely/update->dt; + vwall[2] += delz/update->dt; +} + diff --git a/src/region_sphere.h b/src/region_sphere.h index 283493fb33..9e1fb4e739 100644 --- a/src/region_sphere.h +++ b/src/region_sphere.h @@ -33,6 +33,9 @@ class RegSphere : public Region { int surface_interior(double *, double); int surface_exterior(double *, double); void shape_update(); + void set_velocity_shape(); + void velocity_contact_shape(double *, double *); + private: double xc,yc,zc; diff --git a/src/region_union.cpp b/src/region_union.cpp index 2772d7b4d5..b516af98d0 100644 --- a/src/region_union.cpp +++ b/src/region_union.cpp @@ -44,7 +44,7 @@ RegUnion::RegUnion(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) idsub[nregion] = new char[m]; strcpy(idsub[nregion],arg[iarg+3]); iregion = domain->find_region(idsub[nregion]); - if (iregion == -1) + if (iregion == -1) error->all(FLERR,"Region union region ID does not exist"); list[nregion++] = iregion; } @@ -55,6 +55,8 @@ RegUnion::RegUnion(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) for (int ilist = 0; ilist < nregion; ilist++) { if (regions[list[ilist]]->varshape) varshape = 1; if (regions[list[ilist]]->dynamic) dynamic = 1; + if (regions[list[ilist]]->moveflag) moveflag = 1; + if (regions[list[ilist]]->rotateflag) rotateflag = 1; } // extent of union of regions @@ -80,11 +82,21 @@ RegUnion::RegUnion(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg) } // possible contacts = sum of possible contacts in all sub-regions + // for near contacts and touching contacts cmax = 0; - for (int ilist = 0; ilist < nregion; ilist++) + size_restart = 0; + for (int ilist = 0; ilist < nregion; ilist++){ cmax += regions[list[ilist]]->cmax; + size_restart += regions[list[ilist]]->size_restart; + } contact = new Contact[cmax]; + + tmax = 0; + for (int ilist = 0; ilist < nregion; ilist++) { + if (interior) tmax += regions[list[ilist]]->tmax; + else tmax++; + } } /* ---------------------------------------------------------------------- */ @@ -109,7 +121,7 @@ void RegUnion::init() int iregion; for (int ilist = 0; ilist < nregion; ilist++) { iregion = domain->find_region(idsub[ilist]); - if (iregion == -1) + if (iregion == -1) error->all(FLERR,"Region union region ID does not exist"); list[ilist] = iregion; } @@ -151,6 +163,7 @@ int RegUnion::surface_interior(double *x, double cutoff) Region **regions = domain->regions; int n = 0; + int walloffset = 0 ; for (ilist = 0; ilist < nregion; ilist++) { iregion = list[ilist]; ncontacts = regions[iregion]->surface(x[0],x[1],x[2],cutoff); @@ -161,16 +174,23 @@ int RegUnion::surface_interior(double *x, double cutoff) for (jlist = 0; jlist < nregion; jlist++) { if (jlist == ilist) continue; jregion = list[jlist]; - if (regions[jregion]->match(xs,ys,zs)) break; + if (regions[jregion]->match(xs,ys,zs) && + !regions[jregion]->openflag) break; } if (jlist == nregion) { contact[n].r = regions[iregion]->contact[m].r; + contact[n].radius = regions[iregion]->contact[m].radius; contact[n].delx = regions[iregion]->contact[m].delx; contact[n].dely = regions[iregion]->contact[m].dely; contact[n].delz = regions[iregion]->contact[m].delz; + contact[n].iwall = regions[iregion]->contact[m].iwall + walloffset; + contact[n].varflag = regions[iregion]->contact[m].varflag; n++; } } + // increment by cmax instead of tmax to insure + // possible wall IDs for sub-regions are non overlapping + walloffset += regions[iregion]->cmax; } return n; @@ -210,9 +230,12 @@ int RegUnion::surface_exterior(double *x, double cutoff) } if (jlist == nregion) { contact[n].r = regions[iregion]->contact[m].r; + contact[n].radius = regions[iregion]->contact[m].radius; contact[n].delx = regions[iregion]->contact[m].delx; contact[n].dely = regions[iregion]->contact[m].dely; contact[n].delz = regions[iregion]->contact[m].delz; + contact[n].iwall = ilist; + contact[n].r = regions[iregion]->contact[m].varflag; n++; } } @@ -245,3 +268,46 @@ void RegUnion::pretransform() for (int ilist = 0; ilist < nregion; ilist++) regions[list[ilist]]->pretransform(); } + +/* ---------------------------------------------------------------------- + get translational/angular velocities of all subregions +------------------------------------------------------------------------- */ + +void RegUnion::set_velocity() +{ + Region **regions = domain->regions; + for (int ilist = 0; ilist < nregion; ilist++) + regions[list[ilist]]->set_velocity(); +} +/* ---------------------------------------------------------------------- + region writes its current position/angle + needed by fix/wall/gran/region to compute velocity by differencing scheme +------------------------------------------------------------------------- */ + +void RegUnion::write_restart(FILE *fp) +{ + for (int ilist = 0; ilist < nregion; ilist++) + domain->regions[list[ilist]]->write_restart(fp); +} + +/* ---------------------------------------------------------------------- + region reads its previous position/angle + needed by fix/wall/gran/region to compute velocity by differencing scheme +------------------------------------------------------------------------- */ + +int RegUnion::restart(char *buf, int n) +{ + for (int ilist = 0; ilist < nregion; ilist++) + n = domain->regions[list[ilist]]->restart(buf, n); + return n; +} + +/* ---------------------------------------------------------------------- + set prev vector to zero +------------------------------------------------------------------------- */ + +void RegUnion::reset_vel() +{ + for (int ilist = 0; ilist < nregion; ilist++) + domain->regions[list[ilist]]->reset_vel(); +} diff --git a/src/region_union.h b/src/region_union.h index 7cc32b3ed8..091688d66e 100644 --- a/src/region_union.h +++ b/src/region_union.h @@ -34,10 +34,12 @@ class RegUnion : public Region { int surface_exterior(double *, double); void shape_update(); void pretransform(); + void set_velocity(); + void write_restart(FILE *); + int restart(char *, int); + void reset_vel(); private: - int nregion; - int *list; char **idsub; }; diff --git a/src/special.cpp b/src/special.cpp index ae566ec4f5..c4de11e09c 100644 --- a/src/special.cpp +++ b/src/special.cpp @@ -23,6 +23,7 @@ #include "accelerator_kokkos.h" #include "memory.h" #include "error.h" +#include "atom_masks.h" using namespace LAMMPS_NS; @@ -588,8 +589,12 @@ void Special::combine() if (lmp->kokkos) { AtomKokkos* atomKK = (AtomKokkos*) atom; + atomKK->modified(Host,SPECIAL_MASK); + atomKK->sync(Device,SPECIAL_MASK); memory->grow_kokkos(atomKK->k_special,atom->special, atom->nmax,atom->maxspecial,"atom:special"); + atomKK->modified(Device,SPECIAL_MASK); + atomKK->sync(Host,SPECIAL_MASK); } else { memory->destroy(atom->special); memory->create(atom->special,atom->nmax,atom->maxspecial,"atom:special"); diff --git a/src/version.h b/src/version.h index 7f68648837..e24bd29bf3 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "5 Oct 2016" +#define LAMMPS_VERSION "6 Oct 2016" -- GitLab