Installation#

Requirements#

  • Python 3.10 to 3.12

  • A working pip installation

NOADS depends on GEMSEO-JAX (multidisciplinary optimization with automatic differentiation), JAX (numerical computing and auto-diff), and diffrax (differential equation solvers). These are installed automatically.

Install from PyPI#

pip install noads

Install from source (development)#

Clone the repository and install in editable mode:

git clone https://github.com/iancostalves/noads.git
cd noads
pip install -e ".[test,doc]"

This installs NOADS with all development dependencies (testing, documentation).

Verify the installation#

import noads
from noads.application.scenario_setup import single_scenario_setup
print("NOADS is ready.")

Optional: JAX GPU support#

By default, JAX runs on CPU. For GPU acceleration (useful for large-scale optimizations), follow the JAX installation guide to install the CUDA-enabled version of JAX before installing NOADS.

Development tools#

NOADS uses tox for automation. After installing from source:

# Run the test suite
tox -e test

# Build the documentation locally (or tox -e doc-serve for live reload)
tox -e doc

# Run the linter (ruff, via pre-commit)
tox -e check

Pre-commit hooks are configured for code quality. To activate them:

pip install pre-commit
pre-commit install