Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

libMesh github repository

License

NotificationsYou must be signed in to change notification settings

libMesh/libmesh

Repository files navigation

Thedevel branch extended testing status:Build status

Pull Requests merge new code intodevel; themaster git branch isautomatically synced to each newdevel commit that passes extendedtesting.

Releases are created from branches frommaster, and also receivebackported bugfix commits from subsequent development.

IMPORTANT -- READ BEFORE BUILDING!

Do not download a GitHub-generated "ZIP" archive. These do not contain the required submodules, and therefore cannot be used to build libmesh. Use only git clones or "release" tarballs when following these instructions.

Build Instructions

The default is to build libmesh "out of tree," i.e. within a separatebuild directory, rather than in the source tree itself. This simplifies the process of having multiple, independently-configured builds.

  1. cd to location of libmesh clone or extracted release tarball.
  2. (Only if using a git clone)git submodule update --init --recursive
  3. mkdir build
  4. cd build
  5. ../configure --help | less (optional, shows useful configuration options)
  6. ../configure --prefix=/some/final/install/directory
  7. make
  8. make check (optional, runs the example programs and unit tests when possible)
  9. make install

Afterward,make uninstall is available if needed to remove the filescopied to/some/final/install/directory (and its subdirectories) bymake install.

METHODS

libMesh supports the notion of multiple methods, that is, configurationsettings used to build the library. The major methods supported bythe library are:

  • opt: Fully optimized mode, with little to no error checking. No debuggingsymbols are included in the resulting library. Aggressive optimizationflags are used.

  • dbg: Full debugging mode. All useful compiler warnings are enabled,as well as robust internal state checking. The asymptotic complexityof some algorithms is allowed to be worse than the design spec states.

  • devel: Use high levels of compiler optimization, but also enable internalstate checking. Debugging symbols are included, but the resultingcode is not always easy to navigate in a debugger because ofcompiler 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,METHODS="opt dbg devel" is the default.

Multiple Builds with Different Compilers

libMesh fully supports out-of-tree builds, and users are encouraged to use thisfeature when needed to support multiple compilers. For example, on a systemwhere multiple compilers are available and accessible via modules, you can sharethe same source tree by creating a subdirectory for each compiler build:

export LIBMESH_SRC=/local/libmeshcd $LIBMESH_SRCmodule load gcc/9.3cd $LIBMESH_SRC && mkdir gcc-9.3 && cd gcc-9.3 && ../configure && make && make installmodule swap gcc/9.3 intel/19.0cd $LIBMESH_SRC && mkdir intel-19.0 && cd intel-19.0 && ../configure && make && make install

Dependencies

libMesh has no required dependencies other than a C++ compiler whichfully supports the C++11 standard. To run on distributed memoryplatforms in parallel, you will also need MPI.

Optional Packages

We support alarge number ofoptional packages. Some of these are distributed inside thecontrib directoryand compiled directly with libMesh; these are usually enabled bydefault. Others can be used via third-party installations; a thirdparty package like PETSc typically is only enabled if a correspondingenvironment variable (such as$PETSC_DIR and$PETSC_ARCH) orcommand line option is used atconfigure time.

License

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


[8]ページ先頭

©2009-2025 Movatter.jp