Shell & Tube 열교환기
개요


본 예제는 shell & Tube 열교관기의 열전달을 다중영역(multi-region)으로 계산하는 문제이다. 고온의 액체가 튜브 영역으로 지나가고 저온의 액체가 쉘 영역으로 흐른다.
프로그램의 구동 및 격자
프로그램 실행 후 [새 작업(New Case)]를 선택한다. 시작 창에서 [솔버 유형(Solver Type)]은 [압력기반(Pressure-based)]를, [다상유동 모델(Multiphase Model)]은 [None]을 선택한다.
격자는 주어진 constant 폴더를 활용한다. 다중영역(multi-region) 문제이기 때문에 polyMesh 폴더가 아닌 constant 폴더를 사용한다. 상단 탭에서 [파일(File)]-[격자 불러오기(Load Mesh)]-[OpenFOAM]을 순서대로 클릭하고 constant 폴더를 선택한다.
격자는 baramMesh에서 만든 격자이다. (baramcfd.org 사이트의 baramMesh 튜토리얼 참고)
기본조건(General)
정상상태(Steady)를 선택한다. 중력(Gravity)에 (0 -9.81 0)을 입력한다. 작동압력(Operating Conditions)은 101325를 사용한다.

모델(Models)
난류 모델은 디폴트 조건인 standard $k-\epsilon$ 모델을 사용한다. 다중영역(multi-region) 문제에서 Energy는 자동으로 Include 된다.
물질(Materials)
두 영역의 작동유체는 모두 물을 사용한다. 오른쪽 상단의 (+) 아이콘을 눌러 waterLiquid를 선택하고 [물질 추가(Add Materials)] 버튼을 눌러 waterLiquid를 추가한다.

셀 존 조건(Cell Zone Conditions)
tube와 shell 이라는 두 개의 영역(Region)이 있다. 두 영역 모두에 대해 영역을 더블 클릭하면 나타나는 설정창에서 [유체종류(Material)]를 waterLiquid로 변경한다.

경계조건(Boundary Conditions)
각 영역별로 경계면들이 표시된다.
영역의 경계인 tube와 baffle은 두 영역에 쌍을 이루는 경계면이 있다. 이들은 [Thermo-Coupled Wall] 조건을 사용한다.
경계면의 쌍은 다음과 같다.
- tube 영역의 tube2_slave와 shell 영역의 tube2
- tube 영역의 tube4_slave와 shell 영역의 tube4
- tube 영역의 baffle1_slave와 shell 영역의 baffle1
- tube 영역의 baffle2_slave와 shell 영역의 baffle2
아래 그림과 같이 설정한다.

하나의 경계면에 대해서 설정하면 대응되는 경계면도 자동으로 설정된다.
다음의 대칭면들은 [Symmetry]로 설정한다.
- tube 영역의 Hex6_1_zMax
- shell 영역의 Hex6_1_zMax
유동의 입구인 tube_in과 shell_in은 [Velocity Inlet] 조건을 사용한다.
- tube_in : velocity magnitude는 0,1, temperature는 350, turbulent intensity는 1, turbulent viscosity ratio는 10
- shell_in : velocity magnitude는 0,5, temperature는 300, turbulent intensity는 1, turbulent viscosity ratio는 10


유동의 출구인 tube_out과 shell_out은 [Pressure Outlet] 조건을 사용하고 압력은 0으로 준다.
나머지는 모두 [Wall]의 디폴트 조건인 No Slip 조건을 사용한다.
수치해석 기법(Numerical Conditions)
[이산화 기법(Discretization Schemes)]의 난류(Turbulence)를 [Second Order Upwind]로 설정한다.
나머지는 디폴트 조건을 사용한다.
모니터(Monitor)
튜브 영역의 출구와 쉘 영역 출구의 온도를 모니터링한다.
[추가[Add]]에서 Surfaces를 선택하고 [유동변수(Field Variable)]을 Temperature, [면(Surface)]에 tube:tube_out을 선택한다.
[추가[Add]]에서 Surfaces를 선택하고 [유동변수(Field Variable)]을 Temperature, [면(Surface)]에 shell:shell_out을 선택한다.

초기화(Initialization)
초기조건은 다음과 같이 설정한다.
tube 영역
- Velocity : (-0.1 0 0)
- Pressure : 0
- Temperature : 350
- Scale of Velocity : 0.1
- Turbulent Intensity : 1
- Turbulent Viscosity Ratio : 10
shell 영역
- Velocity : (0 0 0)
- Pressure : 0
- Temperature : 300
- Scale of Velocity : 0.5
- Turbulent Intensity : 1
- Turbulent Viscosity Ratio : 10

계산
메뉴의 [병렬연산(Parallel)]-[환경설정(Environment)]를 클릭하고 원하는 코어수를 입력한다.
[계산 조건(Run Conditions)]은 다음과 같이 설정하고 [계산시작(Start Calculation)] 버튼을 누르면 계산이 시작된다.
- 계산회수(Number of Iterations) : 1000
- 자동 저장 간격(Save Interval) : 100
계산이 시작되면 아래와 같이 잔차(residual) 그래프가 그려진다.

후처리
메뉴에서 [외부 프로그램(External tools)]-[ParaView] 버튼을 클릭하여 paraview를 실행한다.
병렬연산이면 [Case Type]을 [Decomposed Case]로 변경한다.
[Coloring]을 [T]로 선택하고 [Styling-Opacity]를 낮춰주면 다음과 같은 그림을 확인할 수 있다.
