Using and installing instructions for functions from the Harwell Subroutine Library (HSL)

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:

Within deal.II, they are used by the classes 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:

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.


The deal.II mailing list $Date$