ANSYS Fluent로 Hydrofoil에서의 Cavitation 구현하기
Cavitation 공짜로 시뮬레이션 하기 튜토리얼
- 서론

ANSYS Fluent는 그렇게 강력한 시뮬레이션 도구는 아니라고 여길 수 있지만, 엄청난 장점을 보유하고 있습니다.
바로 공짜로 학생용 버전을 배포하고 있다는 것입니다.
연산 자원이 한정되어 있기는 하지만, 충분히 사용할만한 도구입니다.
이번 글에서는 ANSYS student를 다운로드 받는 것부터 NACA0015에서의 Cavitation을 구현하는 것까지 자세하게 설명하겠습니다.
- 다운로드

https://www.ansys.com/academic/students
해당 홈페이지에 접속하면 다음 화면이 보입니다.
스크롤을 좀 내려보면...

아주 훌륭하게 공짜로 배포 중인 프로그램들을 볼 수 있습니다.
이중 첫 번째 프로그램을 다운로드하기 위해 파란 글씨를 가볍게 눌러주면,

아주 눌러주게 싶은 노란색 박스가 보이는 화면으로 넘어가게 됩니다.
시키는 대로 확인을 누르고 기다리다 보면 다운로드가 끝납니다.

다운로드 하면 Workbench라는 앱이 생겨 있을 것입니다.
실행하시면 이제 시뮬레이션을 할 준비가 되셨을 겁니다.
- Geometry
우선 ANSYS를 사용하며 발생하는 대부분의 알 수 없는 문제는 한국어 때문입니다.
만약 이상하게 자꾸 실행이 안된다면, ANSYS의 language 파일을 해체 분석하여 언어를 영어로 복구 시켜주시면 해결됩니다.
또한, 자꾸 파일을 못 인식한다면 파일 경로에 한국어가 포함되어 있을 수도 있습니다.

우리는 왼쪽 toolbox에서 Fluid Flow(Fluent)를 선택할 것입니다.(더블 클릭)
시뮬레이션은 여러 방법이 있고, 옳은 건 없으나, Cavitation을 분석하는데 최적인 방법으로 이 글은 진행될 것입니다.

이런 창이 뜨게 될 것인데 여기서 우리는 2번 Geometry부터 차례대로 진행을 하게 됩니다.
이 글은 Cavitation을 구현하는 데까지만 다룰 것이므로 자세한 분석은 하지 않고 마무리 지을 예정입니다.
각 항목 옆의 물음표는 진행 단계에 따라 물음표, 회전하는 화살표,번개, 체크 표시 등으로 진행될 것입니다.
참고로 언제든지 꼬여버린 항목은 우클릭-reset으로 초기화가 가능합니다.

보통 사람들은 맨 위의 Design Modeler이나 SpaceClaim을 사용하여 직접 모델링을 하거나 Import Geometry를 활용하여 기존 모델링 된 파일을 이용합니다.
Import Geometry 도중 문제가 생기면 아마 호환되지 않는 파일 형식일 가능성이 크니 유의하시길 바랍니다.
저는 NACA0015를 SpaceClaim으로 모델링하고 주변 enclosure을 생성했으니 해당 방법으로 설명하겠습니다.
참고로, NACA는 비행기의 NASA로(실제로 NASA가 NACA에서 나온 거일거요?) NACA****는 비행기 날개 종류입니다.
번호의 의미는 시뮬레이션과 연관이 없어 생략하였으나 재미있는 내용이니 나중에 한번 찾아보시면 좋겠습니다.(나중에 기회가 되면 글로도 간단히 풀어보겠습니다)

방향이 각도가 이상하게 보이는 사진이긴 하지만, NACA0015를 모델링한 사진입니다.
밑면을 NACA0015에 맞게 그리고 상단 툴바의 fill로 surface로 만들어준 다음 pull기능으로 입체로 만들었습니다.
NACA0015는 유체가 부딪힐 날개이기 때문에 유체가 흐를 구간 역시 정의해 주어야 합니다.

상단 툴바 위쪽에 Prepare이라고 적힌 탭을 클릭해줍니다.

이 탭의 툴바에 Enclosure을 클릭해주고 상자의 크기를 넉넉하게 잡아주면(단 날개의 단면이 보이는 부분은 날개의 단면이 상자의 겉면이 되게 해준다) 됩니다.

이제 좌측 창에 Groups 탭을 클릭하여 각 요소들을 묶고 이름을 지어줍시다.
나중에 시뮬레이션 할 때 그룹을 선택하기는 너무 귀찮기 때문에 미리 작업하고 있다고 보면 됩니다.
제가 사용할 용어와도 같으니 똑같이 정하시면 편하겠습니다.

그룹을 정할 때는 좌클릭을 하고, 추가로 다른 요소를 같은 그룹에 포함시키려면 ctrl+좌클릭을 하면 됩니다.
그러나 나는 face를 원하는데 자꾸 전체 body가 선택되면 오른쪽 아래 커서 모양 오른쪽 하얀 삼각형을 누르고, smart를 끈 다음 원하는 요소 종류를 선택해 선택 필터를 설정하면 됩니다.
face를 원하는 현재 상황에서는 face에 체크를 하면 됩니다.

