작성일 : 2015년 10월 17일
번역일 : 2016년 4월 12일
크롬 브라우저로 보시는 것을 권장해 드립니다.
------------------------------------------------------------
----- OpenFOAM 소스코드를 다루는 문법 기본 -----
------------------------------------------------------------
3. 압력-속도 연성 |
3.1 압력방정식
여기서, A 는 계수로, 아래첨자 P 는 주목하는 셀을, N 은 주목하는 셀의 옆에 있는 셀을 나타낸다.
OpenFOAM 에서는 우변을 없애고
으로, 다음과 같이 표현한다.
따라서 운동방정식은
속도는 다음과 같이 적을 수 있다.
이것을 연속의식 (식 1) 에 대입하면,
따라서,
정상상태인 경우, 우변의 시간미분항은 생략할 수 있다. 비압축성유체의 경우,
위의 압력방정식을 풀어 얻어낸 압력으로부터, 식 (45)에 의해 새로운 속도를 구해낸다.
3.2 SIMPLE 법
이상의 순서를 통해 Residual이 작아질때까지 반복계산을 수행한다.
3.3 SIMPLEC 법
3.4 PISO 법
3.5 PIMPLE 법
3.6 압력진동의 회피
Rhie and Chow 의 방법에서는, 위 식을 다음과 같이 수정한다.
이것에 의해 새로운 항이 추가된 것이 되나, 이 항이 압력징동을 제어하는 동작을 수행한다.
OpenFOAM에서는, 위의 식을 유속 phi 로 표현하고 있다. 여기서 유속 phi 는, 셀 경계면의 면적벡터를 S 로하고, 압축성유체솔버에서는 phi = rho u * S, 비압축성유체솔버에서는 phi = u * S 이다. OpenFOAM 의 솔버에서는, 운동량방정식의 구축에 phi 가 사용되거나, 속도의 갱신과는 별개로 phi 가 갱신되고 있거나 하는 것은 이 Rhie and Chow 에 의한 보간법을 사용하고 있기 때문이다.
3.7 유체 flux 의 수정
여기서 u_0 는 이전단계의 속도, phi_0 는 이전단계의 유체 flux 에 해당한다. ddtPhiCorr 의 본체는, EulerDdtScheme 등 시간미분스킴 속의 fvcDdtPhiCorr 로 정의되어있으며, 위 식의 우변의 괄호 안의 내용이 ddtScheme 안에서 fvcDdtPhiCorrCoeff 로 정의되어 있다.
외 이런 방식으로 되어 있는지 다음과 같이 유추해 볼 수 있다. 계산상, 연속의 식을 엄밀히 만족할 수 없으며, 오차가 발생하게 된다. 이것을 고려해보자. 먼저, 비압축성유체일때, 운동방정식은 반이산화식에서 시간미분의 항은 다음과 같이 된다.
따라서,
이산화하면, 연속의 식에서 우변의 2번째 항이 사라지게 된다. 하지만, 계산상의 오차로 인해 0이 되지 않으므로, 이 항을 남겨둔다. 양의 값으로 계산하는 가정으로, backwind 스킴으로 이산화하면,
여기서 u_00은 전전 단계에서의 속도를 의미한다. OpenFOAM에서는, Divergence의 계산에 유체 flux 를 사용하므로, 유체 flux의 형태로 표현하면,
이것으로 ddtPhiCorr 에서 계수를 제외한 항을 얻을 수 있다. ddtPhiCorr의 계수는 물리적인 항이 아닌 계산상의 안정화를 위한 항으로 생각된다. 즉, phi_0 - u_0*S 가 phi_0 에 비해 작을때만 보정되도록 하는 작용을 할 것이다 ( 식 (44)의 A와 H 는 시간미분항에서 유래하는 항을 포함하고 있을 것이며, 위에서 기술한 보정을 추가하면, 시간미분항을 2중으로 고려하게 된다는 것은 의아스럽다.)
adjustPhi 에서는, 질량의 유출입의 조정을 수행한다. 단순한 흐름에서는, 유입질량유량 dot(m_in) 과 유출질량유량 dot(m_out)이 서로 평행상태이지만, 경우에 따라서 평행상태가 아니며, 질량보존을 위해 추가적인 질량유입을 고쳐한다. 이것을 dot(m_add) 라고 한다면,
이어야 한다. 실제로는 경계조건 때문에(?) 이것이 잘 맞지 않고, 다음과 같은 형태가 된다.
여기서,
adjustPHi 에서는, dot(m_add) 에 해당하는 면의 유체 flux 에 alpha 를 곱해 조정한다.
'OpenFOAM > 배경이론 간단정리' 카테고리의 다른 글
[OpenFOAM 배경이론 간단정리] 경계조건 (0) | 2016.05.11 |
---|---|
[OpenFOAM 배경이론 간단정리] 유한체적법에 의한 이산화 (0) | 2016.04.11 |
[OpenFOAM 배경이론 간단정리] 열유체의 구배방정식 (0) | 2016.04.08 |
[OpenFOAM 배경이론 간단정리] 시리즈 목차 (4) | 2016.04.05 |