1. 개요
Ansys 社의 유동해석 프로그램. 홈페이지유한 체적법을 이용한 수치해석을 진행하는 프로그램으로 기본적인 유동해석 및 열유동, 다상유동, 자유표면, 화학반응 등을 이용한 유동해석이 가능하다. 병렬 연산을 지원하여 CPU 코어 수로 밀어 붙이는 연산 향상이나[1] Tesla 그래픽카드를 이용한 GPGPU 연산이 지원된다.
2. 역사
Ansys Fluent의 역사프로그램의 역사
- 1980년, 영국 셰필드 대학교 교수진이 전산유체역학 프로그램으로 개발했다.
- 2006년, Ansys 社가 Fluent 社를 인수했다. 그리고 1971년부터의 자사의 플랫폼 Ansys 프로그램 내에 포함시킨다.
- 2010년, 대한민국의 태성에스엔이 社가 대한민국 라이센스를 담당하기 시작한다.
- 2019년, 이전해의 Ansys v18을 마지막으로, Ansys 2019 R1, R2 식으로 이름을 붙여 간다. R은 개정판(Revision)이란 뜻이다.
기술 향상의 역사
- 2014년, NVIDIA를 통해 GPU를 CFD의 가속기로 사용하는 개념, Adjoint Solver 개념이 도입되었다.
- 2016년, 독일 슈투트가르트 대학교에서 172,000개 코어를 사용해 슈퍼컴퓨팅 세계 기록을 세웠다.
- 2017년, PUMA(메쉬를 동적으로 추적해 짜는 기술), SBES(기존 RANS-LES를 개선한 응력 혼합 난류 모델)을 선보였다.
- 2018년, 모자이크 메싱(RAM 사용량 줄임), 스프레이 모델(VOF에서 DPM으로 전환 구현)을 선보였다.
- 2019년, GEKO(generalized k-ω 난류 모델. 대규모 실험과 근사 가능)를 선보였다.
- 2020년, AIAD(대수적 계면 밀도, 오일러 다상전환 첫 적용, 원자로 해석), 리튬이온전지 모델을 선보였다.
- 2021년, 역으로 DPM에서 VOF로 전환을 구현했다. GEKO 계수를 AI(인공지능)으로 조정하는 것을 도입했다.
- 2022년, 다중 GPU 솔버를 도입했다. 오픈소스 라이브러리인 PyFluent를 개설했다.
3. 해석 과정
일반적으로 Geometry - Mesh - Setup - Result 의 과정을 거쳐서 열유체해석을 하게 된다. Fluent가 다른 상용프로그램과 비교해서 가지는 강점은 코드를 입력하여 커스터마이징된 수식을 손쉽게 계산과정에 사용할 수 있다는 것이다. Fluent를 제대로 활용하기 위해서는 UDF(User Defined Functions, 사용자 정의 함수) 사용법을 학습하는 것이 좋다.3.1. Geometry
플랫폼 창에서- Ansys Workbench 프로그램을 실행한다.
- Ansys Workbench 창 - 좌측 Toolbox - Component System - Geometry를 끌어다가, 우측 넓은 Project Schematic에 놓으면 모듈이 생긴다.
- Geometry 모듈을 우클릭한다.
- Import로 SolidWorks, CATIA, Inventor, Solid Edge 등에서 작업한 Geometry를 가져올 수 있다.[2]
- 기본 제공 툴인 SpaceClaim, DesignModeler으로 Geometry를 직접 만들 수 있다.[3]
툴 창에서
- (DesignModeler 기준) 창이 뜨면 우측 Graphics 창에선 Z-axis를 클릭하고, 좌측 Modeling - Tree Outline의 XYPlane을 클릭하면 XY평면을 보게 된다.
- 좌측 Stretching - Draw로 도형을 그릴 수 있고, Stretching - Dimension - General 상태에서 도형의 변을 클릭하면, 좌측 하단 Details View에서 길이 등의 특성을 설정할 수 있다.
- (표면화 작업 기준) 좌측 - Modeling에서 표면화 할 Sketch를 선택한 뒤, 상단메뉴 - Concept에서 Surfaces from sketches 등의 메뉴를 고른 뒤, Details view에서 Apply를 한 뒤, 상단버튼메뉴 - Generate(번개 아이콘)를 하면 끝이다. DesignModeler 창을 닫는다.
여담으로 (Mesh 단계에서도 가능하지만) Geometry 단계에서 Create Name을 사용하여 각 Group에 알맞은 이름을 부여하여(inlet, outlet, wall 등) Setup 과정에서 계산할 유동영역의 구속조건 이름들을 부여해주는 게 해석의 안정성을 위해 좋다.[4]
요약하자면, Geometry에서 하는 작업은 해석해야할 고체영역, 유체영역을 2D, 3D로 형상 제작을 하는 단계다. (CAD와 같은 개념이다)
3.2. Mesh
플랫폼 창에서- Ansys Workbench 창 - 좌측 Toolbox - Component System - Mesh를 끌어다가 Geometry 모듈의 '2 Geometry'에 놓는다. 자연히 옆에 선으로 연결된 Mesh 모듈이 생겨난다.
- '3 Mesh'를 우클릭, Edit을 누르면 Mesh 창이 켜진다.
툴 창에서
- Z축을 누르고, 좌측 상단 Tree에서 Surface body를 클릭한다. 좌측 하단 Detail에서 Fluid/Solid 여부를 결정한다.
- 좌측 상단 Tree에서 Mesh를 누르고, 좌측 하단 Details에서 Physics Preference를 CFD로 고른다. Solver Preference는 Fluent가 자동으로 골라진다.
- 상단 버튼메뉴의 Edge 버튼으로 모서리를 선택할 수도, body 버튼으로 몸체를 선택할 수도, ctrl 클릭으로 여럿을 선택할 수도 있다. 이들을 우클릭하여 Create Name Selection으로 이름을 정해줄 수 있다. 모서리(변)일 경우 좌측상단 Tree의 Coordinate System에 해당 이름들이 올라온다.
- 좌측상단 Tree의 Mesh를 우클릭하여 Insert - Sizing을 고른 뒤, 좌측하단 Details에서 Scope에서 Named Selection을 고른 뒤 특정 Named Selection을 고를 수 있다. Definition - Element size에서 격자의 크기(0.001m 등)를 설정하고, Quality - Smoothing의 정도를 고를 수 있다. 그 뒤 상단버튼 Generate(번개 아이콘)를 클릭하면 끝이다. Mesh 창을 닫는다.
격자구조가 성기면 정확한 계산이 이뤄지지 않고, 촘촘하면 계산시간이 기하급수로 길어지거나 에러가 발생할 수 있어 적절한 타협점을 찾아야 한다. 해석 형상에 따라 Volume Cell의 형상에 영향을 받는 경우도 있다. 이럴 때는 Cell의 갯수가 적어도 해석결과가 좋게 나오기도 하고, Cell의 갯수가 많아도 해석결과가 나쁘게 나오기도 한다. 따라서 본인이 해석을 진행하려는 형상에 적합한 cell 형상을 설정해야 한다.
요약하자면, Mesh에서 하는 작업은 계산을 할 단위구조인 격자를 만드는 단계다.
3.3. Setup
Setup 단계는 유동해석 시 해석 모델 및 물성치 설정을 해주는 것이다. Workbench에서 처음 Setup을 켤 때, 혹은 Fluent를 직접 실행할 때 2D, 3D 계산 여부 및 계산에 사용할 프로세스 개수, GPGPU 사용 여부 등을 설정할 수 있는데, 특히 Geometry의 2D, 3D 여부에 일치하도록 설정하여야 한다.General Setting에서 Steady state 와 Transient 모델 이 두가지로 구분할 수 있다. Steady state는 정상상태 해석, Transient는 실시간 변화를 추적하는 비정상상태 해석모델이다. 참고로 해석 모델의 기본 설정에 따라 Steady state와 Transient가 자동 설정된다.[5]
추가적으로 gravity를 고려하여 계산할 수 있는데 중력가속도 g(9.81m/s^2)가 y방향으로 작용하는 것을 고려하고 싶다면 y칸에 '-' 부호를 붙인 '-9.81' 로 적어줘야한다.
층류모델에서는 Laminar Model, 난류모델에서는 k - epsilon model 혹은 k - omega model 등이 주로 사용된다.[6]
추가적으로 viscous heating, standard Model, Realizable Model, buoyancy effect, Standard Wall Treatment, Enhanced Wall Treatment 등등 부력효과 및 점성 등을 고려하여 계산등을 세팅할 수 있다.
온도와 관련되어 있으면 Energy equation 체크를 눌러줘야한다. Multiphase에서 boiling 등 열전달이 포함되는 모델을 활성화할 때 자동으로 Energy equation도 활성화된다.
Cellzone Conditions, Boundary Conditions 등에서 경계 및 구속조건들을 부여할 수 있고, Residual 의 Monitor 배너에서 계산오차값을 설정할 수 있다.
Solution animations 배너에서는 자신이 원하는 면, Streamline 등을 보고 싶은 방향으로 설정하여 애니메이션을 프레임 단위로 HSF File, In Memory 등의 형식으로 녹화할 수 있다.[7]
Initialization 작업을 통해 초기화 작업을 해주어야 한다. Hybrid Initialization 작업을 선택하면 프로그램의 Default 된 값으로 계산이 수행되며, Standard Initialization 작업을 선택하면 사용자가 선택한 물성치들로 계산이 수행된다.
Patch 항목을 통해, initialization 이후 초기 조건을 설정할 수 있다.
요약하자면, Setup 단계는 해석 모델 설정과 물성치들을 입력하여 계산 조건을 설정하는 단계다.
3.4. Result
Result에서 하는 작업은 앞서 Setup에서 계산된 값들을 바탕으로 Fluent에서 혹은 CFD-POST라는 프로그램에서 Vector, Contour, Streamline, Particle Track, Surface 항목 등을 활용하여 압력층, 온도층, 속도구배, 압력구배, iso-surface 등을 볼 수 있다.추가적으로 Line 등의 선을 그려서 Chart를 이용하여 결과 데이터들을 Excel로 Export시켜 수치적으로 정량화하여 결과값들을 확인할 수 있다. Excel로 Export를 하게 되면 확장자명이 처음에 .csv로 되어있다. 이 확장자명은 Visual Basic 혹은 함수 등의 사용이 불가능하므로 .xlsx 혹은 .xls 등의 확장자명으로 바꿔서 작업하는 것이 효과적이다.
요약하자면, Result에서 하는 작업은 Setup에서 계산한 결과를 후처리하여 분석하는 단계다.
4. 기타
- 학생용 평가판이 제공된다. 학생용 평가판은 Mesh 수가 512,000 cell로 제한된다.
- 2010년부터 대한민국의 라이센스는 태성에스엔이가 담당한다.
[1] 참고로 HPC 기능은 다른 모듈로 들어가 있다.[2] 가져올 때 각 설계 프로그램별로 호환가능한 확장자 이름인지를 잘 확인해야 한다.[3] 2020 R1 우클릭 기준. ICEM CFD도 있다.[4] Geometry 단계에서 네이밍을 해주면 Mesh 단계에서 자동 셋업 되기 때문이다. Geometry 단계에서 네이밍하지 않으면 Mesh 단계와 Setup 단계에서 수작업으로 Mesh의 조건을 설정해주어야 한다. 물론 자동이라는 것도 완벽한 자동은 아니라서 네이밍 이후 Mesh 설정 조건에서 확인해주어야 하지만, 수작업보다는 편하니까.[5] 예를 들어 다상유동 VOF 모델을 설정하면 General setting이 Transient 모델이다.[6] 난류모델을 공부해보면 알겠지만, 모델이 굉장히 많다. 그런데 모델이 많다는 뜻은 케바케라는 뜻이다. 즉 본인이 해석하는 상황에 맞는 모델을 사용해야지, 그렇지 않으면 해석결과가 수렴은 할지언정 전혀 엉뚱한 값이 나올 수도 있다는 뜻이다.[7] 오랜시간의 애니메이션을 녹화할 때는 HSF File 형식으로 녹화하는 것이 효과적이다. In Memory 형식으로 녹화를 하게 되면 나중에 Playback을 해볼때 재생속도가 매우 빠른 애니메이션이 나오지만, RAM에 애니메이션 파일이 저장이 되는 방식이라서 RAM의 용량이 애니메이션의 용량보다 작을 경우. 애니메이션 녹화가 중간에 끊겨버릴 수도 있기 때문이다. 간단하게 PNG나 PPM과 같은 이미지 파일을 저장하게 할 수 있지만, HSF 형식보다 용량을 크게 잡아먹는다.