그룹으로 정하고 이름을 지을 때는 ctrl+g 단축키로 그룹 생성을 하고, 좌측 툴바에서 이름을 바꾸면 됩니다.

Enclosure의 면 중 NACA0015의 둥근 부분 쪽 면이 Inlet입니다.
Inlet은 유체가 들어오는 부분이라고 보면 됩니다.
보통 유체는 날개의 둥근 앞쪽에서 뾰족한 끝 쪽으로 갑니다. NACA0015도 마찬가지입니다.

마찬가지로 Enclosure의 면 중 NACA0015의 둥근 부분 쪽 면이 Outlet입니다.

NACA0015의 날개 위, 아래 부분이 top_bottom입니다. 비행기 날개 위 아래로 생각하시면 편합니다.

NACA0015의 두 단면을 포함하는 두 면이 sym입니다. 그냥 대칭이어서 이름을 지었습니다.

foil은 Hydrofoil의 약자로 NACA0015의 겉면을 말합니다.
그러나 Enclosure의 안쪽 부분만 의미가 있어 Enclosure의 안쪽 면을 설정해줘야 합니다.
Solid를 Hide Body(Solid를 우클릭하고 사용 가능)하여 Enclosure 안쪽면을 선택해 줍시다.
만약 클릭이 잘 안되면 단면 기능을 활용하여 선택하시면 더 쉽습니다.
이제 Geometry에서 할 것이 끝났습니다.

이제 Workbench로 돌아와 Geometry 옆 체크 표시를 확인하고 아래 Mesh를 더블클릭하여 Mesh를 짜러 갑시다.
- Mesh

저는 이미 Mesh 작업을 끝낸 상태여서 이렇게 보이지만, 여러분은 체크 표시가 아닌 항목들이 있을 것입니다.
우선 좋은 Mesh를 생성하기 위해서 Inflation부터 작업하겠습니다.

Mesh 항목을 툴바에서 우클릭하시고 Insert에서 Inflation을 고르겠습니다.

그렇게 보인 Inflation 창에서는 Mesh를 짤 구간과 그중 더 잘게 쪼갤 경계(Boundary)를 정해주어야 합니다.
Geometry 오른쪽을 클릭하고, Enclosure 전체를 클릭하고 Apply를 눌러주세요.
아래 Boundary Scoping Method를 Geometry Selection에서 Named Selection으로 변경해주고 foil을 Boundary로 설정해 주세요.
Maximum Layers를 10으로 설정해줍니다.

좌측 툴바 Geometry 항목에 Solid를 우클릭해 Suppress Body를 이용해 계산에서 제외해줍니다.
상단 툴바의 Generate를 누릅니다.

Mesh가 잘 생성되었다면 넘어갑시다.

다시 Workbench로 돌아가 Mesh 옆 체크를 확인하고 Setup을 더블클릭하여 넘어갑시다.
- Setup
지금까지는 Fluent를 돌리기 위한 준비에 불과했다면 이제 진짜로 Fluent를 돌리는 과정입니다.

더블 클릭하면 이런 화면이 보일 것입니다.
Double Precision을 켜주시고, Solver Processes를 본인 CPU개수를 고려하여 늘려 계산 속도를 빠르게 합니다.
Start를 누르면 Fluent창이 뜨게 됩니다.

우선 Task Page에 보이는 Scale이란 Check를 진행하여 Mesh가 잘 전송되었는지 확인합시다.
Scale은 단위가 꼬이지 않았는지 확인하면 되고,

Check는 maximum volume이 양수이면 됩니다.

이제 왼쪽 툴바에서 Setup-Materuals-Fluid로 들어가면 air 혼자 있을 것입니다.
air을 더블클릭해주면 창이 뜰 텐데

오른쪽에 Fluent Database...를 클릭하면,

스크롤 맨 아래에서 water-liquid와 water-vapor을 발견할 수 있게 됩니다.
우리는 Caviation을 구현 할 것이므로 물과 수증기 둘 다 추가해 주도록 합시다.
아래 Copy를 눌러 정보를 추가해주고 Close를 눌러 창을 닫고 air 아래 잘 추가되었는지 확인해줍니다.

우리는 여러 상태의 유체를 다룰 것이므로 Multiphase 설정을 해줘야 합니다.
Setup-Models-Multiphase를 더블 클릭하여 Model을 Mixture로 설정해줍시다.
설정이 끝나셨으면, 아래 Apply를 누르고 Close를 눌러 왼쪽 툴바 Multiphase 옆에 (Mixture)이 된 것을 확인해 줍시다.

다시 Multiphase 창에 들어가 상단 탭 중 2번째인 Phases 탭으로 들어갑니다.
두 Phases를 각각 Primary Phase는 water, Secondary Phase는 vapor로 정해주고, Apply를 누릅니다.

다시 상단에 3번째 탭인 Phase Interaction에 들어가 Mechanism을 Cavitation으로 지정해주고 Apply를 누릅니다.
이제 상태 변화가 Cavitation으로 이루어지게 됩니다.

