Skip to content

Feat/matlab#79

Merged
markleader merged 5 commits into
nasa:mainfrom
markleader:feat/matlab
May 12, 2026
Merged

Feat/matlab#79
markleader merged 5 commits into
nasa:mainfrom
markleader:feat/matlab

Conversation

@markleader
Copy link
Copy Markdown
Contributor

Summary

Replace the old experimental MATLAB binding path with a documented MATLAB-via-Python compatibility layer built on the supported Python package namespace.

This branch adds a pure-Python cea.matlab module with MATLAB-oriented wrapper entry points for equilibrium, rocket, shock, and detonation solves; restores the deprecated root cea.eq_solve shim to returning the compiled EqSolution; updates typing/tests/sample scripts; and refreshes docs so MATLAB users are pointed at the supported cea / cea.matlab workflow instead of a separate extension.

Changes

  • Add new cea.matlab compatibility module and stub file:
    • eq_solve
    • rocket_solve
    • shock_solve
    • detonation_solve
  • Flatten wrapper outputs into MATLAB-friendly namespace objects of scalars, arrays, and dicts instead of exposing compiled solution objects directly.
  • Keep cea.eq_solve as a deprecated compatibility shim, but forward it back to the compiled binding so it returns the legacy object-based EqSolution.
  • Add Python regression coverage for the MATLAB wrapper surface and parity checks against the compiled solvers.
  • Add/update MATLAB sample scripts for equilibrium, rocket, shock, and detonation cases.
  • Remove the legacy experimental source/bind/matlab/ceam.pyx path from the supported workflow.
  • Update changelog and docs to clarify that MATLAB support is provided through the Python package namespace, and that CEA_ENABLE_BIND_MATLAB is a compatibility/build option rather than a separate supported MATLAB extension.

Testing

Compatibility / Numerical behavior

  • No expected changes to numerical results

Notes:

  • This branch is intended to preserve solver behavior by reusing the existing compiled Python bindings rather than changing the Fortran/C numerical core.
  • User-visible API behavior does change for MATLAB-facing workflows: the supported entry point is now cea.matlab.*, and the wrapper returns flattened namespace-style results.
  • The deprecated root-level cea.eq_solve shim now returns the legacy compiled EqSolution object again instead of the MATLAB-style flattened wrapper result.

@markleader markleader merged commit f8210c9 into nasa:main May 12, 2026
23 checks passed
@markleader markleader deleted the feat/matlab branch May 12, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant