From d2318a3ddb6616174921c2820d9aa9b3bc98a6f9 Mon Sep 17 00:00:00 2001
From: wolf
- New: In multithreading mode, the compile flags now also have
-
- New: Major and minor version numbers of the
- deal.II library are now passed to the
- compiler as preprocessor variables
-
- New: the
- Changed: deal.II now uses the
-
- Changed: when compiling files, the output generated by the
-
- Fixed: the
-
- New: the
- New: the
- Improved: the
- Improved: Dependence on the files
-
- Fix:
- Improved: exceptions
- Improved:
- New: almost all classes that store data now have a function
-
- New: Class
- New: The
- New: There is a new
- New:
- New: There are now a set of functions
-
- New: The classes
-
- New: classes
- New: There is now a function
- New multithreading scheme is implemented.
-
- Improved:
- Improved: block classes have a variable number of blocks now,
- not a template parameter.
-
- New:
-
- Improved: Krylov-space solvers do not use the function residual
- anymore. This allows easier implementation of new matrix
- classes.
- New: There are now functions
-
- New: almost all classes that store data now have a function
-
- New:
- Fixed: unlike announced in the docs, the
-
- Improved:
- Improved: The breakdown criterion of
- New:
- Improved:
- New: For recognizing a diverging solver before the maximum
- number of steps is reached,
-
- Improved: The interface of preconditioner classes has changed.
- Preconditioners are now considered linear operators like
- matrices: they have members
- New: there is now a function
-
- Fix:
-
- Fix: the
-
- New: Class
- New:
- New:
- New:
- Fix: the
-
- Change: the
- Fix: the ``copy-like'' constructor of
-
- New:
- New: there are now functions
- Fix:
- Change: the solver classes in LAC lost their first template
- argument. Their names are now
-
- New:
- New:
- New:
- New:
- Extend:
- New: some arguments of the functions
-
- New: almost all classes that store data now have a function
-
- New: The
- New: The
- New: The
- New: The
- Extended: The
- Extended: The
- New: The
- Extended: The
- New: The
- Extended: The
- New: The
- Removed: The
-
- New: There is now a function
-
- Changed: The
-
- New: there is now a class
- New: class
- Changed: The functions
-
- New:
- New:
- Fix: Add a missing assertions in
- New: Class
- New: Function
- New: The new function
- New: classes
- Fix: slight bug in
-
- New: class
- Removed: The obsolete
-
- (Ralf Hartmann 2000/05/26)
-
- New:
- Improved:
- Changed:
- Changed: enum
-
- New:
- Changed: As follows from the existence of this new smoothing,
-
- (Ralf Hartmann 2000/05/18)
-
- Changed: the
-
- For symmetric sparsity patterns, the algorithm now eliminates
- each boundary value in O(m*log(m)) steps instead of
- O(N*log(m)), where N=number of rows of the matrix, and m=number
- of entries per row. Note that m is roughly constant,
- irrespective of N, so the old algorithm became slower with
- finer grids, while the new one is O(1) for each boundary degree
- of freedom.
-
- (John Burnell, WB 2000/05/17)
-
- New: many functions are now templatized on the data type of the
- vector they take or return. They thus now support
- Changes after Version 3.0
-
-This is a quite extensive list of changes made after the release of
-deal.II version 3.0. It is subdivided into changes
-made to the three sub-libraries base,
-lac, and deal.II, as well as
-changes to the general infrastructure,
-documentation, etc.
-
-
-
-
-General
-
-
-
-
-
-
-
-_REENTRANT
defined. If this flag
- is defined, then the standard Unix headers also declare
- reentrant versions (with suffix _r
)
- of many functions.
-
- (WB 2000/09/20)
- DEAL_2_MAJOR
and
- DEAL_2_MINOR
. Their present values
- are 3 and 1, respectively. Variables of the same name are also
- available in Makefiles.
-
- (WB 2000/09/18)
- step-9
example program is
- now ready, showing several advanced programming techniques in
- deal.II.
-
- (WB 2000/07/18)
- kdoc2
program to generate the API
- documentation. This makes up for much nices documentation and
- also works better than the previous kdoc1
.
- A copy of kdoc2
is provided within
- the deal.II source tree.
-
- (WB 2000/06/28)
- make
program now indicates also
- whether we are compiling for multithread mode, besides the
- information whether the file is compiled for debug or optimized
- mode.
-
- (Ralf Hartmann 2000/06/26)
- common/scripts/make_dependencies.pl
- script that sets up the dependencies for the make files had a
- problem when the path to the library included special characters
- such as `+'. This is now fixed.
-
- (WB 2000/06/15)
- configure
script now
- checks whether the getrusage
function is properly
- declared (this function is used in the timer class). The
- problem is that on SunOS 4.x, this function exists, but is not
- declared in the right file (although it is listed in the man
- pages). We then have to declare it ourselves.
-
- (WB 2000/06/14)
- configure
script now
- enforces the compiler flags -ansi -pedantic
when
- compiling in debug mode. This should force us to write more
- standard compliant code. (Since the ACE library is not
- standards conforming, the -ansi
flag is not used
- when multithreading is requested.)
-
- (WB 2000/06/14)
- configure
script is
- now used to select the compiler options. Previously, selection
- of compiler options was done both in
- configure
as well as in the global
- options Makefile
- common/Make.global_options
.
-
- (WB 2000/06/02)
- forward_declarations.h
has been widely
- removed to improve compilation time
-
- (GK 2000/05/24)
- configure
now uses
- config.guess
to determine the
- operating system and hardware platform.
-
- (GK 2000/04/05)
- base
-
-
-
-
-
-
-
-
-ExcIO
and ExcOutOfMemory
are defined globally now.
-
- (GK 2000/12/07)
- ParameterHandler
now has a
- function log_parameters
which
- allows output of all parameters to a log file.
-
- (GK 2000/12/07)
- memory_consumption
that returns an
- estimate of the amount of memory (in bytes) used up by this
- class. Supporting functions to compute the size of STL vectors
- and other objects can be found the
- MemoryConsumption
namespace.
-
- (WB 2000/11/27)
- FunctionDerivative
- computes finite difference approximations of a directional
- derivative of a Function
.
-
- (GK 2000/11/13)
- DataOutBase
and
- DataOutBase::Patch
classes have been
- changed so as to allow output of objects that have an other
- dimension than the surrounding space, for example writing faces
- instead of cells (this might be useful to write only external
- faces in 3d computations).
-
- (WB 2000/09/07)
- distance
function
- in the Point
class that calculates the
- distance between two points.
-
- (Ralf Hartmann 2000/09/06)
- Timer
now uses the system
- function getrusage (RUSAGE_CHILDREN,
- .)
that is need in multithreading. But still the Timer
class does not yet work in
- multithreading, as getrusage with flag RUSAGE_CHILDREN gives always
- 0 (at least on Solaris7).
-
- (Ralf Hartmann 2000/08/25)
- outer_product
that for the outer
- product of tensors.
-
- (WB 2000/07/23)
- Patterns::Integer
- and Patterns::Double
now allow that
- a range may be specified in which the parameter shall
- be. Furthermore, instead of a class,
- Patterns
is now a namespace, so it
- can be reopened in case you want to write another pattern class
- and want to put it into the same namespace.
-
- (WB 2000/07/21)
- QMilne
and QWeddle
for closed Newton-Cotes-formulæ of
- orders 7 and 9, respectively.
-
- (GK 2000/07/07)
- invert
- (Tensor<2,dim>)
that returns the inverse of a tensor of
- rank 2.
-
- (WB 2000/04/14)
-
- (WB 2000/04/13)
- Subscriptor
prints the
- real class name if a subscribed object is deleted.
-
- (GK 2000/04/12)
- lac
-
-
-
-
-
-
-
-
-
- (GK 2000/12/07)
- BlockDiagonalMatrix
is a
- template that generates a matrix with multiple copies of the
- same block on the diagonal.
-
- (GK 2000/12/07)
- SolverGMRES
now also counts
- the first iteration step. Finally, all solvers inherit a Subscriptor
.
-
- (GK 2000/12/07)
- SparsityPattern::symmetrize
and
- SparseMatrix::symmetrize
that
- generate a symmetric matrix from a non-symmetric one.
-
- (WB 2000/12/02)
- memory_consumption
that returns an
- estimate of the amount of memory (in bytes) used up by this
- class.
-
- (WB 2000/11/27)
-
- SparseMatrix
- returns the number of entries that are actually nonzero.
-
- (Ralf Hartmann 2000/11/22)
- FullMatrix::norm2
function did not
- return the Frobenius norm of a matrix, but its square. This is
- fixed now.
-
- (GK 2000/08/28)
- PreconditionBlockSOR
::Tvmult(...)
is implemented.
-
- (GK 2000/07/07)
- SolverBicgstab
can be changed by the use
- of SolverBicgstab::AdditionalData
.
-
- (GK 2000/07/07)
- SolverRichardson
has a
- transposed solver Tsolve(...)
. It
- uses the functions Tvmult(...)
of
- the provided matrix and preconditioner.
-
- (GK 2000/07/07)
- FullMatrix
::invert(...)
now inverts matrices of all
- sizes. If there is no hardcoded inversion, gauss_jordan()
is used implicitly.
-
- (GK 2000/06/30)
- SolverControl
returns
- failure
also if the residual
- increases over the start residual by a specific factor. This
- factor is given to the SolverControl
- object by the set_failure_criterion
- function. After calling the latter function, checking of this
- additional failure criterion may again be disabled by calling
- clear_failure_criterion
.
-
- (Ralf Hartmann 2000/06/26)
- vmult
- and Tvmult
instead of the old operator()
. This will allow the
- implementation of further non-symmetric solvers.
-
- (GK 2000/06/20)
- SparseMatrix::el
that does mostly
- the same as SparseMatrix::operator()
,
- but returns a zero if elements of the matrix are accessed that
- are not in the sparsity pattern. Thus, the new function allows
- to actually traverse rows or columns of the matrix without
- taking care of the sparsity pattern, while
- SparseMatrix::operator()
should be
- used to write algorithms more efficiently.
-
- (WB 2000/06/02)
- SparsityPattern::print_gnuplot
- wrote rows and columns exchanged. Since most matrices have
- symmetric sparsity patterns, this has gone unnoticed by now.
-
- (WB 2000/05/30)
- FullMatrix::Tvmult
function
- suffered from the same problems as the
- FullMatrix::Tmmult
function. This
- is now fixed as well.
-
- (WB 2000/05/26)
- PreconditionBlockJacobi
.
-
- (GK 2000/05/24)
- SolverControl
has an interface
- to ParameterHandler
, definining and
- reading parameters from a file automatically.
-
- (GK 2000/05/24)
- BlockIndices
: Class that
- manages the conversion of global indices into a block
- vector/matrix/... to the indices local to each of the blocks.
-
- (WB 2000/05/08)
- BlockSparsityPattern
and
- BlockSparseMatrix
: Classes that
- represent matrices that are composed of sparse matrices.
-
- (WB 2000/05/08)
- FullMatrix::mmult
and
- FullMatrix::Tmmult
code don't
- resize their output argument any more, as this is not common
- style in the library. Furthermore,
- FullMatrix::Tmmult
was utterly
- broken.
-
- (WB 2000/05/08)
- matrix_norm
functions
- of sparse and full matrices are renamed to
- matrix_norm_square
, since they in
- fact return the square of the norm. This should avoid confusion
- in some cases.
-
- (WB 2000/05/05)
- SparsityPattern
that copies another
- object and adds some off-diagonals had a bug that caused an
- exception in some cases. This is now fixed.
-
- (WB 2000/05/04)
- SwappableVector
: Class that
- allows to swap out the data of a vector to disk and reload it
- later on. It also has a function to preload the data before its
- use in a separate thread if the library is configured for
- multi-threading.
-
- (WB 2000/05/03)
- Vector::swap
- and BlockVector::swap
, as well as
- global functions swap(u,v)
that
- exchange the data of two vectors without needing a temporary
- vector and without copying around data. Their run-time is
- therefore independent of the length of the vectors.
-
- (WB 2000/05/02)
- SolverCG
counts steps properly.
-
- (GK 2000/04/25)
- SolverXX<VECTOR>
, where
- XX
denotes the name of the solver
- (e.g. CG, GMRES, etc). Furthermore, the
- inheritance from Solver
was made private
- to reflect the logical structure.
-
- (GK 2000/04/25)
- EigenInverse
implements inverse
- iteration by Wieland.
-
- (GK 2000/04/20)
- EigenPower
implements power
- method by von Mises
-
- (GK 2000/04/19)
- PreconditionBlockSOR::set_omega
- allows to change the relaxation parameter.
-
- (GK 2000/04/12)
- SolverXX
: There is a virtual function
- print_vectors
called in every step. It is void in the
- solver itself but can be used to print intermediate iteration
- vectors.
-
- (GK 2000/04/05)
- deal.II
-
-
-
DoFTools::extract_boundary_dofs
- now allows to also specify which boundary conditions shall be
- considered.
-
- (WB 2000/12/04)
- DoFHandler::n_boundary_dofs
,
- DoFTools::extract_boundary_dofs
,
- and
- DoFTools::map_dof_to_boundary_indices
- are changed from list
to
- set
, since that resembles more
- closely the purpose of the parameter, and makes computations
- slightly faster.
-
- (WB 2000/12/04)
- memory_consumption
that returns an
- estimate of the amount of memory (in bytes) used up by this
- class.
-
- (WB 2000/11/27)
- ConstraintMatrix::add_entries
- function add several constraints at once.
-
- (WB 2000/10/26)
- DoFRenumbering::random
- function renumbers degrees of freedom in a random way.
-
- (WB 2000/10/22)
- TriaAccessor
now has a
- function point_inside
that checks
- whether a certain point is inside a given cell.
-
- (Thomas Richter 2000/10/12)
- FiniteElement
has got two
- new functions transform_unit_to_real_cell
-
and transform_real_to_unit_cell
-
. They allow to transform points from reference (unit)
- cell to real cell and visa versa. transform_real_to_unit_cell
involves a
- Newton iteration and works for all dimensions and all mappings
- used to transform from unit to real cell.
-
- (Ralf Hartmann 2000/10/12)
- Triangulation
- class can handle boundary information in 3d as well
- (i.e. lines and quads in 3d with special material IDs).
-
- (Michael
- Stadler 2000/10/11)
- GridIn
- class can now read 3D UCD data, including boundary information
- (i.e. lines and quads in 3d with special material IDs).
-
- (Michael
- Stadler 2000/10/11)
- GridRefinement::refine_and_coarsen_optimize
- function implements an alternative way to flag cells for
- refinement and coarsening.
-
- (Thomas Richter 2000/10/10)
- GridIn::delete_unused_vertices
- function now eliminates vertices from the input that are not
- referenced by any of the cells in the input file. This makes is
- simpler to delete some cells from the input file by hand,
- without the need to update the vertex lists, which can be
- tiring as several cells usually use each vertex. All functions
- in the GridIn
reading grids in
- several input files call this function before passing the data
- to the triangulation object.
-
- (WB 2000/09/26)
- GridIn
- class can now read the basics of grids in DB Mesh format.
-
- (WB 2000/09/26)
- KellyErrorEstimator
- class is now able to estimate errors for several solution
- vectors at the same time, provided they live on the same
- DoFHandler
object.
-
- (WB 2000/09/11)
- DataOut_Faces
class allows to
- output faces instead of cells. This might be handy for 3d
- computations if one is only interested in surface plots, or
- cuts through the domain.
-
- (WB 2000/09/07)
- DataOut_Old
class has finally gone for
- good. It was already deprecated in version 3.0, and has been
- superceded for a long time by the framwork of classes around
- DataOutBase
and
- DataOut
.
-
- (WB 2000/09/07)
- DoFHandler::n_boundary_dofs
- that takes the list of selected boundary indicators as a
- list
of values, rather than the
- usual map
of pairs of boundary
- indicators and function object pointers.
-
- (WB 2000/08/25)
- map_dof_to_boundary_index
- functions have been moved from the DoFHandler
- to the DoFTools
class, in order to
- further remove code from the big classes which is necessarily
- needed there.
-
- (WB 2000/08/25)
- DataOutRotation
- that can be used to output data which has been computed
- exploiting rotational symmetry, on the original domain. Thus,
- the output is of one dimension higher than the computation was,
- where the computed solution is rotated around the axis of
- symmetry.
-
- (WB 2000/08/14)
- HalfHyperShellBoundary
- and GridGenerator::half_hyper_shell
- generate a half shell, useful for computations with a shell
- domain and rotational symmetry.
-
- (WB 2000/08/08)
- Triangulation::refine
,
- Triangulation::coarsen
,
- Triangulation::refine_and_coarsen_fixed_fraction
,
- and
- Triangulation::refine_and_coarsen_fixed_number
- have been moved from the triangulation class to a separate
- class GridRefinement
as they are not
- intricately bound to the triangulation but rather form a
- distinct class of functions that flag cells for refinement or
- coarsening based on error indicators.
-
- (WB 2000/07/28)
- DataOut::clear_input_data_references
- clears all reference to input data vectors and to the DoFHandler
. This function may be useful
- after the patches have been built, to release memory as early
- as possible, in this case before the output is actually written.
-
- (WB 2000/07/26)
- class DerivativeApproximation
- approximates the norm of the gradient or second derivative of a
- finite element field on each cell from finite difference
- approximations.
-
- (WB 2000/04/14 and 2000/07/23)
- FEValuesBase::get_function_*
. If an ExcAccessToUninitializedField
is now thrown
- then probably an update_values
or
- update_gradients
is missing in the
- UpdateFlags
of a used FEValues
. Adding this assertion uncovered
- several other errors which are now also fixed; these errors
- were dormant, since the values of finite elements are always
- computed for the presently available Lagrange elements, but
- would have been activated once there are other classes of
- elements.
-
- (Ralf Hartmann 2000/07/20)
- DoFRenumbering
now has
- functions for cell-wise downstream renumbering for
- discontinuous elements. The parameters of the function sort_selected_dofs_back
have been
- switched to match the interfaces of all other functions in this
- class.
-
- (GK 2000 Jour de Bastille)
- VectorTools
::compute_mean_value
integrates the mean
- value of one component of a finite element function.
-
- (GK 2000/07/12)
- get_face
- of FEFaceValues
and FESubfaceValues
returns an iterator of the
- present face. This is the face, for that the FE(Sub)FaceValues
object was reinited
- the last time.
-
- (Ralf Hartmann 2000/06/26)
- FEDG_Px
implement
- complete polynomial spaces of degree x on
- quadrilaterals. Since they have less degrees of freedom than
- FEDG_Qx
, there is no continuous
- version for these elements. Implementation for P4 and 3D is
- still incomplete.
-
- (GK 2000/06/20)
- DataOut::build_patches
- in multithreaded mode fixed.
-
- (Ralf Hartmann, 2000/05/29)
- FETools
performs
- interpolations and extrapolations of discrete functions from one
- FiniteElement
to another FiniteElement
. It also provides the local
- interpolation matrices that interpolate on each
- cell. Furthermore it provides the interpolation difference
- matrix id-Ih that is needed for evaluating
- (id-Ih)z for e.g. the dual solution z.
- MatrixCreator::create_interpolation_matrix
- function is now removed.
- DoFTools::make_flux_sparsity_pattern
- can be optimized by providing two coefficient matrices.
-
- (GK 2000/05/25)
- VectorTools::integrate_difference
- allows for vector-valued weight functions. L1 and
- Linfinity norms are calculated correctly.
-
- (GK 2000/05/25)
- FE_DGx::restriction
is
- not an interpolation any more but a local projection which is
- more reasonable for DG elements.
-
- (Ralf Hartmann 2000/05/22)
- MeshSmoothing
is moved into the
- Triangulation
class.
-
- (Ralf Hartmann 2000/05/18)
- Triangulation
- is a new mesh smoothing. A mesh of patch level 1 consists of
- patches, i.e. they consists of cells that are all refined at
- least once.
- maximum_smoothing
will include this
- smoothing.
- MatrixTools::apply_boundary_values
- now uses a much faster algorithm when working on matrices with
- symmetric sparsity patterns. On the other hand, it does no more
- eliminate whole rows when a matrix has a non-symmetric sparsity
- pattern, or if the user (through a new flag) tells the function
- that this is not necessary, for example if the matrix itself is
- non-symmetric.
- Vector<float>
, but also
- BlockVector<...>
. An
- incomplete and growing list of functions that were treated in
- this way is:
-
-
- DoFAccessor::get_dof_values
,
- DoFAccessor::set_dof_values
,
- DoFAccessor::get_interpolated_dof_values
,
- DoFAccessor::set_dof_values_by_interpolation
,
- FEValues::get_function_values
,
- FEValues::get_function_grads
,
- FEValues::get_function_2nd_derivatives
,
- MatrixTools::apply_boundary_values
,
- ConstraintMatrix
.
-
- (WB 2000/05/16 and later)
-
- Changed: The computation of the Jacobian matrices in the
- FEValues
class is now done more
- efficiently. The speedup is in the range of a factor of 40 for
- 3D.
-
- (John Burnell, WB 2000/05/16)
-
- Change: DoFTools::make_hanging_node_constraints ()
- does not use the user flags any more, and can thus run in
- parallel more than once.
-
- (WB 2000/05/15)
-
- Extended: DoFTools::make_sparsity_pattern ()
- now accepts a template parameter as sparsity pattern. This
- allows to use this function for the usual
- SparsityPattern
, or for
- BlockSparsityPattern
arguments.
-
- (WB 2000/05/15)
-
- New: DoFTools::extract_hanging_node_dofs ()
- identifies nodes that will be constrained by hanging node constraints.
-
- (WB 2000/05/12)
-
- New: DoFRenumbering::sort_selected_dofs_back ()
- sorts selected degrees of freedom to the end of the index
- range.
-
- (WB 2000/05/12)
-
- Change: the return value of
- DoFHandler::max_couplings_between_dofs ()
- is bounded by DoFHandler::n_dofs()
.
-
- (Ralf Hartmann 2000/05/11)
-
- New: FEValuesBase::get_cell ()
- returns present cell.
-
- (Ralf Hartmann 2000/05/11)
-
- Fix: FESystem::reinit()
generated
- an exception if update_support_points
- was set.
-
- (WB 2000/05/10)
-
- New: IntergridMap::get_{source,destination}_grid
- functions return the grids for which the map was created.
-
- (WB 2000/04/19)
-
- Fix: in three space dimensions, the triangulation class
- over-estimated the necessary amount of memory needed upon
- refinement and allocated too much.
-
- (WB 2000/04/19)
-
- New: DoFTools::extract_boundary_dofs
- finds all degrees of freedom which are at the boundary and belong to
- specified components.
-
- (WB 2000/04/17)
-
- New: DoFTools::compute_intergrid_constraints
- allows to use different discretization grids for different
- variables.
-
- (WB 2000/04/15)
-
- New: DataOut::clear_data_vectors
- allows to re-use an object without deleting the DoFHandler
.
-
- (GK 2000/04/05)
-
- New: class DoFPrintSolverStep
prints
- intermediate vectors of a solver as finite element functions using
- DataOut
.
-
- (GK 2000/04/05)
-