Physics-based models of deformation
Stelian Coros
1 Over the past few weeks…
• What characteristics are we looking for in a deformation model?
2 Elasticity – Definition
Elasticity: The ability of a material to resist a deforming force and to return to its original size and shape when that force is removed.
3 Elasticity – Mechanisms
Silicon [Si] Silicone [Si(CH3)2O]n
Wikipedia Wikipedia
Crystal Structure Polymer Structure
4 Modeling a simple elastic object
5 Hookean Springs in 1D
퐿 Elasticity: Ability of the spring to return to its initial length when the deforming force is removed. 푙 Spring Force: 푒푥푡 푓 • Ceiiinosssttuv. (Hooke, 1676) • Ut tensio, sic vis. (Hooke, 1678)
Length of undeformed spring 퐿 Force is linear w.r.t. extension! Length of deformed spring 푙 Spring stiffness 푘 푓푒푥푡 = 푘(푙 − 퐿) Hooke’s Law
6 Hookean Springs in 1D
퐿 For elastic springs, forces are conservative, i.e., no energy is lost during deformation.
Work done by forces to deform the spring: 푙 푙 푙 푒푥푡 푒푥푡 푓 푊 = 퐿 푓 푥 푑푥 = 퐿 푘 푥 − 퐿 푑푥 풙 Stored energy of the spring is 1 Length of undeformed spring 퐿 퐸 = 푊 = 푘 푙 − 퐿 2 Length of deformed spring 푙 2 Spring stiffness 푘 Force 푓푖푛푡 exerted by spring follows as negative gradient of 퐸 (how come?): 푑퐸 푓푖푛푡 = − = −푘(푙 − 퐿) 푑푥 7 Hookean Springs – Generalization
• Inconvenience: springs with same material but different lengths will have different stiffness characteristics
A spring with rest length 퐿1 = 퐿 deforms by 훿푙 = 퐿/2 A spring with rest length 퐿2 = 100퐿 deforms by the same 훿푙 Same stiffness k, same internal force according to Hook’s law. Which one feels stiffer? Note relative deformation is VERY different!
푙−퐿 • Fix: use relative deformation 휀 = and material stiffness 푘෨. Then energy 퐿 1 density is Ψ = 푘෨휀2, and total stored energy is an integrated quantity: 2 1 퐸 = 푘෨휀2퐿 2 8 Hookean Springs in 퐑푛
퐿 The configuration of a spring is determined by the position of its two endpoints. We will distinguish
풙ഥ 풙ഥ between 1 2 푛 • Deformed positions 풙1, 풙2 ∈ 푅 푙 푛 푓푒푥푡 • Undeformed positions 풙ഥ1, 풙ഥ2 ∈ 푅
풙1 풙2 Lengths are functions of positions, i.e., Length of undeformed spring 퐿 푙 = 풙2 − 풙1 2 and 퐿 = 풙ഥ2 − 풙ഥ1 2 Length of deformed spring 푙 Spring stiffness 푘 Everything else stays the same
9 Hookean Springs in nD
퐿 푙 • 1 mass point, 1 spring 푓푒푥푡
풙ഥ1 풙ഥ2 풙1 풙2
Deformation Measure Elastic Energy Forces 푙 1 휕퐸 풙 휀 = − 1 퐸 = 푘෨휀2퐿 풇 = − 퐿 2 푖푛푡 휕풙
Working it out… 휕퐸 풙1, 풙2 휕퐸 풙1, 풙2 휕푙 1 풇1 = − = − 푇 2 휕풙 휕푙 휕풙 푙 = 풆 2 = 풆 풆 1 1 ෨ 푙 풙2−풙1 휕퐸 풇1 = −푘( − 1) with 풆 = 풙 − 풙 = 푘෨휀 퐿 풙2−풙1 2 1 휕푙 1 풇1 = −풇2 휕푙 1 − 휕 풆푇풆 푇 2 = 풆 풆 10 휕풙1 2 휕풙1 Modeling complex elastic objects
11 Modeling complex elastic objects
Straightforward concept: sample object with mass points, connect them with springs…
12 Modeling complex elastic objects
Straightforward concept: sample object with mass points, connect them with springs…
Representation: 2D triangle mesh (or 3D tetrahedral mesh, of course) 2 • Vertices 퐱푖 ∈ 퐑 • Edges 퐸푖푗 are springs connecting vertices 퐱푖 and 퐱푗
13 “Mass-spring” systems in the wild
14 Spring Networks
Energy of spring network 풙 풙 퐸 = σ푘 퐸푘 푙 푗
퐿풊푗, 푘푖푗 Total spring force at given node 퐿풊푙, 푘푖푙 풙 푖푛푡 휕퐸 휕퐸푘 푖 풇푖 = − = − σ푘 휕풙푖 휕풙푖 퐿풊푘, 푘푖푘 Total force at given node 풙 푖푛푡 푒푥푡 푘 풇푖 = 풇푖 + 풇푖
16 Force equilibrium
Given applied forces 풇푒푥푡, how to compute resulting configuration 풙?
For static equilibrium, the acceleration has to be zero for all nodes, 풂풊 풙 = ퟎ ∀푖 From Newton’s second law, we know that 풇푖 풙 = 푚푖풂푖 풙 = ퟎ
Static Equilibrium Conditions 푖푛푡 푒푥푡 풇푖 풙 + 풇푖 = ퟎ ∀푖 17 Equilibrium Conditions – Energy
If internal and external forces derive from potential fields, 푖푛푡 푒푥푡 푖푛푡 휕퐸 푒푥푡 휕퐸 풇푖 = − 풇푖 = − 휕풙푖 휕풙푖 then, static equilibrium conditions 푖푛푡 푒푥푡 풇푖 풙 + 풇푖 = ퟎ ∀푖 are equivalent to 풙 being a stationary point for the total energy
휕퐸 풙 퐸 풙 = 퐸푖푛푡(풙) + 퐸푒푥푡(풙), i.e., = ퟎ 휕풙
18 Problem Statement
Task: find minimizer 풙∗ of function 퐸(풙),
∗ ∗ 풙 = argmin푥 퐸 풙 → 퐸 풙 ≤ 퐸 풙 ∀ 풙
In general: • 퐸(풙) is a nonlinear function • 퐸(풙) is multivariate, i.e., 풙 ∈ 푅푛 with 푛 ≥ 2 • 퐸(풙) may have local minima and maxima (numerical artifacts or expected behavior of physical system)?
19 Local vs. Global Minima
Global minimum is absolute best among all possibilities Local minimum is best “among immediate neighbors” local minima
global minimum
Somewhat philosophical question: does a local minimum “solve” the problem? Depends on the problem! Solution Strategy
Given a point 풙0 how do we get to a minimum? • “Walk” into a direction that decreases 퐸(풙) • Which direction would you choose?
풙푛+1 = 풙푛 − 훼 ∇퐸 풙푛
21 The derivative
풙0
풙1
∇퐸 풙0 ∇퐸 풙1 Directional Derivatives and the Gradient
In 1D: derivative == slope == rise over run In higher dimensions: take a slice through this function along some direction • Then apply the usual derivative concept • This is called the directional derivative Directional Derivatives and the Gradient
Starting from Taylor’s series
easy to see that Directional Derivatives and the Gradient
Given a multivariate function 푓 풙 , gradient assigns a vector 훻푓 풙 at each point Inner product between gradient and any unit vector gives directional derivative “along that direction” • Another way to think about it is that inner product outputs the component of the gradient along a unit vector… Out of all possible unit vectors, what is the one along which the function changes most drastically? Gradient in coordinates
Most familiar definition: list of partial derivatives Gradient is direction of steepest ascent Function value • gets largest if we move in direction of gradient • doesn’t change if we move orthogonally • decreases fastest if we move exactly in opposite direction Steepest Descent – Algorithm I
Algorithm: steepest_descent Input: 푥 //initial guess 훼 //step length 휀 //threshold while abs(∇퐸(푥)) > 휀 do 푥 = 푥 − 훼∇퐸(푥); end do;
28 Gradient Descent (1D)
• Basic idea: follow the gradient “downhill” until it’s zero • (Zero gradient is the 1st-order optimality condition) Steepest Descent – Observations
• Progress is initially good, but slows down when approaching minimum • Number of steps to convergence depends on step length 훼 • Too small alpha leads to slow progress • Too large alpha leads to divergence
30 Gradient Descent Algorithm (1D) Steepest Descent – Observations
• Progress is initially good, but slows down when approaching minimum • Number of steps to convergence depends on step length 훼 • Too small alpha leads to slow progress • Too large alpha leads to divergence
How can we improve this basic steepest descent algorithm?
32 Steepest Descent – Improvements
• Idea: enforce monotonicity, i.e., 퐸 푥푛+1 < 퐸 푥푛 ∀ 푛. • Goal: in each step, find 훼 such that (I) 퐸 푥푛 − 훼∇퐸(푥푛) < 퐸 푥푛 • From Taylor series, we know that ∃ 훼 > 0 such that (I) holds
푓 푛 푥 e.g. 푓 푥 + 푑푥 = σ∞ 푑푥푛 푖=0 푛! = 푓 푥 + 푓’ 푥 푑푥 + 푂 푑푥2 ≈ 푓 푥 + 푓’ 푥 푑푥 if 푑푥 is sufficiently small
• Approach: reduce 훼 until condition (I) is satisfied
33 Line Search
Algorithm: line_search 푥 current state Input: 푥, 푑푥, 훼, 훽 푑푥 search direction while 퐸 푥 − 훼 ∗ 푑푥 > 퐸(푥) do 훼 initial step length 훼 = 훼 ∗ 훽; 0 < 훽 < 1 scaling factor end do;
Algorithm: steepest_descent Input: 푥, 푑푥, 훼, 훽, 휀 while abs(∇퐸(푥)) > 휀 do 푑푥 = ∇퐸(푥); 훼 = line_search(푥, 푑푥, 훼, 훽); 푥 = 푥 − 훼 푑푥; end do; 34 Gradient Descent Algorithm (nD)
Basic challenge in nD: - solution can “oscillate” - takes many, many small steps - very slow to converge
How can we improve on this? Newton’s method
Alternative approach: • Find 푑푥 such that ∇퐸 푥푛 + 푑푥 = 0
• Taylor series on gradient, to first order 2 ∇퐸 푥푛 + 푑푥 = ∇퐸 푥푛 + ∇ 퐸 푥푛 푑푥 = 0
2 −1 푑푥 = −∇ 퐸 푥푛 ∇퐸 푥푛
36 The Hessian visualized
Gradient: linear approximation Hessian: quadratic approximation Newton’s Method
Algorithm: steepest_descent Algorithm: newton Input: 푥, 훼, 훽, 휀 Input: 푥, 훼, 훽, 휀 while abs(∇퐸(푥)) > 휀 do while abs(∇퐸(푥)) > 휀 do 푑푥 = −∇퐸(푥); 푑푥 = −∇2퐸−1 x ∗ ∇퐸(푥); 훼 = line_search(푥, 푑푥, 훼, 훽); 훼 = line_search(푥, 푑푥, 훼, 훽); 푥 = 푥 + 훼 푑푥; 푥 = 푥 + 훼푑푥; end do; end do;
38 Observations & Interpretations
• Newton’s method converges much faster than Steepest Descent
Newton’s method: coordinate Gradient Descent transformation that makes the energy landscape look like a “round bowl”40 Spring Networks - Hessian
• Given 풙, we can compute 퐸푖푛푡, 퐸푒푥푡 and 휕퐸/휕풙. → Sufficient for gradient descent. 휕2퐸 • For NM, we also need second derivatives, i.e., the Hessian 퐇 = 휕풙2 • Hessian for given spring 2 푘 푘 휕 퐸 퐇푖푗 = 휕풙풊휕풙풊
41 Forces & Force Jacobians
휕2퐸 휕퐹 • So, what does 퐇 = = − represent? 휕풙2 휕풙
• Much more intuitive to think in terms of blocks of the Jacobian:
휕퐹푖 휕풙풋
• “how does the force on particle i change when the position of particle j changes”
42 Forces & Force Jacobians
• How do we compute the force Jacobian? • Analytic formulas • Numerical approach • Finite Differences, very useful for prototyping/debugging • Automatic & Symbolic differentiation • e.g. Maple
44 Gradients of Matrix-Valued Expressions
EXTREMELY useful to be able to differentiate matrix-valued expressions!
At least once in your life, work these out meticulously in coordinates! Checking Derivatives
How do you know if your derivatives are correct? • Compare analytical derivatives against numerical derivatives computed with finite differences. • Taylor series for elastic energy: 퐸 풙 + 풅풙 = 퐸 풙 + 품 풙 풅풙 + 푂 풅풙2 • FD approximation for elastic gradient 품퐹퐷 풙 풅풙 = 퐸 풙 + 풅풙 − 퐸 풙 • Can assume gradients are correct if 품퐹퐷 − 품 < 휀 • Even better, verify quadratic decrease in residual 푟 풅풙 = 퐸 풙 + 풅풙 − 퐸 풙 − 품 풙 풅풙
46 Forces & Force Jacobians
• What does the structure of the force Jacobian look like?
x0 x1 x 2 x3 x 4 x5 x6
47 Forces & Force Jacobians
• Block i,j is non-zero only if there is a spring between particles i and j. In general, connectivity structure is very sparse - most entries are therefore zero!
48 Spring Networks – Hessian
• What can be said about 퐇? 푇 • 퐇 is symmetric: 퐇푖푗 = 퐇푗푖 • 퐇 is sparse: 퐇푖푗 is only nonzero if there is a spring between nodes 푖 and 푗 • 퐇 is singular, why? • remove null-space by specifying constraints/boundary conditions
49 Newton’s Method in 푛퐷
Observations & Remarks • In general 풅풙 ≠ −품 but we require 풅풙푇품 < 0 • All robustness measures (e.g. line search) remain necessary • Additionally have to ensure robust solution of linear system
50 Indefinite Systems
• Some linear system solvers (e.g. cholesky factorization and CG) only work if 퐀 is positive semi-definite (PSD). • What does it mean for the hessian of a physical energy to be indefinite?
Positive Definite Negative Definite Indefinite
휆1, 휆2 > 0 휆1, 휆2 < 0 휆1 > 0, 휆2 < 0 51 Indefinite systems: compressed springs
퐭 퐯ퟏ퐀퐯ퟏ > ퟎ
퐯ퟐ compressive compressive force −푭 퐯ퟏ force 푭
퐭 퐯ퟐ퐀퐯ퟐ < ퟎ 퐀 is indefinite, we are at a saddle point!
52 Mass Spring Systems • Can be used to model arbitrary deformable objects, and are easy to understand and implement, but… • Behavior depends on mesh tessellation • Find good spring layout • Find good spring constants • Different types of springs interfere • Limited accuracy • No explicit volume or area preservation
53 Alternative…
• Start from continuum mechanics principles • Discretize with Finite Elements – Decompose model into simple elements – Setup & solve system of algebraic equations • Advantages – Accurate and controllable material behavior – Largely independent of mesh structure
54 General Concept
Continuous setting Deformation measure + Material model
Strain energy
Proper FEM Discretization Discrete Energy Approach Governing equations (PDE) Discretization
Weak form Per-element energy
Discretization Minimum Energy Principle
Algebraic equations
55 Mass Spring vs Continuum Mechanics • Mass spring systems require: 1. Measure of Deformation 2. Material Model 3. Deformation Energy 4. Internal Forces
• Simulation approaches that start from continuum mechanics principles rely on conceptually identical pieces of information
56 Formalizing Continuous Deformations
• For a deformable body, keep track of the • undeformed state Ωഥ ⊂ 퐑3 • deformed state Ω ⊂ 퐑3 • Displacement field 풖 describes Ω in terms of Ωഥ 풖(풙ഥ): Ωഥ → Ω , 풙 풙ഥ = 풙ഥ + 풖(풙ഥ)
z Ωഥ Ω 풙 풙ഥ 풖(풙ഥ) 푢 is displacement in 푥 direction 푣 is displacement in 푦 direction y 푤 is displacement in 푧 direction x 57 A continuous function
f(x)
x A continuous function – computer representation
f(x)
x0 x1 x2 x3 x4 x5 x6 x7 x8 A continuous function – computer representation
f(x)
x0 x1 x2 x3 x4 x5 x6 x7 x8 Let’s work it out in 1D
f(x)
x0 x1 x2 x3 x4 x5 x6 x7 x8
퐟approx 퐱 = σ푁푖 퐱 퐟(퐱푖) Approximating continuous functions
• Key idea: use basis functions and sampled function values to approximate continuous functions we care about (displacement field, deformed state, etc). • For example:
퐱 푥ҧ, 푦ത, 푧ҧ = σ푁푖 푥ҧ, 푦ത, 푧ҧ 퐱푖 Finite element discretization
Decompose complex models into simple elements
A finite element consists of 푑 • a closed subset Ω푒 ⊂ 푹 (in 푑 dimensions) • 푛 nodal basis functions defined wrt undeformed domain 푁푖: Ωഥ푒 → 푹 푑 • 푛 vectors of nodal variables 풙ഥ푖 ∈ 푹 describing the reference geometry • 푛 vectors of degrees of freedom (e.g., deformed positions 풙푖)
Example: 3-node triangle with linear basis functions
푁1 푁2 푁3
e Linear Simplicial Elements
풙ഥ4 풙ഥ 풙ഥ 3 1 풙ഥ3 풙ഥ1 풙ഥ2 풙ഥ1 풙ഥ 2 풙ഥ 1D: line segment 2D: triangle 3D: tetrahedron 2
• Simplicial elements admit linear basis functions 풙ഥ푖 = 푥ҧ푖 in 1D • Basis functions are uniquely defined through 풙ഥ푖 = (푥ҧ푖, 푦ത푖) in 2D 풙ഥ푖 = (푥ҧ푖, 푦ത푖, 푧푖ҧ ) in 3D - reference geometry 풙ഥ푖 and
- interpolation requirement 푁푖 풙ഥ푗 = 훿푖푗
65 Computing Basis Functions – 2D example Example: 3-node elements with linear basis functions N N1 N2 3
e
• Basis functions are linear on element: Ni (x, y) ai x bi y c
• Due to Ni (x j ) ij , we have
x y 1 a 1 1 1 i 1i ai x1 y1 1 1i x2 y2 1 bi 2i b x y 1 i 2 2 2i x y 1 c 3 3 i 3i ci x3 y3 1 3i
66 Reasoning about deformations Displacement field 풖 describes Ω (deformed configuration) in terms of Ωഥ (undeformed configuration): 풖 tells us where each point in the material domain ends up in world coordinates
풖(풙ഥ): Ωഥ → Ω , 풙 풙ഥ = 풙ഥ + 풖(풙ഥ)
Through interpolation, we need only keep track of the position of a finite set of points 풙 to know (approximately) the deformed configuration of the entire simulation domain.
z Ωഥ Ω 풙 풙ഥ 풖(풙ഥ)
y
x Reasoning about deformations
We know what happens to points in material space (풙 풙ഥ = 풙ഥ + 풖(풙ഥ)) But what happens to vectors?
ഥ ҧ Consider material points 풙ഥ1 and 풙ഥ2 and 풅 = (풙ഥ2 − 풙ഥ1) such that 푑 is infinitesimal. What is the corresponding deformed vector 풅? 풅 = 풙ퟐ − 풙ퟏ = 풙ഥퟐ + 풖 풙ഥ2 − 풙ഥퟏ − 풖 풙ഥ1 z ഥ ഥ Ωഥ Ω = 풅 + 풖 풙ഥ1 − 풅 − 풖 풙ഥ1 ഥ ഥ 풅 풙ퟐ 풙ퟏ ≈ 풅ഥ + 풖 풙ഥ − ∇풖풅ഥ − 풖 풙ഥ 풅 1 1 풙ഥퟏ 풙ퟐ = (퐼 + ∇풖)풅ഥ
y Deformation x gradient F Displacement field and the deformation gradient
• Displacement field maps points in material space to points in world coordinates: 풙(풙ഥ) = 풙ഥ + 풖 풙ഥ
• Deformation gradient 푭 = 푰 + 훻풖 maps undeformed vectors to deformed vectors as 풅 = 푭풅ഥ
• Since 풙(풙ഥ) = 풙ഥ + 풖 풙ഥ we can write 휕 휕풙 푭 = 푰 + 훻풖 = 풙ഥ + 풖 풙ഥ = 휕풙ഥ 휕풙ഥ
69 Displacement Field and Deformation Gradient • In general, displacement field is not explicitly described. Nevertheless, toy examples:
70 Displacement Field and Deformation Gradient • In general, displacement field is not explicitly described. Nevertheless, toy examples:
71 Displacement Field and Deformation Gradient • In general, displacement field is not explicitly described. Nevertheless, toy examples:
72 Displacement Field and Deformation Gradient • In general, displacement field is not explicitly described. Nevertheless, toy examples:
73 Displacement Field and Deformation Gradient • In general, displacement field is not explicitly described. Nevertheless, toy examples:
74 Deformation Gradient and Finite Elements
• Recall, we use basis functions to define continuous geometry of element as
퐱ത 푥ҧ, 푦ത, 푧ҧ = σ푁푖 푥ҧ, 푦ത, 푧ҧ 퐱ത푖 and 퐱 푥ҧ, 푦ത, 푧ҧ = σ푁푖 푥ҧ, 푦ത, 푧ҧ 퐱푖 • And we compute the deformation gradient as 휕퐱 퐱ത 휕푁 푡 퐅 = = σ 퐱 푖 퐱ത4 휕퐱ത 푖 푖 휕퐱ത • Notes: 퐱ത3 3×3 − In 3D, 퐅 ∈ 퐑 and 퐅 is linear in 퐱푖 퐱ത1
− If 푁푖 are linear, 퐅 is constant on element Ω푒 퐱ത2 휕푁 휕푁 − Notation and confusion: 푖 ≠ 푖 휕퐱ത 휕퐱ത푖
75 Notation & Confusion
푡 휕퐱 퐱ത 휕푁푖 휕푁푖 휕푁푖 퐅 = = 퐱푖 ≠ 휕퐱ത 휕퐱ത 휕퐱ത 휕퐱ത푖 푖 Continuous case: • Undeformed configuration 풙ഥ 푥ҧ, 푦ത = 푥ҧ, 푦ത 푇
Discretized: • Undeformed configuration 풙ഥ 푥ҧ, 푦ത = σ푖 푁푖 푥ҧ, 푦ത 풙ഥ푖 • Deformed configuration 풙 푥ҧ, 푦ത = σ푖 푁푖 푥ҧ, 푦ത 풙푖 • With, for example, 푁푖 풙ഥ = 푁푖 푥ҧ, 푦ത = 푎푖푥ҧ + 푏푖푦ത + 푐푖 휕푁 • Linear coefficients (푎 , 푏 , 푐 ) are a function of 풙ഥ , but it’s not what 푖 represents 푖 푖 푖 푖 휕퐱ത
76 Another way to compute the deformation gradient, if constant throughout element (i.e. linear basis functions)
• Deformation gradient maps undeformed vectors to deformed vectors • Choose d vectors (e.g. element edge vectors) for which the map is known, assemble in matrix form and solve for 퐅: 퐅 = 풆풆ത−ퟏ
77 Interpreting F
• Polar decomposition 푭 = 푹푼, with 푹 orthonormal and 푼 positive definite • If 푭 is non-singular, i.e., det 푭 ≠ 0, then its PD exists and is unique. How to compute the polar decomposition?
• Start from an SVD: 푭 = 푷횺푸푇with 횺 diagonal and 푷, 푸 orthonormal • Then 푭 = 푷퐐T퐐횺푸푇 = 푹푼 where 푹 = 푷푸푇is orthonormal (pure rotation) and 푼 = 퐐횺푸푇 is positive definite (pure deformation)
78 Interpreting F
Singular Value Decomposition 푭 = 푷횺푸푇
• Recall that 푭 transforms vectors from undeformed to deformed space as 풅 = 푭풅ഥ • Consider sequence of transformations for 푭 = 푷횺푸푇 = 푹푸횺푸푇 • 풅1 = 푸푇 풅ഥ : 푸푇 rotates from undeformed (material) space to intermediate space of principal stretches → preserves length. • 풅2 = 횺풅1: 횺 scales components of 풅1 → changes length. • 풅3 = 푸풅2: 푸 transforms 풅2 back to undeformed space → preserves length. • 풅 = 푹풅3: 푹 rotates from undeformed to deformed space → preserves length.
79 Interpreting F
• Consider unit tetrahedron with 푇 푇 푇 푇 • Vertices: 풙ഥ1 = 0,0,0 , 풙ഥ2 = 1,0,0 , 풙ഥ3 = 0,1,0 , 풙ഥ4 = 0,0,1 푇 푇 푇 • Edges: 풆21 = 1,0,0 , 풆31 = 0,1,0 , 풆41 = 0,0,1 • Volume of undeformed tetrahedron is defined through scalar triple product 1 푉ത = 풆 × 풆 푇풆 6 21 31 41 • Consider deformed tetrahedron with edges 푭풆푖1. Then 1 1 1 푉 = 푭풆 × 푭풆 푇푭풆 = 푭 × 푭 푇푭 = det 푭 6 21 31 41 6 :1 :2 :3 6 • The determinant of 푭 indicates the change in volume, i.e., 푉 = det 푭 푉ത
80 Modeling deformations
Deformation gradient tells us how vectors change, but how can we describe deformations (strain) at any given material point?
81 Back to spring deformation
• Deformation measure (strain):
Kind of like F • Undeformed spring: = 1 • Undeformed* infinitesimal continuum volume: = I
82 Deformation
• Deformation measure (strain):
• Desirable property: if spring is undeformed, strain is 0
• Can we find a similar measure that would work for an arbitrary volume ?
83 Deformation
• Deformation gradient 푭 = 푰 + 훻풖 maps undeformed vectors to deformed vectors as 풅 = 푭풅ഥ
• Deformation measure should capture change in length squared for any and all directions: 풅푇풅 − 풅ഥ푇풅ഥ = 풅ഥ푇(푭푇푭 − 푰)풅ഥ
• Green strain 1 1 퐸 = 푭푇푭 − 푰 = 훻풖 + 훻풖푇 + 훻풖푇훻풖 2 2
84 Green Strain and Cauchy Strain
• Green strain is quadratic in displacements 1 1 퐸 = 푭푇푭 − 푰 = 훻풖 + 훻풖푇 + 훻풖푇훻풖 2 2 • Neglecting quadratic terms leads to the linear Cauchy strain 1 1 휺 = 훻퐮 + 훻퐮t = 퐅 + 퐅푡 − 퐈 2 2 Note: • both Cauchy and Green strain are invariant under translation • Green strain is invariant under rotation, but Cauchy strain is not (what happens for a new deformation gradient 푭′ = 푹푭, obtained just by rotating an already deformed configuration? What does this mean?)
85 3D Linear Strain
• Linear Cauchy strain
2x u y u xv z u x w 1 xv y u 2y v z v y w 2 x w z u y w z v 2z w i : normal strains i : shear strains • Geometric interpretation
y,v
x,u 휕푢 휕푣 휕푢 휕푣 휕푥 휕푦 휕푦 휕푥 86 Mass Spring vs Continuum Mechanics • Mass spring systems: 1. Measure of Deformation 2. Material Model 3. Deformation Energy 4. Internal Forces • Continuum Mechanics: 1. Measure of Deformation: Green or Cauchy strain 2. Material Model
87 Material Model
• Material model links strain to deformation energy (and also to stresses/internal forces)
• e.g. linear isotropic material (generalized Hooke’s law)
1 2 2 – Energy density Ψ = 휆tr(휺) +휇tr(휺 ) tr 휺 = σ휀푖푖 2 – Lame parameters 휆 and 휇 are material constants related to fundamental physical parameters, the Poisson Ratio and Young’s modulus
88 Material Parameters
https://en.wikipedia.org/wiki/Lam%C3%A9_parameters 89 Material Model
• Material model links strain to deformation energy • E.g. linear isotropic material (generalized Hooke’s law)
1 2 2 – Energy density Ψ = 휆tr(휺) +휇tr(휺 ) tr 휺 = σ휀푖푖 2 – Lame parameters 휆 and 휇 are material constants – Obtain deformation energy by integrating energy density over element: ,(푊푒 = Ψ . If we are using linear basis functions (e.g. linear elements Ω푒 then 퐅 is constant, so Ψ is constant and 푊푒 = Ψ 퐅 ⋅ 푉ത 푒 • Interpretation 2 푇 2 – tr 휺 = tr 휺 휺 = 휺 퐹 penalizes all strain components equally 2 – 휆tr 휺 penalizes dilatations, i.e., volume changes 90 Volumetric Strain
• Consider a cube with side length 푎 • For a given deformation 휺, the added volume is 3 Δ푉 = 푎 1 + 휀11 ⋅ 푎 1 + 휀22 ⋅ 푎 1 + 휀33 − 푎 3 2 3 = 푎 (휀11 + 휀22 + 휀33) + 푂 휺 ≈ 푎 tr(휺)
푎
91 http://en.wikipedia.org/wiki/Infinitesimal_strain_theory Solving Statics Problems
• Necessary condition for static equilibrium 휕푊 푒푥푡 푒푙 퐟푒푙 = − 퐟푖 퐱 = 퐟 + 퐟 퐱 = 0 ∀푖 푖 푖 푖 휕풙푖 • Given 퐱 and 퐟 퐱 , find Δ퐱 such that 퐟 퐱 + Δ퐱 = ퟎ • First order approximation → 퐊 퐱 Δ퐱 = −퐟 퐱 Stiffness matrix 휕퐟푒푙 퐊 = Newton’s method 휕퐱 While not converged Compute 퐟 퐱 , 퐊(퐱) Solve 퐊 퐱 Δ퐱 = −퐟 퐱 line search 훼 = linesearch(퐱, Δ퐱) Update 퐱 += 훼Δ퐱 end 92 Solving The Static Equilibrium Problem
Assemble element contributions into global vector and matrix
Force vector Stiffness Matrix
퐟 ∈ 퐑3⋅푛푣 퐟푒 ∈ 퐑3⋅4 퐊푒 ∈ 퐑12×12 퐊 ∈ 퐑3푛푣×3푛푣
+=
… …
Symmetric Symmetric and sparse
93 Linear Elasticity – Behavior
휕2푊 • For linear elasticity, 푊 is quadratic in 퐱, 퐟 is linear in 퐱, and is 휕풙ퟐ constant → only solve one linear system for static equilibrium
• Problem: Cauchy strain is not invariant under rotations → inaccuracies for large rotations deformations • Solution: use nonlinear deformation measure (e.g. Green strain instead of Cauchy strain)
94 Nonlinear Elasticity
• Idea: replace Cauchy strain with Green strain → St. Venant-Kirchhoff material (StVK) 1 • Energy Ψ = 휆tr(퐄)2+휇tr(퐄2) 푆푡푉퐾 2
• Note: • Energy is quartic in 퐱, forces are cubic • Green strain is rotation invariant • Solve system of nonlinear equations
95 StVK Limitations
• Problem: StVK softens under compression
Energy Force
Deformation
Deformation
• Once inverted, elements are happy to stay there… • Work around: add volume term 휆 Ψ = tr(퐄)2+휇tr 퐄2 → Ψ = 휂(det 퐅 − 1)2 + 휇tr 퐄2 푆푡푉퐾 2 푀표푑
96 Advanced nonlinear materials
1 1 • Green Strain 퐄 = 퐅푡퐅 − 퐈 = (퐂 − 퐈) Energy 2 2 • Split into deviatoric (i.e. volume-preserving shape changing/distortion) and volumetric (dilation, volume changing) deformations Volumetric: 퐽 = det 퐅 Deviatoric: 퐂 = 퐅푡퐅
• Compressible Neo-Hookean material: Stress 휇 휆 Ψ = (tr 퐂) − 3 − 휇 ln 퐽 + ln 퐽 2 푁퐻 2 2 Observations: 2 • the first term penalizes all deformations equally (since tr 푪 = 푭 퐹) • the third term goes to infinity for increasing compression (faster than the second) • the stress-strain behavior is initially linear, but goes into plateau for larger deformations • Rule of thumb: NH is good for deformations of up to 20%
97 Different Models
St. Venant-Kirchoff
Neo-Hookean
Linear
98 FEM recipe
• Discretize into elements (triangles/tetraderons, etc) • For each element • Compute deformation gradient • Use material model to define energy density Ψ(퐅) • Integrate over elements to compute energy: W • Compute nodal forces as the negative gradient of deformation energy
99 Young’s Modulus and Poisson Ratio
Lame parameters 휆 and 휇 are material constants related to the fundamental physical parameters: Poisson’s Ratio and Young’s modulus (http://en.wikipedia.org/wiki/Lamé_parameters)
10 Kg
10 Kg
Young’s modulus (E), measure of Poisson’s ratio (ν), captures transverse stiffness deformation relative to axial deformation100 What Do These Parameters Mean
• Stiffness is pretty intuitive
Pascals = force/area
10 Kg
OBJECT 10 Kg E=10000000 GPa OBJECT E=60 KPa
101 What Do These Parameters Mean
Poisson’s Ratio quantifies the extent to which volume is preservation
OBJECT 1
1
OBJECT
102 What Do These Parameters Mean
Poisson’s Ratio controls volume preservation
OBJECT
2
OBJECT 1/2
103 What Do These Parameters Mean
Poisson’s Ratio controls volume preservation
OBJECT
Poisson’s Ratio ( ) = ? 2
OBJECT 1/2
104 What Do These Parameters Mean
Poisson’s Ratio controls volume preservation
OBJECT Poisson’s Ratio ( ) = 0.5
2
OBJECT 1/2
105 What Do These Parameters Mean
Poisson’s ratio is between -1 and 0.5
OBJECT Poisson’s Ratio ( ) = -0.5
2
OBJECT 1.5
106 Negative Poisson’s Ratio materials
107 Measurement
• Where do material parameters come from?
108 Simple Measurement: Stiffness
OBJECT
109 Simple Measurement
What’s the Force (Stress)?
What’s the Deformation (Strain)?
1kg
OBJECT
110 Simple Measurement
1kg
OBJECT
111 Simple Measurement
2kg
OBJECT
112 Simple Measurement
3kg
OBJECT
113 Simple Measurement
7kg
OBJECT
114 Simple Measurement
How do we get the stiffness ?
7kg
OBJECT
115 Simple Measurement
How do we get the stiffness ?
7kg
OBJECT
116 Simple Measurement
How do we get the stiffness ?
7kg Stiffness
OBJECT
117 Simple Measurement: Poisson’s Ratio
OBJECT
118 Simple Measurement: Poisson’s Ratio
OBJECT
119 Simple Measurement: Poisson’s Ratio
Compute changes in width and height
OBJECT
120 Simple Measurement: Poisson’s Ratio
Poisson’s Ratio
OBJECT
121 Measurement Devices
122 Suppose you want to simulate this…
123 The Limits of Hyperelasticity
• Real-world materials are not perfectly hyperelastic • Viscosity (stress relaxation, creep) • Plasticity (irreversible deformation) • Mullins effect (stiffness depends on strain history) • Fatigue, damage, …
124 Further Reading
Textbooks • Bonet and Wood, Nonlinear Continuum Mechanics • Ogden, Nonlinear Elastic Deformations
125