RED BOX RULES ARE FOR PROOF STAGE ONLY. DELETE BEFORE FINAL
PRINTING.
Hans-Georg Matuttis | Jian Chen
Element Method Simulation of Non-Spherical Particles for Granular
and Multi-body Systems
Hans-Georg Matuttis, The University of Electro-Communications,
Japan Jian Chen, RIKEN Advanced Institute for Computational
Science, Japan
Understanding the Discrete Element Method Simulation of
Non-Spherical Particles for Granular and Multi-body Systems
The aim of this book is to advance the fi eld of granular and
multi-body studies while giving readers a more thorough
understanding of the discrete element method (DEM). By working
through this volume, researchers will be better equipped for
independent work and will develop an ability to judge methods
related to the simulation of polygonal particles.
When materials are not handled as fl uids, they are dealt with
mostly in granular form (e.g. cement, sand, grains, powders).
Granular materials are characterized by abrupt transitions from
loose to dense, from fl owing to static states, and vice versa.
Many problems in natural disasters (earthquakes, landslides, etc.)
are also of a “granular” nature. Continuum methods have been
applied in these fi elds, but lack any intrinsic mechanism to
account for the transitions, behavior that is inherently
discontinuous. The “natural” approach is to use particle simulation
methods, often called the “discrete element method”, where bodies
in the physical system and the simulation match one to one. The fi
eld of discrete element simulation has changed little since the
early 1990s, when simulations predominantly used spherical
particles. The aim of this book is to show the practicability and
usefulness of non-spherical discrete element simulations. Phenomena
from related fi elds (mechanics, solid state physics, etc.) are
discussed, which as test cases are sometimes not applicable due to
intriguing reasons. Understanding both the pitfalls and
applications will help one to predict the outcome of simulations
and use the predictions for the design of future experiments.
• Introduces the discrete element method (DEM) starting from the
fundamental concepts (theoretical mechanics and solid state
physics), with 2D and 3D simulation methods for polygonal and
polyhedral particles
• Explains the basics of coding DEM, requiring little previous
knowledge of granular matter or numerical simulation • Highlights
numerical tricks and pitfalls that are usually only recognized
after years of experience, using
relevant simple experiments to illustrate applications • Presents a
logical approach starting with the mechanical and physical bases,
followed by a description of the
techniques and their applications • Written by key authors
presenting ideas on how to model the dynamics of angular particles
using polygons
and polyhedrals • Accompanying website includes MATLAB® programs
providing the simulation code for two-dimensional
convex polygons
This book is ideal for researchers and graduate students who deal
with particle models in areas such as fl uid dynamics, multi-body
engineering, fi nite element methods, virtual reality, the
geosciences, and multi-scale physics. Computer scientists involved
with solid modeling and game programming will also fi nd this book
a useful reference for the design of physics engines.
Matuttis Chen
Hans-Georg Matuttis The University of Electro-Communications,
Japan
Jian Chen RIKEN Advanced Institute for Computational Science,
Japan
This edition first published 2014 © 2014 John Wiley & Sons,
Singapore Pte. Ltd.
Registered Office John Wiley & Sons, Singapore Pte. Ltd., 1
Fusionopolis Walk, #07-01 Solaris South Tower, Singapore
138628.
For details of our global editorial offices, for customer services
and for information about how to apply for permission to reuse the
copyright material in this book please see our website at
www.wiley.com.
All Rights Reserved. No part of this publication may be reproduced,
stored in a retrieval system or transmitted, in any form or by any
means, electronic, mechanical, photocopying, recording, scanning,
or otherwise, except as expressly permitted by law, without either
the prior written permission of the Publisher, or authorization
through payment of the appropriate photocopy fee to the Copyright
Clearance Center. Requests for permission should be addressed to
the Publisher, John Wiley & Sons, Singapore Pte. Ltd., 1
Fusionopolis Walk, #07-01 Solaris South Tower, Singapore 138628,
tel: 65-66438000, fax: 65-66438008, email:
[email protected].
Wiley also publishes its books in a variety of electronic formats.
Some content that appears in print may not be available in
electronic books.
Designations used by companies to distinguish their products are
often claimed as trademarks. All brand names and product names used
in this book are trade names, service marks, trademarks or
registered trademarks of their respective owners. The Publisher is
not associated with any product or vendor mentioned in this book.
This publication is designed to provide accurate and authoritative
information in regard to the subject matter covered. It is sold on
the understanding that the Publisher is not engaged in rendering
professional services. If professional advice or other expert
assistance is required, the services of a competent professional
should be sought.
MATLAB R©is a trademark of The MathWorks, Inc. and is used with
permission. The MathWorks does not warrant the accuracy of the text
or exercises in this book. This book’s use or discussion of MATLAB
R©software or related products does not constitute endorsement or
sponsorship by The MathWorks of a particular pedagogical approach
or particular use of the MATLAB R©software.
Limit of Liability/Disclaimer of Warranty: While the publisher and
author have used their best efforts in preparing this book, they
make no representations or warranties with respect to the accuracy
or completeness of the contents of this book and specifically
disclaim any implied warranties of merchantability or fitness for a
particular purpose. It is sold on the understanding that the
publisher is not engaged in rendering professional services and
neither the publisher nor the author shall be liable for damages
arising herefrom. If professional advice or other expert assistance
is required, the services of a competent professional should be
sought.
Library of Congress Cataloging-in-Publication data has been applied
for.
ISBN: 978-1-118-56720-3
Set in 10/12pt Times by SPi Publisher Services, Pondicherry,
India
1 2014
1 Mechanics 1 1.1 Degrees of freedom 1
1.1.1 Particle mechanics and constraints 1 1.1.2 From point
particles to rigid bodies 3 1.1.3 More context and terminology
4
1.2 Dynamics of rectilinear degrees of freedom 5 1.3 Dynamics of
angular degrees of freedom 6
1.3.1 Rotation in two dimensions 6 1.3.2 Moment of inertia 7 1.3.3
From two to three dimensions 9 1.3.4 Rotation matrix in three
dimensions 12 1.3.5 Three-dimensional moments of inertia 13 1.3.6
Space-fixed and body-fixed coordinate systems and
equations of motion 16 1.3.7 Problems with Euler angles 19 1.3.8
Rotations represented using complex numbers 20 1.3.9 Quaternions 21
1.3.10 Derivation of quaternion dynamics 27
1.4 The phase space 29 1.4.1 Qualitative discussion of the time
dependence of linear oscillations 31 1.4.2 Resonance 34 1.4.3 The
flow in phase space 35
vi Contents
1.5.3 Higher harmonics and frequency mixing 44 1.5.4 The van der
Pol oscillator 45
1.6 From higher harmonics to chaos 47 1.6.1 The bifurcation cascade
47 1.6.2 The nonlinear frictional oscillator and Poincare maps 47
1.6.3 The route to chaos 51 1.6.4 Boundary conditions and
many-particle systems 52
1.7 Stability and conservation laws 53 1.7.1 Stability in statics
54 1.7.2 Stability in dynamics 55 1.7.3 Stable axes of rotation
around the principal axis 56 1.7.4 Noether’s theorem and
conservation laws 58
1.8 Further reading 61 Exercises 61 References 63
2 Numerical Integration of Ordinary Differential Equations 65 2.1
Fundamentals of numerical analysis 65
2.1.1 Floating point numbers 65 2.1.2 Big-O notation 67 2.1.3
Relative and absolute error 69 2.1.4 Truncation error 69 2.1.5
Local and global error 71 2.1.6 Stability 74 2.1.7 Stable
integrators for unstable problems 74
2.2 Numerical analysis for ordinary differential equations 75 2.2.1
Variable notation and transformation of the order of a
differential equation 75 2.2.2 Differences in the simulation of
atoms and molecules, as
compared to macroscopic particles 76 2.2.3 Truncation error for
solutions of ordinary differential equations 76 2.2.4 Fundamental
approaches 77 2.2.5 Explicit Euler method 77 2.2.6 Implicit Euler
method 78
2.3 Runge–Kutta methods 79 2.3.1 Adaptive step-size control 79
2.3.2 Dense output and event location 81 2.3.3 Partitioned
Runge–Kutta methods 82
2.4 Symplectic methods 82 2.4.1 The classical Verlet method 82
2.4.2 Velocity-Verlet methods 83 2.4.3 Higher-order velocity-Verlet
methods 85 2.4.4 Pseudo-symplectic methods 88 2.4.5 Order, accuracy
and energy conservation 88 2.4.6 Backward error analysis 89 2.4.7
Case study: the harmonic oscillator with and without
viscous damping 90
Contents vii
2.5 Stiff problems 92 2.5.1 Evaluating computational costs 93 2.5.2
Stiff solutions and error as noise 94 2.5.3 Order reduction
94
2.6 Backward difference formulae 94 2.6.1 Implicit integrators of
the predictor–corrector formulae 94 2.6.2 The corrector step 96
2.6.3 Multiple corrector steps 97 2.6.4 Program flow 98 2.6.5
Variable time-step and variable order 98
2.7 Other methods 98 2.7.1 Why not to use self-written or novel
integrators 98 2.7.2 Stochastic differential equations 100 2.7.3
Extrapolation and high-order methods 100 2.7.4 Multi-rate
integrators 101 2.7.5 Zero-order algorithms 101
2.8 Differential algebraic equations 103 2.8.1 The pendulum in
Cartesian coordinates 103 2.8.2 Initial conditions 106 2.8.3 Drift
and stabilization 107
2.9 Selecting an integrator 109 2.9.1 Performance and stability 109
2.9.2 Angular degrees of freedom 109 2.9.3 Force equilibrium 109
2.9.4 Exploring new fields 110 2.9.5 ODE solvers unsuitable for DEM
simulations 110
2.10 Further reading 111 Exercises 113 References 125
3 Friction 129 3.1 Sliding Coulomb friction 129
3.1.1 A block on a slope 130 3.1.2 Static and dynamic friction
coefficients 132 3.1.3 Apparent and actual contact area 134 3.1.4
Roughness and the friction coefficient 135 3.1.5 Adhesion and
chemical bonding 136
3.2 Other contact geometries of Coulomb friction 136 3.2.1 Rolling
friction 137 3.2.2 Pivoting friction 138 3.2.3 Sliding and rolling
friction: the billiard problem 140 3.2.4 Sliding and rolling
friction: cylinder on a slope 143 3.2.5 Pivoting and rolling
friction 144
3.3.4 Higher dimensions 152 3.4 Modeling and regularizations
153
3.4.1 The Cundall–Strack model 153 3.4.2 Cundall-Strack friction in
three dimensions 155
3.5 Unfortunate treatment of Coulomb friction in the literature 155
3.5.1 Insufficient models 156 3.5.2 Misunderstandings concerning
surface roughness and friction 158 3.5.3 The Painleve paradox
158
3.6 Further reading 158 Exercises 159 References 159
4 Phenomenology of Granular Materials 161 4.1 Phenomenology of
grains 161
4.1.1 Interaction 161 4.1.2 Friction and dissipation 162 4.1.3
Length and time scales 162 4.1.4 Particle shape, and rolling and
sliding 163
4.2 General phenomenology of granular agglomerates 164 4.2.1
Disorder 164 4.2.2 Heap formation 165 4.2.3 Tri-axial compression
and shear band formation 166 4.2.4 Arching 168 4.2.5 Clogging
168
4.3 History effects in granular materials 168 4.3.1 Hysteresis 169
4.3.2 Reynolds dilatancy 170 4.3.3 Pressure distribution under
heaps 171
4.4 Further reading 173 References 173
5 Condensed Matter and Solid State Physics 175 5.1 Structure and
properties of matter 176
5.1.1 Crystal structures in two dimensions 176 5.1.2 Crystal
structures in three dimensions 178 5.1.3 From the Wigner–Seitz cell
to the Voronoi construction 180 5.1.4 Strength parameters of
materials 182 5.1.5 Strength of granular assemblies 185
Contents ix
5.3.3 Numerical computation of the dispersion relation 199 5.3.4
Density of states 200 5.3.5 Dispersion relation for disordered
systems 202 5.3.6 Solitons 204
5.4 Further reading 206 Exercises 206 References 210
6 Modeling and Simulation 213 6.1 Experiments, theory and
simulation 213 6.2 Computability, observables and auxiliary
quantities 214 6.3 Experiments, theories and the discrete element
method 215 6.4 The discrete element method and other particle
simulation methods 217 6.5 Other simulation methods for granular
materials 218
6.5.1 Continuum mechanics 218 6.5.2 Lattice models 219 6.5.3 The
Monte Carlo method 220 References 221
7 The Discrete Element Method in Two Dimensions 223 7.1 The
discrete element method with soft particles 223
7.1.1 The bouncing ball as a prototype for the DEM approach 224
7.1.2 Using two different stiffness constants to model damping 227
7.1.3 Simulation of round DEM particles in one dimension 228 7.1.4
Simulation of round particles in two dimensions 228
7.2 Modeling of polygonal particles 229 7.2.1 Initializing
two-dimensional particles 229 7.2.2 Computation of the mass, center
of mass and moment of inertia 231 7.2.3 Non-convex polygons
237
7.3 Interaction 237 7.3.1 Shape-dependent elastic force law 238
7.3.2 Computation of the overlap geometry 240 7.3.3 Computation of
other dynamic quantities 244 7.3.4 Damping 246 7.3.5 Cohesive
forces 248 7.3.6 Penetrating particle overlaps 249
7.4 Initial and boundary conditions 250 7.4.1 Initializing convex
polygons 250 7.4.2 General considerations 252 7.4.3 Initial
positions 253 7.4.4 Boundary conditions 255
7.5 Neighborhood algorithms 257 7.5.1 Algorithms not recommended
for elongated particles 258 7.5.2 ‘Sort and sweep’ 263
7.6 Time integration 271 7.7 Program issues 272
x Contents
7.7.1 Program restart 272 7.7.2 Program initialization 274 7.7.3
Program flow 274 7.7.4 Proposed stages for the development of
programs 276 7.7.5 Modularization 278
7.8 Computing observables 280 7.8.1 Computing averages 280 7.8.2
Homogenization and spatial averages 281 7.8.3 Computing error bars
282 7.8.4 Autocorrelation functions 284
7.9 Further reading 285 Exercises 286 References 286
8 The Discrete Element Method in Three Dimensions 289 8.1
Generalization of the force law to three dimensions 289
8.1.1 The elastic force 290 8.1.2 Contact velocity and related
forces 291
8.2 Initialization of particles and their properties 292 8.2.1
Basic concepts and data structures 292 8.2.2 Particle generation
and geometry update 294 8.2.3 Decomposition of a polyhedron into
tetrahedra 296 8.2.4 Volume, mass and center of mass 299 8.2.5
Moment of inertia 300
8.3 Overlap computation 301 8.3.1 Triangle intersection by using
the point–direction form 301 8.3.2 Triangle intersection by using
the point–normal form 305 8.3.3 Comparison of the two algorithms
309 8.3.4 Determination of inherited vertices 310 8.3.5
Determination of generated vertices 312 8.3.6 Determination of the
faces of the overlap polyhedron 315 8.3.7 Determination of the
contact area and normal 320
8.4 Optimization for vertex computation 322 8.4.1 Determination of
neighboring features 323 8.4.2 Neighboring features for vertex
computation 324
8.5 The neighborhood algorithm for polyhedra 325 8.5.1 ‘Sort and
sweep’ in three dimensions 325 8.5.2 Worst-case performance in
three dimensions 326 8.5.3 Refinement of the contact list 327
8.6 Programming strategy for the polyhedral simulation 329 8.7 The
effect of dimensionality and the choice of boundaries 332
8.7.1 Force networks and dimensionality 332 8.7.2
Quasi-two-dimensional geometries 332 8.7.3 Packings and sound
propagation 333
8.8 Further reading 333 References 333
Contents xi
9 Alternative Modeling Approaches 335 9.1 Rigidly connected spheres
335 9.2 Elliptical shapes 336
9.2.1 Elliptical potentials 337 9.2.2 Overlap computation for
ellipses 337 9.2.3 Newton–Raphson iteration 339 9.2.4 Ellipse
intersection computed with generalized eigenvalues 340 9.2.5
Ellipsoids 344 9.2.6 Superquadrics 344
9.3 Composites of curves 345 9.3.1 Composites of arcs and cylinders
345 9.3.2 Spline curves 345 9.3.3 Level sets 347
9.4 Rigid particles 347 9.4.1 Collision dynamics (‘event-driven
method’) 347 9.4.2 Contact mechanics 348
9.5 Discontinuous deformation analysis 349 9.6 Further reading
349
References 349
10 Running, Debugging and Optimizing Programs 353 10.1 Programming
style 353
10.1.1 Literature 354 10.1.2 Choosing a programming language 355
10.1.3 Composite data types, strong typing and object orientation
356 10.1.4 Readability 356 10.1.5 Selecting variable names 357
10.1.6 Comments 359 10.1.7 Particle simulations versus solving
ordinary differential
equations 361 10.2 Hardware, memory and parallelism 362
10.2.1 Architecture and programming model 362 10.2.2 Memory
hierarchy and cache 364 10.2.3 Multiprocessors, multi-core
processors and shared memory 365 10.2.4 Peak performance and
benchmarks 365 10.2.5 Amdahl’s law, speed-up and efficiency
367
10.3 Program writing 369 10.3.1 Editors 370 10.3.2 Compilers 370
10.3.3 Makefiles 371 10.3.4 Writing and testing code 372 10.3.5
Debugging 377
xii Contents
10.4.3 Performance monitor for multi-core processors 380 10.4.4 The
‘time’ command 380 10.4.5 The Unix profiler 383 10.4.6 Interactive
profilers 383
10.5 Speeding up programs 383 10.5.1 Estimating the time
consumption of operations 383 10.5.2 Compiler optimization options
384 10.5.3 Optimizations by hand 389 10.5.4 Avoiding unnecessary
disk output 390 10.5.5 Look up or compute 390 10.5.6 Shared-memory
parallelism and OpenMP 390
10.6 Further reading 391 Exercises 392 References 392
11 Beyond the Scope of This Book 395 11.1 Non-convex particles 395
11.2 Contact dynamics and friction 395 11.3 Impact mechanics 396
11.4 Fragmentation and fracturing 396 11.5 Coupling codes for
particles and elastic continua 396 11.6 Coupling of particles and
fluid 398
11.6.1 Basic considerations for the fluid simulation 398 11.6.2
Verification of the fluid code 398 11.6.3 Macroscopic simulations
399 11.6.4 Microscopic simulations 399 11.6.5 Particle approach for
both particles and fluid 400 11.6.6 Mesh-based modeling approaches
402
11.7 The finite element method for contact problems 402 11.8
Long-range interactions 403
References 403
A MATLAB R© as Programming Language 407 A.1 Getting started with
MATLAB R© 407 A.2 Data types and names 408 A.3 Matrix functions and
linear algebra 409 A.4 Syntax and control structures 413 A.5
Self-written functions 415 A.6 Function overwriting and overloading
416 A.7 Graphics 417 A.8 Solving ordinary differential equations
418 A.9 Pitfalls of using MATLAB R© 420 A.10 Profiling and
optimization 424 A.11 Free alternatives to MATLAB R© 425 A.12
Further reading 425
Exercises 426 References 430
Contents xiii
B Geometry and Computational Geometry 433 B.1 Trigonometric
functions 433 B.2 Points, line segments and vectors 435 B.3
Products of vectors 436
B.3.1 Inner product (scalar product, dot product) 436 B.3.2
Orthogonality 437 B.3.3 Outer product 438 B.3.4 Vector product 438
B.3.5 Triple product 440
B.4 Projections and rejections 441 B.4.1 Projection of a vector
onto another vector 441 B.4.2 Rejection of one vector with respect
to another vector 442
B.5 Lines and planes 442 B.5.1 Lines and line segments 442 B.5.2
Planes 444
B.6 Oriented quantities: distance, area, volume etc. 446 B.7
Further reading 449
References 449
Index 451
About the Authors
Hans-Georg Matuttis did his Diploma and PhD on Quantum Monte Carlo
methods at the University of Regensburg, Germany, and later worked
on granular materials as assistant of professor Hans Herrmann at
the university of Stuttgart. After three years research stay at The
University of Tokyo, in 2002 H.-G. Matuttis became Associate
Professor at the University of Electro-Communications (Tokyo,
Japan).
Preface
While the discrete element method (DEM) for round particles has
been around for decades (more than three if one starts with the
algorithms of P. A. Cundall, more than five if one starts with the
methods developed by B. Alder), the use of simulation techniques
with non- spherical particles has spread only slowly, in spite of
the much richer phenomenology and better geometric verisimilitude.
Kepler’s dictum ‘ubi materia, ibi geometria’ (‘where you have to
deal with matter, you have to deal with geometry’) is particularly
true for the discrete element method.
Accordingly, we have focused more on concrete illustrations and
motivations than on abstract derivations. This book basically
consists of material that we wish we could have had in hand when we
started to work with discrete element methods ourselves. We hope
that the reader will find it useful.
Particle modeling needs a clear geometrical imagination, much more
than modeling with continuum equations, where algebraic methods may
also succeed. Geometrical arguments and approaches are given in
detail, because we have found that they often don’t form part of
the curricula in the fields to which this book may be
relevant.
The reader is assumed to have reasonable familiarity with Newtonian
mechanics, linear algebra, ordinary differential equations and at
least one procedural programming language. We use MATLAB R© as the
programming language in this book, as it has proved to be a flexi-
ble tool for fast prototyping, even for complex algorithms; we have
found that it improves readability and reduces development time
compared to more ‘traditional’ programming languages.
As we intend the book to be accessible to graduates in the physical
sciences, engineering and computer science, we have formulated many
ideas more explicitly than if the book had been aimed at a single
community alone. We have tried to make sure that the exposition is
self-contained for the broadest readership we could envision.
Nevertheless, depending on the reader’s background, some chapters
will be more easily understandable and others more difficult.
It was the intention of the authors to make the book
self-contained, i.e. all the important con- cepts are explained in
the book without the need to use other reference material. In
particular, ‘the internet’ contains some rather dubious resources
for the learner.
xviii Preface
have derailed the schedules of many researchers for months and even
years. We recommend starting with simpler algorithms and lower
dimensions; only after gaining experience in these simpler settings
should one move to more complex problems (such as polyhedra in
three dimensions). We know of several projects which failed because
the researchers began with full three-dimensional simulations right
away, without first gaining experience with simpler algorithms in
lower dimensions.
Acknowledgements
We are indebted to Wang Xiao Xing, Dominik Krengel, Shi Han Ng and
Robin Tenhagen for reading the chapters and making valuable
suggestions. Shi Han Ng is thanked in particular for programming
various set-ups and algorithms, as well as for taking photos and
recording movies.
Chen Wei Shen is thanked for ‘giving a hand’ in the pictures of the
experiments. H.-G. M. would like to thank Professor Christian
Lubich of the University of Tubingen for
introducing him to Filippov-type solutions for Coulomb friction
problems. The authors gratefully acknowledge the pleasant
cooperation with Clarissa Lim and James
List of Abbreviations
× three-dimensional vector product · scalar, matrix or quaternion
product (depending on context) • placeholder for a variable in an
operation ∝ proportional to 1 unit operator or identity matrix C
field of complex numbers R field of real numbers | • | absolute
value • length of a vector or norm of a matrix •∗ conjugate of a
complex number or quaternion •−1 inverse of a matrix or quaternion
or number arctan 2(y, x) two-argument arctangent (first argument is
y, not x!) BDF backward difference formula (Gear
predictor–corrector) BLAS basic linear algebra subroutines d
differential increment in dx, dt, d/dx etc. DAE differential
algebraic equation DDA discontinuous deformation analysis DEM
discrete element method ED event-driven FEM finite element method i
imaginary unit
√−1 g(· · · ) constraint function MD molecular dynamics MPS moving
particle semi-implicit O order (Taylor order, Landau notation) ODE
ordinary differential equation OpenMP open multi-processing
sgn(x)
= −1 x < 0
SPH smoothed particle hydrodynamics AT transpose Aji of matrix Aij
.
T torque τ time-step
1 Mechanics
We start with an outline of classical mechanics, to provide a
framework for the discrete ele- ment method (DEM). While most of
the material in this chapter can be found scattered in various
books on mechanics, no text seems to be available which covers
concisely the con- cepts needed for DEM simulation. This chapter is
intended as a crash course in theoretical mechanics, with an
emphasis on issues relevant to computer implementation and testing.
We give a list of secondary literature that the reader may refer to
for further details.
1.1 Degrees of freedom
Before discussing the dynamics of a mechanical system, we need to
understand the nature of the variables in the system. There are
independent variables on the one hand, usually called ‘degrees of
freedom’, and then there are dependent variables which depend on
the degrees of freedom, via algebraic relations or
derivatives.
1.1.1 Particle mechanics and constraints
The concept of a ‘mass point’ means that we neglect the size of the
mass and are interested only in its trajectory. The position of a
single mass point moving along the Cartesian x-axis is described by
the value of x, which corresponds to a single degree of freedom. A
point moving in the xy-plane has two degrees of freedom, r2D = (x,
y), and a point moving in three- dimensional real space will have
three degrees of freedom, r3D = (x, y, z). Although we can describe
the motion of a point in three-dimensional space by four
‘space–time coordinates’ using the tuple (x, y, z, t), in classical
mechanics t is not considered a degree of freedom but rather a
parameter, i.e. an independent variable which cannot be
influenced.
Two mass points moving independently along the x-axis represent two
degrees of freedom, r1 and r2 (here and in the following, we assume
equal masses). If we ‘glue’ these two particles together at
distance d = r1 − r2 as in Figure 1.1, one degree of freedom gets
lost, and we are
ndof = 2
ndof = 2 2 – 1 = 3
ndof = 3 · 2 – 3 = 3
ndof = 4 · 2 – 5 = 3
Figure 1.1 In two dimensions, the number of degrees of freedom ndof
for 1, 2, 3 or 4 constrained particles with an increasing number of
constraints introduced. Newly added constraints are in black;
previous constraints are in gray.
left with only a single degree of freedom; in this case we can use
either of r1, r2 or the average (r1+r2)/2 to determine the position
of both particles uniquely. This means that one constraint between
two position variables eliminates one degree of freedom.
In two dimensions, for two point particles at r1 = (x1, y1) and r2
= (x2, y2) we have four degrees of freedom, x1, y1, x2 and y2. If
we again fix the distance between the particles at a constant
distance d, so that
√ (x2 − x1)2 + (y2 − y1)2 = d, (1.1)
we can choose any three variables from {x1, y1, x2, y2} and the
fourth will then be determined from (1.1) by elementary geometry.
Alternatively, we can introduce new variables, such as the position
of the center of mass, (x, y) = (r1 + r2)/2 for particles of the
same mass, the displacement (x, y) = (x2 − x1, y2 − y1) between the
particles, and the angle θ that the line segment between the two
particles makes with the x-axis. In any case, we end up with three
independent variables to describe the positions of the two
particles fully. This means that a single constraint (1.1) reduces
the number of degrees of freedom, i.e. the number of independent
variables in the system, by 1.
In three-dimensional space, for two particles at positions (x1, y1,
z1) and (x2, y2, z2) as shown in Figure 1.2, a constraint
√ (x2 − x1)2 + (y2 − y1)2 + (z2 − z1)2 = d (1.2)
will again reduce the number of degrees of freedom by 1, so if we
want to work with the center of mass
(x, y, z) = 1
2 {(x1, y1, z1) + (x2, y2, z2)},
ndof = 3 2 – 1 = 5 ndof = 3 · 4 – 6 = 6
ndof = 3 · 3 – 3 = 6 ndof = 3 · 5 – 9 = 6
Figure 1.2 In three dimensions, the number of degrees of freedom
ndof for 1, 2, 3, 4 or 5 particles constrained so that the
resulting cluster has no internal degrees of freedom. Newly added
constraints are in black; previous constraints are in gray.
the center of mass and two angles, or with three Cartesian
coordinates for one endpoint and two angles. In each case the
number of degrees of freedom is the same, namely 5.
1.1.2 From point particles to rigid bodies
When we introduce one more point mass at (x3, y3, z3) to our
set-up, we have 9 variables in total. If we connect this new point
to both ends of our rod with the additional constraints
√ (x3 − x1)2 + (y3 − y1)2 + (z3 − z1)2 = d2, (1.3)
√ (x3 − x2)2 + (y3 − y2)2 + (z3 − z2)2 = d3, (1.4)
we get a triangle, as in the middle diagram of Figure 1.2. Again,
we can give an alternative description of its position in space
using the center of mass, and use three angles, φ, θ and ψ,
to describe the orientation. So the formula
(degrees of freedom) 6
= (variables) 9
− (constraints) 3
4 Understanding the Discrete Element Method
‘Mathematically’ one can define a point particle as an object
having ‘zero extension’ and a rigid body as one having ‘zero
deformation’. A more pragmatic definition of a point particle is an
object whose extent is much smaller than the distances that it
covers in the processes under investigation; after all, the Earth
is pretty extended, but the point-mass approach to describing its
trajectory around the sun works rather well. Likewise, a rigid body
is an object for which the deformations are much smaller than the
scales that are of interest in the processes being
investigated.
1.1.3 More context and terminology
In principle, a ‘continuum’ has infinitely many degrees of freedom;
but in order to solve continuum problems with a computer, we have
to first discretize the continuum to obtain a finite number of
degrees of freedom. We could, for instance, decompose the continuum
into representative mass points and model the elasticity by springs
between the mass points. The deformation of a spring can be
computed from the positions of the bodies, so the springs will not
be degrees of freedom, while the coordinates of the mass points
will be degrees of freedom. With a finite element discretization,
we decompose the elastic continuum into a space-filling partition
of elements for which elastic stress relations hold, and the
degrees of freedom are the nodes of the elements. Depending on the
choice of boundary conditions, there may be as many nodes as there
are elements, or more; therefore, from the nodes one can calculate
the center of mass of the elements, but not vice versa. Describing
the physics via the motion of particles, for example of centers of
mass, is called the ‘Lagrangian representation’. This approach is
natural for particulate systems, so we will adopt it in this book.
Formulating the physics for a reference system in which, e.g.,
density amplitudes change is called the ‘Eulerian representation’;
this representation is preferable for many continuum problems. In a
Lagrangian representation, velocities of mechanical bodies are not
degrees of freedom: they can be obtained as the time derivatives of
the positions on which they depend. On the other hand, when we
simulate a fluid volume where velocities are assigned to the nodes
of a finite element or finite difference approximation in ‘Eulerian
representation’, it is the velocities that are the degrees of
freedom.
In the previous two subsections, we introduced constraints as
algebraic relations between positions, but we remark here that
constraints (whose associated functions are usually denoted by g in
formulae) can also be imposed on velocities. For a pendulum of
length l swing- ing around the origin as in Figure 1.3(a), the
constraint g(x, y) stating that the bob (whose diameter we will
neglect) stays at constant distance from the origin is
x2 + y2 = l2. (1.5)
(b)
z
Figure 1.3 (a) Pendulum as a constrained problem; (b) coupled
pendulum–wheel–mass system, where transformation into polar
coordinates does not simplify the calculation.
1.2 Dynamics of rectilinear degrees of freedom
Labeling the coordinates with different letters such as x1, y1, z1,
. . . will soon become incon- venient, so let us rename them as
follows: x1 = r
(1) 1 , y1 = r
(2) 1 , z1 = r
(3) 1 , x2 = r
r (2) 2 , z2 = r
(3) 2 , . . . , where the lower index represents the particle and
the upper index in
parentheses represents the dimension. The corresponding velocities
can then be obtained as time derivatives:
v (j) i = d
(j) i .
If all the velocities vanish, we say that the system is static; if
the velocities (which may be non-zero) do not change, we say that
the system is stationary. The accelerations are the time
derivatives of the velocities, or the second derivatives of the
positions with respect to time: a
(j) i = v
(j) i = r
(j) i . If the acceleration is constant, we also refer to it as
‘uniform’; in this
case the velocity changes at a constant rate. For a particle i with
mass mi, Newton’s equation of motion1 expresses the relationship
between the force F
(j) i applied to the particle and the
acceleration a (j) i in coordinate j as
F (j) i = mix
(1.6)
Numerical analysis prefers to deal with first-order equations, so
often it is necessary to rewrite the second-order equation (1.6) as
a first-order system by defining the velocity as an auxiliary
variable:
F (j) i = miv
(j) i . (1.8)
6 Understanding the Discrete Element Method
Thus, instead of 3n second-order equations for n particles in three
dimensions, we end up with 6n first-order equations. So, for a
mechanical problem, one can choose whether to describe the system
using first- or second-order differential equations. Consequently,
physicists tend to call any equation with a first- or second-order
time derivative on one side an ‘equation of motion’. For example,
the quantum-mechanical wave equations are called ‘equations of
motion of the probability’ due to their relation with probability
densities [1], and the time-dependent heat equation is sometimes
called the ‘equation of motion of heat’ [2].
1.3 Dynamics of angular degrees of freedom
1.3.1 Rotation in two dimensions
In two dimensions, we have three degrees of freedom: two for
translation and one for rotation. Rotation of a vector r = (x, y)T
by an angle φ in the xy-plane is represented by the rotation matrix
for counterclockwise rotations,
Aφ = (
r ′ = Aφr = (
) . (1.10)
The inverse transformation of a rotation by φ is represented by the
transpose of the original rotation matrix. That the inverse is
equal to the transpose characterizes an orthogonal matrix, a matrix
whose columns are orthogonal to each other (i.e. have scalar
product zero). The determinant of an orthonormal matrix is 1, so
the length of a vector r which is rotated using a matrix of the
form (1.9) does not change, and if two different vectors r1 and r2
are rotated into
x
y
x
y
O
(a)
x
y
x
y
O
(b)
x
y
O
(c)