티스토리 뷰


작성일 : 2015년 10월  17일
번역일 : 2016년    5월  11일


크롬 브라우저로 보시는 것을 권장해 드립니다.


 ------ OpenFOAM 소스코드 파해치기 시리즈 ------

OpenFOAM 소스코드 파해치기 목차로 이동

 ------------------------------------------------------------

 ----- OpenFOAM 소스코드를 다루는 문법 기본 -----

OpenFOAM 소스코드를 다루는 문법 기본으로 이동

 ------------------------------------------------------------



 


  4. 경계조건


4.1  기본경계조건

     기본적인 경계조건은, 값지정 경계조건(Dirichlet Boundary Condition)과 구배지정 경계조건(Neumann Boundary Condition)이 있다. OpenFOAM에서는 각각 fixedValue와 fixedGradient에 해당한다. 구배지정 경계조건은 제로구배조건으로 많이 사용되며, OpenFOAM에서는 zeroGradient의 형태로 사용된다.
     OpenFOAM에서는 경계에서의 값 X_b와 그 구배 nabla X_b를 다음과 같은 형태로 놓고 있다.
(식 59)


여기서, X_p는 셀의 중심값이다. (각각의 계수는 fixedVlueFvPatchField 등의 함수 valueInternalCoeffs, valueBoundaryCoeffs, gradientInternalCoeffs, gradientBoundaryCoeefs의 반환값에 각각 대응한다.)

     값지정 경계조건의 경우, 지정된 값을 X_b_bar라고 하면

(식 60)


여기에서, d 는 셀의 중심에서 경계까지의 거리를 나타낸다, 각 계수는

(식 61)


     구배지정 경계조건의 경우, 지정된 구배를 (nabla*X_b)_bar 라고 하면

(식 62)


각 계수는

(식 63)


     제로구배경계조건의 경우

(식 64)


각 계수는

(식 65)


     OpenFOAM 에서는 값지정경계조건과 구배지정경계조건의 혼합경계조건도 있다 (mixedFvPatch). X_b 는 다음과 같이 표현된다.

(식 65)


     여기서 omega 는 값지정조건과 구배지정조건의 비율을 결정하는 계수이다. omega = 1 이라면 값지정조건이되며, omega = 0 이면 구배지정조건이 된다. (X_bar_b 는 refValue, (Nabula*X_b)_bar 는 refGrad, omega는 valueFraction에 대응한다.)



4.2  유입조건

     유입속도를 지정하는 경우, 속도는 값지정조건, 압력은 제로구배조건으로 한다. 온도는 값지정으로.
     유량을 지정하는 조건의 경우, 지정유량을 통해 유입속도를 계산하게 된다. 유입속도 u_b는 경계의 면적 S를 이용해, 체적유량이 V_dot 가 주어져 있다면,
(식 67)


     질량유량 m_dot 이 지정되어 있으면,

(식 68)


으로 계산된다.

     압력을 지정하는 경우, 압력은 값지정조건, 속도는 압력으로부터 계산하는 조건을 사용한다. 압력으로 속도를 계산하는 조건으로 OpenFOAM에서는 pressureInletOutletVelocity와 pressureDirectInlutOutletVelocity가 있다. 이것들은 유입, 유출 모두에 대응한다. 유입의 경우, 전자의 경우 근처 셀의 속도의 법선방향성분을 얻어내고, 후자의 경우 지정한 방향의 성분을 얻어낸다. 혼합조건으로 표현되어있으며, pressureInletOutletVelocity의 경우 다음과 같이 표현된다.

(식 69)


n 을 면의 법선벡터라고하면, omega 는 phi 가 음이면 유입으로 omega = I - nn 로 하며, phi 가 양이면 유출로 omega = 0 이다. omega가 텐서이므로 이해하기 쉽지 않지만, 유입속도는 다음과 같다.

(식 70)


pressureDirectedInletOutletVelocity의 경우, 다음과 같이 표현된다.

(식 71)


여기서,  phi 는 유체flux, v 는 지정한방향멕터이다. omega는 phi 가 음이라면 유입으로 omega = 1을 취하며, phi  가 양이라면 유출로 omega = 0 을 취한다.



4.3  유출조건

     유출경계조건으로 속도에 대해서는 제로구배경계조건이 사용된다. 하지만, 이것은 충분히 발달한 흐름을 가정으로 하고 있으므로, 출구를 장애물로부터 충분히 멀리 떨어진 장소에 설정해야 한다. 비정상해석에서는 대류유출조건(Sommerfeld 방사조건)
(식 72)


이 사용되기도 한다. 여기서 u_n 은 경계면방향의 속도, n은 경계면방향의 좌표에 해당한다.

     압력에 대해서는 값지정조건을 사용한다. 압력방정식을 풀기위해 어딘가에서 압력값을 지정할 필요가 있으나, 유출경계조건에 지정하는 경우가 많다. 출구가 없는 영역에 대해서 풀 경우, 영역내의 어딘가에 적절한 압력값을 설정할 필요가 있다. OpenFOAM 에서는 pRefCell, pRefValue를 설정하는것에 해당한다.

     온도등의 스칼라값은 제로구배조건 또는 대류유출경계조선으로 한다.

     대류유출경계조건은 이산화하면 다음과 같이 표현된다.

(식 73)


여기서 u_b_0 는 이전스텝의 u_b에 해당한다. OpenFOAM에서는, 이것을 혼합경계조건으로 각각의 값은 다음과 같다.

(식 74)


