From: maier ARPACK
- is a collection of Fortran77 subroutines designed to solve large
- scale eigenvalue problems.
+
+ ARPACK
+ is a collection of Fortran77 subroutines designed to solve large
+ scale eigenvalue problems.
+ ARPACK
+ should be readily packaged by most Linux distributions.
+ Don't forget to install a development version of the library.
+
+ Below is a short summary of instructions on how to compile and install
+ ARPACK by hand (for the case you wish to do so).
+
+ After you downloaded the Fortran version of ARPACK
+ and the patch, unzip the files you got. That will create
+ a directory named ARPACK. If you need
+ further instructions please read the README file or the
+ instructions.
+ We will explain here in a few steps what has to be done to be able
+ to compile
+ ARPACK.
Using and Installing ARPACK
- Installation of ARPACK
- After you downloaded the Fortran version of ARPACK
- and the patch unzip the files you got. That will create a directory
- named ARPACK. If you need further instructions
- please read the README file or the instructions. We will explain
- here in a few steps what has to be done to be able to compile
- ARPACK.
+ How to compile and install ARPACK by hand
+
+
-
ARmake.inc
+ Support for ARPACK will be + enabled automatically if a system wide installation of + ARPACK can be found. + To use a self compiled version, specify +
+ + -DARPACK_DIR=/path/to/arpack ++ when invoking
cmake
.
+
+ + You can override the autodetection by manually setting +
-. diff --git a/deal.II/doc/external-libs/hdf5.html b/deal.II/doc/external-libs/hdf5.html index e9e10181e4..61217db66a 100644 --- a/deal.II/doc/external-libs/hdf5.html +++ b/deal.II/doc/external-libs/hdf5.html @@ -4,7 +4,7 @@To be able to use the interface of deal.II - for ARPACK we then - configure deal.II with the following - additional option: -
--with-arpack=path/to/arpack
+ -DDEAL_II_WITH_ARPACK=OFF|ON +
- The Harwell Subroutine Library (HSL) is a collection of - Fortran77 files that implement various methods to solve linear - systems of equations, but also cover various other aspects of - mathematical algorithms. deal.II is presently - able to use two of the sparse direct solvers implemented in that - library: -
MA27: A modified Gauss elimination method for sparse - symmetric indefinite systems.
-MA47: A frontal elimination method for sparse symmetric - indefinite systems.
-SparseDirectMA27
and SparseDirectMA47
- (see the online reference in the LAC sublibrary for more
- information).
-
-
- - With respect to the integration of these functions into - deal.II, there are two problems: Firstly, for - license reasons, we can not, however, include these solvers in the - standard distribution of the library, so you have to download them - yourself, if you want to use them. Secondly, these functions are - usually downloaded as single files, rather than as a complete - library, so one does not usually build up a whole library against which - a deal.II program could be linked, but is left - with the individual files. -
- -- Our solution to this problem is as follows: -
- If you want to use any of these subroutines, then you have to - download them from the HSL server. Note that the license is rather - restrictive. -
- -- For MA27, you have to have the main file, while for MA47 - there are two files, one for the main algorithm and one with - support functions. -
- -
- Drop these files into the directory
- deal.II/contrib/hsl/source
, with names
- ma27.f
(for MA27), and ma47.f
and
- ma47dep.f
(for MA47). There should already be a
- file called ma27sup.f
. Note that the exact names
- (including letter case) of the files matter.
-
- Run (or re-run) the ./configure
script in the
- top level directory of deal.II. It should,
- at one point, print a message which functions from HSL it has
- found. This sets some flags for subsequent compilations
- (preprocessor defines HAVE_HSL_MA27,
- HAVE_HSL_MA47
and Makefile variable
- USE_CONTRIB_HSL=yes
) that
- these functions have been found and can be used, rather than
- dummy functions that only display an error and abort the
- program if called.
-
- -
- Compile the library (a description of how to do so is found
- in the ReadMe
- file). If you had already made it, first clean the directory
- by calling make clean
in the top level directory.
-
- Note that if the respective functions have not been found at - configure time, then the classes using them are still available to - programs, but when called will issue an error message and abort - the program with an exception. -
- -
- If HSL functions have been found, then we also have some Fortran77
- code in the system. Of course, the requires that some F77 compiler
- has been found at configure time, but note that this also changes
- the libraries that need to be linked to the program. For example,
- on Sun, these are the libraries -lF77 -lsunmath
- -lM77
. Usually, the right set of additional libraries
- should be detected automatically at configure time, and the
- respective flags should also be set correctly without user
- interaction.
-
This documentation describes the compilation process - of MUMPS and its dependencies starting with - BLACS and following - with SCALAPACK. The compilation - of MUMPS 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 + +
+ MUMPS + should be readily packaged by most Linux distributions. + Don't forget to install a develpment version of the library. +
+ ++ Below is a detailed instruction on how to compile and install + MUMPS and some of its dependencies by hand (for + the case you wish to do so). +
+ ++ In the following, we describe the compilation process of + MUMPS and its dependencies starting + with BLACS and following with + SCALAPACK. + + The compilation of MUMPS 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 - deal.II). Thus we give only a short - walk-through mentioning the most important parameters needed for - successful compliation and linking. + productive with the interface and deal.II). Thus + we give only a short walk-through mentioning the most important + parameters needed for successful compliation and linking.
The compilation scheme involves repeating the same three steps @@ -48,7 +63,7 @@ of BLACS.
- The BLACS library
provides basic linear algebra routines together with a
@@ -126,7 +141,7 @@
library with the command make mpi
.
The SCALAPACK
library provides high-performance linear algebra routines for
@@ -204,7 +219,7 @@
command make
.
Now we come to the main program for which we are doing all this. We want to install the parallel sparse direct @@ -283,36 +298,50 @@
-Now we are done with configuration and can +
+ Now we are done with configuration and can
compile MUMPS with the
command make
.
To be able to use the interface of deal.II - for the MUMPS solver we then - configure deal.II with the following - additional options: +
+ Support for MUMPS will be enabled automatically + if a system wide installation of MUMPS + can be found. To use a self compiled version, specify +
+ + -DMUMPS_DIR=/path/to/mumps +on the command line when invoking
cmake
.
+
+
+ + For SCALAPACK and BLACS a hint + - if necessary - may be given by
-
- --with-mumps=path/to/mumps
- --with-blacs=path/to/blacs
- --with-scalapack=path/to/scalapack
-
+
+ -DSCALAPACK_DIR=/path/to/scalapack
+ -DBLACS_DIR=/path/to/blacs
+
+ + You can override the autodetection by manually specifying +
+ -DDEAL_II_WITH_MUMPS=OFF|ON +. +
- Note: Throughout this description of the compilation process
- of MUMPS we have emphasised adding the
- compiler flag -fPIC
. This is a definite requirement
- if we are compiling deal.II with shared
- libraries (which is the default). If we had preferred to be
- compiling deal.II 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 -fPIC
flag from the scheme.
+ Note: Throughout this description of the compilation process
+ of MUMPS we have emphasised adding the compiler
+ flag -fPIC
. This is a definite requirement if we
+ are compiling deal.II with shared libraries
+ (which is the default). If we had preferred to be compiling
+ deal.II 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 -fPIC
flag from the scheme.