<<

Material Point Methods

1 Introduction

The method is Lagrangian, but with an Eulerian grid used for computing . This alleviates the need for a Lagrangian mesh (for computation) that would get tangled when the material is highly deformed from its original configuration. This lets you simulate a wider class of materials than with a purely Lagrangian method. The Eulerian aspects allow for natural treatment of topological changes and collisions (self and with external objects). There is a sacrifice of some accuracy in doing this though and materials like e.g. hyperelasticity are not going to be simulated as effectively. Given this view, it is useful to start from the Lagrangian form of some conservation principles.

2 Kinematics

0 t 0 t d We consider the motion of material to be determined by a mapping φ(·, t):Ω → Ω for Ω , Ω ⊂ R where d = 2 or 3. The mapping φ is sometimes called the flow map or the map. Points in the set Ω0 are referred to as material points and are denoted as X. Points in Ωt represent the location of material points at time t. They are referred to as x. In other words, φ describes the motion of each material point X ∈ Ω0 over time

x = x(X, t) = φ(X, t).

This mapping can be used to quantify the relevant continuum based physics. For example, the velocity of a given material point X at time t is ∂φ V(X, t) = (X, t) ∂t also the acceleration is ∂2φ ∂V A(X, t) = (X, t) = (X, t). ∂t2 ∂t 0 d 0 d I.e. V(·, t):Ω → R and A(·, t):Ω → R .

2.1 Deformation The Jacobian of the deformation map φ is useful for a number of reasons described below. E.g. the physics of elasticity is naturally described in terms of this Jacobian. It is standard notation to use F to refer to the Jacobian of the deformation mapping ∂φ ∂x F(X, t) = (X, t) = (X, t). ∂X ∂X 0 d×d F is often simply called the deformation gradient. It can be thought of as F(·, t):Ω → R . d×d In other words, for every material point X, F(X, t) is the R matrix describing the deformation Jacobian of the material at time t. We can also use the index notation

∂φi ∂xi Fij = = , i, j = 1, . . . , d ∂Xj ∂Xj The Jacobian determinant is also often useful. It is commonly denoted with J = det (F). J is the ratio of the infinitesimal volume of material in configuration Ωt to the original volume in Ω0.

1 2.2 Push forward/pull back The mapping φ is assumed to be bijective. And since we will assume it is smooth, this means that the sets Ω0 and Ωt are homeomorphic/diffeomorphic under φ. This is associated with the assumption that no two different particles of material ever occupy the same space at the same time. This means that ∀x ∈ Ωt, ∃!X ∈ Ω0 such that φ(X, t) = x. In other words, there exist an inverse mapping φ−1(·, t):Ωt → Ω0. This means that any function over one set can naturally be thought of as a function over the other set by means of change of variables. We denote this interchange of independent variable as either push forward (taking a function defined over Ω0 and defining a t 0 counterpart over Ω ) or vice versa (pull back). For example, given G :Ω → R the push forward t −1 g :Ω → R is defined as g(x) = G(φ (x, t)). Similarly, the push forward of g is g(φ(X, t)) which can be seen to be exactly G(X) by definition of the inverse mapping.

2.3 Eulerian velocity and acceleration The push forward of a function is sometimes referred to as Eulerian (a function of x) and the pull back function is sometimes referred to as Lagrangian (a function of X). As previously defined, the velocity and acceleration functions are Lagrangian. It is also useful to define Eulerian counterparts. That is, v(x, t) = V(φ−1(x, t), t), a(x, t) = A(φ−1(x, t), t). With this, we can also see that

V(X, t) = v(φ(X, t), t), A(X, t) = a(φ(X, t), t).

With this notion of a and v we can see that ∂ ∂v ∂v ∂φ A(X, t) = V(X, t) = (φ(X, t), t) + (φ(X, t), t) (X, t). ∂t ∂t ∂x ∂t Using index notation, this can be written as

∂ ∂vi ∂vi ∂φj Ai(X, t) = Vi(X, t) = (φ(X, t), t) + (φ(X, t), t) (X, t). ∂t ∂t ∂xj ∂t where summation is implied on the repeated index j. Therefore, we can say that

