Skip to content

Workflows

Workflows are Arxyne's deterministic execution path — the EXECUTE verb. They derive the solver domains a product needs, dispatch simulations, evaluate KPI results against design-intent targets, and write results back to USD. No LLM participates.

Running a Workflow

arxyne --run-workflow --product ahmed

This single command:

  1. Derives the product's solver domains from its capabilities (aero always; dynamics if the product has it)
  2. Auto-starts the MCP Gateway if needed, then dispatches each domain's solver (OpenFOAM/XLB for aero, Chrono for dynamics)
  3. Evaluates gates: each KPI result against the matching design-intent target (± tolerance)
  4. Writes results and gate status to the USD prototype layer
  5. Prints a Rich table summarising results

Domain Routing

Domains map to solver dispatch:

Domain Solver Gate Type
aero OpenFOAM / XLB / DoMINO Dynamic
dynamics Project Chrono Dynamic
thermal Planned
structural Planned

Dynamic gates require solver dispatch and compare the result to a design-intent target.

Output

After execution, you see a Rich table with KPI results, targets, and gate status per domain.

Domain-Specific Execution

For finer control, run individual domains directly:

# Aero only
arxyne --product ahmed --aero

# Aero with AI surrogate instead of CFD
arxyne --product drivaer-notchback --aero --solver domino

# Dynamics only (all four ISO manoeuvres)
arxyne --product drivaer-notchback --dynamics

Gate Evaluation

Gates are evaluated by spec-driven logic in arxyne_platform/core/product_gates.py:

  • The solver returns KPI values (e.g. cd=0.278)
  • The gate reads the matching design-intent target and its tolerance from design_intent.usda
  • Gate operators:
    • Aero KPIs (cd, cl, cm_pitch) use within: |result − target| ≤ tolerance → PASS
    • Dynamics (lateral_g) uses gte: result ≥ target → PASS
    • Other dynamics KPIs use lte: result ≤ target → PASS
  • Missing tolerance for a within gate → NO_TOL (gate cannot evaluate)
  • Zero gates evaluated → INCONCLUSIVE (never reported as pass)

What Gets Written to USD

After workflow execution:

  • Prototype layer receives simulation results (currentCd, currentLateralG, etc.) and status
  • Provenance recorded per-attribute (arxyne:provenance:*) and per-run (arxyne:run:*)
  • Results history appended as pipe-delimited index entries
  • Results sublayer persisted under simulation_runs/

Why No LLM

Deterministic execution is a prerequisite for certification. Same inputs → same outputs → same audit trail. An LLM in the loop would break reproducibility.

See Also