QUEENS (Quantification of Uncertain Effects in Engineering Systems) is a Python framework for solver-independent multi-query analyses of large-scale computational models.
π QUEENS offers a large collection of cutting-edge algorithms for deterministic and probabilistic analyses such as:
- parameter studies and identification
- sensitivity analysis
- surrogate modeling
- uncertainty quantification
- Bayesian inverse analysis
π§ββοΈ QUEENS provides a modular architecture for:
- parallel queries of large-scale computational models
- robust data, resource, and error management
- easy switching between analysis types
- smooth scaling from laptop to HPC cluster
π Website: queens-py.org
π Documentation: queens-py.github.io/queens
Prerequisites: A Unix system with Python 3.12 or newer. For development, use Pixi.
Clone the QUEENS repository and install it from the source checkout with:
pip install .We recommend using some form of environment management instead of installing into your system Python. For more details, see the QUEENS documentation.
Optional runtime extras can be installed with:
pip install ".[tutorials]"
pip install ".[fourc]"
pip install ".[all]"We recommend a modern project-based workflow based on Pixi especially for development. After cloning the repository, installing with Pixi is as easy as:
pixi install
pixi run install-editableThe default Pixi environment contains the core QUEENS dependencies. Use all for runtime
extras without development tools. For named Pixi environments, run
pixi run -e <environment> install-editable once for each environment you want to use.
For development, we recommend using Pixi together with the dev environment.
dev contains the full contributor setup, including development tools, tutorials, and the
4C interface dependencies.
Clone the repository and install with:
pixi install --environment dev
pixi run -e dev install-editableUseful development commands then look like:
pixi run -e dev pytest
pixi run -e dev pre-commit run --all-filesLet's consider a parallelized Monte Carlo simulation of the Ishigami function:
from queens.distributions import Beta, Normal, Uniform
from queens.drivers import Function
from queens.global_settings import GlobalSettings
from queens.iterators import MonteCarlo
from queens.main import run_iterator
from queens.models import Simulation
from queens.parameters import Parameters
from queens.schedulers import Local
if __name__ == "__main__":
# Set up the global settings
global_settings = GlobalSettings(experiment_name="monte_carlo_uq", output_dir=".")
with global_settings:
# Set up the uncertain parameters
x1 = Uniform(lower_bound=-3.14, upper_bound=3.14)
x2 = Normal(mean=0.0, covariance=1.0)
x3 = Beta(lower_bound=-3.14, upper_bound=3.14, a=2.0, b=5.0)
parameters = Parameters(x1=x1, x2=x2, x3=x3)
# Set up the model
driver = Function(parameters=parameters, function="ishigami90")
scheduler = Local(
experiment_name=global_settings.experiment_name, num_jobs=2, num_procs=4
)
model = Simulation(scheduler=scheduler, driver=driver)
# Set up the algorithm
iterator = MonteCarlo(
model=model,
parameters=parameters,
global_settings=global_settings,
seed=42,
num_samples=1000,
result_description={"write_results": True, "plot_results": True},
)
# Start QUEENS run
run_iterator(iterator, global_settings=global_settings)QUEENS is powered by a community of contributors.
Join usβyour contributions are welcome! Please follow our contributing guidelines and code of conduct.
If you use QUEENS in your work, please cite the relevant method papers and the following article
@misc{queens,
title={QUEENS: An Open-Source Python Framework for Solver-Independent Analyses of Large-Scale Computational Models},
author={Jonas Biehler and Jonas Nitzler and Sebastian Brandstaeter and Maximilian Dinkel and Volker Gravemeier and Lea J. Haeusel and Gil Robalo Rei and Harald Willmann and Barbara Wirthl and Wolfgang A. Wall},
year={2025},
eprint={2508.16316},
archivePrefix={arXiv},
primaryClass={cs.CE},
url={https://arxiv.org/abs/2508.16316},
note = {Jonas Biehler, Jonas Nitzler, and Sebastian Brandstaeter contributed equally.}
}Licensed under GNU LGPL-3.0 (or later). See LICENSE.
