Semi-Lagrangian 이류 과정에서 역추적(Backward tracing)한 위치의 주변 속도를 Divergence-constrained MLS(Moving least squares)를 이용하여 보간하고 그 결과를 이류된 속도 데이터의 외력으로 적용해 연기 시뮬레이션의 난류 표현을 개선한다.
Figure 1. Simulate smoke with two colliding densities. (a) Stable Fluid, (b)DCMLS interpolation, (c) DCMLS-applied external force
- Stable Fluids의 안정적인 경로를 유지하며 난류 강화
- 고차보간으로 인해 발생하는 Noise 완화
- 특이값 분해(SVD)를 병렬 프로그래밍에 적합한 알고리즘으로 대체한다면 충분히 고속화 가능
Figure 2. Comparison of turbulence generated using the previous MLS interpolation : (a) Stable Fluids[1], (b) DCMLS interpolation[3].
[Stable Fluids 기법의 단점]
유체 시뮬레이션에 주로 사용되는 Stable Fluids 기법은 Fluids기법은 세미-라그랑주(Semi-Lagrangian) 이류를 사용해 안정적인 시뮬레이션 결과를 보장함
그러나, 수치 손실로 인해 디테일한 난류 표현이 어려움
[DCMLS로 보간법을 대체한 기법의 단점]
이를 개선하기 위해 DCMLS(Divergence-constrained MLS)로 기존 이류 단계의 보간법을 대체해 난류를 강화한 연구가 있지만,
결과가 매우 노이즈하고 불안정할 뿐만 아니라 일부 영역에서 튀는 현상이 발생하는 단점이 있음
Divergence-free(발산이 0인 상태, 물질의 양이 변하지 않는 것)를 고려해 벡터 충돌 시, 서로 상쇄되지 않고 운동량이 보존되도록 한 보간법
DCMLS로 보간을 대체한 난류가 노이즈하고 불안정한 원인 : 난류가 유체의 전체적으로 강화되기 때문
- 이중선형보간법과 DCMLS로 보간된 속도장을 각각 연산
- 이중선형보간법 기반 속도장에 DCMLS 기반 속도장을 외력으로 적용
- 정규화 후, 이중선형보간법 기반 속도 벡터의 크기를 적용해 크기는 그대로 유지하고 발산 방지
- 두 속도 벡터의 유사도를 각도 기반으로 비교 후 가중치로 적용
Figure 3. Rising smoke sourcing once. (a) Stable Fluid, (b)DCMLS interpolation, (c) DCMLS-applied external force
Figure 4. Rising smoke keep sourcing. (a) Stable Fluid, (b)DCMLS interpolation, (c) DCMLS-applied external force
- (b)에서 보이는 화이트 노이즈와 전체적인 연기의 움직임에 큰 변화가 없는 현상을 개선
- 역동적이고 디테일한 난류 표현으로 유체 시뮬레이션의 현실성 향상
- Stable Fluids의 진행 경로를 안정적으로 유지하면서 난류 강화 (안정성 향상)
- 각 노드 별 독립적인 연산으로 병렬화 용이, 특이값 분해를 병렬 처리에 최적화된 알고리즘으로 대체 시 고속화 가능