콘텐츠로 이동

비정상상태 유동

와류 진동(Vortex shedding)

격자 파일 다운로드
계산 파일 다운로드

개요

본 예제는 2차원 비정상상태 층류 유동해석 예제로, 레이놀즈 수 100인 2차원 실린더 주변의 와류 진동(vortex shedding) 문제이다.

계산 조건은 다음과 같다.

  • 솔버 : buoyantPimpleNFoam
  • 난류 모델 : laminar
  • 레이놀즈 수 : 100

프로그램의 구동 및 격자

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


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

기본조건(General)

시간(Time)을 비정상상태(Transient)로 변경한다. 나머지는 디폴트 조건을 사용한다.


모델(Models)

난류 모델은 층류(Laminar)를 사용한다.


물질(Materials)

본 예제에서는 \(U\) = 1 \(m/s\) 조건을 사용한다. 이 때 레이놀즈 수가 100이 되는 조건으로 물성치를 설정한다.

  • 밀도 : 1 \(kg/m^3\)
  • 점성 계수 : 0.01 \(kg/ms\)


경계조건(Boundary Conditions)

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

  • cylinder : 벽면(Wall)
    • 속도조건(Velocity Condition) : 정지(No Slip)


  • sym : 대칭(Symmetry)

  • out : Pressure Outlet

    • Total Pressure : 0 (Pa)


  • in : 입구 속도(Velocity Inlet)
    • 속도 크기(Velocity Magnitude) : 1 (m/s)


  • frontAndBackPlanes : 2차원 경계(Empty)

기준값(Reference Values)

본 예제에서는 실린더의 항력계수(Drag Coefficient)와 양력계수(Lift Coefficient)를 확인한다. 이를 위해 기준값을 아래와 같이 설정한다.

  • 면적(Area) : 1
  • 밀도(Density) : 1
  • 길이(Length) : 1
  • 압력(Pressure) : 0
  • 속도(Velocity) : 1


수치해석 기법(Numerical Conditions)

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

  • 운동량 방정식 계산(Use Momentum Predictor) : 활성화

  • 이산화 기법(Discretization)

    • 시간 : 2차 음해법(Second Order Implicit)
    • 압력 : Momentum Weighted Reconstruct
    • 운동량 : 2차 상류기법(Second Order Upwind)
  • 시간당 반복계산 회수(Max iterations per Time Step) : 10

  • 압력보정 회수(Number of Correctors) : 2

나머지는 디폴트 조건을 사용한다.


모니터(Monitor)

본 예제에서는 실린더에 작용하는 항력/양력계수(Drag/Lift Coefficient)와 실린더 중심에서 1m 떨어진 지점의 속도/압력을 모니터링 한다.

실린더에 작용하는 항력/양력계수

  • [추가(Add)]-[힘(Forces)] 버튼을 선택한다.
  • 자동저장간격(Write Interval) : 1
  • Lift Direction : 0 1 0
  • Drag Direction : 1 0 0
  • Center of Rotation : 0 0 0
  • Boundaries : cylinder


실린더 중심에서 1m 떨어진 지점의 속도, 압력

  • Add - Points 버튼을 선택한다.
  • Point Monitoring은 아래와 같이 설정한다.
    • Write Interval : 1
    • Field : Pressure
    • Coordinate : 1 0 0


같은 방식으로 동일한 지점의 속도 크기(Velocity Magnitude) 모니터링도 설정한다.


초기화(Initialization)

X-속도에 1을 입력하고 나머지 값들은 디폴트값을 사용한다.

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


계산

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

[계산 조건(Run Conditions)]은 다음과 같이 설정하고 [계산시작(Start Calculation)] 버튼을 누르면 계산이 시작된다.

  • 시간전진기법(Time Stepping Method) : 적응시간기법(Adaptive)
  • Courant Number : 1
  • 종료시간(End Time) : 150
  • 자동 저장 간격(Save Interval) : 0.5




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



후처리

실린더 주변의 속도, 압력 분포를 확인한다.

메뉴에서 [외부 프로그램(External tools)]-[ParaView] 버튼을 클릭해서 paraview를 실행한다.

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


상단 툴바의 [Solid Color]를 [U] 혹은 [p_rgh]로 변경하고 [play] 아이콘을 클릭한다.



