From: Guido Kanschat
- deal.II is mostly developed on Linux using the
- GCC compiler. However, it is not
- platform specific and we strive to keep the source code C++
- Standard compliant.
-
- deal.II supports at least the following
- platforms:
-
+ deal.II is mostly developed on Linux using the
+ GCC compiler. However, it is not
+ platform specific and we strive to keep the source code C++ Standard
+ compliant.
+
+ deal.II supports at least the following
+ platforms:
+
-
-
-
-
-
+ System requirements
-
-
- Supported platforms
-
-
-
System requirements
+
+
+Supported platforms
+
+
+
- Most other combinations of POSIX-style operating systems and C++
- Standard compliant compilers should also work. If they don't,
- please report it as a bug.
-
+ Most other combinations of POSIX-style operating systems and C++ + Standard compliant compilers should also work. If they don't, + please report it as a bug. +
-- Please note that the Microsoft Visual C++ compiler, that is widely - used on Microsoft Windows, is not supported. If you need a native - Windows target, use the MinGW compiler instead. -
++ Please note that the Microsoft Visual C++ compiler, that is widely + used on Microsoft Windows, is not supported. If you need a native + Windows target, use the MinGW compiler instead. +
- -In order to compile and use deal.II you need to have the following programs installed:
- CMake version 2.8.8 or later -
- -- GNU make, version - 3.78 or later (or any other generator supported by CMake) -
+
- For generating the documentation:
- Perl 5.x,
- doxygen
- and dot
, which is part of the
- GraphViz
- package
-
dot
, which is part of the
+ GraphViz
+ package
+ +
- The library generates output in formats readable by - GNUPLOT, - GMV - (general mesh viewer), - Tecplot (ASCII and binary), - Visualization Toolkit (Vtk), - AVS Explorer, - Open DX, - Povray, - and directly to Encapsulated Postscript. -
+ The library generates output in formats readable by + GNUPLOT, + GMV + (general mesh viewer), + Tecplot (ASCII and binary), + Visualization Toolkit (Vtk), + AVS Explorer, + Open DX, + Povray, + and directly to Encapsulated Postscript. + +
gnuplot
and a postscript viewer (for eps
) should be
@@ -174,37 +181,35 @@
converted into output (without references to cells, nodes,
types of finite elements, and the like).
The whole library usually comes as a tar.gz
file,
which is a file archive compressed with gzip. After downloading it,
unpack it using either
-
- - gunzip deal.II-X.Y.Z.tar.gz - tar xf deal.II-X.Y.Z.tar -- or, if you have GNU tar with -
- - tar -xvf deal.II-X.Y.Z.tar.gz -- Note: You will want to hang on to the source files - of deal.II after installation as it makes developing - much simpler. Consequently, you should do the steps above in a permanent - directory, not on
/tmp
as one often does when installing
- software.
++ gunzip deal.II-X.Y.Z.tar.gz + tar xf deal.II-X.Y.Z.tar ++
or, if you have GNU tar with
++ tar -xvf deal.II-X.Y.Z.tar.gz ++ +
Note: You will want to hang on to the source files
+ of deal.II after installation as it makes
+ developing much simpler. Consequently, you should do the steps above
+ in a permanent directory, not on /tmp
as one often does
+ when installing software.
+
- - mkdir build - cd build - cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/dir ../deal.II - make install -- These steps compile, link and install the deal.II library. The - whole process should take between a few minutes and an hour, depending - on your machine. - + following steps: + +
+ mkdir build + cd build + cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/dir ../deal.II + make install ++ +
+ These steps compile, link and install the deal.II library. The + whole process should take between a few minutes and an hour, depending + on your machine. +
- Note: + Note:
/path/to/install/dir
is the directory which deal.II
should be installed into. This can be a directory in your home
@@ -237,6 +244,7 @@
Another option is to use something like `pwd`/../installed/
(note the
backticks). Make sure the installation directory is not the same
as the location where you unpacked deal.II/.
+ make
-jN
in the last step, where N
is the
@@ -244,10 +252,12 @@
to use at any given time. Allowing make
to use
more simultaneous build processes (assuming you have that many
processor cores) will greatly lower the build time.
+ build/
directory after the last step.
+ CMake
system can accept a
significant number of configuration parameters. See the
discussion below.
+ The commands above build and install the deal.II libraries in two variants: -
Debug mode: This version of the - library is compiled with compiler flags so - that the library contains information that can be used by debuggers. -
- -- In addition, this library contains a great number of safety - checks on most arguments of all functions you could possibly call. - These assertions have proven to be an - invaluable means to finding programming bugs since they will - almost always abort your program if something goes wrong. In our - experience, more than ninety per cent of all errors are invalid - parameters (such as vectors having the wrong size, etc.) and they - are usually found almost instantaneously, displaying the file - name and line number of where the problem occurred. -
- + +Debug mode: This version of the + library is compiled with compiler flags so + that the library contains information that can be used by debuggers. +
+ ++ In addition, this library contains a great number of safety + checks on most arguments of all functions you could possibly call. + These assertions have proven to be an + invaluable means to finding programming bugs since they will + almost always abort your program if something goes wrong. In our + experience, more than ninety per cent of all errors are invalid + parameters (such as vectors having the wrong size, etc.) and they + are usually found almost instantaneously, displaying the file + name and line number of where the problem occurred. +
+
At this point, you have generated everything necessary to write
@@ -322,17 +334,20 @@
be found at the
http://www.dealii.org/ domain can also be generated locally. To do
so, invoke cmake
in the build instructions above as follows:
-
- - cmake -DDEAL_II_COMPONENT_DOCUMENTATION=ON -DCMAKE_INSTALL_PREFIX=/path/install/dir ../deal.II -- For this to succeed, you will need Perl 5.x, - doxygen - and
dot
(which is part of
- the GraphViz
- package) to be installed.
+
++ cmake -DDEAL_II_COMPONENT_DOCUMENTATION=ON -DCMAKE_INSTALL_PREFIX=/path/install/dir ../deal.II ++ +
+ For this to succeed, you will need Perl 5.x,
+ doxygen
+ and dot
(which is part of
+ the GraphViz
+ package) to be installed.
+
Upon calling make
and make install
, this will
@@ -369,8 +384,8 @@
options.
-DDEAL_II_WITH_THREADS=OFF
argument to cmake
.
+
@@ -394,6 +410,7 @@
specifically do not want to use it, then
pass -DDEAL_II_WITH_MPI=OFF
.
@@ -411,6 +428,7 @@
-DDEAL_II_COMPONENT_PARAMETER_GUI=ON
. Beware of the
fact that parameter_gui
needs development packages for Qt.
@@ -428,12 +446,12 @@ with Trilinos, Trilinos 11.2 or later is needed (there is a bug in Trilinos 11.0 that prevents the use of 64bit indices).
- +@@ -455,8 +473,7 @@ can be configured.
-- Notes: +
Notes:
-dev
or -devel
.
After that cmake
will automatically find the
library and use it.
+ foo
can usually be done by specifying
@@ -475,17 +493,18 @@
you invoke cmake
in a fresh build directory.
Any value passed on the command line wins over a value that
may be found in an environment variable.
+ foo
use the argument
-DDEAL_II_WITH_FOO=ON
resp.
-DDEAL_II_WITH_FOO=OFF
for cmake
.
+ FunctionParser @@ -544,8 +565,8 @@
The HDF5 library @@ -559,8 +580,8 @@
@@ -582,8 +603,8 @@
MUMPS @@ -601,24 +622,23 @@
- NetCDF is a library that provides services for
- reading and writing mesh data (and many other
- things). deal.II can use it to read meshes via
- one of the functions of the GridIn
class.
- NetCDF should be readily packaged by most
- Linux distributions. (Don't forget to install a development
- version of the library). To use a self compiled version, pass
- -DNETCDF_DIR=/path/to/netcdf
to cmake
.
+ NetCDF is a library that provides services for
+ reading and writing mesh data (and many other
+ things). deal.II can use it to read meshes via
+ one of the functions of the GridIn
class.
+ NetCDF should be readily packaged by most
+ Linux distributions. (Don't forget to install a development
+ version of the library). To use a self compiled version, pass
+ -DNETCDF_DIR=/path/to/netcdf
to cmake
.
p4est @@ -633,8 +653,8 @@
@@ -659,8 +679,8 @@
@@ -697,8 +717,8 @@
Trilinos is a @@ -722,8 +742,8 @@
@@ -754,7 +774,7 @@
@@ -816,27 +836,31 @@ information.
- Please note: + Please note: