<<

Physics-based models of

Stelian Coros

1 Over the past few weeks…

• What characteristics are we looking for in a deformation model?

2 – Definition

Elasticity: The ability of a material to resist a deforming 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 Structure

4 Modeling a simple elastic object

5 Hookean Springs in 1D

퐿 Elasticity: Ability of the 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 푘 푓푒푥푡 = 푘(푙 − 퐿) Hooke’s Law

6 Hookean Springs in 1D

퐿 For elastic springs, 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 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 ’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 or area preservation

53 Alternative…

• Start from 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 • 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

 2x u y u  xv z u  x w  1      xv  y u 2y v z v y w 2   x w  z u y w  z v 2z 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 – 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: 휇 휆 Ψ = (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 • (stress relaxation, ) • (irreversible deformation) • Mullins effect (stiffness depends on strain history) • , damage, …

124 Further Reading

Textbooks • Bonet and Wood, Nonlinear Continuum Mechanics • Ogden, Nonlinear Elastic Deformations

125