Skip to main content
Glama
kimlnw

openfoam-mcp

by kimlnw

OpenFOAM MCP — CFD-копилот для любого MCP-клиента

openfoam-mcp — это сервер Model Context Protocol, который превращает ИИ-ассистента (Claude Desktop и любой другой MCP-клиент) в копилота по настройке и отладке OpenFOAM. Он создаёт готовые к запуску кейсы, безопасно редактирует словари, подбирает размер пристеночной сетки, вычисляет значения турбулентности на входе и читает логи решателя, чтобы сказать, сошёлся ли расчёт или развалился — всё это, не покидая чат.

Большинство инструментов написаны на чистом Python и не требуют установки OpenFOAM, поэтому работают в любом окружении. Немногие из них вызывают утилиты OpenFOAM (например, blockMesh, checkMesh), определяют окружение и корректно снижают функциональность при его отсутствии.

Чем это полезно

Настройка CFD-кейса — это скрупулёзное согласование деталей: правильные y+, совпадение граничных патчей между сеткой и каждым полем в 0/, консистентные поля турбулентности для выбранной модели, стабильное число Куранта и чтение простыней вывода невязок, чтобы понять, сошёлся ли расчёт. Этот сервер выполняет все это путём естественного языка.

Инструменты

Инструмент

Что делает

list_solvers

Выводит список шаблонов решателей для генерации кейса (simpleFoam, pimpleFoam, icoFoam).

flow_regime

Число Рейнольдса, заключение «ламинарный/турбулентный», рекомендация по модели турбулентности.

first_cell_height

Высота первой ячейки у стенки для целевого y+ (корреляция для плоской пластины).

y_plus_from_height

Обратная операция: прогнозируемый y+ по высоте ячейки, с предупреждением о режиме течения.

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

Задаёт или вставляет запись boundaryField патча в поле в 0/.

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 м/с охватывает хорду длиной 0,5 м. Какое это число Рейнольдса и какая высота первого слоя нужна для y+ = 1?»

  • «Создай стационарный кейс simpleFoam в ./duct для скорости 12 м/с и проверь его.»

  • «Установи endTime в 3000 в файле ./duct/system/controlDict.»

  • «Прочитай ./duct/log.simpleFoam и скажи, сошёлся ли расчёт.»

Шаблоны решателей

Шаблон

Физика

Типичное применение

simpleFoam

Стационарный несжимаемый RANS (k-ω SST)

Каналы, внешняя аэродинамика, стационарные течения

pimpleFoam

Нестационарный несжимаемый RANS (k-ω SST)

Отрывные вихри, нестационарные потоки

icoFoam

Нестационарный несжимаемый ламинарный flow

Учебные задачи с малым 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