--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <link href="../screen.css" rel="StyleSheet">
+ <title>The deal.II news page</title>
+ <meta name="author" content="the deal.II authors <authors@dealii.org>">
+ <meta name="copyright" content="Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 by the deal.II authors">
+ <meta name="date" content="$Date$">
+ <meta name="keywords" content="deal.II"></head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<body>
+
+
+<h2>Changes after Version 5.1</h2>
+
+<p>
+This is the list of changes made after the release of
+<acronym>deal.II</acronym> version 5.1. It is subdivided into changes
+made to the three sub-libraries <a href="#base">base</a>,
+<a href="#lac">lac</a>, and <a href="#deal.II">deal.II</a>, as well as
+changes to the <a href="#general">general infrastructure,
+documentation, etc</a>.
+</p>
+
+<p>
+All entries are signed with the names of the author. Regular
+contributor's names are abbreviated by WB (Wolfgang Bangerth), GK
+(Guido Kanschat), RH (Ralf Hartmann).
+</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> <p>
+ Changed: The way boundary constraints were handled in the
+ step-17 tutorial program was conceptually flawed. We tried to
+ eliminate boundary nodes locally on the cell level, and hanging
+ node constraints subsequently when transferring into the global
+ matrix. However, this doesn't work in general: the elimination
+ of hanging node constraints could re-populate rows and columns
+ that had already been vacated during boundary node
+ elimination. At the end of a long though process, we came to
+ the conclusion that it is impossible to revert the traditional
+ order of operations: first eliminate all hanging node
+ constraints, then eliminate all boundary nodes. This leads to a
+ situation where the <code
+ class="member">MatrixTools::local_apply_boundary_values</code>
+ function is not very useful any more, except for the special
+ case where there are no hanging nodes. The step-17 example
+ program has therefore been changed to use the <code
+ class="member">MatrixTools::apply_boundary_values</code>
+ function again, though hanging node elimination still happens
+ during transfer into the global matrix.
+ <br>
+ (WB 2005/05/05)
+ </p>
+
+ <li> <p>
+ Changed: The class <code
+ class="class">MGCoarseGridLACIteration</code> lost two template
+ arguments. Since the matrix and preconditioner are now stored
+ in form of <code class="class">PointerMatrix</code> objects,
+ handling of the class is much simpler, in particular when
+ exchanging preconditioners.
+ <br>
+ (GK 2005/05/03)
+ </p>
+
+ <li> <p>
+ Changed: The template argument of <code
+ class="class">BlockMatrixArray</code> was changed to
+ <tt>number</tt>, equal to the same argument of the used <code
+ class="class">BlockVector</code>. Furthermore, its constructor
+ requires an additional argument of type <code
+ class="class">VectorMemory<Vector<number> ></code>
+ providing space for auxiliary vectors. Since the entries are
+ now of type <code class="class">PointerMatrixBase</code>, even
+ matrices with blocks of different types can be constructed.
+ <br>
+ (GK 2005/03/21)
+ </p>
+
+ <li> <p>
+ Changed: The <code class="class">GeometryInfo</code>::<code
+ class="member">vertices_adjacent_to_line</code> function has
+ been renamed to <code class="class">GeometryInfo</code>::<code
+ class="member">line_to_cell_vertices</code> to be named
+ analogous to the <code
+ class="member">face_to_cell_vertices</code>, <code
+ class="member">face_to_cell_lines</code> and <code
+ class="member">child_to_cell_coordinates</code> functions.
+ <br>
+ (RH 2005/03/14)
+ </p>
+
+ <li> <p>
+ Changed: the file <tt>multigrid/mg_dof_tools.h</tt> was renamed
+ to <tt>multigrid/mg_tools.h</tt> in order to match the name of
+ the class contained.
+ <br>
+ (GK 2005/03/09)
+ </p>
+
+ <li> <p>
+ Changed: <code class="class">DoFTools</code>::<code
+ class="member">make_flux_sparsity_pattern</code>, <code
+ class="class">MGTools</code>::<code
+ class="member">make_flux_sparsity_pattern</code> and similar
+ functions in these classes do not receive arguments of type
+ <code class="class">FullMatrix<double></code>
+ anymore. Instead, they get a <code
+ class="class">Table<2,DoFTools::Coupling></code>, which
+ contains more meaningful enums.
+ <br>
+ (GK 2005/03/09)
+ </p>
+
+ <li> <p>
+ Changed: <code class="class">Multigrid</code>::<code
+ class="member">Multigrid</code> receives an argument
+ determining the type of multigrid cycle istead of the minimum
+ and maximum levels. The latter were rarely used anyway and can
+ be modified by <code class="member">set_minlevel()</code> and
+ <code class="member">set_maxlevel()</code>
+ <br>
+ (GK 2005/03/09)
+ </p>
+</ol>
+
+<a name="general"></a>
+<h3>General</h3>
+
+<ol>
+ <li> <p> New:
+ The step-19 tutorial demonstrates handling of parameters from a
+ parameter file, as well as some simple techniques for merging output
+ from parallel computations.
+ <br>
+ (WB 2005/09/09)
+ </p>
+
+ <li> <p> New:
+ The step-18 example program shows how to solve a quasi-static elasticity
+ problem with moving meshes, and this all in parallel.
+ <br>
+ (WB 2005/08/11)
+ </p>
+
+ <li> <p>
+ Changed: The files
+ <tt>deal.II/include/grid/geometry_info.h</tt> and
+ <tt>deal.II/source/grid/geometry_info.cc</tt> have been moved
+ to <tt>base/include/base</tt> and <tt>base/source</tt>,
+ respectively. A redirection header file has been left in the
+ old location for compatibility.
+ <br>
+ (GK, 2005/07/19)
+ </p>
+
+ <li> <p>
+ Changed: Cygwin has problems linking against deal.II DLLs if you
+ link against more than one dimension dependent library. The linker
+ might issue error messages about multiple defined symbols. This is now
+ detected, and the linker is forced to ignore these errors. However, if
+ you accidentally defined symbols twice you might have a hard time
+ debugging now... In this case remove the <code>-Xlinker
+ --allow-multiple-definition</code> flag from Make.global_options.
+ <br>
+ (Ralf B. Schulz, 2005/07/13)
+ </p>
+
+ <li> <p>
+ Changed: Under Cygwin, linking against LAPACK and UMFPACK did
+ not work. This is now fixed in the Makefiles. Changes only
+ affect Cygwin.
+ <br>
+ (Ralf B. Schulz, 2005/07/02)
+ </p>
+
+ <li> <p>
+ New: The latest version of UMFPACK, version 4.4, has been imported.
+ <br>
+ (WB, 2005/06/30)
+ </p>
+
+ <li> <p>
+ Fixed: The documentation pages did not contain information
+ about the <code>Threads::spawn</code> functions. This is now fixed.
+ <br>
+ (WB, 2005/05/12)
+ </p>
+
+ <li> <p>
+ Fixed: The step-17 example program had a stupid mistake in that it
+ initializes the <code>pcout</code> variable with an uninitialized value
+ of <code>mpi_communicator</code>. While this seems to have worked for
+ some older MPI implementations, this is no longer the case on some
+ other systems. It is now fixed.
+ <br>
+ (WB, 2005/04/18)
+ </p>
+
+ <li> <p>
+ New: If there are references to other example programs in any of the
+ step-XX programs, then they will now show up as crosslinks in the HTML
+ version for simpler navigation of the tutorial.
+ <br>
+ (WB, 2005/04/04)
+ </p>
+
+ <li> <p>
+ New: The configuration script can now enable special optimizations for
+ x86-like processors if called with the <code>--with-cpu=...</code> option.
+ This can decrease computation time by up to 30% on certain systems.
+ The configuration flag has already existed for PowerPC64 processors, but
+ was not documented. Documentation has been added.
+ <br>
+ (Ralf B. Schulz, 2005/03/10)
+ </p>
+
+ <li> <p>
+ Fixed: When compiling shared libraries on CygWin systems, warnings
+ concerning the <code>-fPIC</code> option were issued by the compiler.
+ This is now fixed.
+ Also, configure now issues a message at the end that you should include
+ the DLL-path in your <code>.bash_profile</code> file on these systems.
+ <br>
+ (Ralf B. Schulz, 2005/03/10)
+ </p>
+
+ <li> <p>
+ Fixed: On certain systems running CygWin, a call to socket functions
+ like <code>gethostname()</code> could cause deal.II to hang. The reason
+ seems to be that the call disables long double computations which
+ revert to just double precision. This then leads to an endless loop in
+ computing weights for quadrature points because the convergence
+ criterion cannot be reached with simple double precision. This is now
+ fixed by disabling the call to <code>gethostname()</code> on these
+ systems. A new preprocessor variable, <code>DEAL_II_BROKEN_SOCKETS</code>
+ has been added to <code>base/config.h</code> which is defined on
+ affected systems.
+ <br>
+ (Ralf B. Schulz, WB, 2005/03/02)
+ </p>
+
+ <li> <p>
+ Fixed: The step-16 example program wasn't listed in the
+ navigation bar of the tutorial section, although it was in the
+ table of contents. This is fixed now.
+ <br>
+ (WB, 2005/02/09)
+ </p>
+</ol>
+
+
+
+<a name="base"></a>
+<h3>base</h3>
+
+<ol>
+ <li> <p>
+ New: Class <code class="class">PathSearch</code> allows to find
+ a file in a sequence of directories and by appending suffixes. The class
+ generates the complete file name including directory prefix and suffix
+ such that it can be used for subsequently opening the file.
+ <br>
+ (GK, 2005/09/14)
+ </p>
+
+ <li> <p>
+ Extended: The <code>ParameterHandler</code> class now does a much better
+ job generating output in the <code>print_parameters()</code> function if
+ parameters have documentation strings attached to them. See the step-19
+ example program output for this.
+ <br>
+ (WB, 2005/09/12)
+ </p>
+
+ <li> <p>
+ New: There is now a namespace <code>Utilities</code> that contains
+ functions that are not particularly specific to finite element codes,
+ but are needed in various contexts of application programs anyway.
+ <br>
+ (WB, 2005/08/11)
+ </p>
+
+ <li> <p>
+ Changed: <code>ParameterHandler::get_bool()</code> only accepted
+ "true" or "false" as boolean values, now it also considers "yes"
+ and "no" as "true" and "false" respectively.
+ <br>
+ (Ralf B. Schulz, 2005/07/19)
+ </p>
+
+ <li> <p>
+ Removed: The <code>write_multigrid</code> flag in <code
+ class="member">DataOutBase::DXFlags</code>
+ has been removed, since it wasn't used anywhere.
+ <br>
+ (WB, 2005/07/14)
+ </p>
+
+ <li> <p>
+ New: A function <code class="member">
+ deal_II_exceptions::disable_abort_on_exception</code> now allows
+ to disable program abortion when an assertion fails. This is used
+ in regression tests.
+ <br>
+ (Ralf B. Schulz, 2005/07/13)
+ </p>
+
+ <li> <p>
+ Improved: The <code class="class">QProjector</code> has functions
+ <code class="class">project_to_face</code> and
+ <code class="class">project_to_subface</code>
+ returning a <code class="class">Quadrature</code> object
+ <br>
+ (GK, 2005/07/12)
+ </p>
+
+ <li> <p>
+ Changed: The <code
+ class="member">ParameterHandler::print_parameters</code>
+ function now puts two newlines between regular entries and
+ subsection listings for better readability.
+ <br>
+ (WB, 2005/07/05)
+ </p>
+
+ <li> <p>
+ Changed: The <code
+ class="member">ParameterHandler::print_parameters</code>
+ function now omits printing subsections if they and the contained
+ sub-subsections contain no entries.
+ <br>
+ (WB, 2005/07/05)
+ </p>
+
+ <li> <p>
+ Changed: Some of the dimension independent functions in the <code
+ class="class">DataOutInterface</code> class have been moved into the
+ <code class="class">DataOutBase</code> class that does not depend on any
+ dimension template parameters. Since the latter is a base class of the
+ former, there should be no problems for application programs.
+ <br>
+ (WB, 2005/07/01)
+ </p>
+
+ <li> <p>
+ Fixed: Several of the functions in class <code
+ class="class">ConstantFunction</code> did not check whether the
+ component handed to them was valid. In essence, even a scalar
+ function could be evaluated for component 42, and the function
+ ignored how many components it was declared to have. This is
+ now fixed.
+ <br>
+ (WB, 2005/06/30)
+ </p>
+
+ <li> <p>
+ Changed: The functions in class <code
+ class="class">ExceptionBase</code> have been renamed to conform
+ to our coding conventions that function names be all lower-case
+ with words separated by underscores. This is technically an
+ incompatible change, since these functions were publicly
+ visible, but were usually hidden behind macros and not used
+ anywhere explicitly in the library; we hope that this also
+ holds for external code.
+ <br>
+ (WB, 2005/06/30)
+ </p>
+
+ <li> <p>
+ New: The GNU C library supports access to the call stack. For
+ systems using this library, the <code
+ class="class">ExceptionBase</code> class now uses these
+ functions to outputs the callstack when the exception is
+ created.
+ <br>
+ (Ralf B. Schulz, 2005/06/30)
+ </p>
+
+ <li> <p>
+ Improved: The class <code class="class">Quadrature</code> has a new
+ constructor generating the <tt>dim</tt>-dimensional tensor product of a
+ one-dimensonal formula directly.
+ <br>
+ (GK, 2005/06/10)
+ </p>
+
+ <li> <p>
+ New: The class <code
+ class="class">Polynomials::RaviartThomas</code> implements
+ Raviart-Thomas polynomials of arbitrary order in 2d and 3d.
+ <br>
+ (GK, 2005/05/30)
+ </p>
+
+ <li> <p>
+ New: The <code class="class">Polynomials::Lagrange</code> class
+ allows generation of Lagrange interpolation polynomials for
+ arbitrary point sets. In order to get better interpolation for
+ higher order polynomials, <code
+ class="class">QGaussLobatto</code> has been added to produce
+ interpolation point sets clustering at the boundary of a cell
+ (weights are not computed yet).
+ <br>
+ (GK, 2005/05/30)
+ </p>
+
+ <li> <p>
+ New: The <code class="class">QAnisotropic</code> class allows
+ generation of quadrature rules of different order in each
+ space dimension.
+ <br>
+ (GK, 2005/05/24)
+ </p>
+
+ <li> <p>
+ New: The <code class="class">Tensor</code> classes now
+ have member functions that compute the Frobenius norm and its
+ square. There are also global <code>operator*</code> functions
+ that compute the contraction over a pair of indices of tensors.
+ <br>
+ (WB, 2005/04/06)
+ </p>
+
+ <li> <p>
+ New: The <code class="member">DataOutBase</code> class now
+ allows to write data in a new intermediate format that
+ basically dumps the raw information available in patches.
+ <br>
+ (WB, 2005/04/05)
+ </p>
+
+ <li> <p>
+ New: The <code class="member">DataOutReader</code> class allows
+ to read data back in from a file into which it has been written
+ using intermediate format. From there, it can then be converted
+ into any of the supported graphics formats.
+ <br>
+ (WB, 2005/04/05)
+ </p>
+
+ <li> <p>
+ New: There is now a <code
+ class="member">operator >> (std::istream &in,
+ Point<dim> &p)</code>, a function that had apparently been
+ missing for a long time already.
+ <br>
+ (WB, 2005/04/05)
+ </p>
+
+ <li> <p>
+ New: The new function <code
+ class="member">double_contract</code> contracts two tensors of
+ rank 4 and 2 into a tensor of rank 2, by contracting over two
+ indices at the same time.
+ <br>
+ (WB, 2005/03/29)
+ </p>
+
+ <li> <p>
+ New: The new function <code
+ class="member">TableIndicesBase::sort</code> allows to sort the indices
+ in ascending order. This is useful for cases where the order of indices
+ is irrelevant (for example in symmetric tables).
+ <br>
+ (WB, 2005/03/29)
+ </p>
+
+ <li> <p>
+ New: There is a new class <code class="class">SymmetricTensor</code>
+ that provides storage and operations for symmetric tensors.
+ <br>
+ (WB, 2005/03/28)
+ </p>
+
+ <li> <p>
+ New: Class <code class="class">Subscriptor</code> receives a
+ text argument allowing to identify the violating pointer more
+ easily. The additional feature is being incorporated into <code
+ class="class">SmartPointer</code> constructors throughout the
+ library.
+ <br>
+ (GK, 2005/03/16)
+ </p>
+
+ <li> <p>
+ New: Class <code class="class">FunctionParser</code>. Wrapper
+ class for the fparser library (see
+ <a href="http://www.students.tut.fi/~warp/FunctionParser/">
+ http://www.students.tut.fi/~warp/FunctionParser/</a>).
+ <br>
+ (Luca Heltai, 2005/03/07).
+ </p>
+
+ <li> <p>
+ Fixed: The class <code
+ class="class">MultipleParameterLoop::UserClass</code> had only
+ virtual abstract functions but no virtual destructor. This caused
+ warnings with some compilers, and is generally bad practice
+ anyway. This is now fixed. The same holds with respect to the class
+ <code class="class">DataOutInterface</code>.
+ <br>
+ (WB, 2005/02/20)
+ </p>
+</ol>
+
+
+
+<a name="lac"></a>
+<h3>lac</h3>
+
+<ol>
+ <li> <p>
+ New: The new function <code
+ class="member">PetscWrappers::VectorBase::set</code> allows to set
+ several vector elements at once.
+ <br>
+ (WB, 2005/08/10)
+ </p>
+
+ <li> <p>
+ New: There are now functions <code
+ class="member">PetscWrappers::MatrixBase::clear_row</code> and <code
+ class="member">clear_rows</code> that allow to set the elements of a row
+ of a matrix to zero, without having to traverse the individual
+ elements.
+ <br>
+ (WB, 2005/08/10)
+ </p>
+
+ <li> <p>
+ Fixed: <code class="class">SparsityPattern</code>::<code
+ class="member">block_write</code> neither wrote the number of
+ columns of the pattern, nor the flag for optimizing the
+ diagonal, and <code class="class">SparsityPattern</code>::<code
+ class="member">block_read</code> did not attempt to read this
+ data. Both is fixed now.
+ <br>
+ (GK, 2005/06/24)
+ </p>
+
+ <li> <p>
+ Improved: <code class="class">SparseDirectUMFPACK</code> now
+ has the complete interface of a preconditioner
+ class. Therefore, it can be used in iterative solvers and in
+ multigrid smoothers.
+ <br>
+ (GK, 2005/05/10)
+ </p>
+
+ <li> <p>
+ Fixed: The PETSc matrix iterators had trouble when some rows of a
+ matrix were empty. This has now been mostly fixed.
+ <br>
+ (WB, 2005/05/02)
+ </p>
+
+ <li> <p>
+ Fixed: The <code class="class">PETScWrappers::MPI::SparseMatrix</code>
+ class had functions that allow to take a pre-existing sparsity pattern
+ as the basis for entry allocation. These function had an option to
+ allow pre-setting these entries in the underlying data structures, but
+ this option was disabled by default because of unresolved questions
+ about its effectiveness. This has now been fixed: The code now properly
+ initializes these elements, and makes the resulting matrix much faster
+ to use.
+ <br>
+ (WB, 2005/04/04)
+ </p>
+
+ <li> <p>
+ New: The <code class="class">ProductSparseMatrix</code>
+ implements the product of two rectangular sparse matrices with
+ the same <code class="member">value_type</code>
+ <br>
+ (GK, 2005/03/11)
+ </p>
+
+ <li> <p>
+ New: The <code class="class">PreconditionRichardson</code>
+ implements a Richardson preconditioner.
+ <br>
+ (GK, 2005/03/10)
+ </p>
+
+ <li> <p> Fixed: The <code class="class">BlockSparseMatrix</code>
+ class had no local typedef <code
+ class="member">value_type</code> like all other classes, which
+ made it a little awkward to use in some places. This has now
+ been fixed.
+
+ <br>
+ (WB, 2005/03/03)
+ </p>
+
+ <li> <p> Fixed: The <code class="class">PETScWrappers</code>::<code
+ class="member">MatrixBase</code> class documented that adding
+ or setting a value that hasn't been in the sparsity pattern
+ before will lead to an exception being thrown. This is of
+ course wrong: PETSc allocates matrix entries dynamically, as
+ needed. The documentation is now fixed.
+ <br> (WB, 2005/03/03)
+ </p>
+
+ <li> <p> New: The <code class="class">SparseMatrix</code> iterators
+ had no <code class="member">operator ></code>, only an <code
+ class="member">operator <</code>. The missing operator is
+ now implemented. The same holds for the <code
+ class="class">FullMatrix</code> class.
+ <br> (WB, 2005/03/01)
+ </p>
+
+ <li> <p> Fixed: The <code class="class">SparseMatrix</code>
+ iterators could not be compared using <code
+ class="member">operator <</code>: the compiler complained
+ that a private member was accessed. This is now fixed.
+ <br> (WB, 2005/03/01)
+ </p>
+</ol>
+
+
+
+<a name="deal.II"></a>
+<h3>deal.II</h3>
+
+<ol>
+
+ <li> <p> Removed: The class <code
+ class="class">FiniteElementBase</code> has been removed and all its
+ functions are now in <code class="class">FiniteElement</code>.
+ <br>
+ (GK, 2005/08/25)
+ </p>
+
+ <li> <p> New: class <code class="class">DoFTools</code> now has two
+ functions <code class="member">compute_row_length_vector</code>, one
+ for equations and one for systems. These give a much finer estimate
+ for the size of the sparsity pattern required than <code
+ class="class">DoFHandler</code>::<code
+ class="member">max_couplings_between_dofs</code>. This is
+ particularly true for systems with few couplings.
+ <br>
+ (GK, 2005/08/24)
+ </p>
+
+ <li> <p>
+ Remove: Due to the reimplementation of the 3d reordering
+ algorithm in <code class="class">GridReordering</code> two
+ years ago, the <code class="member">CellData::rotate</code>
+ function got obsolete. <code
+ class="member">CellData::rotate</code> is now removed.
+ <br>
+ (RH, 2005/08/09)
+ </p>
+
+ <li> <p>
+ Fixed: It was possible to compare iterators into different
+ <code>DoFHandler</code> objects for equality and inequality as long as
+ the underlying triangulation object was the same. This doesn't make much
+ sense, however, and even sometimes declared to iterators equal if only
+ they had the same triangulation, refinement level, and index. Comparing
+ iterators into different containers is now completely disallowed.
+ <br>
+ (WB, 2005/08/08)
+ </p>
+
+ <li> <p>
+ New: The <code class="member">DataOutStack::add_data_vector</code>
+ function now also allows to give only a single name even if the data is
+ vector-valued. It then makes up names for the individual components by
+ adding numbers to the name, just like the <code
+ class="class">DataOut</code> class already does for a long time.
+ <br>
+ (WB, 2005/07/29)
+ </p>
+
+ <li> <p>
+ New: The <code class="class">DataOutStack</code> class can now also be
+ used to stack two-dimensional time or parameter dependent data into a 3d
+ output.
+ <br>
+ (WB, 2005/07/25)
+ </p>
+
+ <li> <p>
+ New: Function <code class="class">FETools</code>::<code
+ class="member">compute_face_embedding_matrices</code> allows for
+ automatic computation of embedding matrices on faces under the sole
+ assumption that the coarse grid space is embedded into the fine
+ grid space. In particular, no interpolation points are
+ required.<p>
+
+ <p>Using this function, constraint matrices can be computed in
+ a general way.
+ <br>
+ (GK, 2005/07/14)
+ </p>
+
+ <li> <p>
+ Improved: All <code class="class">GridIn</code>::<code
+ class="member">read_*</code> functions now call <code
+ class="class">GridReordering</code>::<code
+ class="member">invert_all_cells_of_negative_grid</code>. This
+ way, also misoriented grids are represented in the right
+ orientation within <acronym>deal.II</acronym>.
+ <br>
+ (RH 2005/07/06)
+ </p>
+
+ <li> <p>
+ Improved: <code
+ class="class">Triangulation<3></code>::<code
+ class="member">create_triangulation</code> now checks that all
+ cell have positive volume. If not, an exception is thrown. In
+ that case use the <code
+ class="class">GridReordering</code>::<code
+ class="member">invert_all_cells_of_negative_grid</code>
+ function, see below, to fix this.
+ <br>
+ (RH 2005/07/06)
+ </p>
+
+ <li> <p>
+ New: There is now a <code
+ class="class">GridReordering</code>::<code
+ class="member">invert_all_cells_of_negative_grid</code>
+ function implemented in 3d which checks if some/all cells have
+ negative volumes. If all cell have negative volume then the
+ whole grid is reoriented. An assertion is thrown if only a
+ subset of cells have negative volumes, as then the grid might
+ be broken.
+ <br>
+ (RH 2005/07/06)
+ </p>
+
+ <li> <p>
+ New: There is now a new <code
+ class="class">GridTools</code>::<code
+ class="member">cell_measure</code> function. However, it is
+ mostly for internal use. Use <code>cell->measure()</code>
+ instead.
+ <br>
+ (RH 2005/07/06)
+ </p>
+
+ <li> <p>
+ Improved: <code>cell->measure()</code> used to give the
+ absolute value of the cell measure. It now gives the measure
+ with the correct sign. This is useful to find wrongly oriented
+ cells in 3d with negative volumes.
+ <br>
+ (RH 2005/07/05)
+ </p>
+
+ <li> <p>
+ Improved: The class <code
+ class="class">FiniteElementData</code> now stores information
+ on the Sobolev space a finite element space conforms with.
+ <br>
+ (GK 2005/06/29)
+ </p>
+
+ <li> <p>
+ New: Added function <code
+ class="class">FiniteElementBase::component_to_system_index</code>
+ which was referred to in the documentation, but was missing.
+ <br>
+ (Ralf B. Schulz, 2005/06/30)
+ </p>
+
+ <li> <p>
+ Improved: The function <code
+ class="class">DoFTools</code>::<code
+ class="member">count_dofs_per_component</code> and its
+ counterpart in <code class="class">MGTools</code> got an
+ additional argument. This argument allows to count the degrees
+ of freedom of nonprimitive vector valued elements only once,
+ instead of in every component. Although this argument defaults
+ to the previous behavior, it had to be put into the argument
+ list ahead of <tt>target_component</tt> in order to make use of
+ default arguments more efficiently. The old order of arguments
+ can still be used through a wrapper function.
+ <br>
+ (GK 2005/06/22)
+ </p>
+
+ <li> <p>
+ Improved: The <code class="class">GeometryInfo</code>::<code
+ class="member">child_cell_on_face</code>, <code
+ class="member">face_to_cell_vertices</code> and <code
+ class="member">face_to_cell_lines</code> now have an additional
+ <code>face_orientation</code> argument, which has no effect in
+ 2d and which defaults to <code>true</code> (standard
+ orientation) in 3d. Now these functions return the right values
+ also for the case of non-standard oriented faces in 3d. This
+ avoids several awful pieces of code including questioning
+ face_orientation and using child_switch_tables.
+ <br>
+ (RH, 2005/06/16)
+ </p>
+
+ <li> <p>
+ Changed: The method <code class="class">FETools</code>::<code
+ class="member">lexicographic_to_hierarchic_numbering</code> now
+ takes a <code class="class">FiniteElementData</code> instead of
+ a <code class="class">FE_Q</code> object. Now this function can
+ also be called by the <code class="class">FE_Q</code>
+ constructor which avoids code duplication.
+ <br>
+ (RH, 2005/06/13)
+ </p>
+
+ <li> <p>
+ New: The method <code class="member">create_mass_matrix</code>
+ in class <code class="class">MatrixCreator</code> can now handle
+ vector valued finite elements. A similar change was applied
+ to <code class="member">create_right_hand_side</code> and
+ <code class="member">create_boundary_right_hand_side</code>
+ in <code class="class">VectorTools</code>. These two changes
+ now make the <code class="member">project</code> function work also
+ for Raviart-Thomas elements and other vector valued FEs. This
+ is very useful, if some initial conditions have to be specified.
+ <br>
+ (Oliver Kayser-Herold, 2005/06/03)
+ </p>
+
+ <li> <p>
+ New: The <code class="class">DataOut</code>
+ now supports Eulerian Mappings. If a solution is computed
+ on a deformed mesh, the output file generated by the DataOut
+ now shows the solution also on the deformed mesh. This
+ is an option and requires the mapping to be specified as
+ additional parameter to <code class="member">build_patches</code>.
+ <br>
+ (Oliver Kayser-Herold, 2005/05/31)
+ </p>
+
+ <li> <p>
+ New: The <code class="class">MappingQ1Eulerian</code>
+ can now cope with different vector types fot the Euler vector.
+ This is useful if it should be used with the PetSC wrapper classes.
+ The desired vector type can be specified as template parameter.
+ <br>
+ (Oliver Kayser-Herold, 2005/05/31)
+ </p>
+
+ <li> <p>
+ New: The <code class="class">FE_RaviartThomasNodal</code>
+ implements Raviart-Thomas elements using function values in
+ Gauss quadrature points on edges and in the interior for its
+ node values. The implementation is restricted to Cartesian mesh
+ cells right now, but works in 2D and 3D.
+ <br>
+ (GK, 2005/05/30)
+ </p>
+
+ <li> <p>
+ Improved: The <code class="member">Mapping::transform_*</code>
+ functions accept <code class="class">VectorSlice</code> instead
+ of <code class="class">Vector</code>, thus allowing more flexibility.
+ <br>
+ (GK, 2005/05/24)
+ </p>
+
+ <li> <p>
+ New: The <code class="member">MatrixTools::apply_boundary_values</code>
+ function now also works for PETSc sequential and parallel matrices.
+ <br>
+ (WB, 2005/05/05)
+ </p>
+
+ <li> <p>
+ Improved: The function <code class="class">GridIn</code>::<code
+ class="member">read</code> now searches for files using the
+ mechanism provided by the class <code
+ class="class">PathSearch</code>. Furthermore, a library of input
+ meshes has been started in <code>lib/meshes</code>.
+ <br>
+ (GK, 2005/05/03)
+ </p>
+
+ <li> <p>
+ Fixed: The <code class="class">DataOut</code> class did not work
+ properly if the <code class="member">DataOut::first_cell</code> and
+ <code class="member">DataOut::next_cell</code> functions were
+ overloaded and cell data was to be output; in that case, data from the
+ wrong cells was written out. This is now fixed. In contrast to this,
+ nodal data was never affected.
+ <br>
+ (WB, 2005/04/20)
+ </p>
+
+ <li> <p>
+ Improved: By employing the new <code
+ class="class">GeometryInfo</code>::<code
+ class="member">line_to_cell_vertices</code>, <code
+ class="class">GeometryInfo</code>::<code
+ class="member">face_to_cell_vertices</code> and <code
+ class="class">GeometryInfo</code>::<code
+ class="member">face_to_cell_lines</code> functions the <code
+ class="class">Triangulation</code>::<code
+ class="member">create_triangulation</code> functions are now
+ implemented independent of given conventions for the numbering
+ of vertices, lines and faces.
+ <br>
+ (RH, 2005/03/11)
+ </p>
+
+ <li> <p>
+ New: The new <code class="class">GeometryInfo</code>::<code
+ class="member">line_to_cell_vertices</code> function maps line
+ vertex numbers to cell vertex numbers.
+ <br>
+ (RH, 2005/03/11)
+ </p>
+
+ <li> <p>
+ New: The new <code class="class">GeometryInfo</code>::<code
+ class="member">face_to_cell_lines</code> function maps face
+ line numbers to cell line numbers.
+ <br>
+ (RH, 2005/03/11)
+ </p>
+
+ <li> <p>
+ New: The new <code class="class">GeometryInfo</code>::<code
+ class="member">face_to_cell_vertices</code> function maps face
+ vertex numbers to cell vertex numbers.
+ <br>
+ (RH, 2005/03/11)
+ </p>
+
+ <li> <p>
+ Fixed: There was a bug in the <code
+ class="class">KellyErrorEstimator</code> class that resulted in
+ assertions being thrown when run with multithreading
+ enabled. This is now fixed.
+ <br>
+ (WB, 2005/03/10)
+ </p>
+
+ <li> <p>
+ Changed: The <code class="class">Triangulation<2></code>::<code
+ class="member">execute_refinement</code> function has been
+ re-implemented to accommodate future developments. This change
+ results in different ordering and indexing of lines and
+ vertices. This leads to a change in the ordering of vertices in
+ output files generated by <code class="class">GridOut</code>
+ for refined grids.
+ <br>
+ (RH, 2005/03/09)
+ </p>
+
+ <li> <p>
+ Fixed: The class <code class="class">MGDoFHandler</code> had trouble
+ when it encountered a triangulation that had unused vertices, something
+ that happens when one coarsens an existing triangulation. In
+ that case, it would throw unjustified exceptions. This is now
+ fixed.
+ <br>
+ (WB, 2005/03/01)
+ </p>
+
+ <li> <p>
+ Fixed: The class <code class="class">Triangulation::RefinementListener</code> had only
+ virtual abstract functions but no virtual destructor. This caused
+ warnings with some compilers, and is generally bad practice
+ anyway. This is now fixed.
+ <br>
+ (WB, 2005/02/22)
+ </p>
+
+ <li> <p>
+ New: Function <code class="class">FETools</code>::<code
+ class="member">compute_embedding_matrices</code> allows for
+ automatic computation of embedding matrices under the sole
+ assumption that the coarse grid space is embedded into the fine
+ grid space. In particular, no interpolation points are required.
+ <br>
+ (GK, 2005/02/08)
+ </p>
+
+ <li> <p>
+ Fixed: Several wrong assertions in the Raviart-Thomas finite element
+ class have been fixed, that were triggered when integrating face terms.
+ <br>
+ (Oliver Kayser-Herold, 2005/01/24;
+ WB, 2005/01/31)
+ </p>
+</ol>
+
+<hr>
+Last update $Date$
+
+</body>
+</html>
<body>
-<h2>Changes after Version 5.1</h2>
+<h2>Changes after Version 5.2</h2>
<p>
This is the list of changes made after the release of
-<acronym>deal.II</acronym> version 5.1. It is subdivided into changes
+<acronym>deal.II</acronym> version 5.2. It is subdivided into changes
made to the three sub-libraries <a href="#base">base</a>,
<a href="#lac">lac</a>, and <a href="#deal.II">deal.II</a>, as well as
changes to the <a href="#general">general infrastructure,
</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> <p>
- Changed: The way boundary constraints were handled in the
- step-17 tutorial program was conceptually flawed. We tried to
- eliminate boundary nodes locally on the cell level, and hanging
- node constraints subsequently when transferring into the global
- matrix. However, this doesn't work in general: the elimination
- of hanging node constraints could re-populate rows and columns
- that had already been vacated during boundary node
- elimination. At the end of a long though process, we came to
- the conclusion that it is impossible to revert the traditional
- order of operations: first eliminate all hanging node
- constraints, then eliminate all boundary nodes. This leads to a
- situation where the <code
- class="member">MatrixTools::local_apply_boundary_values</code>
- function is not very useful any more, except for the special
- case where there are no hanging nodes. The step-17 example
- program has therefore been changed to use the <code
- class="member">MatrixTools::apply_boundary_values</code>
- function again, though hanging node elimination still happens
- during transfer into the global matrix.
- <br>
- (WB 2005/05/05)
- </p>
-
- <li> <p>
- Changed: The class <code
- class="class">MGCoarseGridLACIteration</code> lost two template
- arguments. Since the matrix and preconditioner are now stored
- in form of <code class="class">PointerMatrix</code> objects,
- handling of the class is much simpler, in particular when
- exchanging preconditioners.
- <br>
- (GK 2005/05/03)
- </p>
-
- <li> <p>
- Changed: The template argument of <code
- class="class">BlockMatrixArray</code> was changed to
- <tt>number</tt>, equal to the same argument of the used <code
- class="class">BlockVector</code>. Furthermore, its constructor
- requires an additional argument of type <code
- class="class">VectorMemory<Vector<number> ></code>
- providing space for auxiliary vectors. Since the entries are
- now of type <code class="class">PointerMatrixBase</code>, even
- matrices with blocks of different types can be constructed.
- <br>
- (GK 2005/03/21)
- </p>
-
- <li> <p>
- Changed: The <code class="class">GeometryInfo</code>::<code
- class="member">vertices_adjacent_to_line</code> function has
- been renamed to <code class="class">GeometryInfo</code>::<code
- class="member">line_to_cell_vertices</code> to be named
- analogous to the <code
- class="member">face_to_cell_vertices</code>, <code
- class="member">face_to_cell_lines</code> and <code
- class="member">child_to_cell_coordinates</code> functions.
- <br>
- (RH 2005/03/14)
- </p>
-
- <li> <p>
- Changed: the file <tt>multigrid/mg_dof_tools.h</tt> was renamed
- to <tt>multigrid/mg_tools.h</tt> in order to match the name of
- the class contained.
- <br>
- (GK 2005/03/09)
- </p>
-
- <li> <p>
- Changed: <code class="class">DoFTools</code>::<code
- class="member">make_flux_sparsity_pattern</code>, <code
- class="class">MGTools</code>::<code
- class="member">make_flux_sparsity_pattern</code> and similar
- functions in these classes do not receive arguments of type
- <code class="class">FullMatrix<double></code>
- anymore. Instead, they get a <code
- class="class">Table<2,DoFTools::Coupling></code>, which
- contains more meaningful enums.
- <br>
- (GK 2005/03/09)
- </p>
-
- <li> <p>
- Changed: <code class="class">Multigrid</code>::<code
- class="member">Multigrid</code> receives an argument
- determining the type of multigrid cycle istead of the minimum
- and maximum levels. The latter were rarely used anyway and can
- be modified by <code class="member">set_minlevel()</code> and
- <code class="member">set_maxlevel()</code>
- <br>
- (GK 2005/03/09)
- </p>
-</ol>
-
<a name="general"></a>
<h3>General</h3>
<ol>
- <li> <p> New:
- The step-19 tutorial demonstrates handling of parameters from a
- parameter file, as well as some simple techniques for merging output
- from parallel computations.
- <br>
- (WB 2005/09/09)
- </p>
-
- <li> <p> New:
- The step-18 example program shows how to solve a quasi-static elasticity
- problem with moving meshes, and this all in parallel.
- <br>
- (WB 2005/08/11)
- </p>
-
- <li> <p>
- Changed: The files
- <tt>deal.II/include/grid/geometry_info.h</tt> and
- <tt>deal.II/source/grid/geometry_info.cc</tt> have been moved
- to <tt>base/include/base</tt> and <tt>base/source</tt>,
- respectively. A redirection header file has been left in the
- old location for compatibility.
- <br>
- (GK, 2005/07/19)
- </p>
-
- <li> <p>
- Changed: Cygwin has problems linking against deal.II DLLs if you
- link against more than one dimension dependent library. The linker
- might issue error messages about multiple defined symbols. This is now
- detected, and the linker is forced to ignore these errors. However, if
- you accidentally defined symbols twice you might have a hard time
- debugging now... In this case remove the <code>-Xlinker
- --allow-multiple-definition</code> flag from Make.global_options.
- <br>
- (Ralf B. Schulz, 2005/07/13)
- </p>
-
- <li> <p>
- Changed: Under Cygwin, linking against LAPACK and UMFPACK did
- not work. This is now fixed in the Makefiles. Changes only
- affect Cygwin.
- <br>
- (Ralf B. Schulz, 2005/07/02)
- </p>
-
- <li> <p>
- New: The latest version of UMFPACK, version 4.4, has been imported.
- <br>
- (WB, 2005/06/30)
- </p>
-
- <li> <p>
- Fixed: The documentation pages did not contain information
- about the <code>Threads::spawn</code> functions. This is now fixed.
- <br>
- (WB, 2005/05/12)
- </p>
-
- <li> <p>
- Fixed: The step-17 example program had a stupid mistake in that it
- initializes the <code>pcout</code> variable with an uninitialized value
- of <code>mpi_communicator</code>. While this seems to have worked for
- some older MPI implementations, this is no longer the case on some
- other systems. It is now fixed.
- <br>
- (WB, 2005/04/18)
- </p>
-
- <li> <p>
- New: If there are references to other example programs in any of the
- step-XX programs, then they will now show up as crosslinks in the HTML
- version for simpler navigation of the tutorial.
- <br>
- (WB, 2005/04/04)
- </p>
-
- <li> <p>
- New: The configuration script can now enable special optimizations for
- x86-like processors if called with the <code>--with-cpu=...</code> option.
- This can decrease computation time by up to 30% on certain systems.
- The configuration flag has already existed for PowerPC64 processors, but
- was not documented. Documentation has been added.
- <br>
- (Ralf B. Schulz, 2005/03/10)
- </p>
-
- <li> <p>
- Fixed: When compiling shared libraries on CygWin systems, warnings
- concerning the <code>-fPIC</code> option were issued by the compiler.
- This is now fixed.
- Also, configure now issues a message at the end that you should include
- the DLL-path in your <code>.bash_profile</code> file on these systems.
- <br>
- (Ralf B. Schulz, 2005/03/10)
- </p>
-
- <li> <p>
- Fixed: On certain systems running CygWin, a call to socket functions
- like <code>gethostname()</code> could cause deal.II to hang. The reason
- seems to be that the call disables long double computations which
- revert to just double precision. This then leads to an endless loop in
- computing weights for quadrature points because the convergence
- criterion cannot be reached with simple double precision. This is now
- fixed by disabling the call to <code>gethostname()</code> on these
- systems. A new preprocessor variable, <code>DEAL_II_BROKEN_SOCKETS</code>
- has been added to <code>base/config.h</code> which is defined on
- affected systems.
- <br>
- (Ralf B. Schulz, WB, 2005/03/02)
- </p>
-
- <li> <p>
- Fixed: The step-16 example program wasn't listed in the
- navigation bar of the tutorial section, although it was in the
- table of contents. This is fixed now.
- <br>
- (WB, 2005/02/09)
- </p>
</ol>
<h3>base</h3>
<ol>
- <li> <p>
- New: Class <code class="class">PathSearch</code> allows to find
- a file in a sequence of directories and by appending suffixes. The class
- generates the complete file name including directory prefix and suffix
- such that it can be used for subsequently opening the file.
- <br>
- (GK, 2005/09/14)
- </p>
-
- <li> <p>
- Extended: The <code>ParameterHandler</code> class now does a much better
- job generating output in the <code>print_parameters()</code> function if
- parameters have documentation strings attached to them. See the step-19
- example program output for this.
- <br>
- (WB, 2005/09/12)
- </p>
-
- <li> <p>
- New: There is now a namespace <code>Utilities</code> that contains
- functions that are not particularly specific to finite element codes,
- but are needed in various contexts of application programs anyway.
- <br>
- (WB, 2005/08/11)
- </p>
-
- <li> <p>
- Changed: <code>ParameterHandler::get_bool()</code> only accepted
- "true" or "false" as boolean values, now it also considers "yes"
- and "no" as "true" and "false" respectively.
- <br>
- (Ralf B. Schulz, 2005/07/19)
- </p>
-
- <li> <p>
- Removed: The <code>write_multigrid</code> flag in <code
- class="member">DataOutBase::DXFlags</code>
- has been removed, since it wasn't used anywhere.
- <br>
- (WB, 2005/07/14)
- </p>
-
- <li> <p>
- New: A function <code class="member">
- deal_II_exceptions::disable_abort_on_exception</code> now allows
- to disable program abortion when an assertion fails. This is used
- in regression tests.
- <br>
- (Ralf B. Schulz, 2005/07/13)
- </p>
-
- <li> <p>
- Improved: The <code class="class">QProjector</code> has functions
- <code class="class">project_to_face</code> and
- <code class="class">project_to_subface</code>
- returning a <code class="class">Quadrature</code> object
- <br>
- (GK, 2005/07/12)
- </p>
-
- <li> <p>
- Changed: The <code
- class="member">ParameterHandler::print_parameters</code>
- function now puts two newlines between regular entries and
- subsection listings for better readability.
- <br>
- (WB, 2005/07/05)
- </p>
-
- <li> <p>
- Changed: The <code
- class="member">ParameterHandler::print_parameters</code>
- function now omits printing subsections if they and the contained
- sub-subsections contain no entries.
- <br>
- (WB, 2005/07/05)
- </p>
-
- <li> <p>
- Changed: Some of the dimension independent functions in the <code
- class="class">DataOutInterface</code> class have been moved into the
- <code class="class">DataOutBase</code> class that does not depend on any
- dimension template parameters. Since the latter is a base class of the
- former, there should be no problems for application programs.
- <br>
- (WB, 2005/07/01)
- </p>
-
- <li> <p>
- Fixed: Several of the functions in class <code
- class="class">ConstantFunction</code> did not check whether the
- component handed to them was valid. In essence, even a scalar
- function could be evaluated for component 42, and the function
- ignored how many components it was declared to have. This is
- now fixed.
- <br>
- (WB, 2005/06/30)
- </p>
-
- <li> <p>
- Changed: The functions in class <code
- class="class">ExceptionBase</code> have been renamed to conform
- to our coding conventions that function names be all lower-case
- with words separated by underscores. This is technically an
- incompatible change, since these functions were publicly
- visible, but were usually hidden behind macros and not used
- anywhere explicitly in the library; we hope that this also
- holds for external code.
- <br>
- (WB, 2005/06/30)
- </p>
-
- <li> <p>
- New: The GNU C library supports access to the call stack. For
- systems using this library, the <code
- class="class">ExceptionBase</code> class now uses these
- functions to outputs the callstack when the exception is
- created.
- <br>
- (Ralf B. Schulz, 2005/06/30)
- </p>
-
- <li> <p>
- Improved: The class <code class="class">Quadrature</code> has a new
- constructor generating the <tt>dim</tt>-dimensional tensor product of a
- one-dimensonal formula directly.
- <br>
- (GK, 2005/06/10)
- </p>
-
- <li> <p>
- New: The class <code
- class="class">Polynomials::RaviartThomas</code> implements
- Raviart-Thomas polynomials of arbitrary order in 2d and 3d.
- <br>
- (GK, 2005/05/30)
- </p>
-
- <li> <p>
- New: The <code class="class">Polynomials::Lagrange</code> class
- allows generation of Lagrange interpolation polynomials for
- arbitrary point sets. In order to get better interpolation for
- higher order polynomials, <code
- class="class">QGaussLobatto</code> has been added to produce
- interpolation point sets clustering at the boundary of a cell
- (weights are not computed yet).
- <br>
- (GK, 2005/05/30)
- </p>
-
- <li> <p>
- New: The <code class="class">QAnisotropic</code> class allows
- generation of quadrature rules of different order in each
- space dimension.
- <br>
- (GK, 2005/05/24)
- </p>
-
- <li> <p>
- New: The <code class="class">Tensor</code> classes now
- have member functions that compute the Frobenius norm and its
- square. There are also global <code>operator*</code> functions
- that compute the contraction over a pair of indices of tensors.
- <br>
- (WB, 2005/04/06)
- </p>
-
- <li> <p>
- New: The <code class="member">DataOutBase</code> class now
- allows to write data in a new intermediate format that
- basically dumps the raw information available in patches.
- <br>
- (WB, 2005/04/05)
- </p>
-
- <li> <p>
- New: The <code class="member">DataOutReader</code> class allows
- to read data back in from a file into which it has been written
- using intermediate format. From there, it can then be converted
- into any of the supported graphics formats.
- <br>
- (WB, 2005/04/05)
- </p>
-
- <li> <p>
- New: There is now a <code
- class="member">operator >> (std::istream &in,
- Point<dim> &p)</code>, a function that had apparently been
- missing for a long time already.
- <br>
- (WB, 2005/04/05)
- </p>
-
- <li> <p>
- New: The new function <code
- class="member">double_contract</code> contracts two tensors of
- rank 4 and 2 into a tensor of rank 2, by contracting over two
- indices at the same time.
- <br>
- (WB, 2005/03/29)
- </p>
-
- <li> <p>
- New: The new function <code
- class="member">TableIndicesBase::sort</code> allows to sort the indices
- in ascending order. This is useful for cases where the order of indices
- is irrelevant (for example in symmetric tables).
- <br>
- (WB, 2005/03/29)
- </p>
-
- <li> <p>
- New: There is a new class <code class="class">SymmetricTensor</code>
- that provides storage and operations for symmetric tensors.
- <br>
- (WB, 2005/03/28)
- </p>
-
- <li> <p>
- New: Class <code class="class">Subscriptor</code> receives a
- text argument allowing to identify the violating pointer more
- easily. The additional feature is being incorporated into <code
- class="class">SmartPointer</code> constructors throughout the
- library.
- <br>
- (GK, 2005/03/16)
- </p>
-
- <li> <p>
- New: Class <code class="class">FunctionParser</code>. Wrapper
- class for the fparser library (see
- <a href="http://www.students.tut.fi/~warp/FunctionParser/">
- http://www.students.tut.fi/~warp/FunctionParser/</a>).
- <br>
- (Luca Heltai, 2005/03/07).
- </p>
-
- <li> <p>
- Fixed: The class <code
- class="class">MultipleParameterLoop::UserClass</code> had only
- virtual abstract functions but no virtual destructor. This caused
- warnings with some compilers, and is generally bad practice
- anyway. This is now fixed. The same holds with respect to the class
- <code class="class">DataOutInterface</code>.
- <br>
- (WB, 2005/02/20)
- </p>
</ol>
<h3>lac</h3>
<ol>
- <li> <p>
- New: The new function <code
- class="member">PetscWrappers::VectorBase::set</code> allows to set
- several vector elements at once.
- <br>
- (WB, 2005/08/10)
- </p>
-
- <li> <p>
- New: There are now functions <code
- class="member">PetscWrappers::MatrixBase::clear_row</code> and <code
- class="member">clear_rows</code> that allow to set the elements of a row
- of a matrix to zero, without having to traverse the individual
- elements.
- <br>
- (WB, 2005/08/10)
- </p>
-
- <li> <p>
- Fixed: <code class="class">SparsityPattern</code>::<code
- class="member">block_write</code> neither wrote the number of
- columns of the pattern, nor the flag for optimizing the
- diagonal, and <code class="class">SparsityPattern</code>::<code
- class="member">block_read</code> did not attempt to read this
- data. Both is fixed now.
- <br>
- (GK, 2005/06/24)
- </p>
-
- <li> <p>
- Improved: <code class="class">SparseDirectUMFPACK</code> now
- has the complete interface of a preconditioner
- class. Therefore, it can be used in iterative solvers and in
- multigrid smoothers.
- <br>
- (GK, 2005/05/10)
- </p>
-
- <li> <p>
- Fixed: The PETSc matrix iterators had trouble when some rows of a
- matrix were empty. This has now been mostly fixed.
- <br>
- (WB, 2005/05/02)
- </p>
-
- <li> <p>
- Fixed: The <code class="class">PETScWrappers::MPI::SparseMatrix</code>
- class had functions that allow to take a pre-existing sparsity pattern
- as the basis for entry allocation. These function had an option to
- allow pre-setting these entries in the underlying data structures, but
- this option was disabled by default because of unresolved questions
- about its effectiveness. This has now been fixed: The code now properly
- initializes these elements, and makes the resulting matrix much faster
- to use.
- <br>
- (WB, 2005/04/04)
- </p>
-
- <li> <p>
- New: The <code class="class">ProductSparseMatrix</code>
- implements the product of two rectangular sparse matrices with
- the same <code class="member">value_type</code>
- <br>
- (GK, 2005/03/11)
- </p>
-
- <li> <p>
- New: The <code class="class">PreconditionRichardson</code>
- implements a Richardson preconditioner.
- <br>
- (GK, 2005/03/10)
- </p>
-
- <li> <p> Fixed: The <code class="class">BlockSparseMatrix</code>
- class had no local typedef <code
- class="member">value_type</code> like all other classes, which
- made it a little awkward to use in some places. This has now
- been fixed.
-
- <br>
- (WB, 2005/03/03)
- </p>
-
- <li> <p> Fixed: The <code class="class">PETScWrappers</code>::<code
- class="member">MatrixBase</code> class documented that adding
- or setting a value that hasn't been in the sparsity pattern
- before will lead to an exception being thrown. This is of
- course wrong: PETSc allocates matrix entries dynamically, as
- needed. The documentation is now fixed.
- <br> (WB, 2005/03/03)
- </p>
-
- <li> <p> New: The <code class="class">SparseMatrix</code> iterators
- had no <code class="member">operator ></code>, only an <code
- class="member">operator <</code>. The missing operator is
- now implemented. The same holds for the <code
- class="class">FullMatrix</code> class.
- <br> (WB, 2005/03/01)
- </p>
-
- <li> <p> Fixed: The <code class="class">SparseMatrix</code>
- iterators could not be compared using <code
- class="member">operator <</code>: the compiler complained
- that a private member was accessed. This is now fixed.
- <br> (WB, 2005/03/01)
- </p>
</ol>
<h3>deal.II</h3>
<ol>
-
- <li> <p> Removed: The class <code
- class="class">FiniteElementBase</code> has been removed and all its
- functions are now in <code class="class">FiniteElement</code>.
- <br>
- (GK, 2005/08/25)
- </p>
-
- <li> <p> New: class <code class="class">DoFTools</code> now has two
- functions <code class="member">compute_row_length_vector</code>, one
- for equations and one for systems. These give a much finer estimate
- for the size of the sparsity pattern required than <code
- class="class">DoFHandler</code>::<code
- class="member">max_couplings_between_dofs</code>. This is
- particularly true for systems with few couplings.
- <br>
- (GK, 2005/08/24)
- </p>
-
- <li> <p>
- Remove: Due to the reimplementation of the 3d reordering
- algorithm in <code class="class">GridReordering</code> two
- years ago, the <code class="member">CellData::rotate</code>
- function got obsolete. <code
- class="member">CellData::rotate</code> is now removed.
- <br>
- (RH, 2005/08/09)
- </p>
-
- <li> <p>
- Fixed: It was possible to compare iterators into different
- <code>DoFHandler</code> objects for equality and inequality as long as
- the underlying triangulation object was the same. This doesn't make much
- sense, however, and even sometimes declared to iterators equal if only
- they had the same triangulation, refinement level, and index. Comparing
- iterators into different containers is now completely disallowed.
- <br>
- (WB, 2005/08/08)
- </p>
-
- <li> <p>
- New: The <code class="member">DataOutStack::add_data_vector</code>
- function now also allows to give only a single name even if the data is
- vector-valued. It then makes up names for the individual components by
- adding numbers to the name, just like the <code
- class="class">DataOut</code> class already does for a long time.
- <br>
- (WB, 2005/07/29)
- </p>
-
- <li> <p>
- New: The <code class="class">DataOutStack</code> class can now also be
- used to stack two-dimensional time or parameter dependent data into a 3d
- output.
- <br>
- (WB, 2005/07/25)
- </p>
-
- <li> <p>
- New: Function <code class="class">FETools</code>::<code
- class="member">compute_face_embedding_matrices</code> allows for
- automatic computation of embedding matrices on faces under the sole
- assumption that the coarse grid space is embedded into the fine
- grid space. In particular, no interpolation points are
- required.<p>
-
- <p>Using this function, constraint matrices can be computed in
- a general way.
- <br>
- (GK, 2005/07/14)
- </p>
-
- <li> <p>
- Improved: All <code class="class">GridIn</code>::<code
- class="member">read_*</code> functions now call <code
- class="class">GridReordering</code>::<code
- class="member">invert_all_cells_of_negative_grid</code>. This
- way, also misoriented grids are represented in the right
- orientation within <acronym>deal.II</acronym>.
- <br>
- (RH 2005/07/06)
- </p>
-
- <li> <p>
- Improved: <code
- class="class">Triangulation<3></code>::<code
- class="member">create_triangulation</code> now checks that all
- cell have positive volume. If not, an exception is thrown. In
- that case use the <code
- class="class">GridReordering</code>::<code
- class="member">invert_all_cells_of_negative_grid</code>
- function, see below, to fix this.
- <br>
- (RH 2005/07/06)
- </p>
-
- <li> <p>
- New: There is now a <code
- class="class">GridReordering</code>::<code
- class="member">invert_all_cells_of_negative_grid</code>
- function implemented in 3d which checks if some/all cells have
- negative volumes. If all cell have negative volume then the
- whole grid is reoriented. An assertion is thrown if only a
- subset of cells have negative volumes, as then the grid might
- be broken.
- <br>
- (RH 2005/07/06)
- </p>
-
- <li> <p>
- New: There is now a new <code
- class="class">GridTools</code>::<code
- class="member">cell_measure</code> function. However, it is
- mostly for internal use. Use <code>cell->measure()</code>
- instead.
- <br>
- (RH 2005/07/06)
- </p>
-
- <li> <p>
- Improved: <code>cell->measure()</code> used to give the
- absolute value of the cell measure. It now gives the measure
- with the correct sign. This is useful to find wrongly oriented
- cells in 3d with negative volumes.
- <br>
- (RH 2005/07/05)
- </p>
-
- <li> <p>
- Improved: The class <code
- class="class">FiniteElementData</code> now stores information
- on the Sobolev space a finite element space conforms with.
- <br>
- (GK 2005/06/29)
- </p>
-
- <li> <p>
- New: Added function <code
- class="class">FiniteElementBase::component_to_system_index</code>
- which was referred to in the documentation, but was missing.
- <br>
- (Ralf B. Schulz, 2005/06/30)
- </p>
-
- <li> <p>
- Improved: The function <code
- class="class">DoFTools</code>::<code
- class="member">count_dofs_per_component</code> and its
- counterpart in <code class="class">MGTools</code> got an
- additional argument. This argument allows to count the degrees
- of freedom of nonprimitive vector valued elements only once,
- instead of in every component. Although this argument defaults
- to the previous behavior, it had to be put into the argument
- list ahead of <tt>target_component</tt> in order to make use of
- default arguments more efficiently. The old order of arguments
- can still be used through a wrapper function.
- <br>
- (GK 2005/06/22)
- </p>
-
- <li> <p>
- Improved: The <code class="class">GeometryInfo</code>::<code
- class="member">child_cell_on_face</code>, <code
- class="member">face_to_cell_vertices</code> and <code
- class="member">face_to_cell_lines</code> now have an additional
- <code>face_orientation</code> argument, which has no effect in
- 2d and which defaults to <code>true</code> (standard
- orientation) in 3d. Now these functions return the right values
- also for the case of non-standard oriented faces in 3d. This
- avoids several awful pieces of code including questioning
- face_orientation and using child_switch_tables.
- <br>
- (RH, 2005/06/16)
- </p>
-
- <li> <p>
- Changed: The method <code class="class">FETools</code>::<code
- class="member">lexicographic_to_hierarchic_numbering</code> now
- takes a <code class="class">FiniteElementData</code> instead of
- a <code class="class">FE_Q</code> object. Now this function can
- also be called by the <code class="class">FE_Q</code>
- constructor which avoids code duplication.
- <br>
- (RH, 2005/06/13)
- </p>
-
- <li> <p>
- New: The method <code class="member">create_mass_matrix</code>
- in class <code class="class">MatrixCreator</code> can now handle
- vector valued finite elements. A similar change was applied
- to <code class="member">create_right_hand_side</code> and
- <code class="member">create_boundary_right_hand_side</code>
- in <code class="class">VectorTools</code>. These two changes
- now make the <code class="member">project</code> function work also
- for Raviart-Thomas elements and other vector valued FEs. This
- is very useful, if some initial conditions have to be specified.
- <br>
- (Oliver Kayser-Herold, 2005/06/03)
- </p>
-
- <li> <p>
- New: The <code class="class">DataOut</code>
- now supports Eulerian Mappings. If a solution is computed
- on a deformed mesh, the output file generated by the DataOut
- now shows the solution also on the deformed mesh. This
- is an option and requires the mapping to be specified as
- additional parameter to <code class="member">build_patches</code>.
- <br>
- (Oliver Kayser-Herold, 2005/05/31)
- </p>
-
- <li> <p>
- New: The <code class="class">MappingQ1Eulerian</code>
- can now cope with different vector types fot the Euler vector.
- This is useful if it should be used with the PetSC wrapper classes.
- The desired vector type can be specified as template parameter.
- <br>
- (Oliver Kayser-Herold, 2005/05/31)
- </p>
-
- <li> <p>
- New: The <code class="class">FE_RaviartThomasNodal</code>
- implements Raviart-Thomas elements using function values in
- Gauss quadrature points on edges and in the interior for its
- node values. The implementation is restricted to Cartesian mesh
- cells right now, but works in 2D and 3D.
- <br>
- (GK, 2005/05/30)
- </p>
-
- <li> <p>
- Improved: The <code class="member">Mapping::transform_*</code>
- functions accept <code class="class">VectorSlice</code> instead
- of <code class="class">Vector</code>, thus allowing more flexibility.
- <br>
- (GK, 2005/05/24)
- </p>
-
- <li> <p>
- New: The <code class="member">MatrixTools::apply_boundary_values</code>
- function now also works for PETSc sequential and parallel matrices.
- <br>
- (WB, 2005/05/05)
- </p>
-
- <li> <p>
- Improved: The function <code class="class">GridIn</code>::<code
- class="member">read</code> now searches for files using the
- mechanism provided by the class <code
- class="class">PathSearch</code>. Furthermore, a library of input
- meshes has been started in <code>lib/meshes</code>.
- <br>
- (GK, 2005/05/03)
- </p>
-
- <li> <p>
- Fixed: The <code class="class">DataOut</code> class did not work
- properly if the <code class="member">DataOut::first_cell</code> and
- <code class="member">DataOut::next_cell</code> functions were
- overloaded and cell data was to be output; in that case, data from the
- wrong cells was written out. This is now fixed. In contrast to this,
- nodal data was never affected.
- <br>
- (WB, 2005/04/20)
- </p>
-
- <li> <p>
- Improved: By employing the new <code
- class="class">GeometryInfo</code>::<code
- class="member">line_to_cell_vertices</code>, <code
- class="class">GeometryInfo</code>::<code
- class="member">face_to_cell_vertices</code> and <code
- class="class">GeometryInfo</code>::<code
- class="member">face_to_cell_lines</code> functions the <code
- class="class">Triangulation</code>::<code
- class="member">create_triangulation</code> functions are now
- implemented independent of given conventions for the numbering
- of vertices, lines and faces.
- <br>
- (RH, 2005/03/11)
- </p>
-
- <li> <p>
- New: The new <code class="class">GeometryInfo</code>::<code
- class="member">line_to_cell_vertices</code> function maps line
- vertex numbers to cell vertex numbers.
- <br>
- (RH, 2005/03/11)
- </p>
-
- <li> <p>
- New: The new <code class="class">GeometryInfo</code>::<code
- class="member">face_to_cell_lines</code> function maps face
- line numbers to cell line numbers.
- <br>
- (RH, 2005/03/11)
- </p>
-
- <li> <p>
- New: The new <code class="class">GeometryInfo</code>::<code
- class="member">face_to_cell_vertices</code> function maps face
- vertex numbers to cell vertex numbers.
- <br>
- (RH, 2005/03/11)
- </p>
-
- <li> <p>
- Fixed: There was a bug in the <code
- class="class">KellyErrorEstimator</code> class that resulted in
- assertions being thrown when run with multithreading
- enabled. This is now fixed.
- <br>
- (WB, 2005/03/10)
- </p>
-
- <li> <p>
- Changed: The <code class="class">Triangulation<2></code>::<code
- class="member">execute_refinement</code> function has been
- re-implemented to accommodate future developments. This change
- results in different ordering and indexing of lines and
- vertices. This leads to a change in the ordering of vertices in
- output files generated by <code class="class">GridOut</code>
- for refined grids.
- <br>
- (RH, 2005/03/09)
- </p>
-
- <li> <p>
- Fixed: The class <code class="class">MGDoFHandler</code> had trouble
- when it encountered a triangulation that had unused vertices, something
- that happens when one coarsens an existing triangulation. In
- that case, it would throw unjustified exceptions. This is now
- fixed.
- <br>
- (WB, 2005/03/01)
- </p>
-
- <li> <p>
- Fixed: The class <code class="class">Triangulation::RefinementListener</code> had only
- virtual abstract functions but no virtual destructor. This caused
- warnings with some compilers, and is generally bad practice
- anyway. This is now fixed.
- <br>
- (WB, 2005/02/22)
- </p>
-
- <li> <p>
- New: Function <code class="class">FETools</code>::<code
- class="member">compute_embedding_matrices</code> allows for
- automatic computation of embedding matrices under the sole
- assumption that the coarse grid space is embedded into the fine
- grid space. In particular, no interpolation points are required.
- <br>
- (GK, 2005/02/08)
- </p>
-
- <li> <p>
- Fixed: Several wrong assertions in the Raviart-Thomas finite element
- class have been fixed, that were triggered when integrating face terms.
- <br>
- (Oliver Kayser-Herold, 2005/01/24;
- WB, 2005/01/31)
- </p>
</ol>
<hr>