libMesh github repository
C C++ Makefile FORTRAN HTML Shell Other
Latest commit 3417f2a Oct 19, 2016 @jwpeterson jwpeterson committed on GitHub Merge pull request #1122 from snschune/transpose_nullspace_interface_…
…1121

Add an interface for passing the transpose nullspace to PETSc
Permalink
Failed to load latest commit information.
build-aux ran bootstrap Nov 11, 2015
contrib automake wants to add trailing whitespace to this file, so let it. Sep 26, 2016
doc Update citations. Oct 18, 2016
examples Merge pull request #1116 from roystgnr/more_complex_fixes Oct 6, 2016
include Merge pull request #1122 from snschune/transpose_nullspace_interface_… Oct 19, 2016
m4 Add --enable-petsc-required configure option. Aug 15, 2016
reference_elements Fix one_pyramid14.xda. Feb 4, 2016
src Merge pull request #1122 from snschune/transpose_nullspace_interface_… Oct 19, 2016
tests Unit test for set receive + non-blocking send Oct 14, 2016
.gitignore Ignore .pyc files. Oct 12, 2015
.mailmap Update .mailmap. Jul 14, 2016
AUTHORS test commit Jan 3, 2013
CITATION Adding a CITATION file. Jul 10, 2014
COPYING Everyone wants a README, so might as well add AUTHORS, COPYING, and I… Dec 11, 2012
ChangeLog point to GitHub commit log (#3) Dec 11, 2012
INSTALL ran bootstrap Nov 11, 2015
Makefile.am Replace find command in install-data-hook with shell wildcards. Apr 21, 2016
Makefile.in Re-bootstrap Oct 3, 2016
NEWS Update NEWS file for 0.9.5 -> 1.0.0 release. Jun 29, 2016
README So, bootstrap requires a README file to be there. Oops. Apr 17, 2014
README.md trivial change to test new JSC buildbot Oct 18, 2016
aclocal.m4 Run bootstrap. Jan 20, 2016
bootstrap build bundled automake-1.15 Nov 10, 2015
configure Run bootstrap. Aug 15, 2016
configure.ac Add configure test of C++11 noexcept. Jun 3, 2016

README.md

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 configure.ac)

  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

METHODS

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"

or

$ ./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
$ cd $LIBMESH_SRC
$ module load gcc/4.8
$ cd $LIBMESH_SRC && mkdir gcc-4.8 && cd gcc-4.8 && ../configure && make && make install
$ module swap gcc intel/16.0
$ cd $LIBMESH_SRC && mkdir intel-16.0 && cd intel-16.0 && ../configure && make && make install

Dependencies

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

License

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