Deterministic CI Behavior

The package supports real SU2 solver calls, but default tests and examples do not require SU2 binaries. They use deterministic filesystem-backed flows so CI can validate payload contracts consistently.

Why this exists

  • Local development stays lightweight.

  • CI remains deterministic.

  • Tool schemas and wiring can be validated without native solver dependencies.

What remains optional

  • run_su2_solver and generate_deformed_mesh will report structured missing-binary errors when solver executables are unavailable.

  • generate_mesh_from_step requires the gmsh CLI.

Utilities for discovering SU2 binaries on the host system.

class su2_mcp.su2_availability.SU2BinaryStatus(name, path)[source]

Presence information for a single SU2 binary.

property available

Return True when the binary was found on PATH.

su2_mcp.su2_availability.check_su2_installation(candidates=None)[source]

Report SU2 availability on the host system.

Parameters:

candidates – Optional list of binary names to probe; defaults to common SU2 executables.

Returns:

Mapping describing which binaries are present and whether any are missing. The installed flag is true when at least one binary is present.

Examples

>>> summary = check_su2_installation(["SU2_CFD"])
>>> set(summary.keys()) == {"installed", "binaries", "missing"}
True
su2_mcp.su2_availability.discover_su2_binaries(candidates=None)[source]

Locate SU2 binaries on the current PATH.

Parameters:

candidates – Optional iterable of binary names to probe. Defaults to common SU2 executables.

Returns:

Ordered list of binary status objects preserving the requested order.

Examples

>>> discover_su2_binaries(["SU2_CFD"])
[SU2BinaryStatus(name='SU2_CFD', path=...)]
su2_mcp.su2_availability.summarize_binaries(statuses)[source]

Convert binary statuses into a serializable summary.