MPM Course

LeemHyungJun·2023년 4월 9일
0

Computer Graphics

목록 보기
1/2

The Material Point Method for Simulating Continuum Materials (SIGGRAPH 2016)

MPM

  • Lagrangian material particle 과 Eulerian Cartesian grids를 결합한 방식
  • 라그랑지안 방식이지만, 미분 계산에 있어서 오일러 격자를 사용하는 방식

5. Kinematic Theory

  • Particle은 실제로 연속적인 piece of material 이나 subset of material domain을 뜻한다.
  • contunuum assumption : 연구 대상인 물체를 연속적인 물질의 조각으로 취급한다.
    • 연속체는 밀도, 속도, 힘과 같은 양을 위치의 연속 함수로 정의한다.

5.1 Continuum Motion

  • material space : X\mathbf{X} -> initial position
  • world space : x\mathbf{x} -> current position
  • deformation map : ϕ(X,t)\phi(\mathbf{X}, t)
  • matrial point (X\mathbf{X}) : Ω0\Omega^0 set 에 있는 points
  • 시간에 따른 material point의 motion : x=x(X,t)=ϕ(X,t)\mathbf{x} = \mathbf{x}(\mathbf{X,t}) = \phi(\mathbf{X,t})
  • 물체가 방향 n을 따라 속도 v로 이동하는 경우 : x=X+tvn\mathbf{x} = \mathbf{X} + tvn (Eq.2)
  • 오브젝트가 t시간 이후에 rigid motion을 겪었다면
    -> x=RX+b\mathbf{x} = \mathbf{RX} + \mathbf{b} (Eq.3) (R\mathbf{R} : rotation matrix, b\mathbf{b} : translation)
  • 시간 t에서 x\mathbf{x}의 속도 : V(X,t)=ϕt(X,t)\mathbf{V(X,t)} = \frac{\partial \phi}{\partial t}(\mathbf{X, t}) (Eq.4)
  • 가속도(Eq.5)는 Eq.4 를 한번 더 미분
  • 위에서 정의한 속도와 가속도는 라그랑지안 관점을 기반으로 한다.
    -> 물리적으로 고정된 particle에서 측정한다는 의미, particle은 mass 와 volume을 시작부터 가진다.
  • 오일러 관점에서는 고정된 space를 기반으로 한다.
    -> 공간의 고정된 위치에서 해당 위치를 지나가는 입자의 속도를 측정하는 방식

5.2 Deformation

  • Jacobian of deformation mapping (Deformation Gradient) : F\mathbf{F}
    -> F(X,t)=ϕX(X,t)=xX(X,t)\mathbf{F(X,t)} = \frac{\partial \phi}{\partial \mathbf{X}}\mathbf{(X,t)} = \frac{\partial \mathbf{x}}{\partial \mathbf{X}}\mathbf{(X,t)}
    -> 대체로 2x2 or 3x3 행렬
  • Eq.2에 의해 deformation map의 deformation gradient 구할 수 있고, 그 결과는 identity matrix
  • Eq.3에 의해 F=R\mathbf{F=R}
  • rigid transformation만 수행하였기 때문에 오브젝트가 변형되지 않는다.
    -> deformation gradient의 결과는 오브젝트가 변형되지 않고, 내부 힘이 바뀌지 않는다.
  • det(F\mathbf{F}) : J\mathbf{J}
    -> 무한대의 부피 변화를 특성화하기 때문에 사용
    -> J는 t시간이 지난후 matrial의 부피와 0시간에서의 부피의 비율
    -> rigid motion에서는 J=1, J>1이면 volume 증가, J<1 은 감소
    -> J=0이면 volume이 0이 된다는 의미 (실제 세계에서 일어나지 않음)

5.3 Push Forward and Pull Back

  • 라그랑지안 관점에서 mapping ϕ\phi는 편향된 것으로 가정 또한 매끄럽다는 가정으로 하면 Ω0\Omega^0Ωt\Omega^tϕ\phi 아래에서 동형(찢거나 붙이지 않고 다른 형태가 되는 것) 이고 이형(미분가능, 역도 미분가능)이라는 것을 알 수 있다.
    -> 서로 다른 두 입자가 동시에 같은 공간에 존재하지 않는다
    -> inverse mapping 인 ϕ1(,t)\phi ^{-1}(\cdot, t)이 존재한다는 의미 (한 집합에 대한 모든 함수가 다른 집합의 함수가 될 수 있다는 의미)
  • Push Forward
    • 오일러 함수(function of x\mathbf{x})
    • Ω0\Omega^0에서 정의된 함수를 Ωt\Omega^t에 대응하는 함수로 정의하는 것
      -> G:Ω0>RG : \Omega^0 -> \mathbb{R}가 주어지면, g(,t):Ωt>Rg(\cdot,t) : \Omega^t -> \mathbb{R}
      -> g(x,t)=G(ϕ1(x,t))g(\mathbf{x,t}) = G(\phi^{-1}(\mathbf{x,t}))
  • Pull Back
    • 반대의 과정
    • 라그랑지안 함수 (function of X\mathbf{X})
      -> G(X)=g(ϕ(X,t),t)G(\mathbf{X}) = g(\phi(\mathbf{X,t}),\mathbf{t})
  • Eq.4, Eq.5 는 라그랑지안 함수
  • 해당 함수를 오일러 함수로 바꾸면 (push forward)
    -> v(x,t)=V(ϕ1(x,t),t)v(\mathbf{x,t}) = \mathbf{V}(\phi^{-1}(\mathbf{x,t}),\mathbf{t})
    -> a(x,t)=A(ϕ1(x,t),t)a(\mathbf{x,t}) = \mathbf{A}(\phi^{-1}(\mathbf{x,t}),\mathbf{t}) (Eq.11)
  • pull back 함수는
    -> V(X,t)=v(ϕ(X,t),t)V(\mathbf{X,t}) = \mathbf{v}(\phi(\mathbf{X,t}),\mathbf{t})
    -> A(X,t)=a(ϕ(X,t),t)A(\mathbf{X,t}) = \mathbf{a}(\phi(\mathbf{X,t}),\mathbf{t})
  • 위의 v,a식을 chain rule을 사용하고, 인덱스 표기법을 통해 나타낼 수 있다. (Eq.15)
    -> Eq.11과 Eq.15를 결합하여 식을 구할 수 있고,

