잠수함 격자 생성 – DARPA-SUBOFF

형상 파일 다운로드

baramMesh 폴더 다운로드

개요

연구용 잠수함 모델인 DARPA SUBOFF의 격자 생성 예제이다. BaramMesh에서 격자를 만들고 BaramFlow에서 계산하여 실험 결과와 비교하였다. 대칭 조건을 사용해서 절반만 모델링 했을 때 약 46만개의 격자에서 1% 내외의 오차를 갖는 결과를 얻을 수 있었다.

형상은 github에 공개되어 있는 Salome 스크립트를 이용해서 만들었다.

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.

형상(Geometry)

다운로드 받은 형상 파일의 압축을 풀면 hull, sail, fin이라는 3개의 stl 파일이 생긴다.

아래쪽의 [불러오기(import)] 버튼을 눌러 세 파일을 선택한다.

원방경계를 Hex6를 이용해서 만든다. [추가(Add)] 버튼을 누르면 나타나는 창에서 [Hex6]를 선택하고 다음과 같이 설정한다.

  • Name : Hex6_1
  • Type : None
  • MIn. : (-6.4 -6.5 0)
  • Max. : (15 6.5 6.5)

좌우 대칭 형상이기 때문에 +z 방향으로 절반만 격자를 만들기 위해 최소 z 좌표를 0으로 준다.

격자 크기를 조밀하게 적용할 영역을 지정하기 위해, [추가(Add)] 버튼을 눌러 육면체(Hex)를 추가한다.

  • Name : Hex_1
  • Type : None
  • MIn. : (-0.1 -0.4 -0.3)
  • Max. : (4.5 0.6 0.3)

[형상(Geometry)]에 Hex_1_surface이 생긴다. 이 면을 선택하고 마우스 오른쪽 버튼으로 편집을 누른다. [유형(Type)]을 [없음(None)]으로 바꿔준다.

최종 형상은 다음과 같다.

[다음단계(Next)] 버튼을 눌러 다음 단계로 넘어간다.

영역(Region)

위쪽의 (+) 아이콘을 눌러 영역을 만든다. 그래픽 창에 연두색으로 나타나는 선의 교차점을 마우스로 이동하여 날개 외부에 위치시킨다. [업데이트추가(Update)] 버튼을 누르면 설정이 완료된다.

[다음단계(Next)] 버튼을 눌러 다음 단계로 넘어간다.

배경격자(Base Grid)

[Hex6 사용(Use Hex6)]를 선택하고 격자수를 40, 20, 10으로 설정한다. [생성(Generate)] 버튼을 누르면 배경 격자가 생성된다.

[다음단계(Next)] 버튼을 눌러 다음 단계로 넘어간다.

격자세분화(Castellation)

[설정(Configuration)]과 [고급설정(Advanced)]는 디폴트 조건을 사용한다.

잠수함 표면의 격자 분할을 정의한다.

[Surface/Feature Refinement]의 (+) 아이콘을 누르고 hull_surface에 대해 다음과 같이 설정한다.

  • Surface Refinement
    • Minimum Level : 6
    • Maximum Level : 6
  • Feature Edge Refinement Level : 6+

함교와 핀 표면의 격자 분할을 정의한다.

[Surface/Feature Refinement]의 (+) 아이콘을 누르고 sail_surface, fin_surface에 대해 다음과 같이 설정한다.

  • Surface Refinement
    • Minimum Level : 7
    • Maximum Level : 7
  • Feature Edge Refinement Level : 7

잠수함 주변의 육면체에 대한 격자 분할을 정의한다.

[공간 세분화(Volume Refinement)]의 (+) 아이콘을 누르고 Hex_1에 대해 다음과 같이 설정한다.

  • 볼륨 격자세분화 레벨(Volume Refinement Level) : 5

병렬연산을 하고 싶다면 메뉴의 [병렬연산(Parallel)]-[환경설정(Environment)]를 클릭하고, [코어수(Number of Cores)]에 원하는 값을 입력한다.

[분할(Refine)] 버튼을 눌러 격자세분화를 진행한다.

[다음단계(Next)] 버튼을 눌러 다음 단계로 넘어간다.

형상구현(Snap)

[반복회수(Iteration count)]의 [스내핑 완화(Snapping Relaxation)] 값을 2로 준다.

sail(fairwater)의 윗부분이 부드럽게 페어링되어 있어 feature edge가 존재하지 않는다. 이런 경우 형상을 잘 구현하기 위해 매우 작은 격자를 사용하면 불필요하게 격자 수가 많아진다. 스내핑 완화 값을 높여주면 이런 문제를 일부 해소할 수 있다.

[특징 스내핑(Feature Snapping)]의 [피처 스냅 방법(Feautre Snap Type)]을 Implicit로 준다.

fin과 sail의 일부가 hull 안쪽으로 들어가 있으며 hull과 만나는 부분은 따로 분리되어 있지 않다. baramMesh에서 이런 hull과 fin 혹은 sail이 만나는 부분에 feature를 만들어 주지 못하기 때문에 snap 과정에서 feature snap 방법은 implicit를 사용하는게 좋다.

나머지는 디폴트 설정을 그대로 사용하고 형상구현(Snap) 버튼을 누른다.

작업이 끝나면 [다음단계(Next)] 버튼을 눌러 다음 단계로 넘어간다.

경계층 격자(Boundary Layer)

잠수함에 경계층 격자를 만든다.

[설정(Configuration)]의 (+) 아이콘을 눌러 [설정(Setting)]을 추가하고 다음과 같이 설정한다.

  • 경계층 레이어 개수(Number of Layers) : 4
  • 경계층 격자 높이 설정 방법(Thickness Model Specification) : 첫번째 레이어 높이와 증가율(First and Expansion)
  • 높이 지정 방법(Size Specification) : 절대값(Relative를 Off)
  • 첫번째 레이어 높이(First Layer Thickness) : 0.001
  • 증가율(Expansion Ratio) : 1.2
  • 최소 전체 높이(Min. Total Thickness) : 0.003
  • 경계면(Boundary) : fin_surface, sail_surface, hull_surface

모두 디폴트 값을 사용한다.

[적용(Apply)] 버튼을 눌러 경계층 격자를 만든다.

최종적으로 생성된 격자는 다음과 같다.

작업이 끝나면 [다음단계(Next)] 버튼을 눌러 다음 단계로 넘어간다.

내보내기(Export)

[BaramFlow 프로젝트로 내보내기(Export as BaramFlow project)] 버튼을 눌러 원하는 위치에 격자를 내보낸다.