Deal.ii

Website

http://www.dealii.org/

Deal.II 8.4.1

Features: ARPACK, BOOST, BZIP2, CXX11, CXX14 HDF5, LAPACK, METIS, MPI, MUPARSER, NETCDF, OPENCASCADE, P4EST, PETSC, THREADS, TRILINOS, UMFPACK, ZLIB, LUA

(Not available: WITH_64BIT_INDICES, WITH_SLEPC)

  module load p4est/1.1
  module load mpi/openmpi-x86_64
  module load parmetis/
  module load hdf5/1.8.17-system-mpi
  module load petsc/3.6.4-lite
  module load trilinos/12.4.2-deal84-mpi
  module load dealii/8.4.1-tri-petsc-hdf5-mpi-dbg
Deal.II 8.2.1 (deprecated, Fedora 23)

Features: ARPACK, BOOST, BZIP2, CXX11, HDF5, LAPACK, METIS, MPI, MUPARSER, NETCDF, OPENCASCADE, P4EST, PETSC, THREADS, TRILINOS, UMFPACK, ZLIB

(Not available: WITH_64BIT_INDICES, WITH_SLEPC, WITH_MUMPS)

  module load mpi/openmpi-x86_64
  module load hdf5/1.8.16-parallel
  module load p4est/1.1
  module load petsc/3.6.3-lite
  module load trilinos/11.14.3-deal-mpi
  module load dealii/8.2.2-tri-petsc-hdf5-mpi-dbg
Deal.II 8.0.0 (deprecated, Ubuntu 12.4)

Installed and working on instituts PCs.

/usr/net/modules/noarch/deal80 /usr/net/src/deal.II-8.0.0

using Petsc 3.4.2. Metis 5.1.0, Boost 1.54 (not working with trilinos-10.12.2)

$ source /usr/net/bin/module_deal80

Petsc 2.4.2 /usr/net/modules/noarch/petsc-3.4.2 /usr/net/src/petsc-3.4.2


Metis 5.1.0 /usr/net/modules/noarch/metis-5.1.0


ParMetis 4.0.3 (no function) /usr/net/modules/noarch/parmetis-4.0.3


Boost 1.54 /usr/net/modules/noarch/boost-1.54


If you want to have the same Software on your laptop. Just copy all of the directories listed above to the same (similar named) directories on your laptops local disc.

Resources

Tutorials

The official official deal.II tutorials are quite comprehensive and well documented. I will give a short overview about the most interesting tutorials for us.

Tutorial 1

This tutorial deals with a general introduction to how the deal.II tutorials work in general. It specifically deals with two techniques: *How to generate triangulation objects *How to loop over all cells

Tutorial 2

This tutorial deals with the definition of degrees of freedom on meshes, and how they can be renumbered to give better sparsity patterns.

Tutorial 3

This tutorial deals with solving the first system with zero boundary conditions and how the basic structure of a deal.II program looks like:

  • make the grid
  • setup the system
  • assemble the system
  • solve the system
  • output of the results
Tutorial 4

This tutorial deals with “dimension independent programming” and how non-homogeneous Dirichlet boundary conditions can be applied by introducing two new classes denoting the right hand side and the Dirichlet boundary conditions.

Tutorial 5

This tutorial deals with

  • computations on successively refined grids (laying out foundations for adaptive grids)
  • reading in a coarse grid generated by an automatic mesh generator
  • optimization to speed up computation
  • debugging and safe programming
  • using preconditioned iterative solvers
Tutorial 6

This tutorial deals with the handling of locally refined grids.

Tutorial 8

This tutorial deals with the handling of vector valued problems - specifically with an elastic problem as example.

Tutorial 18

There is a bug in the step-18 tutorial of deal.II 7.2.0! Add following line in the beginning of its “refine_initial_grid()” function:

refine_initial_grid()
triangulation.clear_user_data();

Terminology

Vertex

Degree of freedom

Installation

Downloading deal.II

The current versions can be downloaded from the deal.II download page.

Installation without PETSc

After downloading deal.II copy it to the folder where you want to keep the library. Unpack it via

tar xzf "deal.II-X.Y.Z.tar.gz"

