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 アシスタントとの統合が可能です。

仕組み

  1. 入力: シミュレーションを説明するテキストプロンプトまたは既存の OpenFOAM ケースディレクトリ/ZIP ファイルを提供します。
  2. 計画: Architect エージェントが要件を分析し、必要な手順(メッシュ作成、ファイル生成など)を決定します。
  3. 生成: Input Writer が OpenFOAM ファイルを作成し、RAG を使用してチュートリアルのデータベースから関連する例を取得します。
  4. 実行: Runner がシミュレーションを実行します(ローカルまたは HPC 上の Slurm 経由)。
  5. レビューと修正: Reviewer がエラーをチェックします。エラーが見つかった場合、Input Writer が必要なファイルを書き直し、シミュレーションを再実行します。このループは成功するか、再試行制限に達するまで続きます。
  6. 可視化(オプション): 要求された場合、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 のみに基づいています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト