콘텐츠로 이동

간단한 비압축성 유동 예제

관내 혼합(Mixing Pipe)

격자 파일 다운로드
계산 파일 다운로드
유튜브 동영상 링크

개요

본 예제는 정상상태 비압축성 유동해석 예제이다. 2개의 입구와 1개의 출구로 이루어진 원형 파이프 내부 유동의 혼합을 예측한다.

계산 조건은 다음과 같다.

  • 솔버 : buoyantSimpleNFoam
  • 난류 모델 : Standard \(k-\epsilon\) model
  • 밀도 : 1.225 \(kg/m^3\)
  • 점성 계수 : 1.79e-5 \(kg/ms\)
  • 유동 조건 : 면적이 넓은 입구(in-1)의 속도는 5m/s, 면적이 좁은 입구(in-2)의 속도는 10m/s, outlet은 대기압 조건

프로그램의 구동

프로그램 실행 후 [새 작업(New Case)]를 선택한다. 시작 창에서 [솔버 유형(Solver Type)]은 [압력기반(Pressure-based)]를, [다상유동 모델(Multiphase Model)]은 [None]을 선택한다.


격자

격자는 주어진 polyMesh 폴더를 활용한다. 상단 탭에서 [파일(File)]-[격자 불러오기(Load Mesh)]-[OpenFOAM]을 순서대로 클릭하고 polyMesh 폴더를 선택한다.


※ 주의 사항 : OpenFOAM 격자를 읽을 때는 "polyMesh" 혹은 "constant" 폴더를 선택한다. OpenFOAM의 격자는 영역(region)이 하나인 경우 constant 폴더 아래의 polyMesh라는 폴더이며, 영역이 여러 개인 다중영역(multi-region)일 때는 여러 개의 polyMesh 폴더가 constant 폴더 아래의 영역 이름 폴더에 있다.

기본조건(General)

기본조건에서는 [시간(Time)], [중력(Gravity)], [작동압력(Operating Pressure)] 등을 설정할 수 있다. 본 예제에서는 디폴트 조건을 사용한다.


모델(Models)

모델에서는 [난류(turbulence)], [에너지(Energy)], [화학종(Species)], [사용자 정의 스칼라(User-defined Scalar)]를 설정할 수 있다. 다상유동 모델과 솔버 유형은 시작 창에서 설정한다.

본 예제에서는 Standard \(k-\epsilon\) 모델을 사용한다.


물질(Materials)

물질에서는 작동 유체의 물성치를 설정할 수 있다. 지금 예제에서는 공기의 물성치를 그대로 사용한다.


셀존 조건(Cell Zone Conditions)

셀존 조건에서는 [생성항(Source)], [다중기준좌표계(MRF)], [미끄럼 격자(Sliding Mesh)] 등을 설정할 수 있다. 본 예제에서는 디폴트 조건을 사용한다.


경계조건(Boundary Conditions)

여러 경계면의 조건을 설정할 수 있다. 각 경계면을 선택하면 해당 경계면이 붉은색으로 변한다.

경계면을 마우스 오른쪽 버튼으로 클릭하면 경계면 타입을 변경할 수 있고, 더블 클릭하거나 아래의 [편집(Edit)] 버튼을 누르면 값을 설정할 수 있는 창이 열린다.

각 경계조건은 다음과 같이 설정한다.

  • in-1 : 입구 속도(Velocity Inlet)

    • 속도 크기(Velocity Magnitude) : 5 (m/s)
    • 난류 강도(Turbulent Intensity) : 1 (%)
    • 난류 점도 비율(Turbulent Viscosity Ratio) : 10
  • in-2 : 입구 속도(Velocity Inlet)

    • 속도 크기(Velocity Magnitude) : 10 (m/s)
    • 난류 강도(Turbulent Intensity) : 1 (%)
    • 난류 점도 비율(Turbulent Viscosity Ratio) : 10
  • out : 출구 압력(Pressure Outlet)

    • 압력(Pressure) : 0 (Pa)
  • wall

    • 속도 조건(Velocity Condition) : 정지(No Slip)

수치해석 기법(Numerical Conditions)

[이산화 기법(Discretization)], [완화계수(Relaxation factors)], [수렴 판정 기준(Convergence criteria)], [압력-속도 연성기법(Pressure-Velocity coupling)] 등의 항목을 설정할 수 있다.

본 예제에서는 아래와 같이 설정을 변경한다.

  • 압력-속도 연성기법(Pressure-Velocity Coupling Scheme) : SIMPLEC

  • 이산화 기법(Discretization Scheme)

    • 압력 : Momentum Weighted Reconstruct
    • 운동량 : 2차 상류기법(Second Order Upwind)
    • 난류 : 2차 상류기법(Second Order Upwind)
  • 완화계수(Under-Relaxation Factors)

    • 압력, 운동량, 난류 : 0.9
  • 수렴 판정 기준(Convergence Criteria)

    • 압력 : 0.0001
    • 운동량 : 0.001
    • 난류 : 0.001


모니터(Monitor)

본 예제에서는 (0, 0, 1) 위치에서 압력을 모니터링 한다.

창 하단의 [추가(Add)]-[점(Points)]를 클릭해서 아래 그림과 같이 설정한다.

  • 저장 간격(Write Interval) : 1
  • 유동 변수(Field) : Pressure
  • 좌표(Coordinate) : (0, 0, 1)


초기화(Initialization)

초기값으로 x, y, z 방향의 속도와 압력을 입력할 수 있다.

난류 모델을 사용할 경우 [속도 크기(Velocity Scale)], [난류 강도(Turbulent Intensity)], [난류 점도 비율(Viscosity Ratio)] 값을 입력하면 \(k\)\(\epsilon\) 값이 계산되어 사용된다.

  • 속도(Velocity)

    • X-속도 : 0 (m/s)
    • Y-속도 : 0 (m/s)
    • Z-속도 : 0 (m/s)
  • 압력(Pressure)

    • 0 (Pa)
  • 난류(Turbulence)

    • 속도 크기 : 5 (m/s)
    • 난류 강도 : 1 (%)
    • 난류 점도 비율 : 10


값을 입력하고 하단의 [초기화(Initialize)] 버튼을 클릭한다. 그 후, 메뉴의 [파일(File)]-[저장(Save)] 버튼을 클릭하여 저장한다.

계산

[계산 조건(Run Conditions)]에서는 [계산회수(Number of Iterations)], [자동 저장 간격(Save Interval)], [병렬연산(Parallel)] 등을 설정한다.

본 예제에서는 모두 디폴트 조건을 사용한다.

이후, [실행(Run)]-[계산시작(Start Calculation)] 버튼을 누르면 계산이 시작된다.

잔차(residual)와 모니터링 그래프

후처리

BARAM은 ParaView를 이용한다. [외부 프로그램(External tools)]-[ParaView] 버튼을 누르면 ParaView가 구동된다.


ParaView를 초기 실행 시, 필요한 기능에 대한 설명은 다음과 같다.

  • Skip Zero Time : 초기값을 제외한 결과를 보여준다.

  • Case Type : cpu 개수에 따른 설정이다.

    • Reconstructed Case : 1core 계산 혹은 Parallel로 계산을 진행했지만 reconstructPar를 진행한 OpenFOAM case
    • Decomposed Case : Parallel 계산을 진행한 case
  • Mesh Regions : 보고 싶은 Internal mesh, 경계면 등을 설정할 수 있다.

  • Cell Arrays : 보고 싶은 물리량을 설정할 수 있다.


경계면 스칼라 분포

벽면에 걸리는 압력 분포를 그려본다. 초기 설정을 아래와 같이 해준다.

  • Skip Zero Time : 비활성화
  • Mesh Regions : internalMesh - 활성화
  • 나머지 : Default

\(p_{rgh}\)는 압력에서 중력에 의한 항(\(\rho gh\))을 뺀 값으로 이 문제와 같이 중력을 고려하지 않은 경우는 압력과 같은 값이다. \(p_{rgh}\)는 operating pressure 기준의 상대압이고 \(p\)는 절대압력이다.



축단면 스칼라 분포

파이프 내부의 압력 분포를 확인해본다.

[slice] 버튼을 클릭하고 방향을 Y-normal로 바꿔서 파이프 내부 압력을 확인한다.



외팔보(Cantilever Beam)

격자 파일 다운로드

개요

본 예제는 정상상태 비압축성 유동해석 예제이다. 입구 영역에서 유입되는 공기에 의해 외팔보(Cantilever Beam)가 변형되는 정도를 확인하는 1-way FSI(Fluid Structure Interaction) 예제이다.

외팔보는 두께 5mm, 길이 50mm, 높이 150mm이다. 절반만 모델링하여 대칭(Symmetry) 경계 조건을 부여한다.

아래 그림에서 형상과 격자를 나타내었다.



계산 조건은 다음과 같다.

  • 솔버 : buoyantSimpleNFoam
  • 난류 모델 : \(Standard\) \(k-\epsilon\)
  • 밀도 : 1.225 \(kg/m^3\)
  • 점성 계수 : 1.79e-5 \(kg/ms\)
  • 유동 조건 : inlet에서 80 \(m/s\)

