Required Dependencies

The required dependencies for MOOSE are as follows:

C and C++17 compiler

A compiler for building C and C++ code. The preferred compilers are:

  • GCC: tested on versions 9.2.1, 13.3.1, 14.3.0

  • Clang: tested on versions 19.1.7, 20.1.8

Fortran compiler

A compiler for building Fortran code. The preferred compiler is:

  • GCC: tested on versions 9.2.1, 13.3.1, 14.3.0

GNU Make

GNU Make is used to execute Makefile files for building applications.

MPI

Message Passing Interface (MPI) is a portable message-passing standard to execute applications in parallel. The preferred implementations are:

  • MPICH: tested on versions 4.3.2, 5.0.1

  • OpenMPI: tested on version 5.0.10

PETSc

PETSc, the Portable, Extensible Toolkit for Scientific Computation, is for the scalable (parallel) solution of scientific applications modeled by partial differential equations (PDEs).

The currently supported version is v3.25.1. Other versions are not guaranteed to be compatible.

Pre-built distributions of PETSc are found in the distributed development environments via Apptainer, Conda, and Docker. Thus, PETSc does not need to be built with these environments.

If not using pre-built development environments from Apptainer, Conda, and Docker, PETSc can be installed via the (scripts/update_and_rebuild_petsc.sh) script within the MOOSE repository. By default, this script will install PETSc to ./petsc/arch-moose relative to the MOOSE repository root.

libMesh

libMesh provides a framework for mesh definition and finite-element assembly.

The currently supported commit is aeab0b9. Other commits are not guaranteed to be compatible.

Pre-built distributions of libMesh are found in the distributed development environments via Apptainer, Conda, and Docker. Thus, libMesh does not need to be built with these environments.

If not using pre-built development environments from Apptainer, Conda, and Docker, PETSc can be installed via the (scripts/update_and_rebuild_libmesh.sh) script within the MOOSE repository. By default, this script will install libMesh to ./libmesh/installed relative to the MOOSE repository root. This script requires PETSc to also be installed, where the PETSc directory is defined by the environment variable $PETSC_DIR or is installed in ./petsc/arch-moose relative to the MOOSE repository root.

Python

Python versions 3.10 - 3.14 are supported.

WASP

WASP is used as the backend for parsing MOOSE input files and also provides the language server for interacting with MOOSE input.

The currently supported commit is 09054a2. Other commits are not guaranteed to be compatible.

Pre-built distributions of PETSc are found in the distributed development environments via Apptainer, Conda, and Docker. Thus, WASP does not need to be built with these environments.

If not using pre-built development environments from Apptainer, Conda, and Docker, WASP can be installed via the (scripts/update_and_rebuild_wasp.sh) script within the MOOSE repository. This script requires CMake for configuration. By default, this script will install WASP to ./framework/contrib/wasp/install relative to the MOOSE repository root.