뒤이어 뜨는 화면에서는 Schnerr-Sauer 모델을 선택해줍니다.
ZGB 모델은 증발과 응축 속도를 제어하기 위해 여러 임의의 경험적 수정 계수들을 사용하는데, 이 계수들은 압력 변화가 급격한 구간에서 수치적 불안정성을 유발하기 쉽습니다.
OK를 누르고 창을 모두 Close로 닫아줍니다.

이제 Setup-Boundary Conditions으로 이동합니다.

Inlet에서 inlet (velocity-inlet, ...)을 더블클릭합니다.

나타나는 창의 오른쪽 위 Phase를 water로 바꿉니다.

해당 창에서 Velocity Magnitude를 임의로 정합니다. 저는 10m/s로 정했습니다. 이후 Apply 누르고, Close로 창을 닫습니다.

Phase를 vapor로 바꿔주고, Volume Fraction이 0임을 확인합니다. 이는 Inlet에서 입장하는 물은 수증기가 섞이지 않은 순수한 물임을 의미합니다. Close 눌러서 창을 닫습니다.

Outlet에서 outlet (pressure-outlet)을 확인하고 더블클릭합니다.

Gauge Pressure이 0Pa임을 확인하고 창을 닫습니다.
이제 Setup도 끝났으니 최후의 계산만 돌리면 됩다.
이제는 끝 필요 없이 하나의 ANSYS Fluent이므로 툴바 아래 Solution 항목들을 보면 됩니다.
- Solution

Solution 툴바에서 Initalization부터 진행하겠습니다.
Fluent가 푸는 유체역학 방정식(Navier-Stokes)는 딱 떨어지는 해를 구할 수 없습니다.
대신 적당한 값을 먼저 찍고, 오차를 확인하고, 값을 조금씩 수정해 나가는 반복 작업을 통해 정답에 점점 가까워지는 방식을 사용합니다.
이때 컴퓨터가 해석할 첫 값, 모든 Mesh 공간에 들어갈 맨 처음의 속도, 압력, 수증기 분율 값을 채워 넣어주는 것이 바로 Initialization입니다.

가운데에 해당 항목들이 뜰 텐데 Hybrid Initialization을 선택해주고, Initalize를 눌러줍니다.
Warning: convergence tolerance of 1.000000e-06 not reached
이런 경고문이 뜰 수 있는데 이는 Mesh가 충분히 잘게 쪼개지지 않아 발생하는 문제로 엄밀함의 문제이니 student 버전을 사용하는 우리는 가볍게 넘어가 줍시다.

이제 우리가 할 일은 거의 끝입니다. 컴퓨터에게 계산을 맡기고 우리는 잠시 놀면 됩니다.
Run Calculation을 클릭합니다.

가운데에 뜨는 항목 중 Number of Iterations에 500을 입력하고 아래 Calculate를 누릅시다.
500이든 5000이든 컴퓨터는 지정한 오차 이하로 내려가면 계산을 멈추므로 상관 없습니다.
이제 기다리면 계산이 끝났다는 메시지가 올 겁니다.

계산이 완료되면 여러분들이 원하던 결과들을 보러 가면 됩니다.
맨 아래 툴바의 Result 항목들을 이용하면 됩니다.
저는 가볍게 Cavitation이 잘 생성되었는지만 확인하고 글을 마치도록 하겠습니다.

Results에 Contours를 더블클릭하면 뜨는 창에

Options에 Filled를 체크하고 Contours of에 Phases와 Volume Fraction을 선택합니다.
아래 Surfaces에는 Sym을 고릅니다.
그러면, 물과 증기 중 물이 가지는 비율을 볼 수 있어 Cavitation이 심한 부분은 값이 낮게 나타납니다.
Save/Display를 하고, Close를 누른 뒤 오른쪽 화면을 살펴봅시다.

전체적으로 빨간(값이 높은) 반면에 중앙 NACA0015쪽에 파란 부분이 보입니다.
이는 NACA0015 근처에서 Cavitation이 활발하게 나타나고 있음을 의미합니다.
- 결론
이번 글에서는 공짜로 배포되는 ANSYS Student 버전을 활용하여, Geometry부터 Setup까지 Cavitation 시뮬레이션을 직접 구현해 보았습니다.
비록 연산 자원의 한계로 ANSYS Student를 전문적으로 사용하긴 어렵지만, NACA0015 주변의 상변화 메커니즘을 시각적으로 확인하기 정도에는 충분히 유용한 도구라는 것을 증명해 냈습니다.
만약 글쓴이가 공학적으로 치명적인 오개념을 전파하고 있거나 이상한 말을 하고 있는 것 같다면 25-040@ksa.hs.kr로 연락 해주면 신속히 수정하겠습니다.
실제로 너무 자세히 이야기를 하려고 노력하다 보니 잘못 설명하거나 누락된 부분, 이상한 부분이 많을 수 있습니다.
다음 글은 아마도 인문 쪽 글로 돌아오겠습니다. 세팅 과정이 많아 다소 복잡하고 지루한 글이었을 텐데도 끝까지 읽어주셔서 진심으로 감사드립니다.
Comments ()