PyFluentを使ってみた(その3)
By M.Sato
はじめに
新しいバージョンのAnsys Fluentでは、 PyFluentのバージョンも上がり、使い勝手も大きく向上しているようです。
今回は、PyFluentに関連する話題として、Ansys Python ManagerとPython Consoleについて記事を書いてみたいと思います。
Ansys python manager
概要
Fluent v2022 R2からは、PyFluentを使うことで pythonを介してfluentの操作ができるようになりました。
PyFluentは、pythonからfluent実行用のインターフェイス(api)を呼び出しているため、 PyFluentに対応した適切な pythonパッケージを予めインストールしておくことが必要です。
普段使っているコンピュータ環境にこれらの必要パッケージをインストールした場合、 他のpythonプログラムのパッケージ依存構成と干渉してしまい、 他のpythonプログラムが稼働できなくなってしまう可能性があります。
このような状況を避けるために、pythonでは仮想環境を使うことが推奨されています。
最新版の fluentでは、Ansys Python Managerというアプリケーションを使い、簡単に仮想環境の管理が行えるようになりました。
Ansys Python Managerは以下の機能を提供しています。
- Pythonのインストール
- 仮想環境の作成と管理
- 統合開発環境 (IDE) と開発環境の開始
今回、Ansys Python Managerを使用してみたのでその手順を記述しておきます。
👉 参考資料:Installation Part 1: Using the Ansys Python Manager - Lesson 2
Ansys python managerのインストール
以下からAnsys-Python-Manager-Setup-v0.2.7.exeをダウンロードします。
このインストーラプログラムを実行すると以下の操作画面が表示されます(windowsのスタート⇒すべてのアプリ一覧からも選択できます)。
画面上部に3個のタブで必要な設定を行います。
Install pythonタブ
-
Installation type:パッケージ管理方法を選択します。Standard Python と Condaforge Python の 2 つのオプションがあります。 Standard Python オプションは公式の Python ディストリビューションですが、 Condaforge Python オプションは Anaconda などの製品で使用されるコミュニティ主導のディストリビューションを使用します。
-
Python version:インストール対象のpythonのバージョンを選択します。 最新版のpythonを選択するとサードパーティ製ライブラリが未対応の可能性があるため、 2番目の最新版を推奨すると書かれています。
ここでは、standardタイプのpython 310を選択しました。 最後にinstallボタンを押してpythonのインストールを行います。
Create virtual environmentタブ
仮想環境を作成します。
仮想環境内でpythonを実行することでシステムにインストールされたpythonとは独立にpythonを実行することが可能になります。
- Python version:仮想環境で使用するpythonのバージョンを選択します。
- Virtual environment name:仮想環境の名前を指定します。 仮想環境は必要に応じて任意個数を作成できるのでそれらを区別できるように適当に名前を定義します。 ここでは、venv-ansysという名前にしました(任意名で可)。
最後にcreateボタンを押します。
Manage python environmentsタブ
-
Available virtual environments:仮想環境を選択します。 ここでは先の手順で作成したvenv-ansysという仮想環境を選択しました。
-
Launch option:python(仮想環境)の起動方法を選択します。 ここは実際にpythonを起動する際に指定します。インストール時には設定不要です。
-
General Package Management: pythonのデフォルト(標準)パッケージをインストールします。 List install packegesボタンでインストールされたパッケージを確認できます。 pythonのデフォルト(標準)パッケージをインストールします。 List install packegesボタンでインストールされたパッケージを確認できます。
-
PyAnsys Package Management: 必要な PyAnsysパッケージをインストールします。 デフォルトでは、全てのPyAnsysパッケージがインストールされるようになっていますが、 fluentしか使わないのであれば、以下の3個のパッケージを選択してインストールします (バーション番号にdevがついているのは開発版と思われます。安定版の最新のものを選ぶようにしてください)
➡️ PyFluent:v0.16.0
➡️ PyFluent-parametric:v0.7.1
➡️ PyFluent-visualization:v0.7.1
PyFluent環境の確認
以上のインストール作業が終了したら、仮想環境が正しく起動するかどうかを確認します。
まず、前記のManage Python EnvironmentタブのGlobal Package Managementから List Installed Packagesボタンを押すとパッケージ一覧が表示されます。
ここに fluent関連のパッケージが含まれていることを確認します
前記のManage Python EnvironmentタブのLaunchオプションからLaunch Consoleを選択すると、 以下に示すようなコマンドプロンプトが起動するはずです。
各コマンド行の先頭に”(venv-ansys)”と表示されていることを確認します。
また python -V(Vは大文字)と入力すると設定した pythonバージョンが表示されることを確認します。
PyFluentの実行
インストールが完了すれば、 前記のManage Python EnvironmentタブのLaunchオプションから 適当な起動オプションを選択することで仮想環境下のpythonを起動することができるようになります。
以下に consoleから起動した例を示します。
console以外にも jupyter lab、jupyter notebook、spyderなどを使うことができます。
Python Console
概要
Python Consoleは、fluent v2023 R1から実装された機能であり、 fluentのコンソールウインドウ(一般には、ここからTUIコマンド、schemeコマンドを入力する)をpythonの対話環境に置き換えます。
この機能を使うことでfluentの入力設定などをpythonのデータ構造を介して表示、設定することができます。
コンソールからはpython、あるいはPyFluentコマンドを入力します。 以下ではPython Consoleを使用した例を示します。
Python Consoleのインストール
既存のfluentの機能として組み込まれているため、インストールは不要です。
Fluentの起動方法
Fluentのランチャー画面から、以下を選択します。
-
Show Beta Launcher Optionをチェック
-
Python Console(Beta)をチェック
次に、fluentのGUI画面から、
File ⇒ 設定 ⇒ appearance ⇒ コンソールのオートコンプリートをチェックします。
Fluentの対話実行
上記の設定を行い、fluentを起動すると、コンソールウインドウのプロンプトが”>>>”になっていることが確認できます。
これは pythonを対話環境で実行する際のプロンプト記号であり、以後はコンソールから pythonコマンド、PyFluentコマンドを入力します。
なお、このコンソール部分の表示を除けば、従来のfluentのGUI画面となっておりGUIを介した設定を行うこともできます。
ここでは、ミキシングエルボーの例題の計算結果を使って説明します。対象にしたデータは以下からダウンロードできます。
コンソールからdir()と入力すると、使用可能な属性(関数、変数)を表示することができます。
出力項目にsolverという属性が含まれているので、さらに詳細と調べてみます。
コンソール内で solvという4文字だけを入力してタブキーを押します。
するとポップアップウインドウが開き、選択可能な候補が自動的に表示されます。
以下ではsolverworkflow_app、solverworkflow、solverの3候補が表示されているのがわかります。
ここではsolverを選択し、.(ピリオド)を入力してさらにタブキーを押します。
すると次の選択候補一覧が表示されました。このような手順で適当な項目を選ぶことができます
つぎに別の例としてsolver.setup.models.energyオブジェクト(属性)に関していくつかの出力を示します。
solver.setup.models.energy:オブジェクトのメモリアドレスを表示solver.setup.models.energy():この属性の中身を表示(呼出可能オブジェクト)dir(solver.setup.models.energy()):全ての属性を表示help(solver.setup.models.energy):このオブジェクトの内容説明を表示
ここで、solver.setup.models.energy()の出力を見ると辞書形式のデータとなっていることがわかります。
pprint(pretty printの意味)モジュールを使って表示を見やすくしてみます。
pprintモジュールをインポートし、pprint.pprint関数で出力してみます。
これで見やすくなりました。
同様の手順でsolver.setup.boundary_conditions内で定義されている属性を調べて見ると以下のようになっています。
データが階層構造になって定義されていることがわかります。
Python Consoleを使うことでfluentのパラメータ設定を系統的に把握することができることがわかります。
なお、GUI画面上で設定の変更を行った場合、コンソール側の出力にも自動的に反映されるようになっています。
逆に、コンソール側で設定(変更)した項目はGUI画面に反映されるようになっています。
結論
最新版のfluentでは、PyFluentを使用するための環境が整備されており、 従来のバージョンに比較して非常に使い勝手が向上しています。興味のある方は一度試してみてはいかがでしょうか?
弊社の解析事例
弊社の流体解析事例については、下記のリンクからご覧ください.