Skip to main content
Glama
kimlnw

openfoam-mcp

by kimlnw

OpenFOAM MCP — あらゆる MCP クライアントのための CFD コパイロット

openfoam-mcp は Model Context Protocol サーバーで、AI アシスタント(Claude Desktop や、その他のあらゆる MCP クライアント)を OpenFOAM のセットアップとデバッグのコパイロットに変えます。実行可能なケースを スキャフォールドし、辞書を安全に編集し、壁面近傍メッシュの寸法を決め、入口の乱流値を 計算し、ソルバーログを読んで、収束したのか発散したのかを教えてくれます。 しかも、チャットから離れる必要はありません。

ほとんどのツールは純粋な Python であり、OpenFOAM のインストールを必要としないため、 どこでも動作します。OpenFOAM ユーティリティ(例: blockMesh、checkMesh)を呼び出す 一部のツールは、環境を検出し、OpenFOAM が存在しない場合はグレースフニルに不機能を発現します。

なぜ役に立つのか

CFD ケースのセットアップは、厄介な簿記作業です。正しい y+、メッシュとすべての 0/ フィールドの間で境界パッチを一致させること、選択したモデルに整合する乱流フィー ルドの用意、安定したクーラン数、そして収束したかどうかを確認する大量の残差出力を読 むこと。このサーバーは、その一連の簿記作業を自然言語で行ってくれます。

ツール

Tool

Description

list_solvers

スキャフォールド可能なソルバーテンプレート(simpleFoam、pimpleFoam、icoFoam)を一覧表示します。

flow_regime

レイノルズ数、層流/乱流の判定、乱流モデルの推奨を返します。

first_cell_height

目標 y+ に対する第一セル高さ(平板の相関式)。

y_plus_from_height

逆算: セル高さから予測される +isu+ と流れの状態についての警告を返します。

inlet_turbulence

乱れ込む強度と長さスケールから入口の k、epsilon、omega、nut を計算。

time_step_from_cfl

目標クーラン数のための非定常時間スステップを計算します。

scaffold_case

ソルバー用の実行可能なケースツリー(system/、constant/、0/)を書き出します。

read_dict

辞書ファイルまたは単一のエントリを読み込みます(foamDictionary 経由)。

set_dict_entry

辞書キーワードを設定します ( foamDictionary でネストに対応、テキストフォールバック付き)。

set_boundary_condition

0/ フィールド中のパッチの boundaryField. エントリを設定/挿入します。

check_case

ケースを検証: ファイル存在、乱流フィールドの補忍、パッチ一致ます。

analyze_residuals

ソルバログを解析→フィールドごとの残差減少量と収束判定を出します。

run_openfoam_command

ホワイトリストに登録された OpenFOAM ユーティリティーをケース内で実行します(インストールされている場合)。

インストールと実行

このサーバーはコンソールエントリーポイントを持つ PyPI パッケージとして公開されている ため、通常のゼロインストールランナーは uvx です:

uvx openfoam-mcp

または、環境にインストールする場合:

pip install openfoam-mcp
openfoam-mcp

Claude Desktop の設定

これを claude_desktop_config.json に追加します (macOS: ~/Library/Application Support/Claude/、 Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "openfoam": {
      "command": "uvx",
      "args": ["openfoam-mcp"]
    }
  }
}

Claude Desktop を再起動すると、OpenFOAM ツールがツールメニューに表示されます。

プロンプトの例

  • 「30 m/s の空気は 0.5 m のコード翼弦に沿って流れています。レイノルズ数はいくつですか? y+ = 1 に必要な第一セル高セル高さはいくつですか?」

  • 「./duct に 12 m/s の定常時 simpleFoam ケースをスキャフォールドして確認してください。」

  • 「./duct/system/controlDict の endTime を 3000 に設定してください。」

  • 「./duct/log.simpleFoam を読んで、収束したかどうか教えてください。」

ソルバー templates

テンプレート

物理

典型的な用途

simpleFoam

定常時非圧縮性 RANS(k-ω SST)

ダクト、外部空気、一般的な非定常流れ

pimpleFoam

非定常時非圧縮性 RANS(k-ω SST)

渦巣放置、非定常流れ

icoFoam

非定常時非圧縮性 層流

低 Re の教育用ケース(キャビティ、低 Re パイプ)

テンプレートは OpenFOAM Foundation v9–v12 / ESI v2306+ のチュートリアルスタイル (transportProperties + momentumTransport)に従っています。生成されるボックス メッシュには inlet、outlet、walls、frontAndBack というパッチがあります。

開発

pip install -e ".[dev]"
pytest

ライセンス

MIT © 2026 Tanawat Manokieng

Related MCP Connectors