The following external grids support the DUNE Grid interface:
ALBERTA | 1.2 | http://www.alberta-fem.de/ |
ALUGrid | 1.0 | http://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.
The following packages are mandatory to compile ALBERTA:
"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
Unpack it in a directory
tar xzf alberta-1.2.tar.gz
and move to that directory
cd alberta-1.2
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
Compile ALBERTA with
make
Install ALBERTA with
make install
There are no mandatory packages for ALUGrid.
For optional packages see the README file of ALUGRID.
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.
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
Compile ALUGrid with
make
Install ALUGrid with
make install
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.
The 1.0 release of DUNE works with the vanilla UG, available at http://sit.iwr.uni-heidelberg.de/~ug.
The grid interface of the development version of DUNE will not work with the current version UG. It was necessary to apply some changes to the grid manager of UG. In accordance to the UG license we will make these changes available in due course.
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.
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
Build the UG make system
./autogen.sh ./configure --prefix=my_favourite_ug_installation_path --enable-dune CC=g++
Compile UG with
make
Install UG with
make install