MATLAB

The cea.matlab module provides a MATLAB-friendly compatibility layer on top of the Python package. It is intended for use through MATLAB's Python bridge, not as a separate compiled MATLAB extension.

Install the Python package first, point MATLAB at that Python interpreter with pyenv(...), then import both cea and cea.matlab. Import cea for enums/constants such as cea.TP and for cea.units, then import cea.matlab for the solve entry points.

These wrappers return flat namespace-style results composed of Python scalars, NumPy arrays, and dictionaries so MATLAB can consume the outputs without working directly with the compiled solution classes. Example scripts live in source/bind/matlab/samples/.

Available wrappers:

cea.matlab.eq_solve(eq_type: int, reactants: list[str], T: float | None = None, H: float | None = None, S: float | None = None, U: float | None = None, P: float | None = None, V: float | None = None, T_reac: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, fuel_amounts: Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, oxid_amounts: Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, moles: bool = False, of_ratio: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, phi: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, r_eq: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, pct_fuel: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, only: list[str] | None = None, omit: list[str] | None = None, insert: list[str] | None = None, trace: float | None = None, transport: bool = False, ions: bool = False) SimpleNamespace[source]

Solve an equilibrium problem and return a flat MATLAB-friendly namespace.

cea.matlab.rocket_solve(reactants: list[str], pc: SupportsFloat, pi_p: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, subar: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, supar: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, T_reac: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, fuel_amounts: Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, oxid_amounts: Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, moles: bool = False, of_ratio: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, phi: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, r_eq: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, pct_fuel: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, only: list[str] | None = None, omit: list[str] | None = None, insert: list[str] | None = None, trace: float | None = None, transport: bool = False, ions: bool = False, iac: bool = True, n_frz: int | None = None, hc: SupportsFloat | None = None, tc: SupportsFloat | None = None, mdot: SupportsFloat | None = None, ac_at: SupportsFloat | None = None, tc_est: SupportsFloat | None = None) SimpleNamespace[source]

Solve a rocket-performance problem and return flat array/scalar outputs.

cea.matlab.shock_solve(reactants: list[str], T0: SupportsFloat, p0: SupportsFloat, *, u1: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, Mach1: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, fuel_amounts: Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, oxid_amounts: Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, moles: bool = False, of_ratio: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, phi: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, r_eq: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, pct_fuel: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, only: list[str] | None = None, omit: list[str] | None = None, insert: list[str] | None = None, trace: float | None = None, transport: bool = False, ions: bool = False, reflected: bool = True, incident_frozen: bool = False, reflected_frozen: bool = False) SimpleNamespace[source]

Solve an incident/reflected shock problem with MATLAB-friendly outputs.

cea.matlab.detonation_solve(reactants: list[str], T1: SupportsFloat, p1: SupportsFloat, *, fuel_amounts: Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, oxid_amounts: Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, moles: bool = False, of_ratio: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, phi: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, r_eq: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, pct_fuel: SupportsFloat | Sequence[SupportsFloat] | ndarray[tuple[Any, ...], dtype[float64]] | None = None, only: list[str] | None = None, omit: list[str] | None = None, insert: list[str] | None = None, trace: float | None = None, transport: bool = False, ions: bool = False, frozen: bool = False) SimpleNamespace[source]

Solve a detonation problem and return a flat MATLAB-friendly namespace.