전산유체역학
Computational Fluid Dynamics (CFD)
1. 개요
전산 코드를 이용하여 주어진 제한된 계에서 유체역학 지배방정식의 근사해를 구하는 방법, 또는 제한된 구역에 존재하는 유동을 묘사하는 방법이다.
2. 상세
유체의 움직임을 수학적으로 표현하는 방정식, 즉 지배방정식은 나비에-스토크스 방정식인데 이 방정식은 해당항목에서 보면 알 수 있듯 수학적으로 엄밀한 해를 구할 수 있는지 아직 알려져 있지 않다. 그래서 사용자가 관심 있는 영역에 한정하여 여러 공학적인 가정을 덧붙여서 수치해석적으로 해를 구하는 것이 전산유체역학이다.
유체의 흐름 경향이나 그 안에 있는 물체가 간단하다면 구형 노트북 정도로도 상당히 실제에 근접한 근사 값을 몇 분 내에 계산할 수 있다. 하지만 실제 항공기의 복잡한 움직임[1] 같은 것은 대형 컴퓨터로도 며칠씩 걸릴 수 있다. 따라서 문제를 간단하게 만들어야 한다. 유체 입자 하나하나를 시뮬레이션 하는 것은 사실상 불가능하고, 현실의 모든 조건을 그대로 가져오는 것도 힘들기 때문에 유동을 모델링해 문제를 간단히 하게 된다. 특히 난류유동과 같은 경우 그대로 시물레이션하려면 너무나 많은 연산량이 요구되기 때문에 난류를 근사시켜 연산량을 줄여 계산할 수 있게 하는 모델링이 필수적이다. 이런 모델링에서 문제가 생기게 되면 실제와 다른 결과가 나올 수도 있어, 보통 풍동 시험 및 실제 비행시험, 또는 이미 알려진 결과를 활용하여 시뮬레이션이 정확한지 검증할 필요가 있다.
일기예보도 결국 이 전산유체역학으로 미래의 날씨를 예측하는 건데, 날씨예측이 너무 오래 걸려 이미 과거가 되어버리면 의미가 없기 때문에 정확하고 빠른 예측을 위해서는 많은 연산량이 필요하고, 기상청은 슈퍼컴퓨터를 이용한다. 그러나 슈퍼컴퓨터를 이용해도 현실을 그대로 시뮬레이션하는 것은 힘들고, 문제를 간결하게 하는 모델링이 요구되는데, 이러한 초기 설정이 잘못된 경우 계산이 수렴하여도 엉뚱한 결과가 나올 수 있고 일기예보가 자주 틀리는 원인이 된다.
정확한 결과를 얻으려면 수치해석 모델뿐만 아니라 계산을 위한 격자도 잘 고려해야 한다. 유체역학은 연속체를 다루는데, 이것을 컴퓨터에서 연산이 가능하도록 이산화시켜야 한다. 쉽게 말해서 큰 공간을 잘게 잘라 셀 수 있게 하고, 이러한 잘게 잘린 공간이 연속적인 흐름을 묘사하는 것이다. 이러한 계산이 가능하게 공간을 나누어 든 것을 격자라고 하는데, 이러한 격자는 계산에 큰 영향을 준다. 격자를 많이 넣어 아주 잘게 쪼갠다면 더 정확한 결과를 기대 할 수 있으나, 계산할 일이 많이져 더 많은 연산량을 요구하게 된다. 따라서 복잡한 부분은 격자를 조밀하게 만들고 간단한 부분은 넓게 만들어 정확한 결과를 얻으면서도 계산이 빠르게 되도록 할 필요가 있다. 또한 일반적으로 격자의 모양이 정사각형에 가까운 것이 좋은데, 이러한 부분도 잘 고려할 필요가 있고, 시뮬에이션을 할 때, 모델링에 따라 적절한 격자의 크기가 있어 이러한 부분도 잘 고려해야 좋은 결과를 얻을 수 있다.
상용프로그램에서는 여러가지 문제를 위한 솔루션이 잘 준비되어 있다. 일반적이지 않은 어려운 문제를 초보자가 건드릴 일은 잘 없다. 따라서 초보자는 보통 격자만 잘 만들면 좋은 결과를 얻을 수 있다. 초보자인데 결과가 제대로 안 나온다면, 우선 격자를 잘 만들었는지 확인해보는 것이 좋다.
3. 소프트웨어
4. 응용
애니메이션에서 많이 사용된다. 실례로 겨울왕국에서 물과 눈은 유체로 볼 수 있는데 이 유체들의 운동을 시뮬레이션하기 위해 물리학자들이 동원되었다고 한다.