일반적으로 Fluent에서는 별도의 API(Application Programming Interface)를 제공하지 않았기 때문에 자동화를 위해서 일련의 작업을 Journal Script로 작성하고 Batch 모드로 구동하였다. 이러한 경우 Fluent가 실행되고 나면 외부 프로그램을 통해 Fluent를 제어하지 못했다. PyFluent는 이러한 단점을 해결할 수 있는 인터페이스이며, 다양한 시스템과 확장하여 사용할 수 있게 한다. 또한 머신러닝 또는 딥러닝과 같은 인공지능과도 결합이 가능하다. 이번 호에서는 PyFluent 라이브러리 설치 방법과 구동 방법을 소개하고자 한다.
Python은 Local 환경에 설치된 경로에서 사용해도 되지만 버전에 따라 사용할 수 있는 라이브러리가 다를 수 있고, 많은 라이브러리로 인해 충돌 문제가 발생할 수 있다. 따라서 Python 설치 후 개발 프로젝트 마다 Python 가상 환경을 따로 만들어 작업하는 것을 추천한다. 첫번째로 가상환경 만들기에 앞서 Python 설치를 먼저 진행하겠으며, 아래 링크에서 다운로드 받아 설치한다. 본 매거진에서는 Python3.9 버전을 설치하도록 하겠다.
설치 후 환경 변수에 Python 실행 경로를 환경 변수에 등록해 준다. “시스템 속성→고급→환경 변수”에서 아래 [그림 1]과 같이 “사용자에 대한 사용자 변수” 목록의 Path를 선택 후 “편집”을 선택한다.
[그림 1] 환경 변수 편집
[그림 2] 환경 변수 편집
목록에 [그림 2]와 같이 Python 경로가 설정된 것을 확인할 수 있다.
아래 경로와 같이 만들고자 하는 Python버전의 경로를 입력한다.
■ C:\Users\sunggil\AppData\Local\Programs\Python\Python39\Scripts\
■ C:\Users\sunggil\AppData\Local\Programs\Python\Python39\
만약 다른 버전의 가상환경을 만들고자 할 경우 해당 버전을 설치하고, ~\Python39\~ 부분만 변경하면 실행 버전이 변경된다.
(예: Python3.11? ~\Python311\~)
다음으로 설정된 Python버전의 가상환경을 만드는 방법을 알아보도록 하겠다. [그림 3]과 같이 “Win+R”키를 이용하여 CMD(명령 프롬프트)창을 실행한다.
[그림 3] CMD 실행
먼저 설치된 버전이 잘 실행되는지 확인하기 위해 CMD창에 [그림 4]와 같이 “python”을 입력하면 3.9버전이 잘 실행되는 것을 확인할 수 있다.
[그림 4] Python 실행
버전을 확인했으면 “Ctrl+z”키 또는 exit()를 입력하여 Python 모드를 종료한다.
■ C:\> python
■ >>> exit()
다음으로 가상환경을 만들기에 앞서 Pip(Pip Installs Packages)를 업그레이드한다. Pip는 Python 패키지를 설치하고 관리하는 패키지 매니저이다. 업그레이드가 완료되면 [그림 5]와 같이 가상환경 생성 모듈(virtualenv)을 설치한다.
■ C:\> python -m pip install --upgrade pip
■ C:\> pip install virtualenv
그림 5. Pip(Pip Installs Packages) 업그레이드
준비가 완료되었다면 가상 환경을 [그림 6]와 같이 생성한다. 미리 작업 디렉토리를 만들고 그 경로 안에 가상환경을 생성한다.
■ C:\> virtualenv C:\My_virtualenv\my_venv39
그림 6. Python 가상환경 생성
가상환경 생성이 끝나면 아래 [그림 7]과 같이 가상환경 Python 폴더가 생성되고, [그림 8]와 같이 Scripts폴더 안에는 python.exe 실행 파일과 activate.bat, deactivate.bat 파일을 확인할 수 있다.
[그림 7] 생성된 Python 가상환경 폴더
python.exe은 가상환경의 Python 실행 파일에 해당하며, activate.bat, deactivate.bat는 가상환경 모드를 출입하는 실행 파일이다.
[그림 8] Scripts폴더 내부 파일 목록
[그림 9]와 같이 activate.bat를 입력하면 생성된 가상환경 모드로 변경된 것을 확인할 수 있다. 가상환경 모드로 변환 시 경로 앞에 (my_venv39)와 같이 사용자가 생성한 가상환경 이름이 붙게 된다.
[그림 9] 가상환경 모드 전환
가상환경 모드로 전환 후 [그림 10]과 같이 “Python”을 입력하면 Python이 실행되고 해당 버전을 확인할 수 있다.
[그림 10] 가상환경에서 Python 실행
다시 CMD 모드로 전환 후 가상환경에 아래와 같이 PyFluent 라이브러리를 설치한다. 3가지의 라이브러리를 설치하게 되며 각각 core, parametric, visualization은 fluent solver, meshing, 후처리 작업에 필요한 API 라이브러리에 해당한다.
■ (my_venv39) C:\ ~ \Scripts> pip install ansys-fluent-core
■ (my_venv39) C:\ ~ \Scripts> pip install ansys-fluent-parametric
■ (my_venv39) C:\ ~ \Scripts> pip install ansys-fluent-visualization
라이브러리까지 설치가 되었다면 PyFluent가 잘 작동하는지 확인해 보도록 한다. [그림 11]과 같이 간단한 소스 코드를 입력하여 구동을 확인한다.
■ import ansys.fluent.core as pyfluent
■ session = pyfluent.launch_fluent(product_version="22.2.0")
■ session.check_health()
Product_version=”22.2.0”은 Fluent2022R2 설치 버전에 해당한다. 2023R1일 경우 ”23.1.0”으로 사용한다.
[그림 11] PyFluent를 이용한 Fluent 실행
정상적인 상태라면 [그림 12]와 같이 작업 관리자에서 Fluent가 구동 중인 것을 확인할 수 있다.
[그림 12] 작업 관리자 Fluent구동 확인
지금까지 python 가상환경을 만들어 PyFluent 라이브리를 설치하여 구동까지 확인해 보았다. CMD 창에서 Python 코딩을 직접하기에는 불편하기 때문에 코딩을 조금 더 쉽게 할 수 있는 통합 개발 환경(IDE: Integrated Development Environment)을 설치한다. 통합개발 환경은 jupyter, Visual Studio Code, PyCham, Notepad++ 등 선택권이 다양한 환경이 가능하다.
이번호에서는 설치가 편한 Jupyter lab 개발 환경 설정을 알아보도록 하겠다. [그림 13]와 같이 아래 명령어로 가상환경에서 가능하지만 매번 가상환경에 접속하여 CMD창에서 실행하야 한다는 단점이 있다.
■ (my_venv39) C:\ ~ \Scripts> pip install jupyter jupyterlab nbconvert
[그림 13] Jupyter lab 설치
[그림 14]와 같이 “jupyter lab”를 CMD 창에 입력하여 구동한다.
[그림 14] Jupyter lab 구동
Jupyter lab을 실행하면 설정된 브라우저에서 localhost로 구동된다. [그림 15]와 같이 구동된 디렉토리에 해석에 사용할 Fluent case 파일을 복사하고, “Python 3”을 눌러 실행한다.
[그림 15] Jupyter lab 화면
Visual Studio Code, PyCham, Notepad++ 등 다른 개발환경을 사용한다면 Interpreter 실행 위치를 가상환경 파일 내부의 “~\Scripts\python.exe”로 동일한 사용이 가능하다.
■ C:\My_virtualenv\my_venv39\Scripts\python.exe
실행코드 예시
PyFluent 구동환경 설정이 모두 완료되었다면, [그림16]과 같이 소스코드를 자유롭게 작성하여 해석 과정(Fluent meshing, Solving, Post-processing)을 Python를 통해 제어할 수 있다. 또한 PyAnsys 홈페이지(fluentdocs.pyansys.com)에서는 API Reference, User Guide, Example 등 자료를 제공하고 있으니 참고할 수 있다.
?
[그림 16] Source Code
이번 호에서는 PyFluent 을 설치하고 가상환경을 구성하는 방법에 대해 살펴보았다. 정리하면 PyFluent는 python환경에서 Fluent를 제어할 수 있는 API 라이브러리를 의미하며, 머신러닝 또는 딥러닝 등 외부 패키지를 활용하여 사용자가 요구하는 다양한 해석 프로세스를 구축할 수 있어 다양하게 활용될 것으로 생각된다.