작성일 : 2015년 10월 17일
번역일 : 2016년 4월 8일
크롬 브라우저로 보시는 것을 권장해 드립니다.
------------------------------------------------------------
----- OpenFOAM 소스코드를 다루는 문법 기본 -----
------------------------------------------------------------
들어가기 |
OpenFOAM 의 배경이 되는 이론들을 간단히 정리한 노트입니다.
1. 열유체의 구배방정식 |
1.1 압축성과 비압축성
1.2 연속 방정식
여기서, u 는 속도, ρ 는 밀도를 나타낸다. 정상상태에서는 시간미분항을 생략할 수 있다. 비압축성 유체의 경우,
(식2)
1.3 운동방정식
여기서, μ 는 점성계수이다.
OpenFOAM 의 압축성유체솔버에서는 다음과 같은 식을 푼다.
우변의 2번째항은 라플라스 연산자로 처리된다. 우변의 3번째항의 divergence 안에는 속도구배의 전치의 편차텐서의 형태로 표현되어 (편차텐서의 경우 계수가 2/3 이 아닌 1/3) 양의 값으로 계산된다. 정상상태의 경우 시간미분항은 생략된다.
비압축성 유체 솔버에서는 다음과 같은 식이 계산된다.
여기서 p 는 밀도로 나눈 압력이다 (출력시켜도 이대로 출력되므로, 값을 볼때 주의해야 한다). ν 는 동점성계수이다. 우변의 3번째 항의 divergence 중에는 속도구배의 전치의 편차텐서로 표현되어, 마찬가지로 양의 값으로 계산된다.
우변의 3번째 항은 왜 이런 형태를 띄고 있는가? 점성계수를 상수로 보면,
연속방정식에서 좌변의 2번째 항을 무시하고 (이때 우변의 2번째항은 남겨놓는다), 변형시키면,
식 (6) 에서 우변의 2번째 항을 무시하고 위 식에 대입시키면,
연속방정식을 만족한다고 한다면 우변의 2번째 항이 사라지므로 문제가 없지만, 우변을 이대로 놓고 풀어도 되는가? 점성계수가 일정하지 않은 난류해석일 때 이 식의 형태를 사용해도 되는 것일까?
1.4 에너지방정식
여기서, k 는 열전달률, T 는 절대온도를 나타낸다. 응력과 중력의 항은 무시하고 있다.
전체 에너지 E 는, 단위질량 당 내부 에너지 e 와 운동에너지 K 의 합이다.
운동에너지는
식 (9) 를 내부에너지와 운동에너지로 표현하면
단위질량당 엔탈피 h 를
로 나타내면, 식 (12) 는
엔탈피 h 는, 정압비열을 Cp 로 하여
여기서 ha 는 절대엔탈피, h0 은 온도가 T0 일때의 엔탈피이며, 일반적으로는 T0 = 293.15 로하는 표준생성엔탈피를 사용한다.
비열이 일정한 경우, h 는 다음과 같이 표현된다.
이것을 식 (14) 에 대입하여, 밀도를 일정하다고 보고 운동량의 항과 압력의 항을 무시하면, 다음과 같은 식을 얻을 수 있다.
여기서, alpha = k/(rho*Cp) 는 열확산률이다.
OpenFOAM의 압축성유체솔버에서는, 설정에 따라 식 (12) 또는 식 (14) 를 푼다. 온도의 확산항은 다음의 식으로 표현된다.
여기서, alpha = k/Cp 는 열확산률에 밀도를 곱한 것이다.
부력을 다루기 위해 boussinesq 근사를 사용하는 경우, 유체는 비압축성유체로 다루어지며, 온도는 식 (17) 로 구하게 된다.
1.5 상태방정식
여기서, W 는 분자량 [kg/mol], R 은 기체상수 [j/mol-K] 이다.
OpenFOAM의 경우, 분자량을 W [kg/kmol] 로 하여, 기체정수의 1000배를 RR [J/kmol-K], 기체정수를 분자량으로 나눈 것을 R [J/kg-K] 으로 표현한다. 이때, 밀도는 다음과 같은 식으로 나타난다.
액체의 경우, 밀도를 다항식 등으로 표현한다.
OpenFOAM의 열물성에서는 rho(ρ) 형과 형이 psi(ψ) 형이 있다. rho 형에서는 밀도를 직접계산하나, psi 형에서는 압축률 ψ= ρ/p 에 압력을 곱해 밀도를 계산한다. psi 형에서 이상기체의 상태방정식을 사용할 경우, 압축률은 ψ = 1/RT 이다.
1.6 부력 다루기
여기서, g 는 중력가속도이다.
OpenFOAM에서는 압력구배와 중력의 항을 다음과 같이 다룬다.
압력 p 대신에 p_rgh 를 구한다. p 는 구해진 p_rgh 에서부터 역계산한다.
밀도변화를 무시할 수 있는 경우, 기준밀도를 rho_0, 기준온도를 T0, 체적팽창률을 beta 로 하여, 밀도를 다음과 같이 표현할 수 있다.
이 근사를 Boussinesq 근사라고 한다. 밀도변화를 무시할 수 있으므로, 비압축성유체에서만 사용할 수 있으며 운동방정식은 다음과 같이 표현된다.
p 는 밀도로 나누어진 상태이다. Boussinesq 근사를 이용한 압력구배와 중력의 항은, rho_k = 1 - beta(T - T0)로
여기서 p_rgh 는
1.7 난류의 효과
(식27)
여기서 mu_eff = mu + mu_t, alpha_eff = alpha + alpha_t 이며, mu_t는 난류점성계수, alpha_t 는 난류열확산률이다.
mu_t 는 난류모델에 따라 달라지며, k-epsilon 모델에서는,
여기서 C_mu = 0.09 이다.
alpha_t 에 대해서는, 난류확산계수로부터
여기서, Pr_t 는 난류 Prandtl수로, 값은 경험적으로 0.85를 사용한다.
화학에서 사용되는 수송방정식의 확산계수의 경우, OpenFOAM 에서는 난류점성계수를 그대로 사용한다.