−1 ∂vi ∂vi ai(x, t) = Ai(φ (x, t), t) = (x, t) + (x, t)vj(x, t) ∂t ∂xj

−1 ∂φj −1 where we use x = φ(φ (x, t), t) and vj(x, t) = ∂t (φ (x, t), t). Note that ∂v a (x, t) 6= i (x, t). i ∂t

2.4 Material derivative Although the relationship between the Eulerian a and v is not simply via partial differentiation with respect to time, the relationship is a common one and it is often called the material derivative. The notation D ∂vi ∂vi vi(x, t) = (x, t) + (x, t)vj(x, t) Dt ∂t ∂xj

2 is often introduced so that D a = v. Dt t For a general Eulerian function f(·, t):Ω → R, we use this same notation to mean D ∂f ∂f f(x, t) = (x, t) + (x, t)vj(x, t). Dt ∂t ∂xj

D ∂ Note that Dt f(x, t) is the push forward of ∂t F where F is the pull back of f.

2.4.1 Example: material derivative of deformation gradient The deformation gradient is usually thought of as Lagrangian. That is, most of the time when this comes up in the physics of a material, the Lagrangian view is the dominant one. This is at least true, in my personal experience. There is however a useful evolution of the Eulerian (push forward) 0 d×d t d×d of F(·, t):Ω → R . Let f(·, t):Ω → R be the push forward of F, then

D ∂v D ∂vi f = f or fij = fkj Dt ∂x Dt ∂xk with summation implied on the repeated index k. We can see this because

∂ ∂ ∂φi ∂Vi ∂vi ∂φk Fij(X, t) = (X, t) = (X, t) = (φ(X, t), t) (X, t). ∂t ∂t ∂Xj ∂Xj ∂xk ∂Xj

2.5 Change of variables It is very common to use the push forward/pull back when changing variables for integrals defined over subsets of either Ω0 or Ωt. That is Z Z g(x)dx = G(X)J(X, t)dX St S0 where St is an arbitrary subset of Ωt, S0 is the pre-image of St under φ(·, t), G is the pull back of g and J(X, t) is the deformation gradient determinant. Also, surface integrals are related via Z Z h(x) · n(x)ds(x) = H(X) · F−T (X, t)N(X)J(X, t)dX ∂St ∂S0

0 d t d t where H :Ω → R is the pull back of h :Ω → R , n(x) is the unit outward normal of ∂S at x and N(X) is the unit outward normal of ∂S0 at X. This is just the standard change of variables, however it is worth noting it now because it is very useful when deriving the .

3 Conservation of mass

Let ρ be the Eulerian mass density and let R be the Lagrangian counterpart (pull back). You can think of ρ to be naturally defined over Ωt as

t mass(B) ρ(x, t) = lim R →+0 t dx B

3 t t where B is the ball of radius  surrounding an arbitrary x ∈ Ω . This is arguably a natural definition t since mass(B) should be a measurable quantity. Conservation of mass can be expressed as Z Z Z t 0 mass(B) = ρ(x, t)dx = R(X, t)JdX = R(X, 0)dX = mass(B ) t 0 0 B B B

t t 0 t for all B ⊂ Ω (as before, B is the pre-image of B under φ(·, t)). This just says that the mass t in B (as expressed via an integral of the mass density) should not change with time. This set is associated with a subset of the material at time t and as it evolves in the flow, the material will t take up more or less space, but there will never be more or less material in the set. Since B is arbitrary, it must be true that

R(X, t)J(X, t) = R(X, 0), ∀X ∈ Ω0, t ≥ 0.

Alternatively, ∂ (R(X, t)J(X, t)) = 0 ∂t and since ∂ ∂R ∂J (RJ) = J + R ∂t ∂t ∂t and ∂J ∂J ∂Fij −1 ∂Vi −1 ∂vi ∂vi ∂vi = = JFji = JFji Fkj = Jδik = J ∂t ∂Fij ∂t ∂Xj ∂xk ∂xk ∂xi the Eulerian view is D ρ(x, t) + ρ(x, t)∇ · v(x, t) = 0, ∀x ∈ Ωt, t ≥ 0. Dt 4 Conservation of

Continuum forces are classified as either body forces (e.g. gravity) or surface forces (stress-based). Stress-based forces are first defined via a traction field whose existence we will assume. The force t d per area (or traction) field t(, ·, n, t):Ω → R is defined via the relation Z t forceS(B) = t(x, n(x))ds(x) t ∂B

t t where forceS(B) is the net force on an arbitrary B exerted from material on the other side of t t ∂B on material inside B. That is, t(x, n, t) is the force per unit area(d = 3)/length(d = 2) that material in the n+ side of the material at the point x exerts on material on the n− side. It can be t d×d shown that this implies the existence of a stress field (Cauchy stress) σ(·, t):Ω → R with t(x, n, t) = σ(x, t)n.

This can be used to express conservation of momentum. Let v be the Eulerian velocity (with Lagrangian counterpart V). Then conservation of momentum is expressed as d Z d Z Z Z ρ(x, t)v(x, t)dx = R(X, t)V(X, t)JdX = R(X, 0)A(X, t)dX = σnds(x) dt t dt 0 0 t B B B ∂B

t t for all B ⊂ Ω in the time t configuration of the material. I.e. the rate of change of the momentum t t in B is equal to the net force on B as expressed via the Cauchy stress field. It can also be shown

4 that σ(x, t) must be symmetric for conservation of angular momentum. Finally, by writing all t integrals over B, we have Z Z Z ρ(x, t)a(x, t)dx = σnds(x) = ∇x · σdx t t t B ∂B B or ρa = ∇x · σ + f ext, ∀x ∈ Ωt, t ≥ 0. Alternatively, using the relation Z Z σ(x, t)nds(x) = J(X, t)σ(φ(X, t), t)F−T (X, t)Nds(X) t 0 ∂B ∂B and the definition of the first Piola Kirchoff stress P as P = JσF−T

R(X, 0)A(X, t) = ∇x · P(X, t) + Fext(X, t)J(X, t), ∀X ∈ Ω0, t ≥ 0 where Fext is the pull back of the Eulerian body force per unit volume f ext. This is the Lagrangian form of conservation of momentum.

5 Weak form

MPM is like the FEM discretization of the Cauchy stress based forces over the Eulerian grid. It therefore uses the weak form of force balance. Again, I think it is more natural to think of it as Lagrangian so I will start with

R(X, 0)A(X, t) = ∇x · P(X, t), ∀X, t. or R0Ai = Pij,j, ∀X, t. 0 d So for an arbitrary function Q(·, t):Ω → R , we can say Z Z Qi(X, t)R(X, 0)Ai(X, t)dX = Qi(X, t)Pij,j(X, t)dX = Ω0 Ω0 Z (Qi(X, t)Pij(X, t)),j − Qi,j(X, t)Pij(X, t)dX = Ω0 Z Z Qi(X, t)Pij(X, t)Nj(X, t)ds(X) − Qi,j(X, t)Pij(X, t)dX. ∂Ω0 Ω0

The quantity PijNj would be specified as a boundary condition. If we let T be the force per unit reference area, then Z Z Z QiR0AidX = QiTids(X) − Qi,jPijdX. Ω0 ∂Ω0 Ω0

0 d In other words, we can say that force balance implies that ∀Q(·, t):Ω → R Z Z Z QiR0AidX = QiTids(X) − Qi,jPijdX. Ω0 ∂Ω0 Ω0

5 5.1 Push forward The stress derivatives will be discretized in the current configuration, so we can push the stress involving integrals to the Eulerian view. Let q be the push forward of Q. Then,

∂Qi ∂qi ∂xk Qi,j = = = qi,kFkj ∂Xj ∂xk ∂Xj and using 1 σ = P F ik J ij kj and defining t to be the external force per unit area in the Eulerian configuration, we have Z Z Z Z QiR0AidX = qiρaidx = qitids(x) − qi,kσikdx. Ω0 Ωt ∂Ωt Ωt t d That is, we can say that force balance implies the above holds for an arbitrary q(·, t):Ω → R .

6 Material particles

