libmesh

libMesh github repository

Github星跟蹤圖

Build Instructions

The default is to build libmesh "out of tree," i.e. within a separate build 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 tarball.
  2. (Only if using a git clone) git submodule update --init
  3. mkdir build
  4. cd build
  5. ../configure --prefix=/path/to/libmesh/install
  6. make
  7. make check (optional, runs the example programs and unit tests when possible)
  8. make install

METHODS

libMesh supports the notion of multiple methods, that is, configuration
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. Aggressive optimization
    flags are used.

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

  • 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, 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 this
feature when needed to support multiple compilers. For example, on a system
where multiple compilers are available 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/6.3
cd $LIBMESH_SRC && mkdir gcc-6.3 && cd gcc-6.3 && ../configure && make && make install
module swap gcc/6.3 intel/17.0
cd $LIBMESH_SRC && mkdir intel-17.0 && cd intel-17.0 && ../configure && make && make install

Dependencies

libMesh has no required dependencies other than a C++ compiler which
fully supports the C++11 standard. 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 these are distributed inside the contrib directory
and compiled directly with libMesh, others can be used via third-party installations.

License

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

主要指標

概覽
名稱與所有者libMesh/libmesh
主編程語言C
編程語言Shell (語言數: 25)
平台
許可證GNU Lesser General Public License v2.1
所有者活动
創建於2012-09-18 02:12:18
推送於2025-07-16 19:07:50
最后一次提交2025-07-16 08:34:35
發布數93
最新版本名稱v1.8.1 (發布於 2025-04-14 11:01:50)
第一版名稱v0.9.0-rc1 (發布於 2013-02-02 16:37:52)
用户参与
星數704
關注者數60
派生數297
提交數26.4k
已啟用問題?
問題數864
打開的問題數283
拉請求數2973
打開的拉請求數32
關閉的拉請求數222
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?