Installation of serial / non-distributed wgms3d

(Instructions for parallel build at bottom of this page.)

wgms3d is written in C++ and needs to be compiled on a Unix-like system (e.g., Linux). The installation follows the more or less standard method of configure / make / make install. However, before installing wgms3d, several other libraries need to be installed on your system; just follow the order on this page.

If you have trouble installing wgms3d, contact the contact the author including the shell output of the compilation process in your mail.

Prerequisite #1: SuperLU

wgms3d expects a shared library as well as SuperLU header files during compilation. This shared library is based on the original SuperLU 4.0 distribution, on a patch (by Sébastien Fabbro) that adds the GNU autotools build system, and on patch by myself that restricts the amount of symbols that are exported by the library to the absolute minimum required by wgms3d.

The quickest way of installing is simply following the instructions in the "Installation" section below. The "Ingredients" section below lists the individual sources, in case you are interested.

Quick Installation


This is how to reproduce the version of SuperLU that I offer for direct download above (superlu-4.0mk05.tar.gz):

Prerequisite #2: ARPACK-NG

Install arpack-ng. I have used version 3.1.5.

Some Linux distributions have pre-compiled packages for this, e.g. Fedora brings an arpack package which is based on arpack-ng. If you are not sure, compile it yourself, it's not difficult.

Installation of wgms3d mode solver

Linking with the Intel® Math Kernel Library (Intel® MKL)

The instructions above were assuming you are linking to a BLAS library that is installed on your system in the form of a single file with a name such as

The MKL contains a highly optimized version of BLAS/LAPACK. If you want to link against MKL, forget about the '--with-blas' configure option described above. The automatic detection will not work either. Instead, before configuring and compiling SuperLU / ARPACK / wgms3d, set the environment variable BLAS_LIBS. Using the MKL link line advisor page I figured out the following link options for an Intel 64 system:

	  export BLAS_LIBS='-L/path/to/MKL/11.0/069/mkl/lib/em64t
          -Wl,--start-group -lmkl_gf_lp64 -lmkl_sequential -lmkl_core
          -Wl,--end-group -lpthread'

Replace the /path/to/MKL with your actual path here. If you're not using bash as your shell, the command would be setenv BLAS_LIBS '...' or similar. After this, the configure scripts for SuperLU / ARPACK / wgms3d should no longer complain about a missing BLAS library.

Finally, when executing wgms3d, the dynamic linker path should point to the directory containing the MKL libraries.

export LD_LIBRARY_PATH=/path/to/MKL/11.0/069/mkl/lib/em64t

Installation of parallel (SLEPc-based) wgms3d

To build wgms3d with SLEPc, you don't need SuperLU and ARPACK as described above. Instead, the build involves essentially these steps:

Copyright (C) 2005-2014 Michael Krause <>
Valid HTML 4.01 Transitional Valid CSS
Follow on freecode