<h1>Interfacing <acronym>deal.II</acronym>
to <acronym>MUMPS</acronym></h1>
- <p> This documentation describes the compilation process
- of <acronym>MUMPS</acronym> and its dependencies starting with
- <acronym>BLACS</acronym> and following
- with <acronym>SCALAPACK</acronym>. The compilation
- of <acronym>MUMPS</acronym> and its dependencies is not as
- straightforward is we would like, however, it is not so
- difficult that we can not talk about it. That said, we cannot
+ <p>
+ <a href="http://mumps.enseeiht.fr" target="_top">MUMPS</a>
+ should be readily packaged by most Linux distributions.
+ Don't forget to install a develpment version of the library.
+ </p>
+
+ <p>
+ Below is a detailed instruction on how to compile and install
+ <acronym>MUMPS</acronym> and some of its dependencies by hand (for
+ the case you wish to do so).
+ </p>
+
+ <h2>How to compile and install <acronym>MUMPS</acronym> by hand</h2>
+
+ <p>
+ In the following, we describe the compilation process of
+ <acronym>MUMPS</acronym> and its dependencies starting
+ with <acronym>BLACS</acronym> and following with
+ <acronym>SCALAPACK</acronym>.
+
+ The compilation of <acronym>MUMPS</acronym> and its dependencies
+ is not as straightforward is we would like, however, it is not
+ so difficult that we can not talk about it. That said, we cannot
discuss every possible choice of parameters, because this is too
involved (and we would probably much rather be doing something
- productive with the interface and
- <acronym>deal.II</acronym>). Thus we give only a short
- walk-through mentioning the most important parameters needed for
- successful compliation and linking.
+ productive with the interface and <acronym>deal.II</acronym>). Thus
+ we give only a short walk-through mentioning the most important
+ parameters needed for successful compliation and linking.
</p>
-
+
<p> The compilation scheme involves repeating the same three steps
for each piece of software we want installed: (i) Selecting an
appropriate makefile; (ii) Modifying symbols in this makefile to
considered. Otherwise start right below with the installation
of <acronym>BLACS</acronym>.
</p>
-
+
- <h2>1. BLACS</h2>
+ <h3>1. BLACS</h3>
-
+
<p> The <a href="http://www.netlib.org/blacs/">BLACS</a> library
provides basic linear algebra routines together with a
communication model such that they can be used in parallel. The
the <acronym>BLACS</acronym> root directory and compile the
library with the command <code>make mpi</code>.
</p>
-
+
- <h2>2. SCALAPACK</h2>
+ <h3>2. SCALAPACK</h3>
-
+
<p> The <a href="http://www.netlib.org/scalapack">SCALAPACK</a>
library provides high-performance linear algebra routines for
distributed-memory message-passing <acronym>MIMD</acronym>
computers. The library can be found on the
official <a href="http://www.netlib.org/scalapack">SCALAPACK
webpage</a>. We require the
-- file <b><code>scalapack.tgz</code></b> version <= 1.8.0 only.
++ file <b><code>scalapack.tgz</code></b> version <= 1.8.0 only.
</p>
-
+
<p> After extracting the file and changing to the directory which
was created, we find a file
called <code>SLmake.inc.example</code> and rename it
the <acronym>SCALAPACK</acronym> library with the
command <code>make</code>.
</p>
-
+
- <h2>3. MUMPS</h2>
+ <h3>3. MUMPS</h3>
-
+
<p> Now we come to the main program for which we are doing all
this. We want to install the parallel sparse direct
solver <a href="http://graal.ens-lyon.fr/MUMPS">MUMPS</a>.
</li>
</ul>
</p>
-
+
- <p> Now we are done with configuration and can
+ <p>
+ Now we are done with configuration and can
compile <acronym>MUMPS</acronym> with the
command <code>make</code>.
</p>
-
+
- <h2>4. Linking with deal.II</h2>
+ <h2>Linking with deal.II</h2>
+
+ <p>
+ Support for <acronym>MUMPS</acronym> will be enabled automatically
+ if a system wide installation of <acronym>MUMPS</acronym>
+ can be found. To use a self compiled version, specify
+ <pre>
- <p> To be able to use the interface of <acronym>deal.II</acronym>
- for the MUMPS solver we then
- configure <acronym>deal.II</acronym> with the following
- additional options:
+ -DMUMPS_DIR=/path/to/mumps
+ </pre> on the command line when invoking <code>cmake</code>.
+ </p>
+
+ <p>
+ For <acronym>SCALAPACK</acronym> and <acronym>BLACS</acronym> a hint
+ - if necessary - may be given by
<pre>
- <code>
- --with-mumps=path/to/mumps
- --with-blacs=path/to/blacs
- --with-scalapack=path/to/scalapack
- </code>
+
+ -DSCALAPACK_DIR=/path/to/scalapack
+ -DBLACS_DIR=/path/to/blacs
</pre>
</p>
<p>
- Note: Throughout this description of the compilation process
- of <acronym>MUMPS</acronym> we have emphasised adding the
- compiler flag <code>-fPIC</code>. This is a definite requirement
- if we are compiling <acronym>deal.II</acronym> with shared
- libraries (which is the default). If we had preferred to be
- compiling <acronym>deal.II</acronym> without shared libraries,
- that's ok too; in that case we would do exactly the same thing
- as described above, but this time omitting
- the <code>-fPIC</code> flag from the scheme.
+ You can override the autodetection by manually specifying
+ <pre>
+ -DDEAL_II_WITH_MUMPS=OFF|ON
+ </pre>.
+ </p>
-
++
+ <p>
+ <b>Note:</b> Throughout this description of the compilation process
+ of <acronym>MUMPS</acronym> we have emphasised adding the compiler
+ flag <code>-fPIC</code>. This is a definite requirement if we
+ are compiling <acronym>deal.II</acronym> with shared libraries
+ (which is the default). If we had preferred to be compiling
+ <acronym>deal.II</acronym> without shared libraries, that's ok too;
+ in that case we would do exactly the same thing as described above,
+ but this time omitting the <code>-fPIC</code> flag from the scheme.
</p>
+ <hr>
+ <address>
+ <a href="mail.html">The deal.II Group</a>
+ $Date$
+ </address>
</body>
</html>