The method is Lagrangian in the sense that we track actual particles of material. That is we keep track of mass (mp), velocity (vp) and position (xp) for a collection of material particles p. However, all stress based forces are computed on the Eulerian grid, so we have to transfer the material state to the Eulerian configuration to incorporate the effects of material forces. Then, we transfer these effects back to the material particles and move them in the normal Lagrangian way.

6.1 Eulerian interpolating functions Let us define interpolating functions for the Eulerian velocity. We can do this with the notation th Nig (x) where ig refers to the ig node on the Eulerian grid. They are easy to construct because we use a regular/structured Eulerian grid. We use direct products of the simple 1D interpolating functions. These can be defined from  1, x ∈ (−.5,.5)  1 − |x| , x ∈ (−1, 1) χ (x) = ,W 0(x) = , 0 0, otherwise 0 0, otherwise

 1 |x|3 − x2 + 2 , |x| < 1  2 3 1 −1 3 2 4 W0 (x) = 6 |x| + x − 2 |x| + 3 , 1 < |x| < 2  0, otherwise

x−xig y−yig which can be see in Figure 1. We define (e.g. for d=2) Nig (x) = N( )N( ) where N is one   ∆x ∆x 1 1 xig of χ0, W0 or W0 and the grid node xig = . Also, the spacing between grid nodes is ∆x in yig each direction.

6.2 Eulerian/Lagrangian mass When representing our material as a finite collection of points, we can assign each point a subset 0 0 (B∆x,p ⊂ Ω ) of the total material. In this way, we can define the mass of that particle to be Z n n mp = ρ(x, t )dx tn B∆x,p

6 Figure 1: The basic interpolation functions.

With this convention, we can define the following conservative process for transferring mass and momentum (and then velocity) to the nodes of the Eulerian grid. Define X mig = mpNig (xp) p as the mass of Eulerian grid node ig. With this convention, we have X X X X X X mig = mpNig (xp) = mp Nig (xp) = mp ig ig p p ig p by the partition of unity assumption on the Nig .

6.3 Eulerian/Lagrangian momentum

Similarly, we can transfer particle momentum mpvp as X (mv) = m v N (x ) ig p p ig p p and we will know also that X X (mv) = m v ig p p ig p by the same partition of unity logic. The Eulerian velocity vig is defined as (mv) ig vig = . mig Note that in this case, the repeated index does not imply summation.

6.4 Eulerian to Lagrangian transfer The transfer from Eulerian variables to Lagrangian variables is similar. However, we never need to transfer mass from the grid to the particles since Lagrangian particle mass never changes. Velocity is simply interpolated as X vp = vig Nig (xp). ig It is easily verified that this conserves momentum as X X X X X X mpvp = mp vig Nig (xp) = vig mpNig (xp) = mig vig . p p ig ig p ig

7 7 Discretization

With MPM, there is a combination of Eulerian and Lagrangian aspects for discretization. Ideally, we take the best aspects of either perspective. E.g. is trivial from a Lagrangian view, but self collision is much more easily resolved from an Eulerian view. Also, mesh quality is irrelevant if we take an Eulerian view. With MPM, we can think of the material points as quadrature points used in the weak/FEM style discretization of spatial stress derivatives. We will now discuss a representative MPM-style discretization.

7.1 Discrete time We will start by assuming we are at time tn. Recall that the weak form of the force balance equation is then Z Z Z QiR0AidX = qitids(x) − qi,kσikdx. Ω0 ∂Ωtn Ωtn 1 n+1 n for all q/Q. We start by replacing Ai with ∆t Vi − Vi . We can then push the left hand side forward to obtain Z Z Z 1 n n n+1 n  n n n n qi(x, t )ρ(x, t ) vi (x) − vi (x) dx = qi(x, t )ti(x, t )ds(x)− qi,k(x, t )σik(x, t )dx. ∆t Ωtn ∂Ωtn Ωtn

n tn d n+1 tn d n+1 −1 n n+1 Note that with this notation v :Ω → R , v :Ω → R and vi (x) = Vi(φ (x, t ), t ) n −1 n n and vi (x) = Vi(φ (x, t ), t ).

