잠수함 외부 유동 – DARPA SUBOFF

격자 파일 다운로드

계산 파일 다운로드

연구용 잠수함 모델인 DARPA SUBOFF의 저항 해석 검증 문제이다. BaramMesh에서 격자를 만들고 BaramFlow에서 계산하여 실험 결과와 비교하였다. 실험 데이터가 있는 5, 9, 12, 15,18knot의 5가지 속도에 대한 계산을 BARAM의 일괄 계산 기능을 사용하여 계산한다.

약 46만개의 격자에서 150번 정도의 iteration으로 1% 내외의 오차를 갖는 결과를 얻을 수 있었다.

Ref.1) 1989, Groves, N., Huang, T. and Chang, M., “Geometric characteristics of DARPA Suboff models,” DTRC/SHD-1298-01, David Taylor Research Center-Ship Hydromechanics Department, Department of the Navy.
Ref.2) 1990, Crook, B., “Resistance for DARPA Suboff as Represented by Model 5470,” David Taylor Research Center report DTRC/SHD-1298-07.

프로그램의 구동 및 격자

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

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

격자는 baramMesh에서 만든 격자이다.

기본조건(General)

정상상태(Steady)를 선택한다. 중력(Gravity)은 (0 0 0), 작동압력(Operating Conditions)은 101325를 사용한다.

모델(Models)

난류 모델은 realizable $k-\epsilon$ 모델을 사용하고, Near-Wall Treatment는 Enhanced Wall Treatment(two layer)를 선택한다.

물질(Materials)

(+) 아이콘을 클릭해서 waterLiquid를 추가한다. Name을 water로 바꾸고 Density는 1000, Viscosity는 0.001로 변경한다.

셀 존 조건(Cell Zone Conditions)

region0를 더블 클릭하고 Materials에 water를 선택한다.

사용자 변수 선언

일괄계산을 위해 필요한 사용자 변수인 속도를 정의하고, 경계조건, 기준값, 초기조건 등에 사용한다.

[솔루션(Solution)]-[실행(Run)]으로 가서 변수를 선언한다.

[사용자 파라미터(User Parameters)]의 편집 버튼을 눌러 창이 열리면 [파라미터 값(Parameter Values)] 옆의 (+)를 눌러 아래 그림과 UX를 추가한다. Name은 대문자이어야 한다.

경계조건(Boundary Conditions)

유동의 입구인 Hex6_1_xMin은 [Velocity Inlet] 조건을 사용하고 속도의 크기에 사용자 변수인 $UX를 입력한다.(사용자 변수에 $ 표시를 붙여 사용)

출구인 Hex6_1_xMax는 Pressure Outlet 조건을 사용한다.

Hex6_1_yMin, Hex6_1_yMax, Hex6_1_zMin, Hex6_1_zMax는 symmetry로 설정한다.

잠수함 표면인 hull_surface, sail_surface, fin_surface는 디폴트 조건인 wall을 사용한다.

기준값(Reference Values)

기준값은 다음과 같이 설정한다.

  • 면적 : 3.169(절반만 모델링 했기 때문에 잠수함 침수면적의 절반을 사용)
  • 밀도 : 1000
  • 길이 : 4.356
  • 압력 : 0
  • 속도 : $UX(사용자 변수를 사용)

수치해석 기법(Numerical Conditions)

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

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

  • 압력-속도 연성기법(Pressure-Velocity Coupling Scheme) : SIMPLEC
  • 이산화 기법(Discretization Scheme)
    • 압력 : Linear
    • 운동량 : 2차 상류기법(Second Order Upwind)
    • 난류 : 2차 상류기법(Second Order Upwind)
  • 완화계수(Under-Relaxation Factors)
    • 압력, 운동량, 난류 : 0.9
  • 수렴 판정 기준(Convergence Criteria)
    • 압력 : 0.00001
    • 운동량 : 0.001
    • 난류 : 0.001

모니터(Monitor)

본 예제에서는 잠수함의 저항계수를 모니터링한다.

[추가(Add)]-[힘(Forces)]를 선택하여 아래 그림과 같이 설정한다.

초기화(Initialization)

초기조건은 다음과 같이 설정한다.

  • Velocity : ($UX 0 0)
  • Pressure : 0
  • Scale of Velocity : $UX
  • Turbulent Intensity : 1
  • Turbulent Viscosity Ratio : 10

계산

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

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

  • 계산회수(Number of Iterations) : 1000
  • 자동 저장 간격(Save Interval) : 100

[계산(Run)]에서 [일괄계산모드로 전환(Switch To Batch Running Mode)] 버튼을 누르면 아래 그림과 같이 [일괄계산 케이스(Batch Cases)] 설정 부분이 나타난다.

일괄계산 조건

각 변수의 조건을 설정한 파일을 [불러오기(import)] 버튼을 눌러 선택하면 조건들이 표시된다. 조건 설정 파일은 csv(comma separated values) 혹은 xlsx 파일 형식을 사용할 수 있다.

이 예제에서는 아래 그림과 같은 csv 파일이다.

csv 파일 다운로드

[불러오기(Import)] 버튼을 누르고 위 파일을 선택하면 [일괄계산 케이스(Batch Cases)] 부분이 다음 그림과 같이 바뀐다.

마우스의 드래그를 이용해서 전체를 선택하고 오른쪽 마우스 버튼을 눌러 [계산목록(Schedule Calculation)]을 선택하면 [계산(Calc.)] 열에 체크 표시가 나타난다. 체크 표시가 된 것들만 계산된다.

[계산 시작(Start Calculation)]을 누르면 순차적으로 계산이 시작된다.

제일 왼쪽 열에 현재 계산중인 케이스에 화살표가 나타난다. 계산이 완료된 케이스는 [결과(Result)] 열에 초록색으로 표시되며, 계산 중 발산한 경우는 빨간색으로 표시된다.

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

후처리

계산이 끝난후 [일괄계산 케이스(Batch Cases)]에서 케이스를 선택하고 마우스 오른쪽 버튼으로 [불러오기(Load)]를 선택하면 해당 케이스의 결과가 활성화 되고 잔차(residual)과 모니터 그래프를 확인할 수 있다.