시간에 따른 경계조건 변화

격자 파일 다운로드
계산 파일 다운로드

개요


본 예제는 시간에 따라 입구의 속도와 온도가 변하는 경계조건을 설정하는 예제이다.

OpenFOAM 튜토리얼에 있는 pitzDaily 격자를 사용한다.

계산 조건은 다음과 같다.

  • 솔버 : buoyantPimpleNFoam
  • 난류 모델 : \(Standard\) \(k-\epsilon\)
  • 밀도 : Perfect Gas (Ideal Gas)
  • 점성 계수 : 1.79e-5 \(kg/ms\)

프로그램의 구동 및 격자

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


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

기본조건(General)

시간(Time)을 비정상상태(Transient)로 변경한다. 나머지는 디폴트 조건을 사용한다.

모델(Models)

난류 모델은 \(Standard\) \(k-\epsilon\) 모델을 사용하고 에너지(Energy)는 포함(Include)로 바꿔준다.

물질(Materials)

본 예제에서는 공기를 작동 유체로 사용한다. 유체의 이름과 물성치를 아래와 같이 변경한다.

  • 밀도(Density) : 완전기체(Perfect Gas) (m/s)
  • 정압비열(Specific Heat, Cp) : 1004 \(J/kgK\) (m/s)
  • 점성계수(Viscosity) : 1.79e-05 \(kg/ms\)
  • 열전도도(Thermal Conductivity) : 0.0245 \(W/mK\)


경계조건(Boundary Conditions)

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

  • inlet : 입구 속도(Velocity Inlet)
    • 속도분포(Velocity Profile Type) : 시간에 따른 변화(Temporal Distribution)
      • 조각별 선형함수(piecewise linear) : (0, 1) (0.1 2) (0.2 1.5)
    • 난류 강도(Turbulent Intensity) : 1 (%)
    • 난류 점도 비율(Turbulent Viscosity Ratio) : 10
    • 온도분포(Temperature Profile Type) : 시간에 따른 변화(Temporal Distribution)
      • 조각별 선형함수(piecewise linear) : (0, 300) (0.1 400) (0.2 350)




  • outlet : 출구 압력(Pressure Outlet)

    • 압력(Pressure) : 0 (Pa)
  • upperWall, lowerWall : 벽면(Wall)

    • 속도조건(Velocity Condition) : 정지(No Slip)
    • 온도조건(Temperature Condition) : 단열(Adiabatic)
  • frontAndBack : 2차원 경계(empty)

수치해석 기법(Numerical Conditions)

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

모니터(Monitor)

모니터를 클릭하면 세부설정상자가 나온다. 입구에서 유량과 온도 변화를 모니터링 한다.

하단의 [추가(Add)]-[면(Surfaces)]를 누르면 창이 열린다. 아래 그림과 같이 설정을 변경한다.

  • 면 모니터 1(Surface Monitor 1)
    • 함수(Report Type) : 질량유량(Mass Flow Rate)
    • 면(Surface) : inlet


  • 면 모니터 1(Surface Monitor 2)
    • 함수(Report Type) : 면적가중평균(Area-Weighted Average)
    • 유동변수(Field Variable) : 온도(Temperature)
    • 면(Surface) : inlet


초기화(Initialization)

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

  • 속도(Velocity)

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

    • 0 (Pa)
  • 온도(Temperature) : 300 (K)

  • 난류(Turbulence)

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


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

계산

[계산 조건(Run Conditions)]은 다음과 같이 설정하고 [계산시작(Start Calculation)] 버튼을 누르면 계산이 시작된다.

  • 시간 전진 간격(Time Step Size) : 0.001
  • 종료 시간(End Time) : 1
  • 자동 저장 간격(Save Interval) : 0.1


그림 11.9

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



후처리

시간에 따른 온도 및 속도의 분포를 확인한다.

메뉴에서 [외부 프로그램(External tools)]-[ParaView] 버튼을 클릭해서 paraview를 실행한다.

상단의 [Solid Color]를 [T]로 변경한다.



[Set Range]를 눌러 온도 범위를 340 - 350K으로 조정한다.

그리고 상단의 [Play] 아이콘을 눌러 시간에 따른 온도 변화를 확인한다.

아래 그림은 최종 순간에서 온도분포를 나타내는 그림이다.