git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@16053 f3b2605a-c512-4ea7-a41b...
[lammps.git] / doc / src / pair_gran.txt
blobd4530d37dd1ae4e904867780095c21085cf5cabc
1 "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
3 :link(lws,http://lammps.sandia.gov)
4 :link(ld,Manual.html)
5 :link(lc,Section_commands.html#comm)
7 :line
9 pair_style gran/hooke command :h3
10 pair_style gran/omp command :h3
11 pair_style gran/hooke/history command :h3
12 pair_style gran/hooke/history/omp command :h3
13 pair_style gran/hertz/history command :h3
14 pair_style gran/hertz/history/omp command :h3
16 [Syntax:]
18 pair_style style Kn Kt gamma_n gamma_t xmu dampflag :pre
20 style = {gran/hooke} or {gran/hooke/history} or {gran/hertz/history} :ulb,l
21 Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below) :l
22 Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below) :l
23 gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below) :l
24 gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below) :l
25 xmu = static yield criterion (unitless value between 0.0 and 1.0e4) :l
26 dampflag = 0 or 1 if tangential damping force is excluded or included :l
27 :ule
29 NOTE: Versions of LAMMPS before 9Jan09 had different style names for
30 granular force fields.  This is to emphasize the fact that the
31 Hertzian equation has changed to model polydispersity more accurately.
32 A side effect of the change is that the Kn, Kt, gamma_n, and gamma_t
33 coefficients in the pair_style command must be specified with
34 different values in order to reproduce calculations made with earlier
35 versions of LAMMPS, even for monodisperse systems.  See the NOTE below
36 for details.
38 [Examples:]
40 pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 1
41 pair_style gran/hooke 200000.0 70000.0 50.0 30.0 0.5 0 :pre
43 [Description:]
45 The {gran} styles use the following formulas for the frictional force
46 between two granular particles, as described in
47 "(Brilliantov)"_#Brilliantov, "(Silbert)"_#Silbert, and
48 "(Zhang)"_#Zhang, when the distance r between two particles of radii
49 Ri and Rj is less than their contact distance d = Ri + Rj.  There is
50 no force between the particles when r > d.
52 The two Hookean styles use this formula:
54 :c,image(Eqs/pair_gran_hooke.jpg)
56 The Hertzian style uses this formula:
58 :c,image(Eqs/pair_gran_hertz.jpg)
60 In both equations the first parenthesized term is the normal force
61 between the two particles and the second parenthesized term is the
62 tangential force.  The normal force has 2 terms, a contact force and a
63 damping force.  The tangential force also has 2 terms: a shear force
64 and a damping force.  The shear force is a "history" effect that
65 accounts for the tangential displacement between the particles for the
66 duration of the time they are in contact.  This term is included in
67 pair styles {hooke/history} and {hertz/history}, but is not included
68 in pair style {hooke}.  The tangential damping force term is included
69 in all three pair styles if {dampflag} is set to 1; it is not included
70 if {dampflag} is set to 0.
72 The other quantities in the equations are as follows:
74 delta = d - r = overlap distance of 2 particles
75 Kn = elastic constant for normal contact
76 Kt = elastic constant for tangential contact
77 gamma_n = viscoelastic damping constant for normal contact
78 gamma_t = viscoelastic damping constant for tangential contact
79 m_eff = Mi Mj / (Mi + Mj) = effective mass of 2 particles of mass Mi and Mj
80 Delta St = tangential displacement vector between 2 particles \
81       which is truncated to satisfy a frictional yield criterion
82 n_ij = unit vector along the line connecting the centers of the 2 particles
83 Vn = normal component of the relative velocity of the 2 particles
84 Vt = tangential component of the relative velocity of the 2 particles :ul
86 The Kn, Kt, gamma_n, and gamma_t coefficients are specified as
87 parameters to the pair_style command.  If a NULL is used for Kt, then
88 a default value is used where Kt = 2/7 Kn.  If a NULL is used for
89 gamma_t, then a default value is used where gamma_t = 1/2 gamma_n.
91 The interpretation and units for these 4 coefficients are different in
92 the Hookean versus Hertzian equations.
94 The Hookean model is one where the normal push-back force for two
95 overlapping particles is a linear function of the overlap distance.
96 Thus the specified Kn is in units of (force/distance).  Note that this
97 push-back force is independent of absolute particle size (in the
98 monodisperse case) and of the relative sizes of the two particles (in
99 the polydisperse case).  This model also applies to the other terms in
100 the force equation so that the specified gamma_n is in units of
101 (1/time), Kt is in units of (force/distance), and gamma_t is in units
102 of (1/time).
104 The Hertzian model is one where the normal push-back force for two
105 overlapping particles is proportional to the area of overlap of the
106 two particles, and is thus a non-linear function of overlap distance.
107 Thus Kn has units of force per area and is thus specified in units of
108 (pressure).  The effects of absolute particle size (monodispersity)
109 and relative size (polydispersity) are captured in the radii-dependent
110 pre-factors.  When these pre-factors are carried through to the other
111 terms in the force equation it means that the specified gamma_n is in
112 units of (1/(time*distance)), Kt is in units of (pressure), and
113 gamma_t is in units of (1/(time*distance)).
115 Note that in the Hookean case, Kn can be thought of as a linear spring
116 constant with units of force/distance.  In the Hertzian case, Kn is
117 like a non-linear spring constant with units of force/area or
118 pressure, and as shown in the "(Zhang)"_#Zhang paper, Kn = 4G /
119 (3(1-nu)) where nu = the Poisson ratio, G = shear modulus = E /
120 (2(1+nu)), and E = Young's modulus.  Similarly, Kt = 4G / (2-nu).
121 (NOTE: in an earlier version of the manual, we incorrectly stated that
122 Kt = 8G / (2-nu).)
124 Thus in the Hertzian case Kn and Kt can be set to values that
125 corresponds to properties of the material being modeled.  This is also
126 true in the Hookean case, except that a spring constant must be chosen
127 that is appropriate for the absolute size of particles in the model.
128 Since relative particle sizes are not accounted for, the Hookean
129 styles may not be a suitable model for polydisperse systems.
131 NOTE: In versions of LAMMPS before 9Jan09, the equation for Hertzian
132 interactions did not include the sqrt(RiRj/Ri+Rj) term and thus was
133 not as accurate for polydisperse systems.  For monodisperse systems,
134 sqrt(RiRj/Ri+Rj) is a constant factor that effectively scales all 4
135 coefficients: Kn, Kt, gamma_n, gamma_t.  Thus you can set the values
136 of these 4 coefficients appropriately in the current code to reproduce
137 the results of a previous Hertzian monodisperse calculation.  For
138 example, for the common case of a monodisperse system with particles
139 of diameter 1, all 4 of these coefficients should now be set 2x larger
140 than they were previously.
142 Xmu is also specified in the pair_style command and is the upper limit
143 of the tangential force through the Coulomb criterion Ft = xmu*Fn,
144 where Ft and Fn are the total tangential and normal force components
145 in the formulas above.  Thus in the Hookean case, the tangential force
146 between 2 particles grows according to a tangential spring and
147 dash-pot model until Ft/Fn = xmu and is then held at Ft = Fn*xmu until
148 the particles lose contact.  In the Hertzian case, a similar analogy
149 holds, though the spring is no longer linear.
151 NOTE: Normally, xmu should be specified as a fractional value between
152 0.0 and 1.0, however LAMMPS allows large values (up to 1.0e4) to allow
153 for modeling of systems which can sustain very large tangential
154 forces.
156 The effective mass {m_eff} is given by the formula above for two
157 isolated particles.  If either particle is part of a rigid body, its
158 mass is replaced by the mass of the rigid body in the formula above.
159 This is determined by searching for a "fix rigid"_fix_rigid.html
160 command (or its variants).
162 For granular styles there are no additional coefficients to set for
163 each pair of atom types via the "pair_coeff"_pair_coeff.html command.
164 All settings are global and are made via the pair_style command.
165 However you must still use the "pair_coeff"_pair_coeff.html for all
166 pairs of granular atom types.  For example the command
168 pair_coeff * * :pre
170 should be used if all atoms in the simulation interact via a granular
171 potential (i.e. one of the pair styles above is used).  If a granular
172 potential is used as a sub-style of "pair_style
173 hybrid"_pair_hybrid.html, then specific atom types can be used in the
174 pair_coeff command to determine which atoms interact via a granular
175 potential.
177 :line
179 Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
180 functionally the same as the corresponding style without the suffix.
181 They have been optimized to run faster, depending on your available
182 hardware, as discussed in "Section 5"_Section_accelerate.html
183 of the manual.  The accelerated styles take the same arguments and
184 should produce the same results, except for round-off and precision
185 issues.
187 These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
188 USER-OMP and OPT packages, respectively.  They are only enabled if
189 LAMMPS was built with those packages.  See the "Making
190 LAMMPS"_Section_start.html#start_3 section for more info.
192 You can specify the accelerated styles explicitly in your input script
193 by including their suffix, or you can use the "-suffix command-line
194 switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
195 use the "suffix"_suffix.html command in your input script.
197 See "Section 5"_Section_accelerate.html of the manual for
198 more instructions on how to use the accelerated styles effectively.
200 :line
202 [Mixing, shift, table, tail correction, restart, rRESPA info]:
204 The "pair_modify"_pair_modify.html mix, shift, table, and tail options
205 are not relevant for granular pair styles.
207 These pair styles write their information to "binary restart
208 files"_restart.html, so a pair_style command does not need to be
209 specified in an input script that reads a restart file.
211 These pair styles can only be used via the {pair} keyword of the
212 "run_style respa"_run_style.html command.  They do not support the
213 {inner}, {middle}, {outer} keywords.
215 The single() function of these pair styles returns 0.0 for the energy
216 of a pairwise interaction, since energy is not conserved in these
217 dissipative potentials.  It also returns only the normal component of
218 the pairwise interaction force.  However, the single() function also
219 calculates 10 extra pairwise quantities.  The first 3 are the
220 components of the tangential force between particles I and J, acting
221 on particle I.  The 4th is the magnitude of this tangential force.
222 The next 3 (5-7) are the components of the relative velocity in the
223 normal direction (along the line joining the 2 sphere centers).  The
224 last 3 (8-10) the components of the relative velocity in the
225 tangential direction.
227 These extra quantites can be accessed by the "compute
228 pair/local"_compute_pair_local.html command, as {p1}, {p2}, ...,
229 {p10}.
231 :line
233 [Restrictions:]
235 All the granular pair styles are part of the GRANULAR package.  It is
236 only enabled if LAMMPS was built with that package.  See the "Making
237 LAMMPS"_Section_start.html#start_3 section for more info.
239 These pair styles require that atoms store torque and angular velocity
240 (omega) as defined by the "atom_style"_atom_style.html.  They also
241 require a per-particle radius is stored.  The {sphere} atom style does
242 all of this.
244 This pair style requires you to use the "comm_modify vel
245 yes"_comm_modify.html command so that velocites are stored by ghost
246 atoms.
248 These pair styles will not restart exactly when using the
249 "read_restart"_read_restart.html command, though they should provide
250 statistically similar results.  This is because the forces they
251 compute depend on atom velocities.  See the
252 "read_restart"_read_restart.html command for more details.
254 [Related commands:]
256 "pair_coeff"_pair_coeff.html
258 [Default:] none
260 :line
262 :link(Brilliantov)
263 [(Brilliantov)] Brilliantov, Spahn, Hertzsch, Poschel, Phys Rev E, 53,
264 p 5382-5392 (1996).
266 :link(Silbert)
267 [(Silbert)] Silbert, Ertas, Grest, Halsey, Levine, Plimpton, Phys Rev
268 E, 64, p 051302 (2001).
270 :link(Zhang)
271 [(Zhang)] Zhang and Makse, Phys Rev E, 72, p 011301 (2005).