프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. Google로 로그인하면 리뷰를 쓸 수 있어요.프로토타입 · 30분마다 업데이트
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

DualSPHysics MCP

제작자: vegetableno1버전 0.2.0i★ 1i내 컴퓨터에서 실행
레지스트리 이름io.github.vegetableno1/dualsphysics

설치 방법

What it does

Agent toolchain for the DualSPHysics SPH solver: case creation, runs, post-processing, validation.

  • Connects 내 컴퓨터에서 실행
  • Account or key No key needed
  • Category 기타

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

검사 3/3 통과 · 내 컴퓨터에서 실행돼요 · ✓ 명령 확인 2026년 11월 14일

먼저: 어떤 AI를 쓰시나요?

쓰는 앱을 고르면 아래에 단계가 나옵니다.

Claude에 연결할 수 있지만 먼저 준비가 필요해요

먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요

  1. Python (uv) 설치

    한 번만 하면 Python (uv)가 필요한 모든 서버에 쓸 수 있어요

    Python (uv) 다운로드 페이지 열기 ↗

  2. 컴퓨터용 Claude 앱 설정 파일 열기

    SettingsDeveloperEdit Config

  3. 이 설정을 붙여 넣고 저장

    {
      "mcpServers": {
        "dualsphysics": {
          "command": "uvx",
          "args": [
            "dualsphysics-mcp"
          ]
        }
      }
    }
  4. Claude를 끄고 다시 열기

  5. 해 보기

    DualSPHysics MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ Claude가 DualSPHysics MCP을 쓰고 있다고 하거나 답에 DualSPHysics MCP 도구 이름이 나오면 연결된 거예요

추가 설정 6개 (입력하지 않아도 사용 가능)

위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.

  • DSPH_GENCASE Path to the GenCase_linux64 executable (auto-discovered if unset)
  • DSPH_SOLVER Path to the DualSPHysics CPU solver executable (auto-discovered if unset)
  • DSPH_PARTVTK Path to the PartVTK_linux64 executable (auto-discovered if unset)
  • DSPH_MEASURETOOL Path to the MeasureTool_linux64 executable (auto-discovered if unset)
  • DSPH_JOBS_DIR Directory for simulation job outputs (defaults to ./jobs)
  • DSPH_OMP_THREADS OpenMP threads for the CPU solver (defaults to CPU count)

설명은 아직 영어 원문입니다.

메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

ChatGPT는 아직 DualSPHysics MCP에 연결할 수 없어요

DualSPHysics MCP는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요

대신 이렇게 할 수 있어요

A · DualSPHysics MCP에 연결되는 앱 쓰기

  • 먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
  • 먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)
  • 먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)
  • 먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)

B · 기타에서 ChatGPT에 연결되는 다른 서버

같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요

Claude Code에 연결할 수 있지만 먼저 준비가 필요해요

먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)

  1. Python (uv) 설치

    한 번만 하면 Python (uv)가 필요한 모든 서버에 쓸 수 있어요

    Python (uv) 다운로드 페이지 열기 ↗

  2. 터미널 열기

    Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기

  3. 이 명령을 붙여 넣고 Enter

    claude mcp add --scope user dualsphysics -- uvx dualsphysics-mcp
  4. Claude Code에서 /mcp 입력

    DualSPHysics MCP이 목록에 있고 연결됨으로 보이면 돼요

  5. 해 보기

    DualSPHysics MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ Claude Code가 DualSPHysics MCP을 쓰고 있다고 하거나 답에 DualSPHysics MCP 도구 이름이 나오면 연결된 거예요

추가 설정 6개 (입력하지 않아도 사용 가능)

위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.

  • DSPH_GENCASE Path to the GenCase_linux64 executable (auto-discovered if unset)
  • DSPH_SOLVER Path to the DualSPHysics CPU solver executable (auto-discovered if unset)
  • DSPH_PARTVTK Path to the PartVTK_linux64 executable (auto-discovered if unset)
  • DSPH_MEASURETOOL Path to the MeasureTool_linux64 executable (auto-discovered if unset)
  • DSPH_JOBS_DIR Directory for simulation job outputs (defaults to ./jobs)
  • DSPH_OMP_THREADS OpenMP threads for the CPU solver (defaults to CPU count)

설명은 아직 영어 원문입니다.

메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

Cursor에 연결할 수 있지만 먼저 준비가 필요해요

먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)

  1. Python (uv) 설치

    한 번만 하면 Python (uv)가 필요한 모든 서버에 쓸 수 있어요

    Python (uv) 다운로드 페이지 열기 ↗

  2. 이 버튼으로 Cursor 열기

    Cursor에서 열기

    Cursor가 설치를 확인하면 Install을 누르세요

  3. Cursor에서 AI 채팅을 Agent 모드로 열기

  4. 해 보기

    DualSPHysics MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ Cursor가 DualSPHysics MCP을 쓰고 있다고 하거나 답에 DualSPHysics MCP 도구 이름이 나오면 연결된 거예요

