Contrib Software Installation Notes

Additional Grids supported by DUNE

The following external grids support the DUNE Grid interface:

ALBERTA1.2http://www.alberta-fem.de/
ALUGrid1.0http://www.mathematik.uni-freiburg.de/IAM/Research/alugrid/
UG (non-free licence)http://sit.iwr.uni-heidelberg.de/~ug/

Within the DUNE source tree OneDGrid, SGrid and YaspGrid are available.

ALBERTA Grid

Dependencies

The following packages are mandatory to compile ALBERTA:

Fortran 77
compiler, e. g. g77
OpenGL
A free implementation is available from http://www.mesa3d.org/
BLAS

"Basic Linear Algebra Subprograms"

This often comes as a package with Linux (for Debian sarge it is called atlas3 and has to be installed together with the header package atlas3-headers).

If it does not come with your distribution you can get it from http://math-atlas.sourceforge.net

For optional packages see the README file of ALBERTA

Compilation and Installation

  1. Download at least version 1.2 of ALBERTA from the ALBERTA homepage http://www.alberta-fem.de
  2. Unpack it in a directory

    tar xzf alberta-1.2.tar.gz

    and move to that directory

    cd alberta-1.2
  3. Configure ALBERTA, e. g.

    ./configure --prefix=/directory/to/install/alberta/to \
       --with-blas-name=blas-3 --disable-shared \
       CXX=g++-3.4 CC=gcc-3.4

    With --prefix the absolute path of the directory we install to has to given, --with-blas-name we tell configure the name of our BLAS library.

    IMPORTANT!! Always use the --disable-shared option as shared linking is broken in version 1.2!!

    With the variable CC and CXX we tell configure the C and C++ compiler and linker to use. These have to be the same compilers and linkers you will use to compile DUNE!!

    For more information and additional options see

    ./configure --help
  4. Compile ALBERTA with

    make
  5. Install ALBERTA with

    make install

ALUGrid

Dependencies

There are no mandatory packages for ALUGrid.

For optional packages see the README file of ALUGRID.

Compilation and Installation

  1. Download the latest version of ALUGrid from the ALUGrid homepage.
  2. Unpack it in a directory

    tar xzf ALUGrid-1.x.tar.gz

    and move to that directory

    cd ALUGrid-1.x

    and read the README file first.

  3. Configure ALUGrid, e. g.

    ./configure --prefix=/directory/to/install/ALUGrid/to \
       CXX=g++-3.4 CC=gcc-3.4

    for the sequential use of ALUGrid.

    With --prefix the absolute path of the directory we install to has to be given. If no --prefix given, ALUGrid is installed into the directory where it was unpacked.

    With the variable CC and CXX we tell configure the C and C++ compiler and linker to use. These have to be the same compilers and linkers you will use to compile DUNE!!

    If you want to use the parallel version of ALUGrid one has to proceed as follows. To compile the library you need a valid MPI version installed. The easiest way to compile the parallel version is to use the MPI compiler script (i.e. mpiCC or mpicxx) by calling configure with CXX="mpicxx" for example. Optionally you can use the DUNE mpi-config tool. As the compiler used to compile your mpi version might differ from the version needed for DUNE instead of specify mpi as the compiler we provide the include path and linker path of MPI.

    In order to retrieve the CPPFLAGS and LDFLAGS necessary for MPI, dune-common offers a script dune-common/bin/mpi-config:

    Usage: mpi-config [OPTIONS] [LIBRARIES]
    Options:
     [--mpicc[=COMPILER]]
     [--disable-cxx]
     [--verbose]
     [--version]
     [--mpiversion]
     [--libs]
     [--cflags]
    

    mpi-config calls the MPI compiler and tries to extract the parameters. One can specify which MPI compiler to use, by setting the $MPICC environment variable or by supplying the --mpicc=MPICOMPILER option.

    Using mpi-config one can pass the approriate CPPFLAGS and LDFLAGS to configure. We suppose that dune-common/bin is in your path (for bash you can do this with: export PATH=$PATH:/path/to/dune/modules/dune-common/bin.

    E. g. for the MPI compiler /opt/foo-mpi/bin/mpicc (for the default MPI compiler just skip the --mpicc=/opt/foo-mpi/bin/mpicc options):

    ./configure --prefix=/directory/to/install/ALUGrid/to \
       CXX=g++-3.4 CC=gcc-3.4 \
       CPPFLAGS="`mpi-config --cflags --disable-cxx --mpicc=/opt/foo-mpi/bin/mpicc`" \
       LDFLAGS="`mpi-config --libs --disable-cxx --mpicc=/opt/foo-mpi/bin/mpicc`"
    

    For further information and additional options see

    ./configure --help
  4. Compile ALUGrid with

    make
  5. Install ALUGrid with

    make install

UGGrid

dune-grid can make use of the UG grid manager. UG is a software tool for the numerical solution of partial differential equations on unstructured meshes in two and three space dimensions using multigrid methods. UG is written in C. DUNE offers an abstraction to the UG grid manager.

Getting UG

The appriopriate UG version for you depends on which version of DUNE you want to use. In addition to the central UG repository we maintain sets of patches. These patches contain bugfixes and further features that are needed for newer versions of DUNE. For legal reasons we cannot provide a patched UG directly.

Here's how you get a patched UG:

Dependencies

There are no mandatory packages for UGGrid.

You can (but you don't have to) create UGGrid objects from AmiraMesh files. For this you'll need the AmiraMesh library.

Compilation and Installation

  1. Get the grid manager of the UG library. You can get a current version from http://sit.iwr.uni-heidelberg.de/~ug/download.html. There are two versions available, a stable release, dating back to 1998 and the current development version. You will need to download the current development version via cvs:

    cvs -d:pserver:anonymous@sit.iwr.uni-heidelberg.de:/Users/mirror/CVS co UG/ug
    cd UG/ug
    
  2. Build the UG make system

    ./autogen.sh
    ./configure --prefix=my_favourite_ug_installation_path --enable-dune CC=g++
    
    • --prefix determines the absolute path of the directory we install to.
    • --enable-dune enables special features needed by Dune.
    • CC=g++ tells the build system to compile everything as C++, even though it is technically C. This is necessary when using UG through the DUNE interface. Don't forget that the compiler has to be binary-compatible with the one you're using for Dune.
  3. Compile UG with

    make
  4. Install UG with

    make install

Last Change: Apr 18 2008 16:13 by sander