선박 격자 생성 – KCS(KRISO Container Ship)

형상 파일 다운로드

baramMesh 폴더 다운로드

개요

자유수면을 포함하는 선박의 저항 해석을 위한 격자 생성 예제이다. 대상 선형은 KCS 선형으로 많은 실험 및 해석 결과가 공개되어 있는 모형이다. 자유수면 계산을 위해 수면의 높이 방향으로 격자를 밀집시키기 위해 directional level increment 기능을 사용한다.

Ref) Measurement of flows around modern commercial ship models, Kim,W J.Kim, Van, S H, Kim, D H, Experiments in Fluids, 2001

만들어진 격자를 이용한 계산 결과는 다음과 같다.

Drag coefficientExperimentBaramDifference
Pressure, Cr7.25E-047.46E-042.83%
Friction, Cf2.83E-032.79E-03-1.55%
Total, Ct3.56E-033.54E-03-0.62%

형상(Geometry)

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

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

원방경계는 Hex6를 이용해서 만든다. 선박 주위, 자유수면 근처, 선박 주위의 자유수면 근처에 3개의 육면체를 이용해서 격자의 조밀도를 설정한다.

원방경계 만들기

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

  • Name : Hex6_1
  • Type : None
  • MIn. : (-18 0 -15)
  • Max. : (18 18 5)

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

Hex6 아래 6개 면의 이름을 다음과 같이 변경한다

  • Hex6_1_xMin -> far_outlet
  • Hex6_1_xMax -> far_inlet
  • Hex6_1_yMin -> centerplane
  • Hex6_1_yMax -> far_side
  • Hex6_1_zMin -> far_bottom
  • Hex6_1_zMax -> far_top

격자 Refine 영역 만들기

선박 주위의 영역을 지정하기 위해, [추가(Add)] 버튼을 눌러 육면체(Hex)를 추가한다.

  • Name : near_hull
  • Type : None
  • MIn. : (-6 0 -1)
  • Max. : (5 1.5 0.5)

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

자유수면 주위의 영역을 지정하기 위해, [추가(Add)] 버튼을 눌러 육면체(Hex)를 추가한다.

  • Name : near_vof
  • Type : None
  • MIn. : (-10 0 -0.1)
  • Max. : (18 10 0.1)

육면체를 추가하면 near_vof_surface가 생기는데, 이것의 속성을 None으로 바꾼다.

선박 주위의 자유수면 영역을 지정하기 위해, [추가(Add)] 버튼을 눌러 육면체(Hex)를 추가한다.

  • Name : near_hull_vof
  • Type : None
  • MIn. : (-6 0 -0.1)
  • Max. : (5 1.5 0.1)

육면체를 추가하면 near_hull_vof_surface가 생기는데, 이것의 속성을 None으로 바꾼다.

최종 형상은 다음과 같다.

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

영역(Region)

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

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

배경격자(Base Grid)

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

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

격자세분화(Castellation)

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

선박인 hull과 deck의 격자 분할을 정의한다.

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

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

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

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

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

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

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

잠수함 주변의 자유수면 부근의 육면체에 Level Increment를 정의한다.

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

  • Level Increment On
  • Split Count per Direction : (0 0 2)
  • Min. Level은 5, Max. Level은 6

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

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

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

형상구현(Snap)

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

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

경계층 격자(Boundary Layer)

선체 표면에 경계층 격자를 만든다.

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

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

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

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

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

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

내보내기(Export)

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