7.2 Discrete space n n+1 We can do an FEM style discretization of the spatial terms by replacing qi, vi and vi with grid based interpolants as X X X q (x, tn) = q (tn)N (x), vn(x) = vn N (x), vn+1(x) = vn+1 N (x) i iig ig i i jg jg i i jg jg ig jg jg or qn = q n N , vn = vn N , vn+1 = vn+1 N i iig ig i i jg jg i i jg jg for short where summation is implied on the repeated index. Force balance can then be viewed as 1 Z 1 Z q n N (x)ρ(x, tn)vn+1 N (x)dx − q n N (x)ρ(x, tn)vn N (x)dx = iig ig i jg jg iig ig i jg jg ∆t Ωtn ∆t Ωtn Z Z n n n n qiig Nig (x)ti(x, t )ds(x) − qiig Nig,k(x)σik(x, t )dx. ∂Ωtn Ωtn for all qiig . This can also be expressed as mn mn n igjg n+1 n igjg n qi δij vj − qi δij vj = ig ∆t jg ig ∆t jg Z Z n n qiig Nig tids(x) − qiig Nig,kσikdx. ∂Ωtn Ωtn where Z n n migjg = Nig (x)ρ(x, t )Njg (x)dx Ωtn

8 Now, this must be true for all choices of q n . So if we say that iig

 1, i = ˆi and i = iˆ q n = g g iig 0, otherwise then m ˆ Z Z X igjg  n+1 n  v − vˆ = N ˆ tˆds(x) − N ˆ σˆ dx. ˆi j i jg n ig i n ig,k ik ∆t g ∂Ωt Ωt jg

This can be seen as a discrete force balance equation for the ˆi, iˆg degree of freedom. We will next show that it can be used as an explicit update rule for the Eulerian momentum and that the right th th hand side can be thought of as the ˆi component of the force on the iˆg Eulerian grid node.

7.2.1 Mass lumping It is often convenient (though less accurate) to use a mass lumping simplification. It is done by replacing the rows in migjg with the corresponding row sum, thus making it a diagonal matrix. The row sums are Z Z Z X n n X n mˆ ig = Nig (x)ρ(x, t )Njg (x)dx = Nig (x)ρ(x, t ) Njg (x)dx = Nig (x)ρ(x, t )(x)dx. Ωtn Ωtn Ωtn jg jg We can also use the following approximation Z Z n X Nig (x)ρ(x, t )dx = Nig (x(X))R(X, 0)dX ≈ Nig (xp)mp tn 0 Ω Ω p

0 Since mp ≈ ApR(Xp, 0). In other wordsm ˆ ig can naturally be approximated as mig . Then, since m vn = (mv)n , we can summarize as ig ig ig

 n+1 n  (mvi) − (mvi) Z Z ig ig n n = Nig (x)ti(x, t )ds(x) − Nig,k(x)σik(x, t )dx. ∆t ∂Ωtn Ωtn In other words, since the left hand side is the change in momentum, the right hand side is approximately the force. We have not yet discussed the constitutive model for the stress σ. However, n n n n if we assume that we have an estimate of the stress σp ≈ σ(xp , t ) at each Lagrangian particle xp , then Z n X n n n Nig,k(x)σik(x, t )dx ≈ σpikNig,k(xp )Ap tn Ω p n tn where Ap is the area of B∆x,p.

n 7.3 Density based estimate of Ap n We can estimate Ap recalling that

0 n n n mp ≈ R(Xp, 0)Ap ≈ ρ(xp , t )Ap by first approximating ρ(xn, tn) from mn as p ig mn n ig n n X n n ρ = , ρ(x , t ) ≈ ρ Ni (x ). ig ∆xd p ig g p ig

9 That is d n mp mp∆x Ap ≈ mn = P n n ig m Ni (x ) P N (xn) ig ig g p ig ∆xd ig p

n 7.4 Deformation gradient based approximation of Ap n n If we have an approximation of the deformation at each Lagrangian particle: Fp ≈ F(Xp, t ) (which n n n we will need for an elastic material), then you can approximate Ap using Jp = det(Fp ). Specifically, 0 R if we assume we know the initial area Ap = 0 dx, then B∆x,p n 0 n Ap ≈ ApJp . 1 T If we use the formula for the first Piola Kirchoff stress σ = J PF then we can further say that X X 1 X σ n N (xn)An = P n F n N (xn)A0J n = P n F n N (xn)A0. pik ig,k p p J n p ij p kj ig,k p p p p ij p kj ig,k p p p p p p This is the formula that will be more useful in practice. We will next discuss how to approximate n n the deformation gradient (Fp ) at each Lagrangian point (xp ).

