{"product_id":"understanding-the-discrete-element-method-9781118567203","title":"Understanding the Discrete Element Method","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cb\u003e\u003ci\u003eGives readers a more thorough understanding of DEM and equips researchers for independent work and an ability to judge methods related to simulation of polygonal particles\u003c\/i\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cul\u003e \u003cli\u003eIntroduces DEM from the fundamental concepts (theoretical mechanics and solidstate physics), with 2D and 3D simulation methods for polygonal particles\u003c\/li\u003e \u003cli\u003eProvides the fundamentals of coding discrete element method (DEM) requiring little advance knowledge of granular matter or numerical simulation\u003c\/li\u003e \u003cli\u003eHighlights the numerical tricks and pitfalls that are usually only realized after years of experience, with relevant simple experiments as applications\u003c\/li\u003e \u003cli\u003ePresents a logical approach starting withthe mechanical and physical bases,followed by a description of the techniques and finally their applications\u003c\/li\u003e \u003cli\u003eWritten by a key author presenting ideas on how to model the dynamics of angular particles using polygons and polyhedral\u003c\/li\u003e \u003cli\u003eAccompanying website includes MATLA\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eAbout the Authors xv\u003c\/p\u003e \u003cp\u003ePreface xvii\u003c\/p\u003e \u003cp\u003eAcknowledgements xix\u003c\/p\u003e \u003cp\u003eList of Abbreviations xxi\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Mechanics 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Degrees of freedom 1\u003c\/p\u003e \u003cp\u003e1.1.1 Particle mechanics and constraints 1\u003c\/p\u003e \u003cp\u003e1.1.2 From point particles to rigid bodies 3\u003c\/p\u003e \u003cp\u003e1.1.3 More context and terminology 4\u003c\/p\u003e \u003cp\u003e1.2 Dynamics of rectilinear degrees of freedom 5\u003c\/p\u003e \u003cp\u003e1.3 Dynamics of angular degrees of freedom 6\u003c\/p\u003e \u003cp\u003e1.3.1 Rotation in two dimensions 6\u003c\/p\u003e \u003cp\u003e1.3.2 Moment of inertia 7\u003c\/p\u003e \u003cp\u003e1.3.3 From two to three dimensions 9\u003c\/p\u003e \u003cp\u003e1.3.4 Rotation matrix in three dimensions 12\u003c\/p\u003e \u003cp\u003e1.3.5 Three-dimensional moments of inertia 13\u003c\/p\u003e \u003cp\u003e1.3.6 Space-fixed and body-fixed coordinate systems and equations of motion 16\u003c\/p\u003e \u003cp\u003e1.3.7 Problems with Euler angles 19\u003c\/p\u003e \u003cp\u003e1.3.8 Rotations represented using complex numbers 20\u003c\/p\u003e \u003cp\u003e1.3.9 Quaternions 21\u003c\/p\u003e \u003cp\u003e1.3.10 Derivation of quaternion dynamics 27\u003c\/p\u003e \u003cp\u003e1.4 The phase space 29\u003c\/p\u003e \u003cp\u003e1.4.1 Qualitative discussion of the time dependence of linear oscillations 31\u003c\/p\u003e \u003cp\u003e1.4.2 Resonance 34\u003c\/p\u003e \u003cp\u003e1.4.3 The flow in phase space 35\u003c\/p\u003e \u003cp\u003e1.5 Nonlinearities 39\u003c\/p\u003e \u003cp\u003e1.5.1 Harmonic balance 40\u003c\/p\u003e \u003cp\u003e1.5.2 Resonance in nonlinear systems 42\u003c\/p\u003e \u003cp\u003e1.5.3 Higher harmonics and frequency mixing 44\u003c\/p\u003e \u003cp\u003e1.5.4 The van der Pol oscillator 45\u003c\/p\u003e \u003cp\u003e1.6 From higher harmonics to chaos 47\u003c\/p\u003e \u003cp\u003e1.6.1 The bifurcation cascade 47\u003c\/p\u003e \u003cp\u003e1.6.2 The nonlinear frictional oscillator and Poincaré maps 47\u003c\/p\u003e \u003cp\u003e1.6.3 The route to chaos 51\u003c\/p\u003e \u003cp\u003e1.6.4 Boundary conditions and many-particle systems 52\u003c\/p\u003e \u003cp\u003e1.7 Stability and conservation laws 53\u003c\/p\u003e \u003cp\u003e1.7.1 Stability in statics 54\u003c\/p\u003e \u003cp\u003e1.7.2 Stability in dynamics 55\u003c\/p\u003e \u003cp\u003e1.7.3 Stable axes of rotation around the principal axis 56\u003c\/p\u003e \u003cp\u003e1.7.4 Noether’s theorem and conservation laws 58\u003c\/p\u003e \u003cp\u003e1.8 Further reading 61\u003c\/p\u003e \u003cp\u003eExercises 61\u003c\/p\u003e \u003cp\u003eReferences 63\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Numerical Integration of Ordinary Differential Equations 65\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Fundamentals of numerical analysis 65\u003c\/p\u003e \u003cp\u003e2.1.1 Floating point numbers 65\u003c\/p\u003e \u003cp\u003e2.1.2 Big-O notation 67\u003c\/p\u003e \u003cp\u003e2.1.3 Relative and absolute error 69\u003c\/p\u003e \u003cp\u003e2.1.4 Truncation error 69\u003c\/p\u003e \u003cp\u003e2.1.5 Local and global error 71\u003c\/p\u003e \u003cp\u003e2.1.6 Stability 74\u003c\/p\u003e \u003cp\u003e2.1.7 Stable integrators for unstable problems 74\u003c\/p\u003e \u003cp\u003e2.2 Numerical analysis for ordinary differential equations 75\u003c\/p\u003e \u003cp\u003e2.2.1 Variable notation and transformation of the order of a differential equation 75\u003c\/p\u003e \u003cp\u003e2.2.2 Differences in the simulation of atoms and molecules, as compared to macroscopic particles 76\u003c\/p\u003e \u003cp\u003e2.2.3 Truncation error for solutions of ordinary differential equations 76\u003c\/p\u003e \u003cp\u003e2.2.4 Fundamental approaches 77\u003c\/p\u003e \u003cp\u003e2.2.5 Explicit Euler method 77\u003c\/p\u003e \u003cp\u003e2.2.6 Implicit Euler method 78\u003c\/p\u003e \u003cp\u003e2.3 Runge–Kutta methods 79\u003c\/p\u003e \u003cp\u003e2.3.1 Adaptive step-size control 79\u003c\/p\u003e \u003cp\u003e2.3.2 Dense output and event location 81\u003c\/p\u003e \u003cp\u003e2.3.3 Partitioned Runge–Kutta methods 82\u003c\/p\u003e \u003cp\u003e2.4 Symplectic methods 82\u003c\/p\u003e \u003cp\u003e2.4.1 The classical Verlet method 82\u003c\/p\u003e \u003cp\u003e2.4.2 Velocity-Verlet methods 83\u003c\/p\u003e \u003cp\u003e2.4.3 Higher-order velocity-Verlet methods 85\u003c\/p\u003e \u003cp\u003e2.4.4 Pseudo-symplectic methods 88\u003c\/p\u003e \u003cp\u003e2.4.5 Order, accuracy and energy conservation 88\u003c\/p\u003e \u003cp\u003e2.4.6 Backward error analysis 89\u003c\/p\u003e \u003cp\u003e2.4.7 Case study: the harmonic oscillator with and without viscous damping 90\u003c\/p\u003e \u003cp\u003e2.5 Stiff problems 92\u003c\/p\u003e \u003cp\u003e2.5.1 Evaluating computational costs 93\u003c\/p\u003e \u003cp\u003e2.5.2 Stiff solutions and error as noise 94\u003c\/p\u003e \u003cp\u003e2.5.3 Order reduction 94\u003c\/p\u003e \u003cp\u003e2.6 Backward difference formulae 94\u003c\/p\u003e \u003cp\u003e2.6.1 Implicit integrators of the predictor–corrector formulae 94\u003c\/p\u003e \u003cp\u003e2.6.2 The corrector step 96\u003c\/p\u003e \u003cp\u003e2.6.3 Multiple corrector steps 97\u003c\/p\u003e \u003cp\u003e2.6.4 Program flow 98\u003c\/p\u003e \u003cp\u003e2.6.5 Variable time-step and variable order 98\u003c\/p\u003e \u003cp\u003e2.7 Other methods 98\u003c\/p\u003e \u003cp\u003e2.7.1 Why not to use self-written or novel integrators 98\u003c\/p\u003e \u003cp\u003e2.7.2 Stochastic differential equations 100\u003c\/p\u003e \u003cp\u003e2.7.3 Extrapolation and high-order methods 100\u003c\/p\u003e \u003cp\u003e2.7.4 Multi-rate integrators 101\u003c\/p\u003e \u003cp\u003e2.7.5 Zero-order algorithms 101\u003c\/p\u003e \u003cp\u003e2.8 Differential algebraic equations 103\u003c\/p\u003e \u003cp\u003e2.8.1 The pendulum in Cartesian coordinates 103\u003c\/p\u003e \u003cp\u003e2.8.2 Initial conditions 106\u003c\/p\u003e \u003cp\u003e2.8.3 Drift and stabilization 107\u003c\/p\u003e \u003cp\u003e2.9 Selecting an integrator 109\u003c\/p\u003e \u003cp\u003e2.9.1 Performance and stability 109\u003c\/p\u003e \u003cp\u003e2.9.2 Angular degrees of freedom 109\u003c\/p\u003e \u003cp\u003e2.9.3 Force equilibrium 109\u003c\/p\u003e \u003cp\u003e2.9.4 Exploring new fields 110\u003c\/p\u003e \u003cp\u003e2.9.5 ODE solvers unsuitable for DEM simulations 110\u003c\/p\u003e \u003cp\u003e2.10 Further reading 111\u003c\/p\u003e \u003cp\u003eExercises 113\u003c\/p\u003e \u003cp\u003eReferences 125\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Friction 129\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Sliding Coulomb friction 129\u003c\/p\u003e \u003cp\u003e3.1.1 A block on a slope 130\u003c\/p\u003e \u003cp\u003e3.1.2 Static and dynamic friction coefficients 132\u003c\/p\u003e \u003cp\u003e3.1.3 Apparent and actual contact area 134\u003c\/p\u003e \u003cp\u003e3.1.4 Roughness and the friction coefficient 135\u003c\/p\u003e \u003cp\u003e3.1.5 Adhesion and chemical bonding 136\u003c\/p\u003e \u003cp\u003e3.2 Other contact geometries of Coulomb friction 136\u003c\/p\u003e \u003cp\u003e3.2.1 Rolling friction 137\u003c\/p\u003e \u003cp\u003e3.2.2 Pivoting friction 138\u003c\/p\u003e \u003cp\u003e3.2.3 Sliding and rolling friction: the billiard problem 140\u003c\/p\u003e \u003cp\u003e3.2.4 Sliding and rolling friction: cylinder on a slope 143\u003c\/p\u003e \u003cp\u003e3.2.5 Pivoting and rolling friction 144\u003c\/p\u003e \u003cp\u003e3.3 Exact implementation of friction 144\u003c\/p\u003e \u003cp\u003e3.3.1 Establishing the difference between dynamic and static friction 145\u003c\/p\u003e \u003cp\u003e3.3.2 Single-particle contact 148\u003c\/p\u003e \u003cp\u003e3.3.3 Frictional linear chain 151\u003c\/p\u003e \u003cp\u003e3.3.4 Higher dimensions 152\u003c\/p\u003e \u003cp\u003e3.4 Modeling and regularizations 153\u003c\/p\u003e \u003cp\u003e3.4.1 The Cundall–Strack model 153\u003c\/p\u003e \u003cp\u003e3.4.2 Cundall-Strack friction in three dimensions 155\u003c\/p\u003e \u003cp\u003e3.5 Unfortunate treatment of Coulomb friction in the literature 155\u003c\/p\u003e \u003cp\u003e3.5.1 Insufficient models 156\u003c\/p\u003e \u003cp\u003e3.5.2 Misunderstandings concerning surface roughness and friction 158\u003c\/p\u003e \u003cp\u003e3.5.3 The Painlevé paradox 158\u003c\/p\u003e \u003cp\u003e3.6 Further reading 158\u003c\/p\u003e \u003cp\u003eExercises 159\u003c\/p\u003e \u003cp\u003eReferences 159\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Phenomenology of Granular Materials 161\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Phenomenology of grains 161\u003c\/p\u003e \u003cp\u003e4.1.1 Interaction 161\u003c\/p\u003e \u003cp\u003e4.1.2 Friction and dissipation 162\u003c\/p\u003e \u003cp\u003e4.1.3 Length and time scales 162\u003c\/p\u003e \u003cp\u003e4.1.4 Particle shape, and rolling and sliding 163\u003c\/p\u003e \u003cp\u003e4.2 General phenomenology of granular agglomerates 164\u003c\/p\u003e \u003cp\u003e4.2.1 Disorder 164\u003c\/p\u003e \u003cp\u003e4.2.2 Heap formation 165\u003c\/p\u003e \u003cp\u003e4.2.3 Tri-axial compression and shear band formation 166\u003c\/p\u003e \u003cp\u003e4.2.4 Arching 168\u003c\/p\u003e \u003cp\u003e4.2.5 Clogging 168\u003c\/p\u003e \u003cp\u003e4.3 History effects in granular materials 168\u003c\/p\u003e \u003cp\u003e4.3.1 Hysteresis 169\u003c\/p\u003e \u003cp\u003e4.3.2 Reynolds dilatancy 170\u003c\/p\u003e \u003cp\u003e4.3.3 Pressure distribution under heaps 171\u003c\/p\u003e \u003cp\u003e4.4 Further reading 173\u003c\/p\u003e \u003cp\u003eReferences 173\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Condensed Matter and Solid State Physics 175\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Structure and properties of matter 176\u003c\/p\u003e \u003cp\u003e5.1.1 Crystal structures in two dimensions 176\u003c\/p\u003e \u003cp\u003e5.1.2 Crystal structures in three dimensions 178\u003c\/p\u003e \u003cp\u003e5.1.3 From the Wigner–Seitz cell to the Voronoi construction 180\u003c\/p\u003e \u003cp\u003e5.1.4 Strength parameters of materials 182\u003c\/p\u003e \u003cp\u003e5.1.5 Strength of granular assemblies 185\u003c\/p\u003e \u003cp\u003e5.2 From wave numbers to the Fourier transform 186\u003c\/p\u003e \u003cp\u003e5.2.1 Wave numbers and the reciprocal lattice 186\u003c\/p\u003e \u003cp\u003e5.2.2 The Fourier transform in one dimension 188\u003c\/p\u003e \u003cp\u003e5.2.3 Properties of the FFT 189\u003c\/p\u003e \u003cp\u003e5.2.4 Other Fourier variables 193\u003c\/p\u003e \u003cp\u003e5.2.5 The power spectrum 193\u003c\/p\u003e \u003cp\u003e5.3 Waves and dispersion 194\u003c\/p\u003e \u003cp\u003e5.3.1 Phase and group velocities 194\u003c\/p\u003e \u003cp\u003e5.3.2 Phase and group velocities for particle systems 196\u003c\/p\u003e \u003cp\u003e5.3.3 Numerical computation of the dispersion relation 199\u003c\/p\u003e \u003cp\u003e5.3.4 Density of states 200\u003c\/p\u003e \u003cp\u003e5.3.5 Dispersion relation for disordered systems 202\u003c\/p\u003e \u003cp\u003e5.3.6 Solitons 204\u003c\/p\u003e \u003cp\u003e5.4 Further reading 206\u003c\/p\u003e \u003cp\u003eExercises 206\u003c\/p\u003e \u003cp\u003eReferences 210\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Modeling and Simulation 213\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Experiments, theory and simulation 213\u003c\/p\u003e \u003cp\u003e6.2 Computability, observables and auxiliary quantities 214\u003c\/p\u003e \u003cp\u003e6.3 Experiments, theories and the discrete element method 215\u003c\/p\u003e \u003cp\u003e6.4 The discrete element method and other particle simulation methods 217\u003c\/p\u003e \u003cp\u003e6.5 Other simulation methods for granular materials 218\u003c\/p\u003e \u003cp\u003e6.5.1 Continuum mechanics 218\u003c\/p\u003e \u003cp\u003e6.5.2 Lattice models 219\u003c\/p\u003e \u003cp\u003e6.5.3 The Monte Carlo method 220\u003c\/p\u003e \u003cp\u003eReferences 221\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 The Discrete Element Method in Two Dimensions 223\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 The discrete element method with soft particles 223\u003c\/p\u003e \u003cp\u003e7.1.1 The bouncing ball as a prototype for the DEM approach 224\u003c\/p\u003e \u003cp\u003e7.1.2 Using two different stiffness constants to model damping 227\u003c\/p\u003e \u003cp\u003e7.1.3 Simulation of round DEM particles in one dimension 228\u003c\/p\u003e \u003cp\u003e7.1.4 Simulation of round particles in two dimensions 228\u003c\/p\u003e \u003cp\u003e7.2 Modeling of polygonal particles 229\u003c\/p\u003e \u003cp\u003e7.2.1 Initializing two-dimensional particles 229\u003c\/p\u003e \u003cp\u003e7.2.2 Computation of the mass, center of mass and moment of inertia 231\u003c\/p\u003e \u003cp\u003e7.2.3 Non-convex polygons 237\u003c\/p\u003e \u003cp\u003e7.3 Interaction 237\u003c\/p\u003e \u003cp\u003e7.3.1 Shape-dependent elastic force law 238\u003c\/p\u003e \u003cp\u003e7.3.2 Computation of the overlap geometry 240\u003c\/p\u003e \u003cp\u003e7.3.3 Computation of other dynamic quantities 244\u003c\/p\u003e \u003cp\u003e7.3.4 Damping 246\u003c\/p\u003e \u003cp\u003e7.3.5 Cohesive forces 248\u003c\/p\u003e \u003cp\u003e7.3.6 Penetrating particle overlaps 249\u003c\/p\u003e \u003cp\u003e7.4 Initial and boundary conditions 250\u003c\/p\u003e \u003cp\u003e7.4.1 Initializing convex polygons 250\u003c\/p\u003e \u003cp\u003e7.4.2 General considerations 252\u003c\/p\u003e \u003cp\u003e7.4.3 Initial positions 253\u003c\/p\u003e \u003cp\u003e7.4.4 Boundary conditions 255\u003c\/p\u003e \u003cp\u003e7.5 Neighborhood algorithms 257\u003c\/p\u003e \u003cp\u003e7.5.1 Algorithms not recommended for elongated particles 258\u003c\/p\u003e \u003cp\u003e7.5.2 ‘Sort and sweep’ 263\u003c\/p\u003e \u003cp\u003e7.6 Time integration 271\u003c\/p\u003e \u003cp\u003e7.7 Program issues 272\u003c\/p\u003e \u003cp\u003e7.7.1 Program restart 272\u003c\/p\u003e \u003cp\u003e7.7.2 Program initialization 274\u003c\/p\u003e \u003cp\u003e7.7.3 Program flow 274\u003c\/p\u003e \u003cp\u003e7.7.4 Proposed stages for the development of programs 276\u003c\/p\u003e \u003cp\u003e7.7.5 Modularization 278\u003c\/p\u003e \u003cp\u003e7.8 Computing observables 280\u003c\/p\u003e \u003cp\u003e7.8.1 Computing averages 280\u003c\/p\u003e \u003cp\u003e7.8.2 Homogenization and spatial averages 281\u003c\/p\u003e \u003cp\u003e7.8.3 Computing error bars 282\u003c\/p\u003e \u003cp\u003e7.8.4 Autocorrelation functions 284\u003c\/p\u003e \u003cp\u003e7.9 Further reading 285\u003c\/p\u003e \u003cp\u003eExercises 286\u003c\/p\u003e \u003cp\u003eReferences 286\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 The Discrete Element Method in Three Dimensions 289\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Generalization of the force law to three dimensions 289\u003c\/p\u003e \u003cp\u003e8.1.1 The elastic force 290\u003c\/p\u003e \u003cp\u003e8.1.2 Contact velocity and related forces 291\u003c\/p\u003e \u003cp\u003e8.2 Initialization of particles and their properties 292\u003c\/p\u003e \u003cp\u003e8.2.1 Basic concepts and data structures 292\u003c\/p\u003e \u003cp\u003e8.2.2 Particle generation and geometry update 294\u003c\/p\u003e \u003cp\u003e8.2.3 Decomposition of a polyhedron into tetrahedra 296\u003c\/p\u003e \u003cp\u003e8.2.4 Volume, mass and center of mass 299\u003c\/p\u003e \u003cp\u003e8.2.5 Moment of inertia 300\u003c\/p\u003e \u003cp\u003e8.3 Overlap computation 301\u003c\/p\u003e \u003cp\u003e8.3.1 Triangle intersection by using the point–direction form 301\u003c\/p\u003e \u003cp\u003e8.3.2 Triangle intersection by using the point–normal form 305\u003c\/p\u003e \u003cp\u003e8.3.3 Comparison of the two algorithms 309\u003c\/p\u003e \u003cp\u003e8.3.4 Determination of inherited vertices 310\u003c\/p\u003e \u003cp\u003e8.3.5 Determination of generated vertices 312\u003c\/p\u003e \u003cp\u003e8.3.6 Determination of the faces of the overlap polyhedron 315\u003c\/p\u003e \u003cp\u003e8.3.7 Determination of the contact area and normal 320\u003c\/p\u003e \u003cp\u003e8.4 Optimization for vertex computation 322\u003c\/p\u003e \u003cp\u003e8.4.1 Determination of neighboring features 323\u003c\/p\u003e \u003cp\u003e8.4.2 Neighboring features for vertex computation 324\u003c\/p\u003e \u003cp\u003e8.5 The neighborhood algorithm for polyhedra 325\u003c\/p\u003e \u003cp\u003e8.5.1 ‘Sort and sweep’ in three dimensions 325\u003c\/p\u003e \u003cp\u003e8.5.2 Worst-case performance in three dimensions 326\u003c\/p\u003e \u003cp\u003e8.5.3 Refinement of the contact list 327\u003c\/p\u003e \u003cp\u003e8.6 Programming strategy for the polyhedral simulation 329\u003c\/p\u003e \u003cp\u003e8.7 The effect of dimensionality and the choice of boundaries 332\u003c\/p\u003e \u003cp\u003e8.7.1 Force networks and dimensionality 332\u003c\/p\u003e \u003cp\u003e8.7.2 Quasi-two-dimensional geometries 332\u003c\/p\u003e \u003cp\u003e8.7.3 Packings and sound propagation 333\u003c\/p\u003e \u003cp\u003e8.8 Further reading 333\u003c\/p\u003e \u003cp\u003eReferences 333\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Alternative Modeling Approaches 335\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Rigidly connected spheres 335\u003c\/p\u003e \u003cp\u003e9.2 Elliptical shapes 336\u003c\/p\u003e \u003cp\u003e9.2.1 Elliptical potentials 337\u003c\/p\u003e \u003cp\u003e9.2.2 Overlap computation for ellipses 337\u003c\/p\u003e \u003cp\u003e9.2.3 Newton–Raphson iteration 339\u003c\/p\u003e \u003cp\u003e9.2.4 Ellipse intersection computed with generalized eigenvalues 340\u003c\/p\u003e \u003cp\u003e9.2.5 Ellipsoids 344\u003c\/p\u003e \u003cp\u003e9.2.6 Superquadrics 344\u003c\/p\u003e \u003cp\u003e9.3 Composites of curves 345\u003c\/p\u003e \u003cp\u003e9.3.1 Composites of arcs and cylinders 345\u003c\/p\u003e \u003cp\u003e9.3.2 Spline curves 345\u003c\/p\u003e \u003cp\u003e9.3.3 Level sets 347\u003c\/p\u003e \u003cp\u003e9.4 Rigid particles 347\u003c\/p\u003e \u003cp\u003e9.4.1 Collision dynamics (‘event-driven method’) 347\u003c\/p\u003e \u003cp\u003e9.4.2 Contact mechanics 348\u003c\/p\u003e \u003cp\u003e9.5 Discontinuous deformation analysis 349\u003c\/p\u003e \u003cp\u003e9.6 Further reading 349\u003c\/p\u003e \u003cp\u003eReferences 349\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Running, Debugging and Optimizing Programs 353\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Programming style 353\u003c\/p\u003e \u003cp\u003e10.1.1 Literature 354\u003c\/p\u003e \u003cp\u003e10.1.2 Choosing a programming language 355\u003c\/p\u003e \u003cp\u003e10.1.3 Composite data types, strong typing and object orientation 356\u003c\/p\u003e \u003cp\u003e10.1.4 Readability 356\u003c\/p\u003e \u003cp\u003e10.1.5 Selecting variable names 357\u003c\/p\u003e \u003cp\u003e10.1.6 Comments 359\u003c\/p\u003e \u003cp\u003e10.1.7 Particle simulations versus solving ordinary differential equations 361\u003c\/p\u003e \u003cp\u003e10.2 Hardware, memory and parallelism 362\u003c\/p\u003e \u003cp\u003e10.2.1 Architecture and programming model 362\u003c\/p\u003e \u003cp\u003e10.2.2 Memory hierarchy and cache 364\u003c\/p\u003e \u003cp\u003e10.2.3 Multiprocessors, multi-core processors and shared memory 365\u003c\/p\u003e \u003cp\u003e10.2.4 Peak performance and benchmarks 365\u003c\/p\u003e \u003cp\u003e10.2.5 Amdahl’s law, speed-up and efficiency 367\u003c\/p\u003e \u003cp\u003e10.3 Program writing 369\u003c\/p\u003e \u003cp\u003e10.3.1 Editors 370\u003c\/p\u003e \u003cp\u003e10.3.2 Compilers 370\u003c\/p\u003e \u003cp\u003e10.3.3 Makefiles 371\u003c\/p\u003e \u003cp\u003e10.3.4 Writing and testing code 372\u003c\/p\u003e \u003cp\u003e10.3.5 Debugging 377\u003c\/p\u003e \u003cp\u003e10.4 Measuring load, time and profiles 378\u003c\/p\u003e \u003cp\u003e10.4.1 The ‘top’ command 379\u003c\/p\u003e \u003cp\u003e10.4.2 Xload 379\u003c\/p\u003e \u003cp\u003e10.4.3 Performance monitor for multi-core processors 380\u003c\/p\u003e \u003cp\u003e10.4.4 The ‘time’ command 380\u003c\/p\u003e \u003cp\u003e10.4.5 The Unix profiler 383\u003c\/p\u003e \u003cp\u003e10.4.6 Interactive profilers 383\u003c\/p\u003e \u003cp\u003e10.5 Speeding up programs 383\u003c\/p\u003e \u003cp\u003e10.5.1 Estimating the time consumption of operations 383\u003c\/p\u003e \u003cp\u003e10.5.2 Compiler optimization options 384\u003c\/p\u003e \u003cp\u003e10.5.3 Optimizations by hand 389\u003c\/p\u003e \u003cp\u003e10.5.4 Avoiding unnecessary disk output 390\u003c\/p\u003e \u003cp\u003e10.5.5 Look up or compute 390\u003c\/p\u003e \u003cp\u003e10.5.6 Shared-memory parallelism and OpenMP 390\u003c\/p\u003e \u003cp\u003e10.6 Further reading 391\u003c\/p\u003e \u003cp\u003eExercises 392\u003c\/p\u003e \u003cp\u003eReferences 392\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Beyond the Scope of This Book 395\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Non-convex particles 395\u003c\/p\u003e \u003cp\u003e11.2 Contact dynamics and friction 395\u003c\/p\u003e \u003cp\u003e11.3 Impact mechanics 396\u003c\/p\u003e \u003cp\u003e11.4 Fragmentation and fracturing 396\u003c\/p\u003e \u003cp\u003e11.5 Coupling codes for particles and elastic continua 396\u003c\/p\u003e \u003cp\u003e11.6 Coupling of particles and fluid 398\u003c\/p\u003e \u003cp\u003e11.6.1 Basic considerations for the fluid simulation 398\u003c\/p\u003e \u003cp\u003e11.6.2 Verification of the fluid code 398\u003c\/p\u003e \u003cp\u003e11.6.3 Macroscopic simulations 399\u003c\/p\u003e \u003cp\u003e11.6.4 Microscopic simulations 399\u003c\/p\u003e \u003cp\u003e11.6.5 Particle approach for both particles and fluid 400\u003c\/p\u003e \u003cp\u003e11.6.6 Mesh-based modeling approaches 402\u003c\/p\u003e \u003cp\u003e11.7 The finite element method for contact problems 402\u003c\/p\u003e \u003cp\u003e11.8 Long-range interactions 403\u003c\/p\u003e \u003cp\u003eReferences 403\u003c\/p\u003e \u003cp\u003e\u003cb\u003eA MATLAB R○ as Programming Language 407\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eA. 1 Getting started with MATLAB R○ 407\u003c\/p\u003e \u003cp\u003eA. 2 Data types and names 408\u003c\/p\u003e \u003cp\u003eA. 3 Matrix functions and linear algebra 409\u003c\/p\u003e \u003cp\u003eA. 4 Syntax and control structures 413\u003c\/p\u003e \u003cp\u003eA. 5 Self-written functions 415\u003c\/p\u003e \u003cp\u003eA. 6 Function overwriting and overloading 416\u003c\/p\u003e \u003cp\u003eA. 7 Graphics 417\u003c\/p\u003e \u003cp\u003eA. 8 Solving ordinary differential equations 418\u003c\/p\u003e \u003cp\u003eA. 9 Pitfalls of using MATLAB R○ 420\u003c\/p\u003e \u003cp\u003eA. 10 Profiling and optimization 424\u003c\/p\u003e \u003cp\u003eA. 11 Free alternatives to MATLAB R○ 425\u003c\/p\u003e \u003cp\u003eA. 12 Further reading 425\u003c\/p\u003e \u003cp\u003eExercises 426\u003c\/p\u003e \u003cp\u003eReferences 430\u003c\/p\u003e \u003cp\u003e\u003cb\u003eB Geometry and Computational Geometry 433\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eB. 1 Trigonometric functions 433\u003c\/p\u003e \u003cp\u003eB. 2 Points, line segments and vectors 435\u003c\/p\u003e \u003cp\u003eB. 3 Products of vectors 436\u003c\/p\u003e \u003cp\u003eB.3. 1 Inner product (scalar product, dot product) 436\u003c\/p\u003e \u003cp\u003eB.3. 2 Orthogonality 437\u003c\/p\u003e \u003cp\u003eB.. 3 Outer product 438\u003c\/p\u003e \u003cp\u003eB.3. 4 Vector product 438\u003c\/p\u003e \u003cp\u003eB.3. 5 Triple product 440\u003c\/p\u003e \u003cp\u003eB. 4 Projections and rejections 441\u003c\/p\u003e \u003cp\u003eB.4. 1 Projection of a vector onto another vector 441\u003c\/p\u003e \u003cp\u003eB.4. 2 Rejection of one vector with respect to another vector 442\u003c\/p\u003e \u003cp\u003eB. 5 Lines and planes 442\u003c\/p\u003e \u003cp\u003eB.5. 1 Lines and line segments 442\u003c\/p\u003e \u003cp\u003eB.5. 2 Planes 444\u003c\/p\u003e \u003cp\u003eB. 6 Oriented quantities: distance, area, volume etc. 446\u003c\/p\u003e \u003cp\u003eB. 7 Further reading 449\u003c\/p\u003e \u003cp\u003eReferences 449\u003c\/p\u003e \u003cp\u003eIndex 451\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":52090800537943,"sku":"9781118567203","price":114.26,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781118567203.jpg?v=1762273509","url":"https:\/\/bookcurl.com\/products\/understanding-the-discrete-element-method-9781118567203","provider":"Book Curl","version":"1.0","type":"link"}