5.4 Matrial Derivative

  • deformation gradient는 라그랑지안
  • F는 라그랑지안 도함수, f는 오일러 도함수
  • Eq.23 은 MPM 파티클에 대한 이산화된 F 업데이트 도출에 중요 역할을 한다

5.5 Volume and Area Change

6. Hyperelasticity

6.1 First Piola-Kirchoff Stress

6.2 Neo-Hookean

6.3 Fixed Corotated Constitutive Model

6.4 A Practical Differentiation Strategy for Isotropic Elasticity

6.5 Snow Plasticity

7. Governing Equations

7.1 Conservation of Mass

7.2 Conservation of Momentum

7.3 Weak Form

8. Material Particles

8.1 Eulerian Interpolating Functions

8.2 Eulerian/Lagrangian Mass

8.3 Eulerian/Lagrangian Momentum

8.4 Eulerian to Lagrangian Transfer

9. Discretization

9.1 Discrete Time

9.2 Discrete Space

9.3 Estimating the Volume

9.4 Deformation Gradient Evolution

9.5 Forces as Energy Gradient

10. Explicit Time Integration

10.1 APIC Transfers

  • particle to grid

10.2 Deformation Gradient Update

10.3 State Update

10.4 Forces

10.5 MPM Scheme : Full algorithm

  • Particle Initialized
    • mass : mpm_p
    • volume : Vp0V_{p}^0
    • initial Position : xpx_p
    • initial velocity : vpv_p
    • Affine Matrix : BpB_p
    • +α+\alpha : μ,λ\mu, \lambda (Neo-Hookean)
  • Algorithm
    • Particle to grid transfer(P2G)
      • using APIC formula
      • particle의 quantity를 grid로 보내기
      • grid의 mass와 momentum 계산
    • Compute grid velocities
      • vi=mivimuiv_i = \frac{m_iv_i}{m_ui}
      • 질량이 0인 노드의 경우 : mim_i viv_i는 0으로 재설정하기
    • Identify grid degree of freedoms
      • 그리드의 DOF 식별
      • 구현 효율을 위해 중요
      • 질량이 0이 아닌 질량을 가진 그리드 노드에 DOF 라벨 붙이기
      • 다른 모든 노드는 정적으로 유지
    • Compute explicit grid forces
      • 그리드 force 계산 (explicit)
      • finf_{i}^n
      • by fin=fi(xin)=pVp0(ΨpF(Fpn))(Fpn)Twipnf_{i}^n = f_i(x_i^n)=-\sum_pV_p^0(\frac{\partial \Psi_p}{\partial F}(F_p^n))(F_p^n)^T\nabla w_{ip}^n (Eq.189)
    • Grid velocity update
      • vin+1=vin+Δtfi(xin)/miv_i^{n+1} = v_i^n + \Delta tf_i(x_i^n)/m_i (Eq.183)
      • 그리드 속도 업데이트
      • 경계조건 혹은 충돌 개체 고려
    • Update particle deformation gradient
      • 파티클의 gradient 업데이트
      • 실제로 그리드를 이동하거나 새로운 그리드 x를 계산하는 것이 아니다.
      • 속도만 저장 (explicit)
      • Fpn+1=(I+Δtivin+1(wipn)T)FpnF_p^{n+1} =(I + \Delta t\sum_iv_i^{n+1}(\nabla w_{ip}^n)^T)F_p^n (Eq.181)
    • Grid to particle transfer(G2P)
      • 새로운 particle 속도(vpn+1v_p^{n+1})와 affine matrix (Bpn+1B_p^{n+1}) 계산
      • using APIC transfer
    • Particle advection
      • APIC을 사용하는 경우) particle의 속도가 새로운 속도로 advected : xpn+1=xpn+Δtvpn+1x_p^{n+1} = x_p^n + \Delta tv_p^{n+1}

0개의 댓글