Summary

June 15, 2026 · View on GitHub

Multiresolution Adaptive Numerical Environment for Scientific Simulation

Summary

MADNESS provides a high-level environment for the solution of integral and differential equations in many dimensions using adaptive, fast methods with guaranteed precision based on multi-resolution analysis and novel separated representations.

There are three main components to MADNESS. At the lowest level is a new petascale parallel programming environment that increases programmer productivity and code performance/scalability while maintaining backward compatibility with current programming tools such as MPI and Global Arrays. The numerical capabilities built upon the parallel tools provide a high-level environment for composing and solving numerical problems in many (1-6+) dimensions.

Finally, built upon the numerical tools are new applications with initial focus upon chemistry, atomic and molecular physics, material science, and nuclear structure.

User documentation can be found on readthedocs.

Developer documentation generated by doxygen can be found here.

Python bindings

pymadness provides Python bindings for MADNESS, exposing Function<T,NDIM> (1D–6D), integral operators, and derivatives to Python. Build with cmake -DENABLE_PYTHON=ON.

Conda packages

Prebuilt binaries are published to the m-a-d-n-e-s-s Anaconda.org channel, so you can use MADNESS — including the Python bindings — without compiling anything locally:

# C++ libraries, headers, CMake config, applications, and data
conda install -c m-a-d-n-e-s-s madness

# Python bindings (pulls in the matching `madness` automatically)
conda install -c m-a-d-n-e-s-s pymadness
python -c "import pymadness; print('pymadness OK')"

OpenMPI-enabled variants are published as madness-mpi / pymadness-mpi.

A few things worth knowing:

  • conda install pymadness is enough on its own. The pymadness package declares an exact dependency on the matching madness build, so conda installs both together — there is no version skew, and the separate conda install madness is optional.
  • The packages are welded together. pymadness statically embeds the MADNESS C++ code it was built against, so it always runs conda's MADNESS, not a copy you compiled yourself.
  • To use a locally compiled MADNESS from Python, build the bindings locally with cmake -DENABLE_PYTHON=ON (see src/pymadness/README.md) rather than installing the conda pymadness package.

Both packages are produced by a single multi-output recipe in conda-recipe/ and built/published by the Conda Deploy GitHub Actions workflow.

Here's a video about MADNESS.

Projects using MADNESS

A non-exhaustive list of downstream projects built on MADNESS:

  • TiledArray (TA) — massively-parallel block-sparse tensor framework; consumes the MADNESS parallel runtime (MADWorld).
  • MPQC — Massively Parallel Quantum Chemistry program; uses the MRA layer (Function<T,NDIM>, operators) and MADWorld through TA.
  • Tequila — quantum-algorithm development framework; uses MADNESS for classical chemistry back-ends.
  • FrayedEnds — correlated electronic-structure code built on MADNESS MRA.

Funding

The developers gratefully acknowledge the support of:

  • The Department of Energy, Office of Science, Office of Basic Energy Sciences "Numerically-Exact Relativistic ManyBody Electronic Structure of Heavy Elements" grant DE-SC0022327 ((Valeev, Virginia Tech, PI).

  • The EPEXA project, currently supported by the National Science Foundation under grants 1931387 at Stony Brook University, 1931347 at Virginia Tech, and 1931384 at the University of Tennesse, Knoxville.

  • The TESSE project, supported by the National Science Foundation under grants 1450344 at Stony Brook University, 1450262 at Virginia Tech, and 1450300 at the University of Tennesse, Knoxville.

  • The Department of Energy, Office of Science, Office of Basic Energy Sciences and Office of Advanced Scientific Computing Research, under contract DE-AC05-00OR22725 with Oak Ridge National Laboratory.

  • The National Science Foundation under grant 0509410 to the University of Tennessee in collaboration with The Ohio State University (P. Sadayappan). The MADNESS parallel runtime and parallel tree-algorithms include concepts and software developed under this project.

  • The National Science Foundation under grant NSF OCI-0904972 to the University of Tennessee. The solid state physics and multiconfiguration SCF capabilities are being developed by this project.

  • The National Science Foundation under grant NSF CHE-0625598 to the University of Tennessee, in collaboration with UIUC/NCSA. Some of the multi-threading and preliminary GPGPU ports were developed by this project.

  • The Defense Advanced Research Projects Agency (DARPA) under subcontract from Argonne National Laboratory as part of the High-Productivity Computer Systems (HPCS) language evaluation project.