추가 설정 6개 (입력하지 않아도 사용 가능)

위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.

  • DSPH_GENCASE Path to the GenCase_linux64 executable (auto-discovered if unset)
  • DSPH_SOLVER Path to the DualSPHysics CPU solver executable (auto-discovered if unset)
  • DSPH_PARTVTK Path to the PartVTK_linux64 executable (auto-discovered if unset)
  • DSPH_MEASURETOOL Path to the MeasureTool_linux64 executable (auto-discovered if unset)
  • DSPH_JOBS_DIR Directory for simulation job outputs (defaults to ./jobs)
  • DSPH_OMP_THREADS OpenMP threads for the CPU solver (defaults to CPU count)

설명은 아직 영어 원문입니다.

메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

VS Code에 연결할 수 있지만 먼저 준비가 필요해요

먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)

  1. Python (uv) 설치

    한 번만 하면 Python (uv)가 필요한 모든 서버에 쓸 수 있어요

    Python (uv) 다운로드 페이지 열기 ↗

  2. 이 버튼으로 VS Code 열기

    VS Code에서 열기

    VS Code가 설치를 확인하면 Install을 누르세요

  3. VS Code에서 AI 채팅을 Agent 모드로 열기

  4. 해 보기

    DualSPHysics MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ VS Code가 DualSPHysics MCP을 쓰고 있다고 하거나 답에 DualSPHysics MCP 도구 이름이 나오면 연결된 거예요

추가 설정 6개 (입력하지 않아도 사용 가능)

위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.

  • DSPH_GENCASE Path to the GenCase_linux64 executable (auto-discovered if unset)
  • DSPH_SOLVER Path to the DualSPHysics CPU solver executable (auto-discovered if unset)
  • DSPH_PARTVTK Path to the PartVTK_linux64 executable (auto-discovered if unset)
  • DSPH_MEASURETOOL Path to the MeasureTool_linux64 executable (auto-discovered if unset)
  • DSPH_JOBS_DIR Directory for simulation job outputs (defaults to ./jobs)
  • DSPH_OMP_THREADS OpenMP threads for the CPU solver (defaults to CPU count)

설명은 아직 영어 원문입니다.

메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

Windsurf, Zed, Gemini CLI 같은 다른 MCP 앱은 추가 방법이 저마다 달라요. 앱 목록에서 확인하세요

MCP를 쓰는 앱 모두 보기 →

JSON 설정은 아래 “개발자용”에 있어요

막혔나요? DualSPHysics MCP을 쓰는 사람에게 물어보세요💬 토론 →
개발자용: 터미널 명령과 JSON 설정

컴퓨터에 설치

Claude Code

claude mcp add --scope user dualsphysics -- uvx dualsphysics-mcp

Claude Desktop (claude_desktop_config.json)

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

Cursor (~/.cursor/mcp.json)

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

VS Code (mcp.json)

{
  "servers": {
    "dualsphysics": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "dualsphysics-mcp"
      ]
    }
  }
}

직접 입력할 값

  • DSPH_GENCASE env
    Path to the GenCase_linux64 executable (auto-discovered if unset)
  • DSPH_SOLVER env
    Path to the DualSPHysics CPU solver executable (auto-discovered if unset)
  • DSPH_PARTVTK env
    Path to the PartVTK_linux64 executable (auto-discovered if unset)
  • DSPH_MEASURETOOL env
    Path to the MeasureTool_linux64 executable (auto-discovered if unset)
  • DSPH_JOBS_DIR env
    Directory for simulation job outputs (defaults to ./jobs)
  • DSPH_OMP_THREADS env
    OpenMP threads for the CPU solver (defaults to CPU count)

설명은 아직 영어 원문입니다.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

한눈에 보기

주간 다운로드i
27/주
연결 방식
내 컴퓨터에서 실행
최신 버전i
0.2.0
카테고리i
기타
레지스트리 공개i
2026년 9월 25일
코드 마지막 변경i
2026년 9월 26일
제작자
vegetableno1
패키지
pypi: dualsphysics-mcp
레지스트리 상태
활성

어떤 앱에서 쓸 수 있나요

이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.

내 컴퓨터에서 실행하는 앱

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

모든 앱과 장단점 →

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 14일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 vegetableno1 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • ✓ 통과

    계속 관리되고 있음

    코드 마지막 변경: 2개월 전

  • ✓ 통과

    라이선스 있음

    MIT 사용

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

토론

질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.

아직 글이 없어요. 처음으로 질문하거나 공유해 보세요.

