Skip to content

Installation

Dan Lee-Odinson edited this page Jun 15, 2026 · 1 revision

Installation

Requirements

  • Python 3.10 or newer (the repository CI tests 3.10, 3.11, and 3.12)
  • git
  • numpy (installed automatically with the core package)
  • pytest and matplotlib for the full test suite and figure-generation scripts; install the dev extra
  • Optional: CoolProp 7.2.0 for the ammonia coolant screen (orbital_thermal.fluids); installed through either the fluids or dev extra
  • Optional: Node.js only for semantically regenerating the frozen McCalip JavaScript oracle. The repository CI pins Node 24.14.0 for exact CI reproduction.

You do not need a LaTeX toolchain to run the package or simulations. LaTeX is needed only to rebuild the papers.

1. Get the code

Latest development version

git clone https://github.com/dan-lee-odinson/orbital-thermal-bounds.git
cd orbital-thermal-bounds

Exact published v1.0.0 release

Use this path when reproducing the archived paper-three calculations:

git clone --branch v1.0.0 --depth 1 \
  https://github.com/dan-lee-odinson/orbital-thermal-bounds.git
cd orbital-thermal-bounds

If you already cloned the repository:

git fetch --tags
git checkout v1.0.0

2. Create and activate a virtual environment

macOS / Linux

python3 -m venv .venv
source .venv/bin/activate

Windows PowerShell

py -m venv .venv
.venv\Scripts\Activate.ps1

Windows Command Prompt

py -m venv .venv
.venv\Scripts\activate.bat

3. Install

Core package only:

python -m pip install --upgrade pip
python -m pip install -e .

Core package plus the optional ammonia/CoolProp coolant screen:

python -m pip install -e ".[fluids]"

Full development/reproduction environment, including pytest, matplotlib, and CoolProp:

python -m pip install -e ".[dev]"

Use .[dev] if you plan to run the complete test suite, verification workflow, or plotting scripts.

4. Verify the install

python -c "from importlib.metadata import version; print(version('orbital-thermal'))"
# Expected for the published release: 1.0.0

python -c "from orbital_thermal import equilibrium; print(round(equilibrium.equilibrium_temperature(Q=120e3, area=220.0, emissivity=0.91, T_sink=220.0), 1))"
# Expected: 337.1

If both lines print as shown, the package is installed correctly. The import name is orbital_thermal (underscore), while the distribution name is orbital-thermal (hyphen).

GitHub Codespaces

The repository dev container uses Python 3.12 and automatically installs the dev extra. After the Codespace finishes building, you can normally begin with the verification commands directly.

If package metadata becomes stale after pulling or switching versions, refresh the editable install:

python -m pip install -e ".[dev]"

Updating the moving main branch

git checkout main
git pull
python -m pip install -e ".[dev]"

A checkout pinned to v1.0.0 should remain pinned when reproducing the published results.