<commit_before>/**
 * @page changes_after_7_0 Changes after Version 7.0

<p>
This is the list of changes made after the release of
deal.II version 7.0.0.
All entries are signed with the names of the author.
</p>


<a name="incompatible"></a>
<h3 style="color:red">Incompatibilities</h3>

<p style="color:red">
Following are a few modifications to the library that unfortunately
are incompatible with previous versions of the library, but which we
deem necessary for the future maintainability of the
library. Unfortunately, some of these changes will require
modifications to application programs. We apologize for the
inconvenience this causes.
</p>

<ol>
<li> Changed: The PETScWrapper::VectorBase class tried to keep track of
whether the last operation done on a vector was to add to an element or to
write into one. If the previous such operation was of a different kind
than the current one, we would flush buffers (see the description in
@ref GlossCompress). However, trying to do this automatically turned
out to be an endless source of hard-to-find bugs in %parallel programs.
The scheme has therefore now been changed to the following: the class
keeps track of the previous operation and if it differs from the
current one, reports an error stating that the user needs to call
PETScWrapper::VectorBase::compress() instead.
<br>
(<NAME>, 2011/08/03)

<li> Changed: The classes Tensor, SymmetricTensor and Point now have an
additional template argument for the number type. While a default template
value of double ensures that all old code is still valid, this
change invalidates forward declarations of the form <code>template
<int dim@> class Point</code> that might be present in user-defined header
files. Now forward declarations need to specify the type as well, i.e.,
<code>template <int dim, typename Number> class Point</code>. However,
nothing changes if the full declarations in <code>deal.II/base/tensor.h,
deal.II/base/symmetric_tensor.h</code> and <code>deal.II/base/point.h</code>
are included.
<br>
(<NAME>, 2011/08/02)

<li> Removed: deal.II no longer supports Trilinos versions prior to 10.0.
<br>
(<NAME>, 2011/06/29)

<li> Changed: deal.II has a namespace std_cxx1x that was used to
import classes from BOOST that are part of the upcoming C++ 1x standard. On
the other hand, if your compiler supported a sufficiently large subset
of C++ 1x, we had code that simply did
@code
  namespace std_cxx1x = std;
@endcode
allowing you to refer to everything that was part of the compiler's namespace
<code>std</code> under the alternative name. This turned out to be untenable
in connection to the changed outlined below for _1, _2, etc. Consequently,
if the compiler used supports C++ 1x, we now selectively import elements of the
compiler's namespace std into namespace std_cxx1x as well. This may lead to
incompatibilities if you are already using elements of the C++ 1x
standard by refering to them through the std_cxx1x namespace and these elements
are not on the list of selectively imported ones.
<br>
(<NAME>, 2011/05/29)

<li> Changed: Previously, placeholder arguments like _1, _2, etc that are used
in conjunction with the std_cxx1x::bind function could be referenced as if
they are part of the global namespace. This was achieved by importing the
corresponding elements of namespace std::placeholders into the global namespace
if your compiler supported this part of the C++ 1x standard, or otherwise using
the BOOST counterparts which are already in the global namespace. However,
this leads to a conflict if one has a C++ 1x enabled compiler (e.g. GCC 4.6)
<i>and</i> includes certain BOOST headers, since the importation of symbols
into the global namespace now leads to ambiguous names. The only solution to
the problem is to not import names into the global namespace, but rather
import the names from either BOOST or namespace std into the deal.II namespace
std_cxx1x. The downside is that all code that uses _1, _2, etc needs to be
changed to use std_cxx1x::_1, std_cxx1x::_2, etc from now on.
<br>
(<NAME>, 2011/05/29)
</ol>


<-- ----------- GENERAL IMPROVEMENTS ----------------- -->

<a name="general"></a>
<h3>General</h3>

<ol>
<li> Extended: Many operations on objects of
type Point<0>, Quadrature<0>, etc
(including creation) were previously forbidden since such objects do not make
much sense. However, this prevented a lot of code that could otherwise work
in a dimension independent way, from working in 1d, e.g. integration on
faces. Many of these places have now been cleaned up and work.
<br>
(<NAME>, 2011/08/12)

<li> Extended: The classes Tensor, SymmetricTensor and Point now have an
additional template argument for the number type. It is now possible to base
these classes on any abstract data type that implements basic arithmetic<commit_msg>Mention changes to tutorial namespacing.<commit_after>/**
 * @page changes_after_7_0 Changes after Version 7.0

<p>
This is the list of changes made after the release of
deal.II version 7.0.0.
All entries are signed with the names of the author.
</p>


<a name="incompatible"></a>
<h3 style="color:red">Incompatibilities</h3>

<p style="color:red">
Following are a few modifications to the library that unfortunately
are incompatible with previous versions of the library, but which we
deem necessary for the future maintainability of the
library. Unfortunately, some of these changes will require
modifications to application programs. We apologize for the
inconvenience this causes.
</p>

<ol>
<li> Changed: The PETScWrapper::VectorBase class tried to keep track of
whether the last operation done on a vector was to add to an element or to
write into one. If the previous such operation was of a different kind
than the current one, we would flush buffers (see the description in
@ref GlossCompress). However, trying to do this automatically turned
out to be an endless source of hard-to-find bugs in %parallel programs.
The scheme has therefore now been changed to the following: the class
keeps track of the previous operation and if it differs from the
current one, reports an error stating that the user needs to call
PETScWrapper::VectorBase::compress() instead.
<br>
(<NAME>, 2011/08/03)

<li> Changed: The classes Tensor, SymmetricTensor and Point now have an
additional template argument for the number type. While a default template
value of double ensures that all old code is still valid, this
change invalidates forward declarations of the form <code>template
<int dim@> class Point</code> that might be present in user-defined header
files. Now forward declarations need to specify the type as well, i.e.,
<code>template <int dim, typename Number> class Point</code>. However,
nothing changes if the full declarations in <code>deal.II/base/tensor.h,
deal.II/base/symmetric_tensor.h</code> and <code>deal.II/base/point.h</code>
are included.
<br>
(<NAME>, 2011/08/02)

<li> Removed: deal.II no longer supports Trilinos versions prior to 10.0.
<br>
(Wolfgang Bangerth, 2011/06/29)

<li> Changed: deal.II has a namespace std_cxx1x that was used to
import classes from BOOST that are part of the upcoming C++ 1x standard. On
the other hand, if your compiler supported a sufficiently large subset
of C++ 1x, we had code that simply did
@code
  namespace std_cxx1x = std;
@endcode
allowing you to refer to everything that was part of the compiler's namespace
<code>std</code> under the alternative name. This turned out to be untenable
in connection to the changed outlined below for _1, _2, etc. Consequently,
if the compiler used supports C++ 1x, we now selectively import elements of the
compiler's namespace std into namespace std_cxx1x as well. This may lead to
incompatibilities if you are already using elements of the C++ 1x
standard by refering to them through the std_cxx1x namespace and these elements
are not on the list of selectively imported ones.
<br>
(W<NAME>, 2011/05/29)

<li> Changed: Previously, placeholder arguments like _1, _2, etc that are used
in conjunction with the std_cxx1x::bind function could be referenced as if
they are part of the global namespace. This was achieved by importing the
corresponding elements of namespace std::placeholders into the global namespace
if your compiler supported this part of the C++ 1x standard, or otherwise using
the BOOST counterparts which are already in the global namespace. However,
this leads to a conflict if one has a C++ 1x enabled compiler (e.g. GCC 4.6)
<i>and</i> includes certain BOOST headers, since the importation of symbols
into the global namespace now leads to ambiguous names. The only solution to
the problem is to not import names into the global namespace, but rather
import the names from either BOOST or namespace std into the deal.II namespace
std_cxx1x. The downside is that all code that uses _1, _2, etc needs to be
changed to use std_cxx1x::_1, std_cxx1x::_2, etc from now on.
<br>
(<NAME>, 2011/05/29)
</ol>


<-- ----------- GENERAL IMPROVEMENTS ----------------- -->

<a name="general"></a>
<h3>General</h3>

<ol>
<li> Changed: Several of the tutorial programs used the same class
names, often <code>LaplaceProblem</code> in the earlier programs.
There is nothing inherently wrong with this, since these are
entirely separate programs, but this sometimes confused
integrated development environments because searching for
individual symbols would turn up several occurrences in different
files. To make this a bit simpler, the main classes for step-3
through step-6 were renamed to <code>StepX</code> (steps 1 and 2
do not have a main class).
<br>
(<NAME>, <NAME> 2011/08/16)

<li> Extended: Many operations on objects of
type Point<0>, Quadrature<0>, etc
(including creation) were previously forbidden since such objects do not make
much sense. However, this prevented a lot of code that could otherwise work
in a dimension independent way, from working in 1d, e.g. integration on
faces. Many of these places have now been cleaned up and work.
<br>
(<NAME>, 2011/08/12)

<li> Extended: The classes Tensor, SymmetricTensor and Point now have an
additional template argument for the number type. It is now possible to base
these classes on any abstract data type that implements basic arithmetic
{'fraction_non_alphanumeric': 0.07056056448451588, 'fraction_numerical': 0.01862014896119169, 'mean_word_length': 4.635008282716731, 'pattern_counts': {'":': 0, '<': 112, '<?xml version=': 0, '>': 112, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6169981', 'n_tokens_mistral': 2909, 'n_tokens_neox': 2693, 'n_words': 1522}