이곳의 글은 사용자가 쓴 것으로, PopNx 팀의 글이 아니에요.

Google로 로그인하고 글쓰기

사용자 리뷰

아직 리뷰가 없어요

Google로 로그인하고 리뷰 쓰기

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 19795개 중 86%보다 스타가 많아요
  • 이 카테고리의 다른 서버 19795개 중 47%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 19795개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

DualSPHysics MCP, 안전한가요?

해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 2개월 전 변경됐고, 최신 버전(0.2.0)은 2개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: World Monitor, Claude Flow, Windmill

같은 카테고리의 다른 것

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 97 tools.

제작자: koala73널리 사용됨★ 9.1만오늘 업데이트

클라우드에서 실행✓ 서비스 회사 · worldmonitor.app

Claude Flow

AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.

제작자: ruvnet널리 사용됨↓ 1.4만/주★ 8.2만14개월 전 업데이트

내 컴퓨터에서 실행

Windmill

Run Windmill scripts and flows and manage jobs, schedules, resources and variables.

제작자: windmill-labs널리 사용됨★ 1.9만그저께 업데이트

클라우드에서 실행

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

DualSPHysics MCP

Language: English | 中文

Design, run, and verify DualSPHysics simulations from an AI agent — not just stare at them.

Ten Model Context Protocol tools wrap a local DualSPHysics SPH toolchain end to end: design cases as structured parameters (no hand-written XML, no solver needed to iterate), run them as background CPU jobs with progress, throughput and the solver's own ETA on tap, post-process into ParaView-ready VTK and CSV time series, and verify a 2D dam-break against the Koshizuka & Oka (1996) experiment with per-time errors and MAE / RMSE / max.

The server only launches the DualSPHysics command-line tools as subprocesses; DualSPHysics itself is not distributed here — it is free LGPL-2.1-or-later software, this package neither links nor redistributes its code or binaries, so the MIT licence carries no extra obligations. If you publish work using DualSPHysics, cite *Dominguez et al. (2022), Computational Particle Mechanics 9:867–895, doi:10.1007/s40571-021-00404-2.*

Tools

ToolWhat it does
check_environmentFind the four DualSPHysics tools on this machine: resolved path, provenance (env var, PATH, scan), version, solver feature flags; install hints when one is missing.
create_caseDescribe a 2D dam-break experiment in plain parameters and get a GenCase *_Def.xml back — no XML by hand, no solver needed. Returns a particle-count estimate for self-checking.
edit_caseChange parameters of an existing case (in place or to a save_path), re-validating the merged result.
describe_caseRead a case file back as a summary: dp, domain, column/tank/obstacle, timing, gauges, particle estimate.
gencaseDiscretise the case into Case.xml + Case.bi4 (plus preview VTK) and report the real particle counts.
run_caseStart the CPU solver in the background (jobs/ directory, Run.out, Part_*.bi4) and return a job_id immediately.
job_statusPoll a job: state, t/tmax, percent, the solver's Time/Sec throughput and projected finish, Run.out tail.
partvtkTurn Part_*.bi4 output into VTK particle files for ParaView; filters and variables pass through.
measure_toolProbe the solution at points and get CSV time series back (comma separator enforced for deterministic parsing).
validate_dambreakReconstruct the dam-tip surge front from the CSV and score it against the embedded Koshizuka & Oka (1996) series: per-time errors + MAE/RMSE/max.

Working chain: check_environment → create_case → describe_case → gencase → run_case → poll job_status → partvtk + measure_tool → validate_dambreak. Vocabulary, three guards and particle-estimate arithmetic: docs/case-generation.md.

Domain contracts

Behaviours of the wrapped tools that their -h output does not tell you:

  • Geometry outside the domain box is silently clipped by GenCase (exit 0, no warning) — create_case containment-checks every domain.
  • DualSPHysics CSVs default to semicolon separators; measure_tool forces commas unless the caller passes their own -csvsep.
  • MeasureTool points files reject leading # comment lines; MeasureTool errors print on stdout, not stderr.
  • Time/Sec in Run.out is wall-clock seconds per simulated second — not steps/second; the row tail is the solver's projected finish.
  • Run.out row formats differ between solver v5.0/v5.2 and v5.4; the parser handles both.

All fourteen contracts (formats, exit codes): docs/domain-contracts.md.

Install

Python 3.10+. The binaries are discovered from DSPH_* environment variables, PATH, or conventional install roots (/opt, /usr/local, ~/softwares, ~, cwd → /DualSPHysics*/bin/linux).

uv sync                 # or: python -m venv .venv && .venv/bin/pip install -e .