4.4  역류를 고려한 유출조건

     유출경계는, 속도를 지정하지 않는한, 질량보존에 의해 역류가 발생할 가능성이 있다. 바람직하지 않은 현상이므로, 역류가 발생했을 때, 속도를 압력으로부터 계산해내는 조건을 이용한다. 이때 압력은 지정값, 온도는 역류발생시의 값을 사용하도록 구성한다.
     OpenFOAM에서는 속도설정으로 pressureInlutOutletVelocity 또는 pressureDirectedInletOutletVelocity 를 사용하면 된다. 온도에 대해서는 역류발생시의 값을 사용할 수 있도록 inletOutlet을 사용한다.
     inletOutlet은 혼합조건으로 실행된다.
(식 75)


w 는 phi 가 음이면 유입을 의미하며 w = 1  이고, phi 가 양이면 유출을 의미하고 w = 0 으로 한다.



4.5  벽의 경계조건

     벽의 경계조건으로는, 고착(non-slip)조건과 슬립(slip) 조건이 있다. 전자는 벽면에서의 유속을 0으로 하는 것으로, 벽에서는 보통 전자의 조건을 사용한다. 벽에서 유체가 모두 속도 0이 되지 않는 경우, 후자를 사용한다. 압력에 대해서는 제로구배조건을 사용한다. 온도에 대해서는 몇가지의 옵션이 존재한다.
     고착조건에서는, 유속은 값지정조건으로 0으로 한다. 벽이 움직이고 있는 경우, 벽의 속도를 설정하면 된다. 슬립조건에서는, 벽방향의 속도구배를 0으로 한다. OpenFOAM 에서는 slip 이라는 조건을 사용한다. 이것은 대칭조건과 같다. 대칭조건에서는 벽의 속도 u_b 를 벽근처셀의 속도 u_p 로부터 다음과 같이 구해낸다.
(식 76)


OpenFOAM에서는 다음과 같은 식으로 계산한다.

(식 77)


     압력에 대해서는 속도로부터 압력구배를 구하는 방법을 사용한다. 식 (45) 로부터, 벽의 압력구배 nabula(p_b)는 다음과 같은 식으로 표현할 수 있다.

(식 78)


OpenFOAM에서는 fixedFluxPressure가 이 조건에 해당하며, 다음과 같은 식으로 계산을 수행한다.

(식 79)


여기서 D_p = 1/A 라는 변수가 사용되고 있으며, 이 경계조건을 사용하려면 D_p 가 정의되는 솔버를 전제로 한다. D_p 의 정의를 보면 (bouyantSimpleFoam 의 pEqn.H 등) D_p = 1/(rho*A) 로 되어 있으므로, 이 조건은 밀도분포를 다루는 것과 관련이 있다.

    온도에 대해서는 먼저 값지정조건과 구배지정조건이 있다. 값지정조건은 말그대로 온도를 지정하는 것이다. 구배지정조건은 열유속을 지정하는 것에 해당한다. 열유속은 푸리에 법칙으로부터

(식 80)


따라서, 온도구배는 다음과 같은 식으로 표현된다.

(식 81)


단열조건의 경우, 제로구배조건을 사용하면 된다. 또한, 열전달경계조건은 다음과 같은 식으로 표현된다.

(식 82)


여기서 h 는 열전달률, T_exp 는 외부온도에 해당한다. 이 조건은 미지수를 포함하고 있으므로, 구배지정조건으로는 사용할 수 없고 별도의 전용 조건을 구성하여야 한다.

    OpenFOAM의 경우, 열유속을 지정하는 조건으로 turbulentHeatFluxTemperature, compressible:turbulentHeatFluxTemprature가 있다. 전자는 비압축성유체솔버 (Boussinesq근사를 사용한 솔버(의 것이다. 열전달률을 열확산률으로부터 구하므로, 열물성을 가지지 않는 비압축성유체 솔버의 경우에는 rho*c_p 의 값을 별도로 지정해 주어야 한다. 열전달경계조건으로는 wallHeatTransfer가 있다.



4.6  영역간 열전달조건

     유체와 고체의 열전달과 같은 영역간 열전달 조건의 경우, 경계면온도를 다음과 같이 계산한다.
     주목하는 셀의 운도, 근접 셀의 온도, 경계면온도를 각각 T_p, T_n, T_b 라고 하자. 또한, 주목하는 셀의 열전달률, 근접셀의 열전달률을 각각 k_p, K_n 으로 하자. 주목하는 셀의 중심으로부터 경계면까지의 거리를 d_p, 근접셀의 중심으로부터 경계면까지의 거리를 d_n 이라고 하자. 주목살의 중심으로부터 경계면에 흐르는 열유속을 q_p, 푸리에 법칙에 따라 다음과 같이 표현할 수 있다.
(식 83)


같은방법으로, 벽면에서부터 근접셀의 중심으로 흐르는 열유속 q_n 은 다음과 같이 표현된다.

(식 84)


열유속 q_p 와 q_n 은 같으므로, 경계면 온도는 다음과 같다.

(식 85)


이것은 다음과 같이 바꾸어 적을 수 있다.

(식 86)


OpenFOAM 에서는 compressible:turbulentTemperatureCoupledBaffleMixed 에서 위 식을 혼합경계조건으로 사용한다. 식 (66) 을 통해 다음과 같이 설정한다.

(식 87)









댓글
공지사항
글 보관함
링크
«   2018/12   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
Total
101,614
Today
84
Yesterday
97