Loading
2015. 6. 3. 09:46 - 성돌

Gerris에서 푸는 Navier-Stokes방정식




Gerris
는 다양한 유체역학 방정식을 풀 수 있다.

그렇지만 가장 기본적인 방정식은 당연히
Navier-Stokes 방정식으로,
이 포스팅에서는
Gerris에서 푸는 
Navier-Stokes equation에 대해 설명하고자 한다.

이것은 가장 기본적인 solver인 GfsSimulation이나 GfsSimulationMoving에서 사용된다.
(Gerris를 사용하는 법은 튜토리얼을 참고하자.)


참고로, GfsSimulationMoving은 움직이는 고체가 있을 때에 사용하는 solver이다.

그리고 점성계수를 0으로 설정하였을 때는
Navier-Stokes 방정식이 Euler 방정식이 된다는 점을 기억하자.



Gerris에서 푸는 Navier-Stokes 방정식은 아래와 같다.




위에서 밑줄은 벡터량이라는 의미이다.

한 가지 주의할 점은 Gerris에서는 밀도인
ρ를 사용하는 것이 아니라
밀도의 역수값인
α를 사용한다는 것이다.
아래와 같이 말이다.
 


하나하나씩 자세하게 설명을 해보자면...

u는 속도 벡터, t는 시간,
p는 압력, 그리고 µ는 점성계수를 각각 나타내고,
Source(u)는 계산하는 영역안에서 유체가 흘러들어오거나 나가는 곳이 있을 때 사용된다.

그리고
uT 속도벡터의 구배에 transpose를 취해준 것으로,
여기서 µ(∇u+uT)는 점성 응력 텐서(viscous stress tensor)를 나타낸다.

이전 포스팅에서 언급
한 바와 같이 응력은 텐서량인데,
왜 점성 응력 텐서가 저런 형태를 가졌는지 알고 싶다면...
연속체 역학(Continuum Mechanics) 공부를 하는 것을 추천한다.


그리고 표면장력에 대한 물리량들로...
이것들은 계면이 있는 곳에서만
Dirac-delta 함수(δs)가 1이 되면서 고려된다.
당연한 말이지만, 계면이 없는 곳에서는
δs가 0으로.. 표면장력이 아무 영향이 없다.

그리고
σ는 표면장력계수, κ는 곡률, 그리고 n는 계면에 대한 단위법선벡터이다.




CFD에서 물리량을 바라볼 때, 가장 조심해야할 부분은... 바로 단위(unit)이다.

즉, 위 방정식에서 속도, 압력, 점성계수등은 어떤 단위를 가지고 있냐는 것이다.

결과부터 말하자면, Gerris는 위의 방정식을 우리가 넣은 숫자 그대로 푼다.

그 말은 예를 들어,
내가
ρ를 998로 설정하면 이걸 998 kg/m3으로 생각하는게 아니라 그냥 998이라는 숫자로 생각한다는 것이다.

그러하기에 우리가 밀도를 넣든 속도를 넣든...
같은 단위 시스템을 동일하게 유지시켜주어야 한다.

예를 들어 점성계수로 0.001을 0.001 kg/m
s를 의미하면서 넣어줬다고 하자.

즉, 나는 m, s , kg시스템을 단위로 사용한 것이다.

따라서 속도를 입력하거나 길이를 입력할 때 역시 m와 s를 사용해야 한다는 것이다.
다시 말해, 초기 속도로 1 cm/s를 입력하고 싶을 때 반드시 m와 s의 단위를 이용하여
0.01 m/s의 0.01을 입력해주어야 한다는 것이다.