7.5 Deformation gradient In order to continue the discussion of time stepping schemes, we need to consider the constitutive model. So far, the results hold independent of the type of material. We will generally consider models where the stress depends primarily on the change of shape in the material as expressed via the deformation gradient. Next, we will discuss how this can be computed in the MPM context. The deformation gradient is more difficult to compute for Eulerian methods (or Lagrangian methods where there is no mesh, e.g. particle methods). However, we can use the equation ∂ ∂v F(X, t) = (φ(X, t), t)F(X, t) ∂t ∂x ∂v to update a deformation gradient on each material particle by discretizing ∂x over the Eulerian n+1 tn 2 n+1 −1 n n+1 grid. Consider the function v :Ω → R defined as v (x) = V(φ (x, t ), t ) and also of course vn+1(φ(X, tn)) = V(X, tn+1). With this we have ∂ ∂V ∂vn+1 F(X, tn+1) = (X, tn+1) = (φ(X, tn))F(X, tn). ∂t ∂X ∂x This is useful because if we use the approximation ∂ Fn+1 − Fn F(X , tn+1) ≈ p p ∂t p ∆t then ∂vn+1  ∂vn+1  Fn+1 = Fn + ∆t (xn)Fn = I + ∆t (xn) Fn p p ∂x p p ∂x p p ∂vn+1 n and of course if we use the grid based interpolation formula for ∂x (xp ) then we have   n+1 X n+1 ∂Nig n n Fp = I + ∆t v (xp ) Fp ig ∂x ig as the update rule for Fn+1 given the vn+1 and Fn. p ig p

10 7.6 Forces as energy gradient The elastic response can be shown to arise from an elastic potential energy. This is true for both the continuous and discrete cases. For the discrete case, consider xˆig defined to be the nodes of the

Eulerian grid when xˆig = xig . In other words, consider temporarily that we have allowed the nodes of the Eulerian grid to move with a variable defined as xˆig . We can then temporarily think of these xˆig as new Lagrangian degrees of freedom. It is like saying that we switched from having the Xp as −1 n our Lagrangian particles and switched over to Xig = φ (xig , t ) as our new Lagrangian particles and with this we say that xn+1 = φ(X , tn+1) = xˆ defines the new configuration of our material. ig ig ig If we keep this idea in mind, we can show that the forces derived in Section 7.2 are related to a discrete potential energy in the case of a certain class of elastic materials. I will discuss these in more detail in Section 8 but for hyperelastic materials where the first Piola Kirchoff stress is related to an energy density as ∂ψ P(F) = (F) ∂F we can define the energy as X 0 e(xˆ) = ψ(Fp(xˆ))Ap p where xˆ is the full vector of all Eulerian xˆig . Here we think of the deformation gradient as a function of xˆ. This is because we are temporarily thinking of the motion of the material as defined in terms −1 n of the Xig = φ (xig , t ) and xˆig . Really, this is an equivalent notion to letting motion be defined via the vn+1. Specifically we can think of them defined as ig

n+1 xˆig − xig n+1 v = or xˆi = xi + ∆tv . ig ∆t g g ig This leads to the particle wise deformation gradient formula of   X xˆjjg − xjjg X F (xˆ) = F n + ∆t N (xn)F n . pjk p jk ∆t jg,l p p lk jg l

th If we differentiate the energy with respect tox ˆiig (the i component of xˆig ) we get ∂F ∂e X X pjk 0 (xˆ) = Pjk(Fp(xˆ)) (ˆxiig )Ap. ∂xˆii ∂xˆii g p j,k g

From the formula for the deformation gradient above, we can see that

∂Fpjk X (xˆ) = δ N (xn)F n ij ig,l p p lk ∂xˆii g l and if we plug this into the equation for the energy derivative we get

