Concept reference

How Solver Packs Work

The shared contract that lets OpenFOAM, SU2, and CalculiX plug into the same agent, validation, and reporting pipeline.

1 min read

The pack contract

Each solver pack exposes a typed resource pack with solver id, display name, file kinds, primary config files, parsers, validators, command candidates, capability decisions, citations, and benchmark labels. Shipped adapters live under packages/solver-openfoam, packages/solver-su2, and packages/solver-ccx.

Capability decisions

A capability is a typed predicate over the CaseSpec — "compressible flow," "wall-bounded turbulence," "transient with body forces." When a capability fires, the adapter selects the right solver application (simpleFoam, pimpleFoam, rhoSimpleFoam, etc.) and the right templates. Capabilities are inspectable and explained in the report.

Materialization

The adapter receives a CaseSpec, evaluates capabilities, and returns a build plan with workspace file patches. Generated artifacts include a solver-native setup plus a JSON SolverConfigurationRecord (ADR 0014) that records decisions, references, and citations.

Pre-flight validators

Before launching, the pack runs typed validators: mesh-quality gates (ADR 0012), BC completeness, control-scheme compatibility, function-object syntax, marker-tag consistency. A failed validator is a typed MaterializationDiagnostic, not a chat error message.

Live parsers

Each pack ships parsers that turn solver-native log output into typed records — residuals, iteration counts, function-object scalars, warnings. The live-monitor sidecar uses these to drive the UI and the agent's diagnostic context.

Resources before guessing

Solver packs are paired with local resources and skills: agent_resources/openfoam, agent_resources/su2, agent_resources/ccx, plus the skills/openfoam / skills/su2 / skills/ccx guides. When a solver requirement is unfamiliar, retrieve the resource — never invent a one-off shortcut in the prompt.

Was this page helpful?

Edit this page on GitHub

Search docs

Find pages across the SimPilot docs.