Getting the solver (the GitHub repository ships GenCase / PartVTK / MeasureTool prebuilt but not the solver):

  1. Full package from https://dual.sphysics.org/downloads/, or
  2. git clone https://github.com/DualSPHysics/DualSPHysics and build the CPU solver with make -f Makefile_cpu (g++ only, no CUDA needed), then copy the prebuilt tools from bin/linux/.

Configure through environment variables (no .env parsing; see .env.example — the same paths appear in examples/mcp_config.example.json):

DSPH_GENCASE=/home/<user>/softwares/DualSPHysics/bin/linux/GenCase_linux64

DSPH_SOLVER=/home/ /softwares/DualSPHysics/bin/linux/DualSPHysics5.4CPU_linux64 DSPH_PARTVTK=/home/ /softwares/DualSPHysics/bin/linux/PartVTK_linux64 DSPH_MEASURETOOL=/home/ /softwares/DualSPHysics/bin/linux/MeasureTool_linux64 DSPH_JOBS_DIR=/abs/path/to/jobs # optional, default ./jobs DSPH_OMP_THREADS=8 # optional, default all cores

Run

.venv/bin/python mcp_server.py    # hub-style entry point (stdio)

.venv/bin/dualsphysics-mcp # console script uvx dualsphysics-mcp # published on PyPI

Client registration templates: examples/mcp_config.example.json:

{ "mcpServers": { "dualsphysics-mcp": { "command": "uvx", "args": ["dualsphysics-mcp"] } } }
claude mcp add dualsphysics-mcp -- /abs/repo/path/.venv/bin/python /abs/repo/path/mcp_server.py

Example: 2D dam-break validation (Koshizuka & Oka 1996)

examples/dambreak_val2d/ holds the showcase: the official validation layout (dp = 0.01 m; 1 m × 2 m water column in a 4 m × 3 m tank; TimeMax = 2 s, TimeOut = 0.01 s; Verlet / Wendland / artificial viscosity 0.02 / Fourtakas DDT 0.1), regenerated by gen_dambreak_val2d.py (MIT), a surge-front MeasureTool points file (401 points along z = 0.03 m), and the digitised experiment.

Measured on this case (GenCase v5.4.354 / solver v5.4.355, 8 CPU threads, i5-10210U):

QuantityValue
Total particles21,001 (fluid 20,000 + bound 1,001)
Part files201 (Part_0000 … Part_0200)
Solver wall time (TimeMax = 2 s)≈ 14 min
Dam-tip MAE vs experiment (0.09–0.75 s)0.220 m (22.0 % of the column); RMSE 0.240 m
Dam-tip error, early collapse (t ≤ 0.2 s)within ±0.01–0.16 m
Wall impactfront pins at 3.98 m at t ≈ 0.67 s

The residual is SPH physics, not a measurement artefact: the front extraction tracks the solver's own SWL gauge (mean deviation 8 mm < 10 mm point spacing), and the experiment ends at X/a ≈ 4.13 — beyond the 4 m tank — so the comparison saturates after wall impact (validate_dambreak notes impact_time_s).

Agent transcript:

check_environment()                                  # all four tools found

gencase("examples/dambreak_val2d/CaseDambreakVal2D_Def.xml") -> particle_counts: total=21001 fluid=20000 bound=1001 run_case(" /CaseDambreakVal2D") # returns job_id job_status(job_id) # poll until percent=100 partvtk(job_id=job_id) # 201 fluid VTK files measure_tool(job_id=job_id, points_file="examples/dambreak_val2d/points_damtip.txt") validate_dambreak(csv_path=" ", points_file="examples/dambreak_val2d/points_damtip.txt")

validate_dambreak reports per-time errors plus MAE / RMSE / max in metres and as % of the 1 m column. The figure comes from examples/make_validation_figure.py; examples/render_dambreak.py turns the same run's Part_*.vtk into an MP4 animation (dev dependencies).

Tests

uv run pytest -q          # or: .venv/bin/python -m pytest

uv run ruff check .

The suite is green without any solver installed (discovery, command construction, log-fixture parsing, validation math, case generation, stdio end-to-end). Tests marked solver exercise a real local toolchain and auto-skip otherwise.

Contents

  • src/dualsphysics_mcp/ — MCP server, tool discovery and config, error codes, the ten tools in tools/.
  • examples/ — validation case, create_case_demo.py, figure + animation scripts, client template.
  • tests/ — pytest suite (solver tests auto-skip).

Repository rules

  • Committed: source, tests, examples, documentation, templates.
  • Not committed: DualSPHysics binaries or sources (LGPL work stays out), virtual environments, .env, job outputs and generated results.
  • Experiment values in examples/dambreak_val2d/ are digitised facts cited to Koshizuka & Oka (1996) as shipped with the DualSPHysics examples; the generated case XML and all code here are original MIT content — details in CONTRIBUTING.md.