∂e X X (xˆ) = P (F (xˆ))F n N (xn)A0 ik p p lk ig,l p p ∂xˆii g p k,l and if we say the summation is implied on the repeated l and k indices, then we can abbreviate this formula as ∂e X (xˆ) = P (F (xˆ))F n N (xn)A0. ∂xˆ ik p p lk ig,l p p iig p

11 Therefore, comparing with the result in Section 7.4, we can see that the force on the Eulerian grid node ig is    x0 ∂e − xˆ =  x1  . ∂xˆii   .  g . In other words, we can write the momentum update as    x0 ∂e Z n+1 n   x1  n (mvi) = (mvi)i − ∆t xˆ = + ∆t Nig (x)ti(x, t )ds(x). ig g    n ∂xˆiig . ∂Ωt .

8 Constitutive model

The material behavior is defined via the interaction of φ and the stress σ or P. For hyperelastic materials, the stress is a function of the change in shape, as expressed via the deformation gradient. Note that the motion of the material is rigid if

φ(X, t) = R(t)X + t(t)

T d where R R = I, det(R) = 1 and t : [0, ∞) → R . I.e. R is the rotation and t is the translation. Note that in this case, F = R. Hyperelastic materials penalize deformation via stress that arises from an energy that penalizes deviation of F from orthogonal. This can be written as ∂Ψ P = , Ψ(F) = Ψ(˜ FT F). ∂F In other words, the energy does not change (and has a minimum) if F is orthogonal. If the material is isotropic (meaning that response to deformation is material direction independent), then we can further simplify the energy as

Ψ(F) = Ψ(˜ I1(F),J(F)), d = 2, or Ψ(F) = Ψ(˜ I1(F),I2(F),J(F)), d = 3 where the Ii and J 2 are the coefficients of the characteristic polynomial of FT F (often called the isotropic invariants). In my research, it has been convenient to further write this as

Ψ(F) = Ψ(ˆ Σ(F)) where F = UΣVT is the polar SVD of F. The polar SVD is defined such that U and V are rotations. The isotropic invariants can be written in terms of the singular values so this is always possible. This construction of the constitutive response to deformation can be done intuitively in terms of Σ(F), however it does require differentiating the singular values as a function of F to get the stress (and stress derivatives) and this requires careful derivation (see HW1).

8.1 Fixed corotated constitutive model A simple model that is defined from the SVD is the so called fixed corotated model. This is called “fixed” because it is a small modification to a commonly used model called corotated linear elasticity common in the computer graphics literature. The energy for this model is

d X λ Ψ(F) = Ψ(ˆ Σ(F)) = µ (σ − 1)2 + (J − 1)2 i 2 i=1

12 Qd where of course J = i=1 σi. Expanding the µ term in the formula we have

d d d ! X 2 X 2 X µ (σi − 1) = µ σi − 2 σi + 1 . i=1 i=1 i=1 It can be shown that d d ∂ X ∂ X σ2 = 2F and σ = R ∂F i ∂F i i=1 i=1 where F = RS is the polar decomposition of F (R a rotation matrix and S symmetric). This can of course be defined from the SVD of F as F = UVT VΣVT . I.e. R = UVT and S = VΣVT . Combining all of this, we have ∂ψ P(F) = (F) = 2µ (F − R) + λ(J − 1)JF−T ∂F

8.2 Snow constitutive model: plasticity and hardening Snow constitutive behavior depends on a very wide range of complex factors. There are many different models used depending on the conditions of interest. Much of the dynamic behavior can be approximated with a relatively simple elasto-plastic assumption. We will use a simple large-strain plastic flow model combined with a hardening effect.

8.2.1 Plastic flow Large strain plastic flow can be modeled as a constraint on the deformation gradient of the material. Specifically, we will enforce that F = FEFP where the elastic response is only a function of Fe. Intuitively, this states that the deformation in the local transition to Fp is permanent. In a sense, Fp comes to represent a new local rest state of the material. This transition to permanent deformation is typically in response to large deformation. A simple example of this would be denting an aluminum can. Once dented, all elastic response will be to displacement from the dented configuration. Most models define the decomposition in response to a stress based condition. However, for our case it will be more intuitive to think of the constraint as defined on the singular values of F itself. This will give us more visual control over the plasticity effect. Specifically, we will enforce that the singular values σEi of FE are in [1 − θc, 1 + θs] for some small constants θc and θs. This will be done with the following procedure. Given

