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


자유수면을 포함하는 선박의 저항 해석을 위한 격자 생성 예제이다. 대상 선형은 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 coefficient | Experiment | Baram | Difference |
---|---|---|---|
Pressure, Cr | 7.25E-04 | 7.46E-04 | 2.83% |
Friction, Cf | 2.83E-03 | 2.79E-03 | -1.55% |
Total, Ct | 3.56E-03 | 3.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)] 버튼을 눌러 원하는 위치에 격자를 내보낸다.