프로그램의 구동 및 격자

프로그램 실행 후 [새 계산(New Case)]를 선택한다. 시작 창에서 [솔버 유형(Solver Type)]은 [압력기반(Pressure-based)]를, [다상유동 모델(Multiphase Model)]은 [None]을 선택한다.


격자는 주어진 polyMesh 폴더를 활용한다. 상단 탭에서 [파일(File)]-[격자 불러오기(Load Mesh)]-[OpenFOAM]을 순서대로 클릭하고 polyMesh 폴더를 선택한다.

기본조건(General)

본 예제에서는 디폴트 조건을 사용한다.

모델(Models)

본 예제에서는 \(Standard\) \(k-\epsilon\) 난류 모델을 사용한다.


물질(Materials)

본 예제에서는 공기의 물성값을 사용한다.


경계조건(Boundary Conditions)

아래와 같이 경계면 타입과 경계값을 설정한다.

  • Hex6_1_xMin : velocity Inlet
    • Velocity Specfication Method : Magnitude, Normal to Boundary
    • Profile Type : Constant
    • Velocity Magnitude : 80 (m/s)
    • Turbulent Intensity : 1 (%)
    • Turbulent Viscosity Ratio : 10


  • Hex6_1_zMax : velocity Inlet
    • Velocity Specfication Method : Component
    • Profile Type : Constant
    • X-Velocity : 80 (m/s)
    • Y-Velocity : 0 (m/s)
    • Z-Velocity : 0 (m/s)
    • Turbulent Intensity : 1 (%)
    • Turbulent Viscosity Ratio : 10


  • Hex6_1_xMax : Pressure Outlet
    • Total Pressure : 0 (Pa)


  • Hex6_1_yMin, Hex6_1_yMax : Symemtry

  • cantileverBeam_surface_0, Hex6_1_zMin : Wall

    • Velocity Condition : No Slip

수치해석 기법(Numerical Conditions)

본 예제에서는 아래와 같이 설정을 변경한다.

  • 압력-속도 연성기법(Pressure-Velocity Coupling Scheme) : SIMPLEC

  • 이산화 기법(Discretization Scheme)

    • 운동량 : 2차 상류기법(Second Order Upwind)
    • 난류 : 1차 상류기법(Second Order Upwind)
  • 완화계수(Under-Relaxation Factors)

    • 압력 : 0.9
    • 운동량 : 0.9
    • 난류 : 0.9
  • 수렴 판정 기준(Convergence Criteria)

    • 압력 : 0.001
    • 운동량 : 0.001
    • 난류 : 0.001


모니터(Monitor)

본 예제에서는 외팔보에 걸리는 힘을 모니터링한다. [추가(Add)]-[힘(Forces)] 창의 경계면에서 cantileverBeam_surface_0을 선택한다.

이후, [추가(Add)]-[면(Surface)]를 선액하고 아래 그림과 같이 설정한다.



초기화(Initialization)

다음과 같이 초기값을 설정한다.

  • 속도(Velocity)

    • X-속도 : 80 (m/s)
    • Y-속도 : 0 (m/s)
    • Z-속도 : 0 (m/s)
  • 압력(Pressure)

    • 0 (Pa)
  • 난류(Turbulence)

    • 속도 크기 : 80 (m/s)
    • 난류 강도 : 0.1 (%)
    • 난류 점도 비율 : 10


값을 입력하고 하단의 [초기화(Initialize)] 버튼을 클릭한다.그 후, 메뉴의 [파일(File)]-[저장(Save)] 버튼을 클릭하여 저장한다.

계산

메뉴의 [병렬연산(Parallel)]-[환경설정(Environment)]를 클릭하고 원하는 코어수를 입력한다.

[계산 조건(Run Conditions)]에서 다음과 같이 설정 후 계산을 진행한다.

  • [계산회수(Number of Iterations)] : 1,000
  • [자동 저장 간격(Save Interval)] : 100




계산이 시작되면 아래와 같이 잔차(residual) 그래프가 그려진다.


후처리

[외부 프로그램(External tools)]-[ParaView] 버튼을 클릭하여 실행한다. 본 예제에서는 외팔보 주변 압력장을 그려본다.

병렬연산이면 [Case Type]을 [Decomposed Case]로 변경한다.

[Slice] 아이콘을 눌러 단면을 자른다.


축 방향은 [Y Normal]로 변경, [Origin]은 (200, 115, 125)로 변경한다.


이후 상단의 p를 p_rgh로 변경한다.


아래 그림과 같은 외팔보 주변 압력 분포가 나오게 된다.