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()for equilibrium problemscea.matlab.rocket_solve()for rocket performance problemscea.matlab.shock_solve()for incident/reflected shock problemscea.matlab.detonation_solve()for detonation problems
- 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.