Installation Walkthrough: Win w/Intel oneAPI¶
This walkthrough provides an example of installation on Windows using the Intel oneAPI compilers. It was developed using oneAPI 2025.3.
The example includes installation of the core CEA application, as well as the C and Python bindings.
Prerequisites¶
This example assumes that the following tools are installed on your system:
Visual Studio 2019 or later.
Intel oneAPI Base Toolkit. As an alternate, Intel C++ Essentials should work but is untested.
Intel oneAPI HPC Toolkit. As an alternate, Intel Fortran Essentials should work but is untested.
Python ≥ 3.11 with
pipfor the optional binding, docs, and integration tests.Git, if you plan to clone the repository and build from source.
Doxygen, if you plan to generate a local copy of the documentation.
Preparations¶
Start an Intel oneAPI command prompt so that the compiler variables and paths are correctly setup. Create a directory to work in and cd into it:
mkdir \ceabuild
cd \ceabuild
Prepare the Python environment. For example, if using Anaconda:
conda create --name ceaEnv pip
conda activate ceaEnv
If using vanilla Python:
py -m venv ceaEnv
ceaEnv\Scripts\activate
Install Python packages:
pip install cython numpy setuptools pandas pytest
Clone the repository:
git clone https://github.com/nasa/cea.git
Build¶
The CEA software package is compiled and installed using CMake. The basic installation process is as follows:
cd cea
mkdir build-intel
cd build-intel
cmake -DCMAKE_INSTALL_PREFIX=<cea_install_dir> -DCEA_BUILD_TESTING=OFF -DCEA_ENABLE_BIND_PYTHON=ON --preset intel-ifx ..
cmake --build .
Test the Core CEA Executable¶
The cea/test directory tree contains example problems. It includes Python code that runs the examples, compares results to reference output, and reports whether or not the outputs match.
cd source
python ..\..\test\main_interface\test_main.py
The expected result is 13 out of 14 tests pass, with a small error on example 11:
Reference | Test | Rel. Error
--------------------------------------------------------------
F- : 2.5000e-04 | 2.6000e-04 | 4.000%
Different results could indicate that something is wrong with the build.
Create Documentation (Optional)¶
Prerequisites:
The Doxygen documentation generator.
The Sphinx Python package, installable with pip.
The Breathe Python package, installable with pip.
CEA html documentation can be created by installing the Python binding in edit mode, running Doxygen to create docs for the API, and then using Sphinx to create the html files. Change directories to the cea root (the directory that contains Doxyfile) and execute the following commands:
pip install -e .
doxygen
cd docs
sphinx-build -M html source .
Documentation will be generated in the docs/html directory.
Install CEA¶
To install CEA, run the following from the build-intel directory:
cmake --install .
This will install the cea executable, libcea library, C library,
and the default thermodynamic and transport property databases to the
cea_install_dir that was specified when configuring CMake. If you
elected to generate documentation it can be manually copied to the
installation directory.
After installing the executable, install and test the Python binding:
cd ..
pip install .
pytest source\bind\python\tests
All tests should run (no skips!) and pass.
After the Python interface is tested and confirmed to be working, you can make a wheel for further distribution. Runtime libraries are statically linked so the wheel will be self-contained (but it still needs numpy):
pip wheel --no-deps -w dist .
and the wheel will end up in the cea/dist directory. This directory can be moved into the CEA installation directory so that the wheel is convienently available for installation into new Python virtual environments using:
pip install <path-to-wheel>\<wheel-name>
Setup User Environment¶
After installation, all that is required to use the cea executable is to add the CEA install directory to the user's PATH environment variable, e.g.:
setx PATH=<cea_install_dir>\bin;%PATH%
Once properly configured, you should be able to run the provided sample problems from any working directory as follows:
cea <cea_source_dir>\samples\rp1311_examples.inp
Minimal Builds¶
If you want a Fortran-only build or a Fortran+C build without Python/Cython/NumPy dependencies, use the following options when configuring CMake:
Fortran-only (no C/Python bindings):
-DCEA_ENABLE_BIND_PYTHON=OFF -DCEA_ENABLE_BIND_C=OFF -DCEA_ENABLE_BIND_MATLAB=OFF
Fortran + C (no Python bindings):
-DCEA_ENABLE_BIND_PYTHON=OFF -DCEA_ENABLE_BIND_C=ON -DCEA_ENABLE_BIND_MATLAB=OFF
Intel oneAPI on Linux¶
This procedure can also be used to build CEA on Linux using Intel oneAPI. To build on Linux, add an additional option when configuring CMake:
-G "Unix Makefiles"