MPM Method (Body Collisions)

남하욱·2022년 9월 4일

Snow Simulation

목록 보기
4/4

각 time step마다 body collision은 두 번 처리한다 (충돌은 모두 비탄성 충돌)
둘 다 같은 process로 처리, 즉 같은 함수 사용.

1) Grid-based body collisions

  • 4단계에서 grid의 속도에 force를 적용하여 vv^*를 구한 직후 적용.
  • semi-implicit integration의 case에서, 이 처리는 linear system의 right hand side에 기여.
  • 충돌하는 grid node에 해당하는 자유도는 solve 중에 투영된다.

2) Particle-based body collisions

  • 10단계에서 paticle의 위치 xpn+1x_p^{n+1}vpn+1v_p^{n+1}로 구하기 전에 vpn+1v_p^{n+1}에 충돌을 적용.
  • 보간으로 인한 입자 속도와 grid 속도 간의 사소한 불일치를 해결하기 위함

충돌 처리 Algorithm

  1. 충돌 탐지: (φ0φ ≤ 0)

  2. 각 충돌마다 local 법선 벡터 n(n=φ)n(n=∇φ), 물체 속도 vcov_{co} 계산

  3. particle/grid 속도 v는 충돌 물체의 reference frame으로 전환
    vrel=vvcov_{rel}= v-v_{co} , (vrelv_{rel} : 상대속도, vcov_{co} = 물체 속도)

  4. vn=vrelnv_n= v_{rel} · n 계산.
    4.1. vnv_n >= 0 이면 body가 분리되므로 충돌을 적용하지 않는다.

  5. vt=vrelnvnv_t= v_{rel} - n·v_n 계산 (vtv_t: 상대속도의 접선 부분)
    5.1. vt<=µvn|v_t| <= - µv_n이면 sticking impulse를 적용해야 함.
    vrel=0v_{rel}' = 0
    5.2. otherwise, dynamic friction을 적용.
    vrel=vt+µvnvt/vtv_{rel}' = v_t + µ v_n v_t/|v_t|

  6. 상대속도를 다시 world 좌표계로 전환.
    v=vrel+vcov' = v_{rel}' + v_{co}


sticking impulse

  • 눈이 수직 또는 아래로 매달려 있는 표면에 달라붙는 현상을 위해 사용.
  • 이 경우 정상 상대 속도가 0(수직) 또는 양수(중력으로 인한 under-hanging,분리)이기 때문에 Coulomb 마찰은 적절하지 않음.
  • 이 충돌은 vrel=0v_{rel}= 0으로 하여 매달려 표면에 달라붙는 효과를 보인다.

Collision Objects

이 논문에서는 두 가지의 Collision Objects를 사용.

  1. rigid objects
    시간에 따라 변하는 강체 변환을 통해, φ,n,vcoφ,n,v_{co}를 계산.

  2. deforming objects
    보간 함수를 통해 φ,n,vcoφ,n,v_{co} 계산.

profile
남하욱입니다 :)

0개의 댓글