Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
libMesh github repository
C C++ HTML Shell Perl FORTRAN Other

Require PETSc for remaining RB examples.

Because RBConstruction::train_reduced_basis checks LinearSolver::get_converged_reason(), we need to make sure we're using a solver package that supports that feature.

With Eigen, for example, this aborts:

[0] src/solvers/eigen_sparse_linear_solver.C, line 247, compiled Apr 30 2015 at 10:31:14
latest commit 07a1e83ffc
@benkirk benkirk authored
Failed to load latest commit information.
build-aux add new generated file
contrib Be more permissive with the derivatives of conditionals
doc Update citations.
examples Require PETSc for remaining RB examples.
include Merge pull request #555 from roystgnr/more_msg_macros
m4 Tetgen does not have an LGPL2-compatible license.
reference_elements Adding one_pyramid13.xda reference element file.
src For some reason, we were not calling PCSetFromOptions() when using Hy…
tests Delete trailing whitespace.
.gitignore Fix FParser Makefile
.mailmap Adding a .mailmap file to the top level of the repo
AUTHORS test commit
COPYING Everyone wants a README, so might as well add AUTHORS, COPYING, and I…
ChangeLog point to GitHub commit log (#3)
INSTALL Everyone wants a README, so might as well add AUTHORS, COPYING, and I… make dist support for GetPot unit test Updated Makefiles and bootstrapped after removing some unused reduced…
NEWS Final changelog update for 0.9.4
README So, bootstrap requires a README file to be there. Oops. removing old links
aclocal.m4 Ran bootstrap
bootstrap need automake 1.12 for properly bundling netcdf, it seems for Ubuntu-LTS
configure Ran bootstrap. Added new candidate example, systems_of_equations_ex8, for linear ela…

libMesh-specific configuration options

For generic installation instructions, refer also to the INSTALL file.

Build Process

  1. ./bootstrap (optional, needed only if you add/modify m4 files or

  2. ./configure --prefix=/path/to/libmesh/install

  3. make

  4. make check (optional, runs the example programs and unit tests when possible)

  5. make install


libMesh supports the notion of multiple methods - that is, compilation settings used to build the library. The major methods supported by the library are:

  • opt: Fully Optimized mode, with little to no error checking. No debugging symbols are included in the resulting library. Agressive optimization flags are used.

  • dbg: Full debugging mode - all useful compiler warnings are enabled, as well as robust internal state checking.

  • devel: Use high levels of compiler optimization, but also enable internal state checking. Debugging symbols are included, but the resulting code is not always easy to navigate in a debugger because of compiler optimizations.

  • pro: Optimized code path with compiler flags suitable for use with gprof.

  • oprof: Optimized code path with compiler flags suitable for use with oprofile.

To select a set of methods, you can pass them to configure in one of two ways:

$ ./configure --with-methods="opt dbg devel"


$ ./configure METHODS="devel oprof"

If unspecified, the three METHODS="opt dbg devel" are default.

Multiple Builds with Different Compilers

libMesh fully supports out-of-tree builds, and users are encouraged to use this feature when needed to support multiple compilers. For example, on a system where multiple compilers are availble and accessible via modules, you can share the same source tree by creating a subdirectory for each compiler build:

$ export LIBMESH_SRC=/local/libmesh
$ module load gcc/4.6
$ cd $LIBMESH_SRC && mkdir gcc-4.6 && cd gcc-4.6 && ../configure && make && make install
$ module swap gcc intel/12.1
$ cd $LIBMESH_SRC && mkdir intel-12.1 && cd intel-12.1 && ../configure && make && make install


libMesh has no required dependencies other than a reasonably modern C & C++ compiler. To run on distributed memory platforms in parallel you will also need MPI.

Optional Packages

We support a large number of optional packages, some of which are distributed inside the ./contrib directory and are compiler directly with libMesh, others can be used from third-party installation. For a list of supported packages and optional dependencies see here


LibMesh is open source software distributed under the LGPL license, version 2.1.

Something went wrong with that request. Please try again.