Note that along with the rest of the documentation, the local HTML pages
of the tutorials need to be generated first. Please follow the
instructions in the
ReadMe file on how to do
this.
-
+
The documentation uses many of the features of Doxygen. In particular,
the link takes you straight to a page that lists modules , a way
to group classes with similar purposes. This may be what you are probably
@@ -70,161 +70,161 @@
particular member function, for example, you may go to the class view or
choose any of the other ways in which Doxygen allows you to navigate
through the documentation.
-
+
-
Just as for the tutorials, the API docs need to be generated first,
if you download deal.II . Please follow the
instructions in the
ReadMe file on how to do
this.
-
+
- There are a number of papers that describe the overall design or
- individual aspects of deal.II . Please refer to the
- papers listed at the top of the publications page for full references. In addition,
- there are the following reports:
-
More specific questions may be sent to the authors
immediately at the address firstName.lastname at
dealii.org .
-
-
-
-
-
+
+
+
+
+
+
+
+ The deal.II Documentation Page
+ Your browser does not seem to understand frames. A version of this
+ page that does not use frames can be found at
+ documentation.html .
+
-
- The deal.II Documentation Page
- Your browser does not seem to understand frames. A version of this
- page that does not use frames can be found at
- documentation.html .
-
-
diff --git a/deal.II/doc/license.html b/deal.II/doc/license.html
index 5b883c72c1..5d661e7c03 100644
--- a/deal.II/doc/license.html
+++ b/deal.II/doc/license.html
@@ -1,296 +1,296 @@
+ "http://www.w3.org/TR/html4/loose.dtd">
-
- The deal.II License
-
-
-
-
-
-
-
-
-
-
- The deal.II license
-
-
- The deal.II library has been placed under an Open
- Source license, in the sense advocated by the Open Source
- Initiative . You are thus free to copy and use it, and you have
- free access to all source codes. However, deal.II
- is not in the public domain, it is property of and copyrighted by
- the deal.II authors, and there are restrictions
- on its use. We will give some hints on license issues first. The
- legally binding license is the Q Public
- License (QPL) at the bottom of this page. Furthermore, deal.II
- distributions come bundled with some third party software for which
- the deal.II authors do not own the copyright. The licenses of these
- parts are discussed below .
-
-
- In this document, as well as in the program files, the terms
- authors of deal.II and
- deal.II authors generally refer to the
- principal authors of the library. These are Wolfgang
- Bangerth, Timo Heister, and Guido Kanschat.
-
-
-
-
- Restrictions on and commercial use of the library
-
-
-
- deal.II is distributed under the Open Source
- license called the Q Public License (or "QPL") listed
- in full below. Essentially, an interpretation of this license is
- that you can use the library free of charge for developing your own
- programs. However, if you plan to distribute these programs to others,
- certain restrictions are imposed by the QPL.
-
-
-
- In non-legal terms, the license stipulates that if you want
- to give your program to someone else in whatever form (including as
- a binary executable), you have to make the entire source code of
- your own program and all modifications to the deal.II library
- available free of charge as well.
-
-
-
- We recognize that giving away the source code may be an
- unacceptable restriction in a commercial setting. As the owners of
- the sources, we are able to grant you a differently licensed version
- of the deal.II library that does not contain this
- requirement, and we are very much willing to negotiate the terms of
- such a license. Please contact the authors of the library if you are
- interested in commercial use of deal.II.
-
-
-
-
Referencing the library
-
-
- In addition to the terms imposed by the QPL, we ask for the
- following courtesy:
-
-
- Every publication presenting numerical results obtained with
- the help of deal.II should state the name of
- the library and cite
- the canonical deal.II reference listed at the top of the publications page .
-
- This is the usual, fair way of giving credit to contributors to a
- scientific result. In addition, it helps us justify our effort in
- developing deal.II as an academic undertaking.
-
-
-
- We keep a list of publications
- using deal.II . Feel free to let us know about your publications.
-
-
-
- Parts of the deal.II distribution under a separate license
-
-
- Some of the files in the contrib/
subdirectory are by
- other people, and are distributed under separate licenses. These
- files are not part of the deal.II library, but
- they are part of our distribution. They are generally available for
- use in non-commercial academic settings. For commercial use and if
- you want to distribute your codes, please consult the licenses of
- these parts of the deal.II distribution. We made sure that those parts of the
- distribution for which the license is not entirely free for all uses can be
- disabled upon configuration of deal.II without
- unduly restricting the functionality of the rest of the
- library.
-
-
-
- In particular, these are libraries that we distribute in the
- contrib/
subdirectory, courtesy of their authors:
-
-
-
-
- deal.II can interface with a number of other packages that you have to install
- yourself. They are, of course, covered by their own licenses.
-
-
-
-
- About the license
-
-
- The QPL was originally developed by
- Troll Tech for their
- Qt program library, but has since gained some support by other
- library authors as well.
- For more information on the QPL, please follow
- this link .
-
-
-
-
-
-
-
-
-THE Q PUBLIC LICENSE
-version 1.0
-
-
-
-Copyright (C) 1999 Troll Tech AS, Norway.
-
-
-Everyone is permitted to copy and
-
-distribute this license document.
-
-
-
-
-The intent of this license is to establish freedom to share and change the
-software regulated by this license under the open source model.
-
-This license applies to any software containing a notice placed by the
-copyright holder saying that it may be distributed under the terms of
-the Q Public License version 1.0. Such software is herein referred to as
-the Software. This license covers modification and distribution of the
-Software, use of third-party application programs based on the Software,
-and development of free software which uses the Software.
-
-Granted Rights
-
-
-1. You are granted the non-exclusive rights set forth in this license
-provided you agree to and comply with any and all conditions in this
-license. Whole or partial distribution of the Software, or software
-items that link with the Software, in any form signifies acceptance of
-this license.
-
-2. You may copy and distribute the Software in unmodified form provided
-that the entire package, including - but not restricted to - copyright,
-trademark notices and disclaimers, as released by the initial developer
-of the Software, is distributed.
-
-3. You may make modifications to the Software and distribute your
-modifications, in a form that is separate from the Software, such as
-patches. The following restrictions apply to modifications:
-
-
-a. Modifications must not alter or remove any copyright notices in
-the Software.
-
-b. When modifications to the Software are released under this
-license, a non-exclusive royalty-free right is granted to the
-initial developer of the Software to distribute your modification
-in future versions of the Software provided such versions remain
-available under these terms in addition to any other license(s) of
-the initial developer.
-
-
-4. You may distribute machine-executable forms of the Software or
-machine-executable forms of modified versions of the Software, provided
-that you meet these restrictions:
-
-
-a. You must include this license document in the distribution.
-
-b. You must ensure that all recipients of the machine-executable forms
-are also able to receive the complete machine-readable source code
-to the distributed Software, including all modifications, without
-any charge beyond the costs of data transfer, and place prominent
-notices in the distribution explaining this.
-
-c. You must ensure that all modifications included in the
-machine-executable forms are available under the terms of this
-license.
-
-
-5. You may use the original or modified versions of the Software to
-compile, link and run application programs legally developed by you
-or by others.
-
-6. You may develop application programs, reusable components and other
-software items that link with the original or modified versions of the
-Software. These items, when distributed, are subject to the following
-requirements:
-
-
-a. You must ensure that all recipients of machine-executable forms of
-these items are also able to receive and use the complete
-machine-readable source code to the items without any charge
-beyond the costs of data transfer.
-
-b. You must explicitly license all recipients of your items to use
-and re-distribute original and modified versions of the items in
-both machine-executable and source code forms. The recipients must
-be able to do so without any charges whatsoever, and they must be
-able to re-distribute to anyone they choose.
-
-c. If the items are not available to the general public, and the
-initial developer of the Software requests a copy of the items,
-then you must supply one.
-
-
-Limitations of Liability
-
-In no event shall the initial developers or copyright holders be liable
-for any damages whatsoever, including - but not restricted to - lost
-revenue or profits or other direct, indirect, special, incidental or
-consequential damages, even if they have been advised of the possibility
-of such damages, except to the extent invariable law, if any, provides
-otherwise.
-
-No Warranty
-
-
-The Software and this license document are provided AS IS with NO WARRANTY
-OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE.
-
-Choice of Law
-
-
-This license is governed by the Laws of Germany. Disputes shall be settled
-by Amtsgericht Heidelberg.
-
-
-
-
-
-
-
- The deal.II authors
-
-
-
-
-
-
-
-
+
+ The deal.II License
+
+
+
+
+
+
+
+
+
+
+ The deal.II license
+
+
+ The deal.II library has been placed under an Open
+ Source license, in the sense advocated by the Open Source
+ Initiative . You are thus free to copy and use it, and you have
+ free access to all source codes. However, deal.II
+ is not in the public domain, it is property of and copyrighted by
+ the deal.II authors, and there are restrictions
+ on its use. We will give some hints on license issues first. The
+ legally binding license is the Q Public
+ License (QPL) at the bottom of this page. Furthermore, deal.II
+ distributions come bundled with some third party software for which
+ the deal.II authors do not own the copyright. The licenses of these
+ parts are discussed below .
+
+
+ In this document, as well as in the program files, the terms
+ authors of deal.II and
+ deal.II authors generally refer to the
+ principal authors of the library. These are Wolfgang
+ Bangerth, Timo Heister, and Guido Kanschat.
+
+
+
+
+ Restrictions on and commercial use of the library
+
+
+
+ deal.II is distributed under the Open Source
+ license called the Q Public License (or "QPL") listed
+ in full below. Essentially, an interpretation of this license is
+ that you can use the library free of charge for developing your own
+ programs. However, if you plan to distribute these programs to others,
+ certain restrictions are imposed by the QPL.
+
+
+
+ In non-legal terms, the license stipulates that if you want
+ to give your program to someone else in whatever form (including as
+ a binary executable), you have to make the entire source code of
+ your own program and all modifications to the deal.II library
+ available free of charge as well.
+
+
+
+ We recognize that giving away the source code may be an
+ unacceptable restriction in a commercial setting. As the owners of
+ the sources, we are able to grant you a differently licensed version
+ of the deal.II library that does not contain this
+ requirement, and we are very much willing to negotiate the terms of
+ such a license. Please contact the authors of the library if you are
+ interested in commercial use of deal.II.
+
+
+
+
Referencing the library
+
+
+ In addition to the terms imposed by the QPL, we ask for the
+ following courtesy:
+
+
+ Every publication presenting numerical results obtained with
+ the help of deal.II should state the name of
+ the library and cite
+ the canonical deal.II reference listed at the top of the publications page .
+
+ This is the usual, fair way of giving credit to contributors to a
+ scientific result. In addition, it helps us justify our effort in
+ developing deal.II as an academic undertaking.
+
+
+
+ We keep a list of publications
+ using deal.II . Feel free to let us know about your publications.
+
+
+
+ Parts of the deal.II distribution under a separate license
+
+
+ Some of the files in the contrib/
subdirectory are by
+ other people, and are distributed under separate licenses. These
+ files are not part of the deal.II library, but
+ they are part of our distribution. They are generally available for
+ use in non-commercial academic settings. For commercial use and if
+ you want to distribute your codes, please consult the licenses of
+ these parts of the deal.II distribution. We made sure that those parts of the
+ distribution for which the license is not entirely free for all uses can be
+ disabled upon configuration of deal.II without
+ unduly restricting the functionality of the rest of the
+ library.
+
+
+
+ In particular, these are libraries that we distribute in the
+ contrib/
subdirectory, courtesy of their authors:
+
+
+
+
+ deal.II can interface with a number of other packages that you have to install
+ yourself. They are, of course, covered by their own licenses.
+
+
+
+
+ About the license
+
+
+ The QPL was originally developed by
+ Troll Tech for their
+ Qt program library, but has since gained some support by other
+ library authors as well.
+ For more information on the QPL, please follow
+ this link .
+
+
+
+
+
+
+
+
+ THE Q PUBLIC LICENSE
+ version 1.0
+
+
+
+ Copyright (C) 1999 Troll Tech AS, Norway.
+
+
+ Everyone is permitted to copy and
+
+ distribute this license document.
+
+
+
+
+ The intent of this license is to establish freedom to share and change the
+ software regulated by this license under the open source model.
+
+ This license applies to any software containing a notice placed by the
+ copyright holder saying that it may be distributed under the terms of
+ the Q Public License version 1.0. Such software is herein referred to as
+ the Software. This license covers modification and distribution of the
+ Software, use of third-party application programs based on the Software,
+ and development of free software which uses the Software.
+
+ Granted Rights
+
+
+ 1. You are granted the non-exclusive rights set forth in this license
+ provided you agree to and comply with any and all conditions in this
+ license. Whole or partial distribution of the Software, or software
+ items that link with the Software, in any form signifies acceptance of
+ this license.
+
+ 2. You may copy and distribute the Software in unmodified form provided
+ that the entire package, including - but not restricted to - copyright,
+ trademark notices and disclaimers, as released by the initial developer
+ of the Software, is distributed.
+
+ 3. You may make modifications to the Software and distribute your
+ modifications, in a form that is separate from the Software, such as
+ patches. The following restrictions apply to modifications:
+
+
+ a. Modifications must not alter or remove any copyright notices in
+ the Software.
+
+ b. When modifications to the Software are released under this
+ license, a non-exclusive royalty-free right is granted to the
+ initial developer of the Software to distribute your modification
+ in future versions of the Software provided such versions remain
+ available under these terms in addition to any other license(s) of
+ the initial developer.
+
+
+ 4. You may distribute machine-executable forms of the Software or
+ machine-executable forms of modified versions of the Software, provided
+ that you meet these restrictions:
+
+
+ a. You must include this license document in the distribution.
+
+ b. You must ensure that all recipients of the machine-executable forms
+ are also able to receive the complete machine-readable source code
+ to the distributed Software, including all modifications, without
+ any charge beyond the costs of data transfer, and place prominent
+ notices in the distribution explaining this.
+
+ c. You must ensure that all modifications included in the
+ machine-executable forms are available under the terms of this
+ license.
+
+
+ 5. You may use the original or modified versions of the Software to
+ compile, link and run application programs legally developed by you
+ or by others.
+
+ 6. You may develop application programs, reusable components and other
+ software items that link with the original or modified versions of the
+ Software. These items, when distributed, are subject to the following
+ requirements:
+
+
+ a. You must ensure that all recipients of machine-executable forms of
+ these items are also able to receive and use the complete
+ machine-readable source code to the items without any charge
+ beyond the costs of data transfer.
+
+ b. You must explicitly license all recipients of your items to use
+ and re-distribute original and modified versions of the items in
+ both machine-executable and source code forms. The recipients must
+ be able to do so without any charges whatsoever, and they must be
+ able to re-distribute to anyone they choose.
+
+ c. If the items are not available to the general public, and the
+ initial developer of the Software requests a copy of the items,
+ then you must supply one.
+
+
+ Limitations of Liability
+
+ In no event shall the initial developers or copyright holders be liable
+ for any damages whatsoever, including - but not restricted to - lost
+ revenue or profits or other direct, indirect, special, incidental or
+ consequential damages, even if they have been advised of the possibility
+ of such damages, except to the extent invariable law, if any, provides
+ otherwise.
+
+ No Warranty
+
+
+ The Software and this license document are provided AS IS with NO WARRANTY
+ OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS
+ FOR A PARTICULAR PURPOSE.
+
+ Choice of Law
+
+
+ This license is governed by the Laws of Germany. Disputes shall be settled
+ by Amtsgericht Heidelberg.
+
+
+
+
+
+
+
+ The deal.II authors
+
+
+
+
+
+
+
+
diff --git a/deal.II/doc/mail.html b/deal.II/doc/mail.html
index e1ea0cdc25..60c423c198 100644
--- a/deal.II/doc/mail.html
+++ b/deal.II/doc/mail.html
@@ -1,39 +1,39 @@
+ "http://www.w3.org/TR/html4/loose.dtd">
-
- deal.II Communications
-
-
-
-
-
-
-
-
+
+ deal.II Communications
+
+
+
+
+
+
+
+
- deal.II Communications
+ deal.II Communications
- This page summarizes your possibilities of establishing contact to other
+ This page summarizes your possibilities of establishing contact to other
deal.II users and to the deal.II
authors.
-
+
- User Group
+ User Group
- All deal.II users (and everybody interested)
- are encouraged to join the deal.II
- Discussion group on Google Groups.
+ All deal.II users (and everybody interested)
+ are encouraged to join the deal.II
+ Discussion group on Google Groups.
In order to join, go to
the deal.II
- Discussion Group web page and register your email address
+ Discussion Group web page and register your email address
there. Or click on the membership button below. This is also a
good place to browse through existing discussion
topics. There, you can manage your group membership and email
@@ -43,7 +43,7 @@
In order to post a question or a reply, you can either go to
the
the deal.II
- Discussion Group page and click on the corresponding
+ Discussion Group page and click on the corresponding
button (preferred), or you can send email
to dealii@googlegroups.com . Or
just post from the window below. Note that you have to be a
@@ -51,24 +51,24 @@
allowed to post there.
-
-
+
+
-
+
- Authors
+ Authors
Everything you consider a personal matter between you and the authors (like
- flaming them on missing items) should be sent to one of
+ flaming them on missing items) should be sent to one of
authors at dealii.org
@@ -85,18 +85,18 @@
Everything, that is not directly related to the library is to be considered
personal in this respect!
-
+
The deal.II Group
-
-
-
-
-
+
+
+
+
+
diff --git a/deal.II/doc/navbar.html b/deal.II/doc/navbar.html
index b6c72dd745..7f8c60eba6 100644
--- a/deal.II/doc/navbar.html
+++ b/deal.II/doc/navbar.html
@@ -1,53 +1,53 @@
+ "http://www.w3.org/TR/html4/loose.dtd">
-
- deal.II navigation bar
-
-
-
-
-
-
-
-
-
- Home
- dealii.org
-
-
-
-
-
- README
- FAQ
- News
- Download
- Mailing list
- Wiki
- Bug tracker
-
-
-
-
-
- Tutorial
- Manual
-
-
-
-
-
- Development
- Publications
- Presentations
- Authors
- License
-
-
-
-
-
+
+ deal.II navigation bar
+
+
+
+
+
+
+
+
+
+ Home
+ dealii.org
+
+
+
+
+
+ README
+ FAQ
+ News
+ Download
+ Mailing list
+ Wiki
+ Bug tracker
+
+
+
+
+
+ Tutorial
+ Manual
+
+
+
+
+
+ Development
+ Publications
+ Presentations
+ Authors
+ License
+
+
+
+
+
diff --git a/deal.II/doc/porting.html b/deal.II/doc/porting.html
index f6b5378e73..2e3111edaf 100644
--- a/deal.II/doc/porting.html
+++ b/deal.II/doc/porting.html
@@ -1,144 +1,144 @@
+ "http://www.w3.org/TR/html4/loose.dtd">
-
- Porting deal.II
-
-
-
-
-
-
-
-
-
-
-
- Porting deal.II to new systems
-
-
- deal.II uses very few system dependent
- features. Consequently, there is a good chance that it might also run on other
- systems besides the ones listed in the
- ReadMe file . Nevertheless,
- there are cases where some adjustments are necessary.
-
-
-
-
- Basically, all the setup of the specifics or a system is done in the
- ./configure
script that is run first. This script finds out about
- operating system, processor, and the like, and then goes on testing
- whether certain features are present, or if their absence can be
- worked around.
- ./configure
is not made for human eyes. It is in fact only a
- script generated by the autoconf
program from the files
- configure.in
and aclocal.m4
in the top-level directory of
- deal.II . The first contains the order in which
- macros are called that test for features, interspersed by shell
- script snippets that do actions depending on the results of the
- macros. The second file contains the user-defined macros used in
- configure.in
(most macros are already predefined by autoconf).
- To understand how all this works together, you will have to have some, though
- not a whole lot of,
- knowledge of both Unix shell scripting as well as of autoconf
-
-
-
- At the end of running ./configure
, it creates output files by
- replacing all occurrences of variables like @var@
in input files
- by the value of the respective environment variable in
- the configure
shell script. By convention, input files have a
- file ending .in
; the two most important input/output file pairs
- are common/Make.global_options
- and common/Make.global_options.in
as well as
- include/deal.II/base/config.h.in
- and include/deal.II/base/config.h
.
-
-
-
-
- Quick porting
-
-
- If you find something that does not work on your system, then the
- quickest way to make deal.II run on your system
- is to run configure
and change things in
- common/Make.global_options
by hand so that it works for
- you. The downside is that
- this file is overwritten next time you run ./configure
.
-
-
-
- Most often, problems on new systems are caused by the compiler not
- accepting certain flags, crashing or producing invalid code on
- optimization flags, not supporting shared libraries, and the like.
- All these problems can be solved by changing
- common/Make.global_options
, e.g. by setting the variable
- enable-shared
to no
, or by changing the compiler flags in
- the variables CXXFLAGS.g
(for debug mode) or CXXFLAGS.o
(for
- optimized mode). The most important variables in
- common/Make.global_options
are
- listed here .
-
-
-
-
- Portable porting
-
-
- While the measures shown above make deal.II run
- on your system, it does not help other users. Neither does it mean
- that the next version will run on your system unless you do the same
- changes over again. There are basically two ways to help us make
- deal.II run on your system by default:
-
-
+
+ Porting deal.II
+
+
+
+
+
+
+
+
+
+
+
+ Porting deal.II to new systems
+
- You can send us the changes you had to make so that we can include
- it into the distribution.
+ deal.II uses very few system dependent
+ features. Consequently, there is a good chance that it might also run on other
+ systems besides the ones listed in the
+ ReadMe file . Nevertheless,
+ there are cases where some adjustments are necessary.
-
+
- If you know the basics of autoconf
, or of shell scripting, you
- will be able to write tests for the changes that are necessary in
- configure.in
or aclocal.m4
yourself. There are plenty of examples, both for
- things that we do depending on the system (for example disabling
- shared libraries on certain systems) or depending on the compiler
- (for example using some optimization flags for newer gcc
- versions), and depending on the results of feature tests. For the
- latter, you may for example take a look at the macro
- DEAL_II_CHECK_ASSERT_THROW
in aclocal.m4
that shows how to
- test whether the AssertThrow
construct in
- deal.II works as intended (this check is
- necessary since some very old compiler versions get an internal compiler
- error on DEC Alpha machines for this construct).
+ Basically, all the setup of the specifics or a system is done in the
+ ./configure
script that is run first. This script finds out about
+ operating system, processor, and the like, and then goes on testing
+ whether certain features are present, or if their absence can be
+ worked around.
+ ./configure
is not made for human eyes. It is in fact only a
+ script generated by the autoconf
program from the files
+ configure.in
and aclocal.m4
in the top-level directory of
+ deal.II . The first contains the order in which
+ macros are called that test for features, interspersed by shell
+ script snippets that do actions depending on the results of the
+ macros. The second file contains the user-defined macros used in
+ configure.in
(most macros are already predefined by autoconf).
+ To understand how all this works together, you will have to have some, though
+ not a whole lot of,
+ knowledge of both Unix shell scripting as well as of autoconf
- If you have made such changes to configure.in
or
- aclocal.m4
, run autoconf
in the top-level directory to
- regenerate the configure
script, which you should then run and
- see whether the output in common/Make.global_options
matches
- your expectations.
+ At the end of running ./configure
, it creates output files by
+ replacing all occurrences of variables like @var@
in input files
+ by the value of the respective environment variable in
+ the configure
shell script. By convention, input files have a
+ file ending .in
; the two most important input/output file pairs
+ are common/Make.global_options
+ and common/Make.global_options.in
as well as
+ include/deal.II/base/config.h.in
+ and include/deal.II/base/config.h
.
+
+
+ Quick porting
+
+
+ If you find something that does not work on your system, then the
+ quickest way to make deal.II run on your system
+ is to run configure
and change things in
+ common/Make.global_options
by hand so that it works for
+ you. The downside is that
+ this file is overwritten next time you run ./configure
.
+
+
+
+ Most often, problems on new systems are caused by the compiler not
+ accepting certain flags, crashing or producing invalid code on
+ optimization flags, not supporting shared libraries, and the like.
+ All these problems can be solved by changing
+ common/Make.global_options
, e.g. by setting the variable
+ enable-shared
to no
, or by changing the compiler flags in
+ the variables CXXFLAGS.g
(for debug mode) or CXXFLAGS.o
(for
+ optimized mode). The most important variables in
+ common/Make.global_options
are
+ listed here .
+
+
+
+
+ Portable porting
+
- Of course, we would be happy to hear about the changes you made
- for your system, so that we can include them into the next version
- of the library.
+ While the measures shown above make deal.II run
+ on your system, it does not help other users. Neither does it mean
+ that the next version will run on your system unless you do the same
+ changes over again. There are basically two ways to help us make
+ deal.II run on your system by default:
+
+
+
+ You can send us the changes you had to make so that we can include
+ it into the distribution.
+
+
+
+
+ If you know the basics of autoconf
, or of shell scripting, you
+ will be able to write tests for the changes that are necessary in
+ configure.in
or aclocal.m4
yourself. There are plenty of examples, both for
+ things that we do depending on the system (for example disabling
+ shared libraries on certain systems) or depending on the compiler
+ (for example using some optimization flags for newer gcc
+ versions), and depending on the results of feature tests. For the
+ latter, you may for example take a look at the macro
+ DEAL_II_CHECK_ASSERT_THROW
in aclocal.m4
that shows how to
+ test whether the AssertThrow
construct in
+ deal.II works as intended (this check is
+ necessary since some very old compiler versions get an internal compiler
+ error on DEC Alpha machines for this construct).
+
+
+
+ If you have made such changes to configure.in
or
+ aclocal.m4
, run autoconf
in the top-level directory to
+ regenerate the configure
script, which you should then run and
+ see whether the output in common/Make.global_options
matches
+ your expectations.
+
+
+
+ Of course, we would be happy to hear about the changes you made
+ for your system, so that we can include them into the next version
+ of the library.
+
+
-
-
-
+
-
-The deal.II Group
-
+
+ The deal.II Group
+
-
+
diff --git a/deal.II/doc/readme-petsc-trilinos.html b/deal.II/doc/readme-petsc-trilinos.html
index fd35d55b3a..fc36941f77 100644
--- a/deal.II/doc/readme-petsc-trilinos.html
+++ b/deal.II/doc/readme-petsc-trilinos.html
@@ -1,27 +1,27 @@
+ "http://www.w3.org/TR/html4/loose.dtd">
-
- The deal.II Readme on interfacing to PETSc and Trilinos
-
-
-
-
-
-
-
+
+ The deal.II Readme on interfacing to PETSc and Trilinos
+
+
+
+
+
+
+
-
+
Interfacing deal.II to PETSc and Trilinos
About PETSc, Trilinos, and the deal.II
- interfaces
+ interfaces
deal.II can interface to the PETSc and
+ href="http://www.mcs.anl.gov/petsc/" target="_top">PETSc and
Trilinos software
libraries. Both of these libraries provide lots of functions for linear
algebra, among other things, for example implementations of a variety of
@@ -34,29 +34,29 @@
computers. PETSc is written in C; Trilinos is written in C++ and can be
considered to be a more modern version of PETSc though both packages are
under continuing development at their respective national laboratories.
-
+
-
+
deal.II has wrapper classes to the linear algebra
parts of both packages that provide almost the
same interfaces as the built-in deal.II linear
algebra classes. We use these interfaces for parallel computations based
on MPI since the native deal.II linear algebra classes lack this ability.
-
+
- Configuring the interfaces to PETSc and Trilinos
+ Configuring the interfaces to PETSc and Trilinos
-
+
The use of PETSc and Trilinos is optional. To use the wrapper classes,
you first have to install these packages and
point deal.II 's ./configure
to the
installation directories. This happens in similar ways for the two
packages:
-
+
- PETSc
+ PETSc
-
+
PETSc usually requires you to set the
environment variables PETSC_DIR
and PETSC_ARCH
to a path to PETSc and denoting the architecture for which PETSc is
@@ -64,9 +64,9 @@
deal.II will pick them up during
configuration, and store them. It will then also recognize that
PETSc shall be used, and enable the wrapper classes.
-
+
-
+
Alternatively, the --with-petsc=DIR
and
--with-petsc-arch=ARCH
switches to
./configure
can be used to override the values
@@ -77,9 +77,9 @@
deal.II to be configured for PETSc use, you
should specify --with-petsc=no
as a flag during
configuration.
-
+
-
+
There is an additional caveat: PETSc appears not to co-operate
well when using threads and some programs crash when deal.II is
compiled in its usual mode supporting multithreading. If you see
@@ -87,16 +87,16 @@
multithreading upon configuration of deal.II
using the
--disable-threads
switch to ./configure
.
-
+
-
+
Installing both PETSc and deal.II together can be a bit of a
challenge. A good summary of the relevant steps can be found on
the Frequently Asked Questions page.
-
+ target="_top">Frequently Asked Questions page.
+
- Note: deal.II can be installed with both
+
Note: deal.II can be installed with both
PETSc and Trilinos (see below) and they do not usually get in their
respective ways. There are, however, occasions where this is not true
and this fundamentally comes from the fact that both of these packages
@@ -111,13 +111,13 @@
difficult to understand error messages at compile or link time are
almost inevitable, and there is little the deal.II
build system can do to prevent this. Thus, don't try to do such a
- thing!
-
+ thing!
+
- Trilinos
+ Trilinos
-
+
As above, set the TRILINOS_DIR
environment variable to the path to an existing Trilinos installation,
or use the --with-trilinos=/path/to/trilinos
switch of
@@ -127,52 +127,50 @@
deal.II is configured for, i.e. if you want deal.II
to use shared libraries, then Trilinos needs to use shared libraries as
well.
-
+
-
+
deal.II and its tutorial programs use several of the
Trilinos sub-packages.
-
-
- Trilinos starting with version 10.0
-
-
- Note: Trilinos versions 10.6.x, 10.8.0, 10.8.1, 10.10.2, 10.12.1 are not compatible with
- deal.II. They contain subtle bugs related to (parallel) matrices and vectors.
- Versions tested to work are 10.4.2, 10.8.5, and 10.12.2. We recommend only using
- one of the tested versions for the time being.
-
-
-
- Due to the entirely different build system, deal.II does no longer
- support Trilinos versions prior to 10.0.
- Starting with this version, Trilinos uses cmake to configure and
- build. This is a bit cumbersome because you first have to install a
- version of cmake that is at least a cmake 2.8 prerelease, and then enter
+
+
+ Trilinos starting with version 10.0
+
+
+ Note: Trilinos versions 10.6.x, 10.8.0, 10.8.1, 10.10.2, 10.12.1 are not
+ compatible with deal.II. They contain subtle bugs related to (parallel)
+ matrices and vectors. Versions tested to work are 10.4.2, 10.8.5, and
+ 10.12.2. We recommend only using one of the tested versions for the time
+ being.
+
+
+
+ Trilinos uses cmake to configure and
+ build. This is a bit cumbersome because you have to enter
the following slightly longish set of commands:
-
-cd trilinos-10.4.2
-mkdir build
-cd build
-
-cmake -D Trilinos_ENABLE_OPTIONAL_PACKAGES:BOOL=ON \
- -D Trilinos_ENABLE_Sacado:BOOL=ON \
- -D Trilinos_ENABLE_Stratimikos:BOOL=ON \
- -D CMAKE_BUILD_TYPE:STRING=RELEASE \
- -D CMAKE_CXX_FLAGS:STRING="-g -O3" \
- -D CMAKE_C_FLAGS:STRING="-g -O3" \
- -D CMAKE_FORTRAN_FLAGS:STRING="-g -O5" \
- -D Trilinos_EXTRA_LINK_FLAGS:STRING="-lgfortran" \
- -D CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE \
- -D Trilinos_VERBOSE_CONFIGURE:BOOL=FALSE \
- -D TPL_ENABLE_MPI:BOOL=OFF \
- -D CMAKE_INSTALL_PREFIX:PATH=/w/bangerth/share/x86_64/trilinos-10.4.2 \
- -D BUILD_SHARED_LIBS:BOOL=ON `pwd`/..
-
-make
-make install
-
+
+ cd trilinos-10.4.2
+ mkdir build
+ cd build
+
+ cmake -D Trilinos_ENABLE_OPTIONAL_PACKAGES:BOOL=ON \
+ -D Trilinos_ENABLE_Sacado:BOOL=ON \
+ -D Trilinos_ENABLE_Stratimikos:BOOL=ON \
+ -D CMAKE_BUILD_TYPE:STRING=RELEASE \
+ -D CMAKE_CXX_FLAGS:STRING="-g -O3" \
+ -D CMAKE_C_FLAGS:STRING="-g -O3" \
+ -D CMAKE_FORTRAN_FLAGS:STRING="-g -O5" \
+ -D Trilinos_EXTRA_LINK_FLAGS:STRING="-lgfortran" \
+ -D CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE \
+ -D Trilinos_VERBOSE_CONFIGURE:BOOL=FALSE \
+ -D TPL_ENABLE_MPI:BOOL=OFF \
+ -D CMAKE_INSTALL_PREFIX:PATH=/w/bangerth/share/x86_64/trilinos-10.4.2 \
+ -D BUILD_SHARED_LIBS:BOOL=ON `pwd`/..
+
+ make
+ make install
+
Again, the path into which you want to install Trilinos in the second to
last line of the cmake command needs to be adjusted. Obviously, if you
@@ -182,85 +180,85 @@ make install
the -jN
flag to the calls to make
where N
is the number of compile jobs you want to run in
parallel.
-
-
-
- Trilinos sometimes searches for other libraries but can't find
- them if they are not in the usual directories or have other
- names. A common example are BLAS or LAPACK. In a case like
- this, you may have to specifically pass the directories and/or
- library names under which they can be found
- to cmake
. For example, this may mean to add the
- following flags to the call above:
-
-
- -D BLAS_LIBRARY_NAMES:STRING=goto \
- -D BLAS_LIBRARY_DIRS:STRING=/apps/GotoBLAS/lib64 \
- -D LAPACK_LIBRARY_NAMES:STRING=lapack \
- -D LAPACK_LIBRARY_DIRS:STRING=/apps/lapack-3.2.1/lib64
-
-
-
-
-
- If the deal configuration complains about
-
-configure: error: *** Your Trilinos installation is not compatible with the C++ standard selected for this compiler. See the deal.II FAQ page for a solution. ***
-
- you have encountered a bug in Trilinos. As a workaround,
- include/Sacado_cmath.hpp has to be edited (see the FAQ entry for details ).
-
-
-
- Configuring for installed Trilinos packages
-
-
- The above scheme works if Trilinos is installed in its own directory
- and header and library files are in subdirectories of the directory
- given to --with-trilinos
. This scheme doesn't work,
- however, if Trilinos has been installed as a regular package on a
- system, for example into the /usr
or /opt
- directories.
-
-
-
- In that case, paths to include and library files may be specified
- separately using the --with-trilinos-include
- and --with-trilinos-libs
switches
- to ./configure
. Alternatively, this information can also
- be passed to the configuration script by setting the environment
- variables TRILINOS_INCDIR, TRILINOS_LIBDIR
.
-
-
- Dealing with other Trilinos packages
-
-
- In the commands configuring Trilinos shown above, we have assumed a
- particular subset of Trilinos libraries that deal.II interfaces
- with. However, Trilinos has many more packages that deal.II doesn't
- use, and you can add many more -D
+
+
+
+ Trilinos sometimes searches for other libraries but can't find
+ them if they are not in the usual directories or have other
+ names. A common example are BLAS or LAPACK. In a case like
+ this, you may have to specifically pass the directories and/or
+ library names under which they can be found
+ to cmake
. For example, this may mean to add the
+ following flags to the call above:
+
+
+ -D BLAS_LIBRARY_NAMES:STRING=goto \
+ -D BLAS_LIBRARY_DIRS:STRING=/apps/GotoBLAS/lib64 \
+ -D LAPACK_LIBRARY_NAMES:STRING=lapack \
+ -D LAPACK_LIBRARY_DIRS:STRING=/apps/lapack-3.2.1/lib64
+
+
+
+
+
+ If the deal configuration complains about
+
+ configure: error: *** Your Trilinos installation is not compatible with the C++ standard selected for this compiler. See the deal.II FAQ page for a solution. ***
+
+ you have encountered a bug in Trilinos. As a workaround,
+ include/Sacado_cmath.hpp has to be edited (see the FAQ entry for details ).
+
+
+
+ Configuring for installed Trilinos packages
+
+
+ The above scheme works if Trilinos is installed in its own directory
+ and header and library files are in subdirectories of the directory
+ given to --with-trilinos
. This scheme doesn't work,
+ however, if Trilinos has been installed as a regular package on a
+ system, for example into the /usr
or /opt
+ directories.
+
+
+
+ In that case, paths to include and library files may be specified
+ separately using the --with-trilinos-include
+ and --with-trilinos-libs
switches
+ to ./configure
. Alternatively, this information can also
+ be passed to the configuration script by setting the environment
+ variables TRILINOS_INCDIR, TRILINOS_LIBDIR
.
+
+
+ Dealing with other Trilinos packages
+
+
+ In the commands configuring Trilinos shown above, we have assumed a
+ particular subset of Trilinos libraries that deal.II interfaces
+ with. However, Trilinos has many more packages that deal.II doesn't
+ use, and you can add many more -D
Trilinos_ENABLE_XXX:BOOL=ON
flags for
- package XXX
. Most of the time, no harm is done by doing
- so, but there are cases where some of the packages deal.II does
- interact with also interacts with package XXX
if the
- latter was enabled in Trilinos. One example is that Trilinos' ML
- package (which we use) uses Trilinos' Zoltan package if Zoltan is
- enable, but not if Zoltan is not enabled. That means that
- the libml.so
library may or may not depend on
- a libzoltan.so
library.
-
-
-
- Unfortunately, Trilinos' configuration framework does not record this
- in libml.so
, and it is also something that is difficult
- for the deal.II configuration framework to find out after the
- fact. Consequently, deal.II's Makefiles rely on the fact
- that only the Trilinos packages listed above were enabled. If
- that isn't the case, you may get linker warnings. The only way to
- solve this problem is to add the additional Trilinos libraries at the
- appropriate place in the list of DEAL_II_TRILINOS_LIBS
- libraries in common/Make.global_options
by hand.
-
+ package XXX
. Most of the time, no harm is done by doing
+ so, but there are cases where some of the packages deal.II does
+ interact with also interacts with package XXX
if the
+ latter was enabled in Trilinos. One example is that Trilinos' ML
+ package (which we use) uses Trilinos' Zoltan package if Zoltan is
+ enable, but not if Zoltan is not enabled. That means that
+ the libml.so
library may or may not depend on
+ a libzoltan.so
library.
+
+
+
+ Unfortunately, Trilinos' configuration framework does not record this
+ in libml.so
, and it is also something that is difficult
+ for the deal.II configuration framework to find out after the
+ fact. Consequently, deal.II's Makefiles rely on the fact
+ that only the Trilinos packages listed above were enabled. If
+ that isn't the case, you may get linker warnings. The only way to
+ solve this problem is to add the additional Trilinos libraries at the
+ appropriate place in the list of DEAL_II_TRILINOS_LIBS
+ libraries in common/Make.global_options
by hand.
+
diff --git a/deal.II/doc/readme.html b/deal.II/doc/readme.html
index c4fa3c0423..9f1f4d434a 100644
--- a/deal.II/doc/readme.html
+++ b/deal.II/doc/readme.html
@@ -1,24 +1,24 @@
+ "http://www.w3.org/TR/html4/loose.dtd">
-
- The deal.II Readme
-
-
-
-
-
-
-
+
+ The deal.II Readme
+
+
+
+
+
+
+
-
+
Installation instructions and further information
- on deal.II
+ on deal.II
- This document contains the following sections:
+ This document contains the following sections:
Problems, questions, mailing lists
License
@@ -99,75 +99,75 @@
libraries you need to have the following programs installed:
- Perl: Any Perl 5.x version should work.
-
+ Perl: Any Perl 5.x version should work.
+
- Make: We use GNU make , version 3.78 or later. Other make
- programs (i.e. non-GNU) will usually fail
- to work and are not supported.
-
+ Make: We use GNU make , version 3.78 or later. Other make
+ programs (i.e. non-GNU) will usually fail
+ to work and are not supported.
+
- For debugging programs, we have found that the
- GNU
- debugger gdb is a valuable tool. Other options
- are DDD
- and kdbg , both of
- which have graphical user interfaces. Most integrated development
- environments like kdevelop or
- Eclipse have built
- in debuggers as well.
-
+ For debugging programs, we have found that the
+ GNU
+ debugger gdb is a valuable tool. Other options
+ are DDD
+ and kdbg , both of
+ which have graphical user interfaces. Most integrated development
+ environments like kdevelop or
+ Eclipse have built
+ in debuggers as well.
+
- In case you want to generate the documentation locally on your
- machine from the header deal.II files, you need a
- copy of doxygen
- on your machine. If not, you can still work with the library and
- use the documentation provided on our homepage for reference. Note
- that in order to generate inheritance graphs for classes, doxygen
- can use the dot
program, which is part of the GraphViz
- package. If this program is not available, then doxygen attempts to
- generate text-mode graphs; these are much less nice, though.
-
+ In case you want to generate the documentation locally on your
+ machine from the header deal.II files, you need a
+ copy of doxygen
+ on your machine. If not, you can still work with the library and
+ use the documentation provided on our homepage for reference. Note
+ that in order to generate inheritance graphs for classes, doxygen
+ can use the dot
program, which is part of the GraphViz
+ package. If this program is not available, then doxygen attempts to
+ generate text-mode graphs; these are much less nice, though.
+
- 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 available almost
- everywhere. In the last few years, most new visualization
- programs have moved to support VTK/VTU format. There are a
- number of excellent programs that can read VTK and VTU, such as Visit ,
- ParaView , as well as others.
- Povray is freely available for almost all
- platforms. AVS is a commercial program available for most
- Unix flavors. Tecplot is a commercial program available for
- Windows and most Unix platforms.
-
-
-
- In case you didn't find your favorite graphics format above, adding a new
- writer to deal.II is not too difficult as only a
- simple
- intermediate format needs to be
- converted into output (without references to cells,
- nodes, types of finite elements, and the like).
-
+ 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 available almost
+ everywhere. In the last few years, most new visualization
+ programs have moved to support VTK/VTU format. There are a
+ number of excellent programs that can read VTK and VTU, such as Visit ,
+ ParaView , as well as others.
+ Povray is freely available for almost all
+ platforms. AVS is a commercial program available for most
+ Unix flavors. Tecplot is a commercial program available for
+ Windows and most Unix platforms.
+
+
+
+ In case you didn't find your favorite graphics format above, adding a new
+ writer to deal.II is not too difficult as only a
+ simple
+ intermediate format needs to be
+ converted into output (without references to cells,
+ nodes, types of finite elements, and the like).
+
@@ -199,27 +199,29 @@
Configuration
- Unpacking will create a subdirectory deal.II . First run
-
- cd deal.II
- ./configure
-
- to set some paths and find out your system parameters. configure
- supports several flags which are discussed
- further down below .
+
+ Unpacking will create a subdirectory deal.II . First run
+
+
+ cd deal.II
+ ./configure
+
+ to set some paths and find out your system parameters. configure
+ supports several flags which are discussed
+ further down below .
- ./configure
creates the
- file deal.II/common/Make.global_options
,
- which remembers paths and configuration options. Please note that it is not
- possible to move the library directory after configuration. Neither will
- the library compile, nor will your application programs be able to use it.
- You can
- use deal.II/common/Make.global_options
in the
- Makefiles
- of your own projects to set relevant paths and parameters correctly.
+ ./configure
creates the
+ file deal.II/common/Make.global_options
,
+ which remembers paths and configuration options. Please note that it is not
+ possible to move the library directory after configuration. Neither will
+ the library compile, nor will your application programs be able to use it.
+ You can
+ use deal.II/common/Make.global_options
in the
+ Makefiles
+ of your own projects to set relevant paths and parameters correctly.
@@ -228,24 +230,24 @@
output may change slightly over time, just try it):
- ========================================================================
- = Global Makefile for the deal.II libraries =
- ========================================================================
- = =
- = The following targets exist: =
- = all : debug and optimized libraries =
- = debug : the debug version of the deal.II library =
- = optimized : the optimized version of the deal.II library =
- = =
- = contrib : additional libraries in contrib, if there are any =
- = =
- = online-doc : generate the documentation in HTML format =
- = TODO : create a "TODO" file from the source files =
- = TAGS : create a TAGS file from include and source files =
- = =
- = clean : removes all object files in subdirs =
- = distclean : removes all object files, libraries, etc in subdirs =
- ========================================================================
+ ========================================================================
+ = Global Makefile for the deal.II libraries =
+ ========================================================================
+ = =
+ = The following targets exist: =
+ = all : debug and optimized libraries =
+ = debug : the debug version of the deal.II library =
+ = optimized : the optimized version of the deal.II library =
+ = =
+ = contrib : additional libraries in contrib, if there are any =
+ = =
+ = online-doc : generate the documentation in HTML format =
+ = TODO : create a "TODO" file from the source files =
+ = TAGS : create a TAGS file from include and source files =
+ = =
+ = clean : removes all object files in subdirs =
+ = distclean : removes all object files, libraries, etc in subdirs =
+ ========================================================================
@@ -292,36 +294,36 @@
resulting executables are smaller and will run between 2 and 10
times faster than the debug executables.
-
- Each library file will have a suffix that depends on the system.
- If static libraries were requested during
- configuration, then the suffix is .a
. For shared
- libraries, it is .so
(for most Unix-like and Linux
- systems), .dylib
(for Mac OS X), or .dll
- (for Cygwin/Windows).
+
+ Each library file will have a suffix that depends on the system.
+ If static libraries were requested during
+ configuration, then the suffix is .a
. For shared
+ libraries, it is .so
(for most Unix-like and Linux
+ systems), .dylib
(for Mac OS X), or .dll
+ (for Cygwin/Windows).
- Apart from the libraries, you can generate the full set of
- documentation files, by typing make online-doc
; this takes
- some minutes but you will
- have (almost) all the documentation locally on your computer. You
- will then be able to access it through this page .
+ Apart from the libraries, you can generate the full set of
+ documentation files, by typing make online-doc
; this takes
+ some minutes but you will
+ have (almost) all the documentation locally on your computer. You
+ will then be able to access it through this page .
- At this point, you have generated everything necessary to write
- programs based on deal.II . If you are new to
- deal.II , you may want to continue with the
- tutorial .
+ At this point, you have generated everything necessary to write
+ programs based on deal.II . If you are new to
+ deal.II , you may want to continue with the
+ tutorial .
Configuration options
-
+
Changing the compiler or compiler flags
To instruct configure
to use a particular compiler, there are two
@@ -342,108 +344,108 @@
- The paths to these compilers are stored in the
- common/Make.global_options
files, so the compilers
- are always used when compiling the library even if the environment
- variables are not set later on any more (for example if you are working
- within another window, or have unset the variables for other
- purposes).
+ The paths to these compilers are stored in the
+ common/Make.global_options
files, so the compilers
+ are always used when compiling the library even if the environment
+ variables are not set later on any more (for example if you are working
+ within another window, or have unset the variables for other
+ purposes).
- If all you want to do is pass different compiler flags to the
- compiler, set the standard environment variables CXXFLAGS,
- CFLAGS, LDFLAGS
before calling
- ./configure
. For example, to produce
- gprof
output, do:
-
- setenv CXXFLAGS -pg
- setenv LDFLAGS -pg
- ./configure <configure-options>
-
- The flags so set are used for both optimized and debug mode. If you want to
- set flags for only one of these two cases, you should
- set CXXFLAGSO
or CXXFLAGSG
, respectively.
+ If all you want to do is pass different compiler flags to the
+ compiler, set the standard environment variables CXXFLAGS,
+ CFLAGS, LDFLAGS
before calling
+ ./configure
. For example, to produce
+ gprof
output, do:
+
+ setenv CXXFLAGS -pg
+ setenv LDFLAGS -pg
+ ./configure <configure-options>
+
+ The flags so set are used for both optimized and debug mode. If you want to
+ set flags for only one of these two cases, you should
+ set CXXFLAGSO
or CXXFLAGSG
, respectively.
- Selecting optional behavior
+ Selecting optional behavior
You can give several flags to ./configure:
-
-
- --enable-shared
: Compile the files of deal.II into
- shared libraries, rather than statically linked
- libraries. Enabling this option saves disk space, link time and
- start-up time, so this is the default. Some systems
- might not support shared libraries, in which case you should
- call ./configure with the parameter
- --disable-shared
.
-
-
-
-
- --enable-threads
: This flag indicates that those
- parts of the library that support this compute in parallel,
- using multiple threads, making programs significantly faster on
- machines with multiple cores or processors. The default is to
- use multiple threads since most machines today have several
- processor cores. If this is not desired,
- use --disable-threads
.
-
-
-
- --enable-mpi
: If given this
- flag, ./configure
chooses mpiCC
- and mpicc
as the C++ and C compilers, respectively,
- unless the $CXX
and $CC
environment
- variables have specifically been set to something else. If these
- compilers exist and indeed support MPI, then this also switches
- on support for MPI in the library.
-
-
-
-
- --with-cpu=...
: Enable specific optimization
- flags for a particular processor. Programs compiled with these options
- might not execute on another system, but may be faster on the
- particular CPU selected.
-
-
-
- For a complete list of supported values of this switch, you may
- take a look at the file aclocal.m4
in the top-level
- directory. However, the most commonly used value
- is --with-cpu=native
, indicating that the compiler
- should determine the CPU we are running on by itself and
- optimize for it.
-
-
-
-
- --with-doxygen=...
: Select the specified executable
- of doxygen
over the one automatically found by
- ./configure
. May also be used if no
- doxygen
can be found automatically.
-
+
+
+ --enable-shared
: Compile the files of deal.II into
+ shared libraries, rather than statically linked
+ libraries. Enabling this option saves disk space, link time and
+ start-up time, so this is the default. Some systems
+ might not support shared libraries, in which case you should
+ call ./configure with the parameter
+ --disable-shared
.
+
+
+
+
+ --enable-threads
: This flag indicates that those
+ parts of the library that support this compute in parallel,
+ using multiple threads, making programs significantly faster on
+ machines with multiple cores or processors. The default is to
+ use multiple threads since most machines today have several
+ processor cores. If this is not desired,
+ use --disable-threads
.
+
+
+
+ --enable-mpi
: If given this
+ flag, ./configure
chooses mpiCC
+ and mpicc
as the C++ and C compilers, respectively,
+ unless the $CXX
and $CC
environment
+ variables have specifically been set to something else. If these
+ compilers exist and indeed support MPI, then this also switches
+ on support for MPI in the library.
+
+
+
+
+ --with-cpu=...
: Enable specific optimization
+ flags for a particular processor. Programs compiled with these options
+ might not execute on another system, but may be faster on the
+ particular CPU selected.
+
+
+
+ For a complete list of supported values of this switch, you may
+ take a look at the file aclocal.m4
in the top-level
+ directory. However, the most commonly used value
+ is --with-cpu=native
, indicating that the compiler
+ should determine the CPU we are running on by itself and
+ optimize for it.
+
+
+
+
+ --with-doxygen=...
: Select the specified executable
+ of doxygen
over the one automatically found by
+ ./configure
. May also be used if no
+ doxygen
can be found automatically.
+
- ./configure
stores the paths to some
- programs, such as the compilers or the Perl interpreter. The
- compiler which will be used when compiling the library (or your
- own application) is therefore selected at the time of
- configuration and independent of the setting of your $PATH
- environment value at the time when you run make
. If
- you want to change the compiler used, you will therefore have
- to re-run ./configure.
+ ./configure
stores the paths to some
+ programs, such as the compilers or the Perl interpreter. The
+ compiler which will be used when compiling the library (or your
+ own application) is therefore selected at the time of
+ configuration and independent of the setting of your $PATH
+ environment value at the time when you run make
. If
+ you want to change the compiler used, you will therefore have
+ to re-run ./configure.
- It is in general a good idea to run make clean
- before re-configuring.
+ It is in general a good idea to run make clean
+ before re-configuring.
@@ -461,260 +463,260 @@
- TECPLOT
- Autodetected if one of the variables $TECHOME ,
- $TEC80HOME or $TEC90HOME points to a valid installation
- of the tecio library. If enabled, allows data output in TECPLOT format.
-
-
-
- UMFPACK
- Enabled by --with-umfpack . If no argument is given,
- use the version of UMFPACK that comes bundled with deal.II . If you
- want a different version of UMFPACK, provide the path to that
- version as an argument. Enabling UMFPACK adds the
- class SparseDirectUMFPACK to the library. The default is to not
- use UMFPACK.
-
-
- If you want to use an external installation of UMFPACK, but UMFPACK was
- installed as
- part of /usr
or /opt
, instead of local
- directories in a home directory for example, you can use configure
- switches --with-umfpack-include, --with-umfpack-libs
.
-
-
-
- Note that UMFPACK has its own license; if
- you want to use it with deal.II, please read it and make sure that you
- agree with it. You can find the license of UMFPACK here . We
- include UMFPACK in the deal.II distributions courtesy of its author,
- Timothy A. Davis .
-
-
-
- Petsc
-
-
- deal.II can interface to
- the PETSc library. The simplest way to do so is to
- set the PETSC_DIR
and PETSC_ARCH
- environment variables. More information and configuration
- options can be found by issuing ./configure --help
- at the command line, or, here .
-
-
-
- (deal.II ) version 7.2 (and higher) support
- PETSc 3.x.x only; earlier releases are no longer supported.
-
-
-
-
- Slepc
-
-
- deal.II can also interface to
- the SLEPc library. The way to do it is to set
- the SLEPC_DIR
environment variable by
- passing --with-slepc=/path/to/slepc
- to deal.II 's ./configure
script.
- The use of SLEPc is optional, however, for the interface with
- SLEPc to work at all, deal.II 's interface to
- PETSc must also be configured correctly (see the notes above on
- how to do this).
-
-
-
-
- Trilinos
-
-
- deal.II can also interface
- to Trilinos . The
- simplest way to use these interfaces is to
- pass --with-trilinos=/path/to/trilinos
- to deal.II 's ./configure
script. Note
- that not all versions of Trilinos are compatible
- with deal.II . More details about compatibility and
- configuration can be found here .
-
-
-
-
- Metis
-
-
- In order to generate partitionings of triangulations, we have
- functions that
- call METIS library. METIS is a library that
- provides various methods to partition graphs, which we use to
- define which cell belongs to which part of a
- triangulation. The main point in using METIS is to generate
- partitions so that the interfaces between cell blocks are as
- small as possible. This data can, in turn, be used to
- distribute degrees of freedom onto different processors when
- using PETSc and/or SLEPc in parallel mode.
-
-
-
- As with PETSc and SLEPc, the use of METIS is optional. If you
- wish to use it, you can do so by having a METIS installation
- around at the time of calling
- ./configure
by either setting
- the METIS_DIR
environment variable denoting the
- path to the METIS library, or using the
- --with-metis
flag.
-
-
-
- (deal.II ) version 7.2 (and higher) support
- METIS 5.x.x only; earlier releases are no longer
- supported. METIS is not needed when
- using p4est
to parallelize programs, see below.
-
-
-
-
- p4est
-
-
- p4est is a library that deal.II uses to
- distribute very large meshes across multiple processors (think
- meshes with a billion cells on 10,000 processors). Using and
- installing p4est is discussed here .
- To configure deal.II with p4est, you will
- need to use the --with-path=/path/to/path
- switch to the ./configure
script.
-
-
-
-
- BLAS, LAPACK
-
- If --with-blas=blasname
and/or
- --with-lapack=lapackname
is given, provide wrappers
- around some of the BLAS and LAPACK functions, and link with the
- respective libraries. It will make sure that we link with the
- required FORTRAN libraries. If no argument is given to
- --with-blas
, then a BLAS library
- libblas.a
or libblas.so
is searched for
- in the default locations of your system, and similarly for LAPACK.
-
- If your BLAS or LAPACK libraries are not in the standard search
- path of your linker, you have to tell the linker where to find them.
- The path is not given as an argument to
- --with-blas
. Rather, you set the variable
- LDFLAGS
accordingly or make sure that the path is in
- your LD_LIBRARY_PATH
or similar. For details, please
- look up the documentation of your linker. An example configuration
- for Linux is:
-
- ./configure --with-blas=myblas LDFLAGS=-L/my/lib/
-
- This example will search for a library
- libmyblas.a
or libmyblas.so
in the
- directory /my/lib
and elsewhere in the system library
- paths.
-
- Some versions of BLAS and LAPACK need additional libraries
- to be linked with. Such an example is the
- automatically tuned
- linear algebra software (ATLAS) . The BLAS version of this
- package also needs declarations from libatlas.a
,
- so it must be included. Using the standard library names of
- atlas, the include for BLAS reads
-
- ./configure --with-blas='f77blas -latlas'
-
- assuming that the library files libf77blas.a
and
- libatlas.a
or the respective shared libraries
- *.so
are in libraries included in
- LD_LIBRARY_PATH
. LAPACK generated by ATLAS is
- included in a similar fashion.
-
-
-
- NetCDF
- Autodetected if the NETCDF_DIR environment variable
- points to a valid installation of the NetCDF
- library. Can also be enabled by
- --with-netcdf=/path/to/netcdf which overrides the path in
- $NETCDF_DIR . If enabled, deal.II allows grid
- input in NetCDF format (GridIn::read_netcdf). If NetCDF was installed as
- part of /usr
or /opt
, instead of local
- directories in a home directory for example, you can use configure
- switches --with-netcdf-include, --with-netcdf-libs
.
-
-
-
- Harwell Subroutine Library (HSL)
-
- It is possible to use some subroutines from the
- Harwell Subroutine Library (HSL) to make use
- of some sparse direct solvers. For a description of how to
- include these functions, see
- this page .
-
-
-
- MUltifrontal Massively Parallel sparse direct Solver (MUMPS)
-
- It is possible to make use some subroutines that make use of the
- MUltifrontal Massively Parallel sparse direct Solver
- (MUMPS) . For a detailed description of how to compile MUMPS (and
- some dependencies) and linking with deal.II, see
- this page .
-
-
-
- FunctionParser
-
- There is a wrapper for the
- FunctionParser
- library, which has its own license; if you want to use it with deal.II,
- please read it and make sure that you agree with it.
- You can find the license of FunctionParser
- here . We
- include FunctionParser in the deal.II distributions courtesy of its author,
- Juha Nieminen .
-
-
-
- ARPACK
-
- There is a wrapper for the eigenvalue solver
- ARPACK
- library, which has its own license; if you want to use it with deal.II,
- please read it and make sure that you agree with it.
- You can find the license of ARPACK
- here .
- For a detailed description of how to compile ARPACK and linking with deal.II, see
- this page .
-
-
-
- HDF5
-
- This adds HDF5/XDMF graphical output capabilities to deal.II. You need to
- install the HDF5 library
- separately. Configure with --with-hdf5=
and point it to
- the h5pcc or h5cc script inside your hdf5 installation.
-
- For a detailed description of how to compile HDF5 and linking with
- deal.II, see this
- page .
-
+ TECPLOT
+ Autodetected if one of the variables $TECHOME ,
+ $TEC80HOME or $TEC90HOME points to a valid installation
+ of the tecio library. If enabled, allows data output in TECPLOT format.
+
+
+
+ UMFPACK
+ Enabled by --with-umfpack . If no argument is given,
+ use the version of UMFPACK that comes bundled with deal.II . If you
+ want a different version of UMFPACK, provide the path to that
+ version as an argument. Enabling UMFPACK adds the
+ class SparseDirectUMFPACK to the library. The default is to not
+ use UMFPACK.
+
+
+ If you want to use an external installation of UMFPACK, but UMFPACK was
+ installed as
+ part of /usr
or /opt
, instead of local
+ directories in a home directory for example, you can use configure
+ switches --with-umfpack-include, --with-umfpack-libs
.
+
+
+
+ Note that UMFPACK has its own license; if
+ you want to use it with deal.II, please read it and make sure that you
+ agree with it. You can find the license of UMFPACK here . We
+ include UMFPACK in the deal.II distributions courtesy of its author,
+ Timothy A. Davis .
+
+
+
+ Petsc
+
+
+ deal.II can interface to
+ the PETSc library. The simplest way to do so is to
+ set the PETSC_DIR
and PETSC_ARCH
+ environment variables. More information and configuration
+ options can be found by issuing ./configure --help
+ at the command line, or, here .
+
+
+
+ (deal.II ) version 7.2 (and higher) support
+ PETSc 3.x.x only; earlier releases are no longer supported.
+
+
+
+
+ Slepc
+
+
+ deal.II can also interface to
+ the SLEPc library. The way to do it is to set
+ the SLEPC_DIR
environment variable by
+ passing --with-slepc=/path/to/slepc
+ to deal.II 's ./configure
script.
+ The use of SLEPc is optional, however, for the interface with
+ SLEPc to work at all, deal.II 's interface to
+ PETSc must also be configured correctly (see the notes above on
+ how to do this).
+
+
+
+
+ Trilinos
+
+
+ deal.II can also interface
+ to Trilinos . The
+ simplest way to use these interfaces is to
+ pass --with-trilinos=/path/to/trilinos
+ to deal.II 's ./configure
script. Note
+ that not all versions of Trilinos are compatible
+ with deal.II . More details about compatibility and
+ configuration can be found here .
+
+
+
+
+ Metis
+
+
+ In order to generate partitionings of triangulations, we have
+ functions that
+ call METIS library. METIS is a library that
+ provides various methods to partition graphs, which we use to
+ define which cell belongs to which part of a
+ triangulation. The main point in using METIS is to generate
+ partitions so that the interfaces between cell blocks are as
+ small as possible. This data can, in turn, be used to
+ distribute degrees of freedom onto different processors when
+ using PETSc and/or SLEPc in parallel mode.
+
+
+
+ As with PETSc and SLEPc, the use of METIS is optional. If you
+ wish to use it, you can do so by having a METIS installation
+ around at the time of calling
+ ./configure
by either setting
+ the METIS_DIR
environment variable denoting the
+ path to the METIS library, or using the
+ --with-metis
flag.
+
+
+
+ (deal.II ) version 7.2 (and higher) support
+ METIS 5.x.x only; earlier releases are no longer
+ supported. METIS is not needed when
+ using p4est
to parallelize programs, see below.
+
+
+
+
+ p4est
+
+
+ p4est is a library that deal.II uses to
+ distribute very large meshes across multiple processors (think
+ meshes with a billion cells on 10,000 processors). Using and
+ installing p4est is discussed here .
+ To configure deal.II with p4est, you will
+ need to use the --with-path=/path/to/path
+ switch to the ./configure
script.
+
+
+
+
+ BLAS, LAPACK
+
+ If --with-blas=blasname
and/or
+ --with-lapack=lapackname
is given, provide wrappers
+ around some of the BLAS and LAPACK functions, and link with the
+ respective libraries. It will make sure that we link with the
+ required FORTRAN libraries. If no argument is given to
+ --with-blas
, then a BLAS library
+ libblas.a
or libblas.so
is searched for
+ in the default locations of your system, and similarly for LAPACK.
+
+ If your BLAS or LAPACK libraries are not in the standard search
+ path of your linker, you have to tell the linker where to find them.
+ The path is not given as an argument to
+ --with-blas
. Rather, you set the variable
+ LDFLAGS
accordingly or make sure that the path is in
+ your LD_LIBRARY_PATH
or similar. For details, please
+ look up the documentation of your linker. An example configuration
+ for Linux is:
+
+ ./configure --with-blas=myblas LDFLAGS=-L/my/lib/
+
+ This example will search for a library
+ libmyblas.a
or libmyblas.so
in the
+ directory /my/lib
and elsewhere in the system library
+ paths.
+
+ Some versions of BLAS and LAPACK need additional libraries
+ to be linked with. Such an example is the
+ automatically tuned
+ linear algebra software (ATLAS) . The BLAS version of this
+ package also needs declarations from libatlas.a
,
+ so it must be included. Using the standard library names of
+ atlas, the include for BLAS reads
+
+ ./configure --with-blas='f77blas -latlas'
+
+ assuming that the library files libf77blas.a
and
+ libatlas.a
or the respective shared libraries
+ *.so
are in libraries included in
+ LD_LIBRARY_PATH
. LAPACK generated by ATLAS is
+ included in a similar fashion.
+
+
+
+ NetCDF
+ Autodetected if the NETCDF_DIR environment variable
+ points to a valid installation of the NetCDF
+ library. Can also be enabled by
+ --with-netcdf=/path/to/netcdf which overrides the path in
+ $NETCDF_DIR . If enabled, deal.II allows grid
+ input in NetCDF format (GridIn::read_netcdf). If NetCDF was installed as
+ part of /usr
or /opt
, instead of local
+ directories in a home directory for example, you can use configure
+ switches --with-netcdf-include, --with-netcdf-libs
.
+
+
+
+ Harwell Subroutine Library (HSL)
+
+ It is possible to use some subroutines from the
+ Harwell Subroutine Library (HSL) to make use
+ of some sparse direct solvers. For a description of how to
+ include these functions, see
+ this page .
+
+
+
+ MUltifrontal Massively Parallel sparse direct Solver (MUMPS)
+
+ It is possible to make use some subroutines that make use of the
+ MUltifrontal Massively Parallel sparse direct Solver
+ (MUMPS) . For a detailed description of how to compile MUMPS (and
+ some dependencies) and linking with deal.II, see
+ this page .
+
+
+
+ FunctionParser
+
+ There is a wrapper for the
+ FunctionParser
+ library, which has its own license; if you want to use it with deal.II,
+ please read it and make sure that you agree with it.
+ You can find the license of FunctionParser
+ here . We
+ include FunctionParser in the deal.II distributions courtesy of its author,
+ Juha Nieminen .
+
+
+
+ ARPACK
+
+ There is a wrapper for the eigenvalue solver
+ ARPACK
+ library, which has its own license; if you want to use it with deal.II,
+ please read it and make sure that you agree with it.
+ You can find the license of ARPACK
+ here .
+ For a detailed description of how to compile ARPACK and linking with deal.II, see
+ this page .
+
+
+
+ HDF5
+
+ This adds HDF5/XDMF graphical output capabilities to deal.II. You need to
+ install the HDF5 library
+ separately. Configure with --with-hdf5=
and point it to
+ the h5pcc or h5cc script inside your hdf5 installation.
+
+ For a detailed description of how to compile HDF5 and linking with
+ deal.II, see this
+ page .
+
@@ -723,88 +725,88 @@
Problems, questions, mailing lists
- Some information beyond what is covered in the documentation of
- the library may be found on the
- deal.II
- homepage , or in the
- Frequently Asked Questions section.
- If you don't find what you're looking for,
- feel free to ask on our
- mailing list .
+ Some information beyond what is covered in the documentation of
+ the library may be found on the
+ deal.II
+ homepage , or in the
+ Frequently Asked Questions section.
+ If you don't find what you're looking for,
+ feel free to ask on our
+ mailing list .
- For specific problems, send email to either
- Wolfgang.Bangerth , Timo.Heister ,
- Guido.Kanschat , or simply authors at
- dealii.org .
+ For specific problems, send email to either
+ Wolfgang.Bangerth , Timo.Heister ,
+ Guido.Kanschat , or simply authors at
+ dealii.org .
- We are interested in any feedback, whether positive or negative,
- in order to determine the directions of future work on the
- library. We are also very much interested in incorporating any
- work and bug fixes by third parties into the library. Of course,
- you will be credited for this on our home page.
+ We are interested in any feedback, whether positive or negative,
+ in order to determine the directions of future work on the
+ library. We are also very much interested in incorporating any
+ work and bug fixes by third parties into the library. Of course,
+ you will be credited for this on our home page.
- Our institutes are evaluated at regular intervals. Consequently,
- we are interested in documenting the use of the programs and
- libraries we create. To this end, we collect
- publications with results obtained using deal.II . Please
- let us know if you have publications that we can add
- to this page .
+ Our institutes are evaluated at regular intervals. Consequently,
+ we are interested in documenting the use of the programs and
+ libraries we create. To this end, we collect
+ publications with results obtained using deal.II . Please
+ let us know if you have publications that we can add
+ to this page .
License
- We have placed deal.II under an Open Source
- license, which allows you to use the library free of charge. You
- are guaranteed full access to the source code and are encouraged
- to help in the further development of the library. Follow this link to read the full
- text of the license,
+ We have placed deal.II under an Open Source
+ license, which allows you to use the library free of charge. You
+ are guaranteed full access to the source code and are encouraged
+ to help in the further development of the library. Follow this link to read the full
+ text of the license,
- The basics of the license are in short:
-
-
- The library comes free of charge for all users, but
- we keep a copyright in it. We will grant everyone access to
- the library and its source code, provided they keep to the
- license .
+ The basics of the license are in short:
+
+
+ The library comes free of charge for all users, but
+ we keep a copyright in it. We will grant everyone access to
+ the library and its source code, provided they keep to the
+ license .
-
- The libraries may not be stripped of our copyright. We would
- appreciate being contacted if you want to use the library
- commercially.
+
+ The libraries may not be stripped of our copyright. We would
+ appreciate being contacted if you want to use the library
+ commercially.
-
- We ask that scientific publications presenting results obtained with this
- libraries acknowledge its use. Please cite one of the papers referenced
- here .
-
+
+ We ask that scientific publications presenting results obtained with this
+ libraries acknowledge its use. Please cite one of the papers referenced
+ here .
+
- deal.II can interface with a number of other packages that you have to install
- yourself. They are, of course, covered by their own licenses. In addition,
- deal.II comes with copies of UMFPACK and
- FunctionParser ,
- courtesy of their authors. UMFPACK and FunctionParser are covered by their
- own licenses; please refer to their webpages to read them.
-
-
-
-
- The deal.II Group
- $Date$
-
+ deal.II can interface with a number of other packages that you have to install
+ yourself. They are, of course, covered by their own licenses. In addition,
+ deal.II comes with copies of UMFPACK and
+ FunctionParser ,
+ courtesy of their authors. UMFPACK and FunctionParser are covered by their
+ own licenses; please refer to their webpages to read them.
+
+
+
+
+ The deal.II Group
+ $Date$
+