forked from libMesh/libmesh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
91 lines (60 loc) · 2.91 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
libMesh-specific configuration options
======================================
For generic installation instructions, refer also to the INSTALL file.
Build Process
-------------
0. ./bootstrap
(optional, needed if you will modify the GNU autotools build system)
1. ./configure --prefix=/path/to/libmesh/install
2. make
3. make check
(optional, runs the example programs and unit tests when possible)
4. 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.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
Dependencies
============
Requirements
------------
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](http://libmesh.sourceforge.net/externalsoftware.php)
[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/52c0727babae956821cca66c19c68908 "githalytics.com")](http://githalytics.com/libMesh/libmesh)