- Preface
- Simulation with Optimization
- 1. Discrete Space and Time
- 1.1. Representations of a Solid Geometry
- 1.2. Newton's Second Law
- 1.3. Time Integration
- 1.4. Explicit Time Integration
- 1.5. Implicit Time integration
- 1.6. Summary
- 2. Optimization Framework
- 2.1. Optimization Time Integrator
- 2.2. Dirichlet Boundary Conditions
- 2.3. Contact
- 2.4. Friction
- 2.5. Summary
- 3. Projected Newton
- 3.1. Convergence of Newton's Method
- 3.2. Line Search
- 3.3. Gradient-Based Optimization
- 3.4. Summary
- 4. Case Study: 2D Mass-Spring*
- 4.1. Spatial and Temporal Discretizations
- 4.2. Inertia Term
- 4.3. Mass-Spring Potential Energy
- 4.4. Optimization Time Integrator
- 4.5. Simulation with Visualization
- 4.6. GPU-Accelerated Simulation
- 4.7. Summary
- Boundary Treatments
- 5. Dirichlet Boundary Conditions*
- 5.1. Equality Constraint Formulation
- 5.2. DOF Elimination Method
- 5.3. Case Study: Hanging Sqaure*
- 5.4. Summary
- 6. Slip Dirichlet Boundary Conditions
- 6.1. Axis-Aligned Slip DBC
- 6.2. Change of Variables
- 6.3. General Slip DBC
- 6.4. Summary
- 7. Distance Barrier for Nonpenetration
- 7.1. Signed Distances
- 7.2. Distance Barrier
- 7.3. Solution Accuracy
- 7.4. Summary
- 8. Filter Line Search*
- 8.1. Tunneling Issue
- 8.2. Penetration-free Trajectory
- 8.3. Case Study: Square Drop*
- 8.4. Summary
- 9. Frictional Contact
- 9.1. Smooth Dynamic-Static Transition
- 9.2. Semi-Implicit Discretization
- 9.3. Fixed-Point Iteration
- 9.4. Summary
- 10. Case Study: Square On Slope*
- 10.1. From Ground To Slope
- 10.2. Slope Friction
- 10.3. Summary
- 11. Moving Boundary Conditions*
- 11.1. Penalty Method
- 11.2. Case Study: Compressing Square*
- 11.3. Summary
- Hyperelasticity
- 12. Kinematics Theory
- 12.1. Continuum Motion
- 12.2. Deformation
- 12.3. Summary
- 13. Strain Energy
- 13.1. Rigid Null Space and Rotation Invariance
- 13.2. Polar Singular Value Decomposition
- 13.3. Simplified Models and Invertibility
- 13.4. Summary
- 14. Stress and Its Derivatives
- 14.1. Stress
- 14.2. Computing Stress
- 14.3. Computing Stress Derivatives
- 14.4. Summary
- 15. Case Study: Inversion-free Elasticity*
- 15.1. Linear Triangle Elements
- 15.2. Computing Energy, Gradient, and Hessian
- 15.3. Filter Line Search for Non-Inversion
- 15.4. Summary
- Governing Equations
- 16. Strong and Weak Forms
- 16.1. Conservation of Mass
- 16.2. Conservation of Momentum
- 16.3. Weak Form
- 16.4. Summary
- 17. Discretization of Weak Forms
- 17.1. Discrete Space
- 17.2. Discrete Time
- 17.3. Summary
- 18. Boundary Conditions and Frictional Contact
- 18.1. Incorporating Boundary Conditions
- 18.2. Normal Contact for Nonpenetration
- 18.3. Barrier Potential
- 18.4. Friction Force
- 18.5. Summary
- Finite Element Method
- 19. Linear Finite Elements
- 19.1. Piecewise Linear Displacement Field
- 19.2. Mass Matrix and Lumping
- 19.3. Elasticity Term
- 19.4. Summary
- 20. Piecewise Linear Boundaries
- 20.1. Boundary Conditions
- 20.2. Solid-Obstacle Contact
- 20.3. Self-Contact
- 20.4. Summary
- 21. Case Study: 2D Self-Contact*
- 21.1. Scene Setup and Boundary Element Collection
- 21.2. Point-Edge Distance
- 21.3. Barrier Energy and Its Derivatives
- 21.4. Continuous Collision Detection
- 21.5. Summary
- 22. 2D Frictional Self-Contact*
- 22.1. Discretization and Approximation
- 22.2. Precomputing Normal and Tangent Information
- 22.3. Friction Energy and Its Derivatives
- 22.4. Summary
- 23. 3D Elastodynamics
- 23.1. Kinematics
- 23.2. Mass Matrix
- 23.3. Elasticity
- 23.4. Summary
- 24. 3D Frictional Self-Contact
- 24.1. Barrier and Distances
- 24.2. Collision Detection
- 24.3. Friction
- 24.4. Summary
- Spatial Reductions
- 25. Rigid Body Simulation*
- 25.1. Rigid Body Dynamics
- 25.2. Subspace Simulation
- 25.3. Affine Body Dynamics
- 25.4. Case Study: ABD Square Drop*
- 25.5. Summary
- 26. Modal Reductions*
- 26.1. Linear Modal Analysis
- 26.2. Linear Demo*
- 26.3. Non-linear Reductions
- 26.4. Reduction Basis
- 26.5. Summary
- Material Point Method
- 27. Spatial and Temporal Discretization
- 27.1. Material Particles
- 27.2. Interpolating Functions
- 27.3. Particle-Grid Transfers
- 27.4. Deformation Gradient and Particle State Update
- 27.5. Summary
- 28. Beyond Elasticity: Plasticity and Viscosity
- 28.1. Discretization of Plastic Flow
- 28.2. Yield Condition and Return Mapping
- 28.3. Summary
- 29. Boundary Treatments
- 29.1. Boundary Conditions
- 29.2. Frictional Contact on Material Particles
- 29.3. Summary
- 30. Case Study: Two Colliding Elastic Blocks in 2D*
- 30.1. Simulation Setup
- 30.2. Particle-In-Cell Transfer
- 30.3. Summary
- 31. Case Study: Plastic Material Models*
- 31.1. Drucker-Prager Elastoplasticity
- 31.2. SDF-based Sphere Collider
- 31.3. Affine Particle-In-Cell Transfer
- 31.4. 2D Viscoplastic Bars
- 31.5. Summary
- Position Based Simulations
- 32. Position Based Dynamics (PBD)
- 32.1. Particle Simulation Preliminaries
- 32.2. Core Algorithm / Position Based Framework
- 32.3. Constraint Formulation
- 32.4. Constraint Solver
- 32.5. Extended PBD (XPBD): Stiffness and Damping
- 32.6. Summary
- 33. Case Study: Cloth Simulation*
- 33.1. Stretching Constraints
- 33.2. Bending Constraints
- 33.3. Complete Cloth Simulation
- 34. Case Study: Mesh Simulation*
- 34.1. Volume Constraints
- 34.2. Edge Constraints
- 34.3. Complete Mesh Simulation
- 35. Case Study: Position Based Fluids*
- 35.1. Density Constraints
- 35.2. Tensile Instability Correction
- 35.3. Advanced Fluid Effects
- 35.4. Complete PBF Simulation
- 36. Other Common Constraints
- 36.1. Collision Constraints
- 36.2. Continuum-based Constraints
- 36.3. Summary
- Special Topics
- 37. Linear System
- 37.1. Direct Solver
- 37.2. Basic Iterative Methods
- 37.3. Conjugate Gradient
- 37.4. Summary
- Bibliography