In the present paper, Computational fluid dynamics (CFD) uncertainty analysis proposed by ITTC was investigated and applied to ship resistance performance using open source libraries, called OpenFOAM. Uncertainties for grid size, time step and iteration number were studied. Wave patterns and hull wave profile were compared for various uncertainty parameters. From results, grid size uncertainty was mainly contributed to simulation numerical uncertainty.
최근 컴퓨터의 급속한 발달 및 보급으로 전산유체역학 (Computational fluid dynamics, CFD)에 의한 수치적 연구가 비약적인 발전을 이루어져 왔다. 또한, 조선 및 해양 산업에서 전산유체역학을 이용한 연구들이 다양하게 진행되어져 왔다. 전산 유체역학에 대한 의존도는 점차 증가하고 있으나, 결과가 포함하고 있는 불확실성에 대한 연구는 많이 진행되지 않은 실정이다.
수치해석의 불확실성 해석은 검증과 유효성 확인(verification & validation, V&V)이라는 방법론을 통해 수행되어 왔다. Coleman and Stern (1997)은 불확실성을 고려한 CFD 코드 검증방법을 자세히 제시하였고, Stern, et al., (2001)은 격자로부터 기인하는 오차가 해에 미치는 영향을 체계적으로 분석할 수 있는 접근법으로 격자의 신뢰도를 평가할 수 있음을 보였다. 이러한 방법을 이용하여 Wilson, et al., (2001)은 격자 신뢰도를 평가함으로써 선체에 작용하는 저항 및 선측 파형이 유효하게 예측되었음을 보였다. Lee, et al., (2008)은 CFD의 검증 및 신뢰성을 높이기 위해 Coleman이 제시한 이론을 바탕으로 불확실도를 분석하였고, 수치해석과정의 불확실도는 분할과 격자 구성 에러를 Richardson 외삽법을 이용하여 수치화하였다. Choi, et al., (2009)은 와류 생성기가 선박의 속도 성능에 미치는 영향을 추정하는데 있어 V&V를 이용하여 격자의 신뢰도를 검증하였다. 이와 같이 검증과 유효성 확인을 통한 불확실성 해석의 기본 개념과 일반화된 절차들은 ITTC를 통해 점차 체계화되고 있다.
본 논문에서는 ITTC (2008)에서 제공하는 방법을 이용하여 선박의 저항성능 해석시 발생하는 불확실성을 파악하고자 한다. 선박의 저항성능 해석에는 소스코드가 공개된 OpenFOAM을 사용하였다 (Park, et al., 2013). 또한 불확실성 해석에서 격자 크기(grid size)뿐만 아니라 시간 간격(time step)과 반복 횟수(iteration number)에 대해서 불확실성 해석을 수행하고, 종합적인 불확실성을 최종적으로 해석하였다.
본 연구에서는 속도와 압력을 계산하기 위해 질량 보존 방정식, 운동량 보존 방정식을 사용하였다. 또한 난류를 해석하기 위해 질량 보존 방정식과 운동량 보존 방정식을 시간 평균하였고, 난류모델을 선정하였다. 공기와 물의 두 가지 상을 정의하기 위하여 체적비 이송 방정식을 사용하였다.
질량보존 방정식과 운동량 보존 방정식은 다음과 같다.
여기서, ρ는 밀도, 는 속도벡터를 나타낸다. S는 소스항을 나타내고, 이러한 소스항에는 중력가속도가 포함된다. 는 점성 응력 텐서를 나타내고 비압축성 유동에서 다음과 같이 표현된다.
여기서, 아래첨자
여기서,
난류를 고려하기 위해 운동량 보존 방정식을 시간평균하면 다음과 같이 Reynolds 응력항이 생성된다.
여기서,
아래와 같은 체적비 이송방정식을 고려하여 자유수면을 계산하였다.
사용된 경계조건과 계산영역의 형상 및 치수는 Fig. 1과 같다. 입구면에서는 속도, 난류, 체적함수는 Dirichlet 조건으로 설정하였고, 압력은 Neumann 조건으로 설정하였다. 이와 반대로, 출구면에서 속도, 난류, 체적함수는 Neumann 조건으로 설정하였고, 압력은 Dirichlet 조건으로 설정하였다. 중앙 단면은 대칭 조건을 사용하였다. 또한 선체 표면은 no-slip조건으로 설정하였다. 전체 계산영역은 직사각형의 형태로 구성하였다.
계산영역의 크기는 모형선의 수선간 길이가
본 논문에서는 OpenFOAM의 solver 중 2상유동해석 프로그램인 interFoam을 사용하여 선박의 저항을 계산하였다. 비압축성 유동에서 속도와 압력을 계산하기 위해 질량 보존 방정식, 운동량 보존 방정식, 체적비 이송 방정식을 사용하였고, 난류모델은 SST
선박의 저항성능을 계산하기 위하여 선박해양플랜트연구소에서 설계한 3,600TEU 컨테이너선인 KRISO container ship(KCS)를 대상 선박으로 설정하였다. 수치해석을 검증하기 위해 고정된 상태에서 계산하여 실험결과 (Kim, et al., 2001)와 비교하였다. 제원은 Table 1에 나온 것과 같다.
[Table 1] Principal particulars of KCS
Principal particulars of KCS
형상 파일로부터 격자를 생성하기 위해 OpenFOAM이 제공하는 자동 격자 생성 유틸리티인 snappyHexMesh와 blockMesh를 사용하였다. 또한 자유수면의 영향을 정확히 고려하기 위해 자유수면 부근의 격자를 조밀하게 생성하였고, 수치 값의 변화량이 큰 영역인 선수 영역에 기존 격자보다 두 배의 밀집도로 격자를 생성하였다.
저항계산에서 사용된 격자는 약 235만개이고 불확실성 해석에서 기준이 되는 medium 값으로 설정하였다. Fig. 2는 기준이 되는 medium 격자에 대한 선박의 선수부분과 선미부분을 각각 나타낸 형상이다.
ITTC에서 제안하는 절차와 방법 (ITTC, 2008)에 따라 불확실성 해석을 진행하였다. 불확실성 해석에서 입력 파라미터(input parameter)로 나타낼 수 있는 수치적 오차로는 반복 횟수 (
보정계수(
격자 크기와 시간 간격에 대한 불확실성을 구하기 위해 반복 및 불확실성 파라미터에 대한 수렴성 연구가 진행되어야 한다. 수렴상태를 결정하기 위해 3가지 격자계 및 시간 간격에 대한 각각의 수치 해를 , , 이라 할 때 식 (11), (12)을 이용해 수렴비(
수렴비(Ri)를 이용하여 해의 수렴상태를 판별할 수 있다.
식 (14)의 (i)로 수렴한 경우 ITTC 절차에 따라 Richardson 외삽법을 이용한다. 우선 refinement ratio (
첫 번째,
두 번째,
또한, 보정계수(
격자 크기에 대한 불확실성을 구하기 위해 coarse, medium, fine 3가지 격자를 사용하였다. Table 2는 3가지 격자에 대한 크 기를 나타낸 것이고, Fig. 3은 3가지 격자에 대한 KCS 선수의 세부적인 형상을 나타낸 것이다. 여기에서 1, 2, 3은 각각 coarse, medium, fine 격자를 나타낸다.
[Table 2] Grid sizes for the uncertainty analysis
Grid sizes for the uncertainty analysis
계산 영역에서의 배경 격자의 수를 coarse 격자에서 medium 격자는 각 방향으로부터 1.33배, medium 격자에서 fine 격자는 각 방향으로부터 1.25배로 늘려 격자를 조밀하게 생성하였다. 비정렬 격자의 경우 격자의 임의성으로 인해 전체 격자의 수가 정확히 증가되지 못하는 한계가 있다. 그러나 snappyHexMesh와 blockMesh의 세부 제어를 통해 비교적 일관되게 증가하였다고 가정하고 연구를 진행하였다.
전체 격자 수 만으로 refinement ratio를 판별하기 어렵다. 따라서 격자의 길이 방향을
[Table 3] Grid length h for refinement ratio
Grid length h for refinement ratio
시간 간격에 대한 불확실성 해석을 위해 시간 간격을 변화시키면서 계산하였다. Medium 격자를 기준으로 설정하였고 사용된 시간간격의 값은 √2배씩 증가 또는 감소하도록 설정하여 Table 4에 나타내었다. 격자 크기와 동일하게 1, 2 3은 각각 coarse, medium, fine 시간간격을 나타낸다.
[Table 4] Time step for the uncertainty analysis
Time step for the uncertainty analysis
시간 간격에 대한 불확실성의 경우에는 시간 간격의 값이 동일하게 증감하기 때문에 refinement ratio의 비율의 값이 동일한
반복 횟수에 대한 불확실성 해석은 시간 간격 불확실성과 동일하게 medium 격자를 기준으로 설정하였다. 반복 횟수 불확실성 계산의 경우에는 입력 파라미터 값을 정할 수 없으므로 다른 방법으로 불확실성을 해석해야 된다.
반복 횟수에 따라 결과가 진동하며 수렴하는 경우 최종 2주기를 기준으로 결과의 최대값(
격자 크기를 coarse, medium, fine 격자로 변경하여 KCS에 작용하는 전체저항의 값과 실험결과 (Kim, et al., 2001)와 비교한 오차를 Table 5에 표기하였다. Coarse 격자에서 fine 격자로 조밀해질수록 비교오차는 점점 감소하여 실험값과 거의 비슷한 결과를 얻었다.
CT for three grids
3가지 격자계에 대한 불확실성 검증 결과는 3.1와 3.2의 불확 실성 해석 절차에 따라 계산하여 Table 6에 정리하였다. 여기에서 한계 정도차수(
[Table 6] Grid uncertainty analysis results
Grid uncertainty analysis results
Table 7에서는 시간 간격을 √2만큼 증가 또는 감소시키면서 도출한 결과 값을 실험 결과와 비교하였다. 3가지 시간간격에 대한 불확실성 검증 결과는 3.1과 3.3의 절차에 따라 Table 8에 정리하였다. 시간에 대한 불확실성(
[Table 7] CT for three time steps
CT for three time steps
[Table 8] Time step uncertainty analysis results
Time step uncertainty analysis results
반복 횟수의 불확실성 해석은 medium 격자를 사용하여 계산된
[Table 9] Iteration number uncertainty analysis results
Iteration number uncertainty analysis results
격자 크기, 시간 간격, 반복 횟수에 대한 종합적인 수치 불확실성을 식 (9), (10)을 사용하여 계산하였다. 수정되지 않은 수치 불확실성(
Uncorrected and corrected simulation numerical uncertainties for total resistance coefficient
ITTC에서 제시하는 불확실성 해석 절차에 대해 알아보고 소스 공개 코드인 OpenFOAM을 이용하여 선박의 저항성능해석 결과에 적용하였다. 격자 크기, 시간 간격, 반복 횟수에 대한 오차를 Richardson 외삽법을 이용하여 불확실성을 수치화 하였고, 종합적인 수치 불확실성을 계산하였다.
계산 결과, 수정되지 않은 격자 크기 불확실성(
격자와 반복수에 대한 불확실성의 오차가 대부분을 차지하였고, 시간에 대한 불확실성에 대한 불확실성은 상대적으로 낮은 수치를 보였다. 수치화된 불확실성의 값은 OpenFOAM의 선박 저항의 검증을 위한 오차 범위를 나타내는 척도로써 활용이 가능할 것으로 보인다.
본 논문에서는 전체저항에 대해 불확실성을 해석하였으나, 향후 국부적인 유동인 파형 등에 대한 불확실성 연구가 필요하다.