csml-rpi/Foam-Agent
Foam-Agent: A large language model-based multi-agent framework for automating computational fluid dynamics workflows. Published in Computer Methods in Applied Mechanics and Engineering (CMAME).
Foam-Agent: AI エージェントによる CFD シミュレーションの自動化
Foam-Agent は、オープンソースソフトウェア OpenFOAM を使用して CFD(計算流体力学)シミュレーションを実行するワークフロー全体を自動化するフレームワークです。シミュレーションしたい内容の簡単な説明(平易な英語)または既存のシミュレーションケースを受け取り、メッシュの作成、シミュレーションファイルの設定、シミュレーションの実行、エラーの自動修正、結果の可視化まで、すべてを処理します。
機能
- エンドツーエンドの自動化: 自然言語プロンプト(例:「これらの条件でチャネル内の流れをシミュレート」)または既存のケースフォルダから、Foam-Agent はシミュレーションを計画し、必要な OpenFOAM 設定ファイルをすべて生成し、ローカルまたはハイパフォーマンスコンピューティング(HPC)クラスターでシミュレーションを実行し、オプションで可視化を作成します。
- マルチエージェントシステム: 複数の AI エージェント(Architect、Input Writer、Runner、Reviewer)がパイプラインを通じて連携します。Reviewer がエラーを検出し、Input Writer が修正し、最大 25 回の自動修正を試みます。
- RAG 強化生成: OpenFOAM チュートリアルから構築された検索システム(FAISS)を使用して、関連する例を見つけ、正確な設定ファイルを生成します。
- 構成可能なサービス: コア機能は MCP(Model Context Protocol)ツールとして公開され、Claude Code、Cursor、Windsurf などの AI アシスタントとの統合が可能です。
仕組み
- 入力: シミュレーションを説明するテキストプロンプトまたは既存の OpenFOAM ケースディレクトリ/ZIP ファイルを提供します。
- 計画: Architect エージェントが要件を分析し、必要な手順(メッシュ作成、ファイル生成など)を決定します。
- 生成: Input Writer が OpenFOAM ファイルを作成し、RAG を使用してチュートリアルのデータベースから関連する例を取得します。
- 実行: Runner がシミュレーションを実行します(ローカルまたは HPC 上の Slurm 経由)。
- レビューと修正: Reviewer がエラーをチェックします。エラーが見つかった場合、Input Writer が必要なファイルを書き直し、シミュレーションを再実行します。このループは成功するか、再試行制限に達するまで続きます。
- 可視化(オプション): 要求された場合、PyVista が視覚出力を生成します。
クイックスタート
Docker の使用(推奨)
事前構築された Docker イメージをプルします(OpenFOAM v10 とすべての依存関係を含む):
docker run -it \
-e FOAMAGENT_MODEL_PROVIDER=openai \
-e FOAMAGENT_MODEL_VERSION=gpt-5-mini \
-e OPENAI_API_KEY=your-key-here \
-p 7860:7860 \
--name foamagent \
leoyue123/foamagent
次に、コンテナ内の user_requirement.txt というファイルにシミュレーションの説明を書き、以下を実行します:
python foambench_main.py --output ./output --prompt_path ./user_requirement.txt
既存のケースの実行
既存の OpenFOAM ケースディレクトリまたは ZIP ファイルを Foam-Agent に渡すこともできます。元のファイルを保持し、作業コピーを作成して実行します(またはプロンプトに従って変更します)。例:
python foambench_main.py --output ./output/imported-dam-break --case_path /path/to/damBreak
設定
Foam-Agent は環境変数で高度に構成可能です。主な設定は次のとおりです:
- LLM プロバイダー: OpenAI、Anthropic、Bedrock、Ollama、DeepSeek などから選択(デフォルト:
openai-codex)。 - モデル: 使用するモデルを指定(例:
gpt-5-mini、claude-sonnet-4-6)。 - 埋め込みプロバイダー/モデル: RAG 用。デフォルトは HuggingFace と
Qwen/Qwen3-Embedding-0.6B(ローカルで実行、API キー不要)。 - OpenFOAM ターゲット: Foundation v10(デフォルト)と ESI/OpenCFD v2006 から選択。
報告されたベンチマーク結果
このプロジェクトは、FoamBench ベンチマーク(110 のシミュレーションタスク)の結果を報告しています。Claude Opus 4.6 と 25 の修復ループを使用して、基本タスクと高度なタスクの両方で 100% の成功率を達成しました。ただし、これらはベンチマーク結果であり、任意のケースに対する保証ではありません。他のモデルはスコアが低くなっています(README の表を参照)。
高度な機能
- カスタムメッシュ: 外部 Gmsh
.mshファイルをサポート。 - MCP 統合:
plan、input_writer、run、review、apply_fixes、run_case、visualizationなどのツールを AI アシスタント用に公開。 - Claude Code スキル: 単一のコマンドで完全なパイプラインを調整する
/foamスキル。 - HPC 実行: Slurm クラスターにジョブを送信できますが、監視には制限があります(空の
squeueを完了として扱います)。 - Docker ビルド: ソースからイメージをビルドできます。
重要な注意事項
- README には、100% の成功率はベンチマーク結果であり、保証ではないと明記されています。
- エラー修正は 25 回の反復に制限されています。進展がない場合、ワークフローは失敗し、最後の試行のファイルを残します。
- シミュレーションが成功した後に可視化が失敗した場合、ワークフローは
partial_successを報告します。 - 既存のケースのインポートには特定のルールがあります(例:シンボリックリンクなし、コマンドホワイトリストなし)。
詳細な紹介については、deepwiki.com/csml-rpi/Foam-Agent を参照してください。
この説明はプロジェクトの README のみに基づいています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト