Understanding the Discrete Element Method :Simulation of Non-Spherical Particles for Granular and Multi-body Systems

Publication subTitle :Simulation of Non-Spherical Particles for Granular and Multi-body Systems

Author: Hans-Georg Matuttis   Jian Chen  

Publisher: John Wiley & Sons Inc‎

Publication year: 2014

E-ISBN: 9781118567289

P-ISBN(Paperback): 9781118567203

Subject: TB126 engineering fluid mechanics

Language: ENG

Access to resources Favorite

Disclaimer: Any content in publications that violate the sovereignty, the constitution or regulations of the PRC is not accepted or approved by CNPIEC.

Description

About the Authors xvPreface xviiAcknowledgements xixList of Abbreviations xxi1 Mechanics 11.1 Degrees of freedom 11.1.1 Particle mechanics and constraints 11.1.2 From point particles to rigid bodies 31.1.3 More context and terminology 41.2 Dynamics of rectilinear degrees of freedom 51.3 Dynamics of angular degrees of freedom 61.3.1 Rotation in two dimensions 61.3.2 Moment of inertia 71.3.3 From two to three dimensions 91.3.4 Rotation matrix in three dimensions 121.3.5 Three-dimensional moments of inertia 131.3.6 Space-fixed and body-fixed coordinate systems and equations of motion 161.3.7 Problems with Euler angles 191.3.8 Rotations represented using complex numbers 201.3.9 Quaternions 211.3.10 Derivation of quaternion dynamics 271.4 The phase space 291.4.1 Qualitative discussion of the time dependence of linear oscillations 311.4.2 Resonance 341.4.3 The flow in phase space 351.5 Nonlinearities 391.5.1 Harmonic balance 401.5.2 Resonance in nonlinear systems 421.5.3 Higher harmonics and frequency mixing 441.5.4 The van der Pol oscillator 451.6 From higher harmonics to chaos 471.6.1 The bifurcation cascade 471.6.2 The nonlinear frictional oscillator and Poincar´e maps 471.6.3 The route to chaos 511.6.4 Boundary conditions and many-particle systems 521.7 Stability and conservation laws 531.7.1 Stability in statics 541.7.2 Stability in dynamics 551.7.3 Stable axes of rotation around the principal axis 561.7.4 Noether's theorem and conservation laws 581.8 Further reading 612 Numerical Integration of Ordinary Differential Equations 652.1 Fundamentals of numerical analysis 652.1.1 Floating point numbers 652.1.2 Big-O notation 672.1.3 Relative and absolute error 692.1.4 Truncation error 692.1.5 Local and global error 712.1.6 Stability 742.1.7 Stable integrators for unstable problems 742.2 Numerical analysis for ordinary differential equations 752.2.1 Variable notation and transformation of the order of a differential equation 752.2.2 Differences in the simulation of atoms and molecules, as compared to macroscopic particles 762.2.3 Truncation error for solutions of ordinary differential equations 762.2.4 Fundamental approaches 772.2.5 Explicit Euler method 772.2.6 Implicit Euler method 782.3 Runge–Kutta methods 792.3.1 Adaptive step-size control 792.3.2 Dense output and event location 812.3.3 Partitioned Runge–Kutta methods 822.4 Symplectic methods 822.4.1 The classical Verlet method 822.4.2 Velocity-Verlet methods 832.4.3 Higher-order velocity-Verlet methods 852.4.4 Pseudo-symplectic methods 882.4.5 Order, accuracy and energy conservation 882.4.6 Backward error analysis 892.4.7 Case study: the harmonic oscillator with and without viscous damping 902.5 Stiff problems 922.5.1 Evaluating computational costs 932.5.2 Stiff solutions and error as noise 942.5.3 Order reduction 942.6 Backward difference formulae 942.6.1 Implicit integrators of the predictor–corrector formulae 942.6.2 The corrector step 962.6.3 Multiple corrector steps 972.6.4 Program flow 982.6.5 Variable time-step and variable order 982.7 Other methods 982.7.1 Why not to use self-written or novel integrators 982.7.2 Stochastic differential equations 1002.7.3 Extrapolation and high-order methods 1002.7.4 Multi-rate integrators 1012.7.5 Zero-order algorithms 1012.8 Differential algebraic equations 1032.8.1 The pendulum in Cartesian coordinates 1032.8.2 Initial conditions 1062.8.3 Drift and stabilization 1072.9 Selecting an integrator 1092.9.1 Performance and stability 1092.9.2 Angular degrees of freedom 1092.9.3 Force equilibrium 1092.9.4 Exploring new fields 1102.9.5 ODE solvers unsuitable for DEM simulations 1102.10 Further reading 1113 Friction 1293.1 Sliding Coulomb friction 1293.1.1 A block on a slope 1303.1.2 Static and dynamic friction coefficients 1323.1.3 Apparent and actual contact area 1343.1.4 Roughness and the friction coefficient 1353.1.5 Adhesion and chemical bonding 1363.2 Other contact geometries of Coulomb friction 1363.2.1 Rolling friction 1373.2.2 Pivoting friction 1383.2.3 Sliding and rolling friction: the billiard problem 1403.2.4 Sliding and rolling friction: cylinder on a slope 1433.2.5 Pivoting and rolling friction 1443.3 Exact implementation of friction 1443.3.1 Establishing the difference between dynamic and static friction 1453.3.2 Single-particle contact 1483.3.3 Frictional linear chain 1513.3.4 Higher dimensions 1523.4 Modeling and regularizations 1533.4.1 The Cundall–Strack model 1533.4.2 Cundall-Strack friction in three dimensions 1553.5 Unfortunate treatment of Coulomb friction in the literature 1553.5.1 Insufficient models 1563.5.2 Misunderstandings concerning surface roughness and friction 1583.5.3 The Painlev´e paradox 1583.6 Further reading 1584 Phenomenology of Granular Materials 1614.1 Phenomenology of grains 1614.1.1 Interaction 1614.1.2 Friction and dissipation 1624.1.3 Length and time scales 1624.1.4 Particle shape, and rolling and sliding 1634.2 General phenomenology of granular agglomerates 1644.2.1 Disorder 1644.2.2 Heap formation 1654.2.3 Tri-axial compression and shear band formation 1664.2.4 Arching 1684.2.5 Clogging 1684.3 History effects in granular materials 1684.3.1 Hysteresis 1694.3.2 Reynolds dilatancy 1704.3.3 Pressure distribution under heaps 1714.4 Further reading 1735 Condensed Matter and Solid State Physics 1755.1 Structure and properties of matter 1765.1.1 Crystal structures in two dimensions 1765.1.2 Crystal structures in three dimensions 1785.1.3 From the Wigner–Seitz cell to the Voronoi construction 1805.1.4 Strength parameters of materials 1825.1.5 Strength of granular assemblies 1855.2 From wave numbers to the Fourier transform 1865.2.1 Wave numbers and the reciprocal lattice 1865.2.2 The Fourier transform in one dimension 1885.2.3 Properties of the FFT 1895.2.4 Other Fourier variables 1935.2.5 The power spectrum 1935.3 Waves and dispersion 1945.3.1 Phase and group velocities 1945.3.2 Phase and group velocities for particle systems 1965.3.3 Numerical computation of the dispersion relation 1995.3.4 Density of states 2005.3.5 Dispersion relation for disordered systems 2025.3.6 Solitons 2045.4 Further reading 2066 Modeling and Simulation 2136.1 Experiments, theory and simulation 2136.2 Computability, observables and auxiliary quantities 2146.3 Experiments, theories and the discrete element method 2156.4 The discrete element method and other particle simulation methods 2176.5 Other simulation methods for granular materials 2186.5.1 Continuum mechanics 2186.5.2 Lattice models 2196.5.3 The Monte Carlo method 2207 The Discrete Element Method in Two Dimensions 2237.1 The discrete element method with soft particles 2237.1.1 The bouncing ball as a prototype for the DEM approach 2247.1.2 Using two different stiffness constants to model damping 2277.1.3 Simulation of round DEM particles in one dimension 2287.1.4 Simulation of round particles in two dimensions 2287.2 Modeling of polygonal particles 2297.2.1 Initializing two-dimensional particles 2297.2.2 Computation of the mass, center of mass and moment of inertia 2317.2.3 Non-convex polygons 2377.3 Interaction 2377.3.1 Shape-dependent elastic force law 2387.3.2 Computation of the overlap geometry 2407.3.3 Computation of other dynamic quantities 2447.3.4 Damping 2467.3.5 Cohesive forces 2487.3.6 Penetrating particle overlaps 2497.4 Initial and boundary conditions 2507.4.1 Initializing convex polygons 2507.4.2 General considerations 2527.4.3 Initial positions 2537.4.4 Boundary conditions 2557.5 Neighborhood algorithms 2577.5.1 Algorithms not recommended for elongated particles 2587.5.2 'Sort and sweep' 2637.6 Time integration 2717.7 Program issues 2727.7.1 Program restart 2727.7.2 Program initialization 2747.7.3 Program flow 2747.7.4 Proposed stages for the development of programs 2767.7.5 Modularization 2787.8 Computing observables 2807.8.1 Computing averages 2807.8.2 Homogenization and spatial averages 2817.8.3 Computing error bars 2827.8.4 Autocorrelation functions 2847.9 Further reading 2858 The Discrete Element Method in Three Dimensions 2898.1 Generalization of the force law to three dimensions 2898.1.1 The elastic force 2908.1.2 Contact velocity and related forces 2918.2 Initialization of particles and their properties 2928.2.1 Basic concepts and data structures 2928.2.2 Particle generation and geometry update 2948.2.3 Decomposition of a polyhedron into tetrahedra 2968.2.4 Volume, mass and center of mass 2998.2.5 Moment of inertia 3008.3 Overlap computation 3018.3.1 Triangle intersection by using the point–direction form 3018.3.2 Triangle intersection by using the point–normal form 3058.3.3 Comparison of the two algorithms 3098.3.4 Determination of inherited vertices 3108.3.5 Determination of generated vertices 3128.3.6 Determination of the faces of the overlap polyhedron 3158.3.7 Determination of the contact area and normal 3208.4 Optimization for vertex computation 3228.4.1 Determination of neighboring features 3238.4.2 Neighboring features for vertex computation 3248.5 The neighborhood algorithm for polyhedra 3258.5.1 'Sort and sweep' in three dimensions 3258.5.2 Worst-case performance in three dimensions 3268.5.3 Refinement of the contact list 3278.6 Programming strategy for the polyhedral simulation 3298.7 The effect of dimensionality and the choice of boundaries 3328.7.1 Force networks and dimensionality 3328.7.2 Quasi-two-dimensional geometries 3328.7.3 Packings and sound propagation 3338.8 Further reading 3339 Alternative Modeling Approaches 3359.1 Rigidly connected spheres 3359.2 Elliptical shapes 3369.2.1 Elliptical potentials 3379.2.2 Overlap computation for ellipses 3379.2.3 Newton–Raphson iteration 3399.2.4 Ellipse intersection computed with generalized eigenvalues 3409.2.5 Ellipsoids 3449.2.6 Superquadrics 3449.3 Composites of curves 3459.3.1 Composites of arcs and cylinders 3459.3.2 Spline curves 3459.3.3 Level sets 3479.4 Rigid particles 3479.4.1 Collision dynamics ('event-driven method') 3479.4.2 Contact mechanics 3489.5 Discontinuous deformation analysis 3499.6 Further reading 34910 Running, Debugging and Optimizing Programs 35310.1 Programming style 35310.1.1 Literature 35410.1.2 Choosing a programming language 35510.1.3 Composite data types, strong typing and object orientation 35610.1.4 Readability 35610.1.5 Selecting variable names 35710.1.6 Comments 35910.1.7 Particle simulations versus solving ordinary differential equations 36110.2 Hardware, memory and parallelism 36210.2.1 Architecture and programming model 36210.2.2 Memory hierarchy and cache 36410.2.3 Multiprocessors, multi-core processors and shared memory 36510.2.4 Peak performance and benchmarks 36510.2.5 Amdahl's law, speed-up and efficiency 36710.3 Program writing 36910.3.1 Editors 37010.3.2 Compilers 37010.3.3 Makefiles 37110.3.4 Writing and testing code 37210.3.5 Debugging 37710.4 Measuring load, time and profiles 37810.4.1 The 'top' command 37910.4.2 Xload 37910.4.3 Performance monitor for multi-core processors 38010.4.4 The 'time' command 38010.4.5 The Unix profiler 38310.4.6 Interactive profilers 38310.5 Speeding up programs 38310.5.1 Estimating the time consumption of operations 38310.5.2 Compiler optimization options 38410.5.3 Optimizations by hand 38910.5.4 Avoiding unnecessary disk output 39010.5.5 Look up or compute 39010.5.6 Shared-memory parallelism and OpenMP 39010.6 Further reading 39111 Beyond the Scope of This Book 39511.1 Non-convex particles 39511.2 Contact dynamics and friction 39511.3 Impact mechanics 39611.4 Fragmentation and fracturing 39611.5 Coupling codes for particles and elastic continua 39611.6 Coupling of particles and fluid 39811.6.1 Basic considerations for the fluid simulation 39811.6.2 Verification of the fluid code 39811.6.3 Macroscopic simulations 39911.6.4 Microscopic simulations 39911.6.5 Particle approach for both particles and fluid 40011.6.6 Mesh-based modeling approaches 40211.7 The finite element method for contact problems 40211.8 Long-range interactions 403A MATLAB R as Programming Language 407A.1 Getting started with MATLAB R 407A.2 Data types and names 408A.3 Matrix functions and linear algebra 409A.4 Syntax and control structures 413A.5 Self-written functions 415A.6 Function overwriting and overloading 416A.7 Graphics 417A.8 Solving ordinary differential equations 418A.9 Pitfalls of using MATLAB R 420A.10 Profiling and optimization 424A.11 Free alternatives to MATLAB R 425A.12 Further reading 425Exercises 426References 430B Geometry and Computational Geometry 433B.1 Trigonometric functions 433B.2 Points, line segments and vectors 435B.3 Products of vectors 436B.3.1 Inner product (scalar product, dot product) 436B.3.2 Orthogonality 437B.3.3 Outer product 438B.3.4 Vector product 438B.3.5 Triple product 440B.4 Projections and rejections 441B.4.1 Projection of a vector onto another vector 441B.4.2 Rejection of one vector with respect to another vector 442B.5 Lines and planes 442B.5.1 Lines and line segments 442B.5.2 Planes 444B.6 Oriented quantities: distance, area, volume etc. 446B.7 Further reading 449References 449Index 451

The users who browse this book also browse


No browse record.