n n n F = FEFP

n n (where the singular values σEi of FE satisfy the constraint of lying in [1 − θc, 1 + θs]) and a new Fn+1, we will first assume that all new deformation introduced in the transition from Fn to Fn+1 was elastic. That is we will first assume that given a new Fn+1, it can be decomposed as

n+1 ˜ n+1 n F = FE FP . ˜ n+1 In so doing, this defines FE as ˜ n+1 n+1 n −1 FE = F (FP ) .

13 n+1 ˜ n+1 The next step is to enforce the constraint that the singular valuesσ ˜Ei of FE satisfy the constraint of lying in [1 − θc, 1 + θs]. That is, we define

n+1 n+1 σEi = clamp(˜σEi , 1 − θc, 1 + θs), i = 1, . . . , d ˜ n+1 Now, defining the singular value decomposition of FE as ˜ n+1 n+1 ˜ n+1T FE = UE ΣEVE n+1 n+1 we can define FE from the clamped singular values ΣE as

n+1 n+1 n+1 n+1T FE = UE ΣE VE . n+1 Of course with this definition of FE we still need to maintain the same decomposition of F so we n+1 would need to determine a new FP such that n+1 n+1 n+1 F = FE FP . n+1 n+1 But of course, given that we know F and FE , the new plastic component of the deformation gradient is n+1 n+1−1 n+1 FP = FE F .

8.2.2 Hardening Snow will tend to get more rigid under compression. This phenomenon is often called hardening. We use a simple modification to our constitutive model to add this effect. Specifically, we let the Lame coefficients µ and λ increase under compression and decrease under extension. The reduction in material strength under extension facilitates break-up and fracture of the snow. This is an important property for a wide range of visual phenomena. We quantify this hardening effect as

ξ(1−JP ) ξ(1−JP ) µ(FP ) = µ0e , λ(FP ) = λ0e where µ0 and λ0 are the Lame parameters as set from the original Young’s modulus and Poisson ratio. Also, JP = det (FP ).

8.2.3 Plasticity energy and forces It is natural to define the forces for the elastoplastic material via the derivative of a discrete energy. The energy is similar to that discussed in Section 7.6, except we only consider the contribution from the elastic part of the deformation gradient

X n 0 e(xˆ) = ψ(FEp(xˆ), FP p)Ap. p Technically, we define these ignoring the clamping so really, using the notation from Section 8.2.1 this is X ˜ n+1 n 0 e(xˆ) = ψ(FEp (xˆ), FP p)Ap. p  −1 ˜ n+1 n with FEp (xˆ) = Fp(xˆ) FP p where Fp(xˆ) is defined as in Section 7.6   X xˆjjg − xjjg X F (xˆ) = F n + ∆t N (xn)F n . pjk p jk ∆t jg,l p p lk jg l

14 Therefore, ˜n+1 X n−1 FEpjl(xˆ) = Fpjk(xˆ)FP pkl k and if we use the formula for the derivative of Fpjk(xˆ) in Section 7.6 we get the formula

˜n+1 ∂FEpjl X −1 (xˆ) = δ N (xn)F n F n . ij ig,m p p mk P pkl ∂xˆii g k,m

With this, we have

∂F˜n+1 ∂e X X ∂ψ n Epjl 0 (xˆ) = (FEp(xˆ), FP p) (xˆ)Ap = ∂xˆii ∂Fjl ∂xˆii g p jl g

X X ∂ψ −1 (F (xˆ), Fn )N (xn)F n F n A0 = Ep P p ig,m p p mk P pkl p ∂Fil p k,l,m X X ∂ψ (F (xˆ), Fn )N (xn)F n A0 Ep P p ig,m p Epml p ∂Fil p l,m and if we say the summation of the repeated l and m indices is implied, then we get the formula

∂e X ∂ψ (xˆ) = (F (xˆ), Fn )F n N (xn)A0 ∂xˆ ∂F Ep P p Epml ig,m p p iig p il

15