Unpacking it will create a subdirectory deal.II. Go into this directory and run

./configure --without-petsc
./make all

Installation with PETSc and METIS

Download PETSc and unpack it. Go into the PETSc directory and configure it via

basic configuration PETsc
# ./configure --with-cc=gcc --with-fc=gfortran --download-f-blas-lapack --download-openmpi --with-shared-libraries=1 --with-dynamic-loading=1
./configure --with-shared-libraries=1 --with-cc=mpicc --with-fc=mpif90 --with-dynamic-loading=1 --download-f-blas-lapack

PETSc instructs you how to make it - in my case

2013-02-27 -- Dominik Steinberger>
make PETSC_DIR=/home/steido/bin/PETSc/petsc-3.3-p6 PETSC_ARCH=arch-linux2-c-debug all

Take the values for PETSC_DIR and PETSC_ARCH and put it into your .bashrc together with a new value for LD_LIBRARY_PATH

export PETSC_DIR="${HOME}/bin/PETSc/petsc-3.3-p6"
export PETSC_ARCH="arch-linux2-c-debug"
export LD_LIBRARY_PATH="${PETSC_DIR}/${PETSC_ARCH}/lib:${LD_LIBRARY_PATH}" 

Download METIS, unpack it and go in its directory and make it

make config prefix="${HOME}/bin/METIS/metis-5.0.2" shared=1
make install
add to .bashrc
export METIS_DIR="${HOME}/bin/METIS/metis-5.0.2"

Go to your deal.II directory and configure it for PETSc and METIS

configure deal.II with PETSc and METIS
./configure --enable-mpi --disable-threads  CC=mpicc CXX=mpicxx --with-petsc="${PETSC_DIR}" --with-petsc-arch="${PETSC_ARCH}" --with-metis="${METIS_DIR}"
<code>
 
Make deal.II
</code bash>
make all
other possible options:
MPI optimization::     --with-mpi-dir=/usr/lib/openmpi/ --with-cc=mpicc --with-fc=mpif90 --with-CXX=mpixx --with-blas-lapack-dir=/opt/intel/mkl   --with-cpu=corei7-avx --mtune=corei7-avx --with-trilinos=/usr/net/modules/corei7-avx-6/trilinos-10.12.2 --with-metis=/usr/net/modules/corei7-avx-6/metis510-a
# #########
# petsc 3.3
# #########
 
# configure, follow install instructions
./configure --with-shared-libraries=1 --with-cc=mpicc --with-fc=mpif90 --with-dynamic-loading=1
 
 
# ##############
# profile/bashrc
# ##############
 
# petsc Path
export PETSC_ARCH=$"arch-linux2-c-debug"
export PETSC_DIR="${HOME}/bin/petsc-3.3-p5"
export LD_LIBRARY_PATH="${HOME}/bin/petsc-3.3-p5/arch-linux2-c-debug/lib"
 
# ###########
# metis 5.0.2
# ###########
unzip tar
make config prefix="${HOME}/bin/metis-5.0.2" shared=1
make install
cp "${HOME}/bin/metis-5.0.2/lib/libmetis.so" "${HOME}/bin/metis-5.0.2/libmetis/libmetis.so"
 
# ###########
# deal.ii 7.2
# ###########
./configure --enable-mpi --disable-threads  CC=mpicc CXX=mpicxx --with-petsc=/home/sliebenstein/bin/petsc3.3-p5 --with-petsc-arch=arch-linux2-c-debug --with-metis=/home/sliebenstein/bin/metis-5.0.2
 
#check if the env variables are set correctly
echo "$PETSC_ARCH"
echo "$PETSC_DIR"
echo "$LD_LIBRARY_PATH"

Configuring Eclipse to work with deal.II

UPDATE: A WAY better possibility is to use an cmake file (only working with version 8.0 or higher.

  cmake -G"Eclipse CDT4 - Unix Makefiles" -DDEAL_II_DIR=/path/to/deal.II .

To use Eclipse's autocompletion features it has to be configured to work with deal.II. The Eclipse deal.II wiki page provides a comprehensive step by step guide to set up Eclipse for deal.II

Paths for autocompletion in eclipse

Log In