입자 기반 유체 시뮬레이션(Particle-Based Fluid Simulation)은 스머드 입자 유체(Smoothed Particle Hydrodynamics, SPH)라는 방법론을 통해 구현된다. SPH는 Lagrangian 접근법으로, 유체를 고정된 그리드가 아닌 개별 입자로 표현한다. 이 입자들은 물리적 속성을 가지고 있으며, 서로 상호작용하여 전체적인 유체 거동을 시뮬레이션 한다.
기본 개념 및 정의
SPH 방법론에서 유체는 개별 입자의 집합으로 모델링되며, 각 입자는 위치, 속도, 밀도 및 질량과 같은 속성을 갖는다. 이러한 입자 상태는 시간에 따라 변화하며, 이 변화를 다루기 위해 주요 방법론이 사용된다.
밀도 추정
각 입자의 밀도는 주변 입자들의 기여로 결정된다. 밀도 추정 식은 다음과 같다:
여기서: - \rho_i는 입자 i의 밀도 - m_j는 입자 j의 질량 - W(\mathbf{r_i} - \mathbf{r_j}, h)는 입자 i와 입자 j 사이의 거리 및 스무딩 길이 h를 이용한 커널 함수
커널 함수
커널 함수 W(\mathbf{r}, h)는 두 입자 사이의 거리에 따라 가중치를 제공하며, 전체 유체의 매끄러운 분포를 보장한다. 자주 사용되는 커널 함수의 예는 Poly6 커널, Spiky 커널 등이 있다.
여기서: - \alpha는 정규화 상수 - r = \|\mathbf{r_i} - \mathbf{r_j}\| - h는 스무딩 길이
힘 계산
입자 사이의 힘 계산은 네비에-스토크스 방정식을 기반으로 하며, 압력과 점성, 외부 힘을 포함하여 시뮬레이션 된다.
압력 힘
압력 힘은 입자 간의 압력 차이에 의해 발생하며, 다음과 같이 주어진다:
여기서 p_i는 입자 i의 압력이다. 압력은 종종 상태 방정식을 사용하여 계산된다:
여기서 k는 상수, \rho_0는 기준 밀도이다.
점성 힘
점성 힘은 유체 내의 마찰력을 나타내며, 다음과 같이 계산된다:
여기서: - \mu는 점성 계수 - \mathbf{v_i}는 입자 i의 속도
외부 힘
외부 힘은 중력과 같은 외부 요인에 의해 발생하며, 다음과 같이 표현된다:
여기서 \mathbf{g}는 중력 가속도이다.
입자 업데이트
각 입자의 위치와 속도는 시간에 따라 업데이트 된다. 이를 위해 시간 적분 방법이 사용된다. 가장 일반적인 방법은 다음과 같다:
시간 적분
보통 Explicit Euler, Semi-implicit Euler, 또는 Verlet 적분 방법이 사용된다. Semi-implicit Euler 방법을 예로 들어 설명하면:
- 속도 업데이트:
여기서 \mathbf{f_i}는 전체 힘(압력, 점성, 외부 힘의 합)이다.
- 위치 업데이트:
충돌 처리
입자 기반 유체 시뮬레이션에서는 입자가 서로 또는 경계와 충돌하는 상황도 처리해야 한다.
입자 간 충돌
입자 간의 직접 충돌은 별도로 처리되지 않으며, SPH 방법론의 점도 항이 간접적으로 이를 모델링한다. 하지만 고체 경계와의 충돌은 일반적으로 반발력 모델이나 경계 조건을 사용하여 처리된다.
경계 조건
경계 조건은 입자들이 시뮬레이션 도메인 외부로 나가는 것을 방지한다. 물리적 반발력이나 고체 경계의 가상 입자를 사용하여 경계 효과를 모델링할 수 있다.
여기서 k는 경계 반발 상수이다.
응용 및 한계
응용
SPH는 다음과 같은 다양한 응용 분야에서 사용된다: - 게임 및 애니메이션에서의 유체 시뮬레이션 - 공학 시뮬레이션(예: 유체 동역학) - 천체 물리학에서의 성간 물질 및 별 형성 시뮬레이션
한계
하지만 SPH는 다음과 같은 한계를 갖는다: - 계산 비용: 입자 간의 모든 쌍을 고려해야 하기 때문에, 수천에서 수백만 입자를 다룰 때 계산 비용이 급격히 증가한다. - 경계 조건의 처리: 경계와의 상호작용을 다루기 위한 견고한 방법이 필요하다. - 물리적 정확성: 분해능 및 입자의 개수에 따라 시뮬레이션 정확도가 달라질 수 있다.
이상으로 SPH 기법의 기본 개념과 구현, 그리고 응용에 대해 설명드렸다. 추가적인 질문이 있거나 특정 부분에 대해 더 알고 싶으시면 말씀해 주세요.