GithubHelp home page GithubHelp logo

mfkiwl / libmesh Goto Github PK

View Code? Open in Web Editor NEW

This project forked from libmesh/libmesh

0.0 2.0 0.0 152.76 MB

libMesh github repository

Home Page: http://libmesh.github.io

License: GNU Lesser General Public License v2.1

Makefile 19.48% Shell 1.19% M4 1.14% Perl 0.47% C++ 36.23% C 37.02% Cap'n Proto 0.01% CMake 0.48% Fortran 2.22% Python 0.01% JavaScript 0.01% CSS 0.03% HTML 1.17% Pawn 0.20% PHP 0.01% Yacc 0.25% TeX 0.01% Prolog 0.01% Lex 0.04% Batchfile 0.04%

libmesh's Introduction

Branch status

The devel branch extended testing status: Build status

Pull Requests merge new code into devel; the master git branch is automatically synced to each new devel commit that passes extended testing.

Releases are created from branches from master, and also receive backported 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 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 release tarball.
  2. (Only if using a git clone) git submodule update --init --recursive
  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

Afterward, make uninstall is available if needed to remove the files copied to /path/to/libmesh/install by 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/9.3
cd $LIBMESH_SRC && mkdir gcc-9.3 && cd gcc-9.3 && ../configure && make && make install
module swap gcc/9.3 intel/19.0
cd $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 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's People

Contributors

aeslaughter avatar andrsd avatar balticpinguin avatar bboutkov avatar benkirk avatar cahaynes avatar dewenyushu avatar dkarpeyev avatar dknez avatar drwells avatar dschwen avatar fdkong avatar friedmud avatar hrittich avatar jasondhales avatar jwpeterson avatar lindsayad avatar loganharbour avatar mkhon avatar pbauman avatar permcody avatar pshriwise avatar reverendbedford avatar roystgnr avatar rwcarlsen avatar svallaghe avatar trumanellis avatar vikramvgarg avatar wr1 avatar yaqiwang avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.