Dune 2.2.1
Download the Dune 2.2.1 module sources
- dune-common [ tarball: dune-common-2.2.1.tar.gz ]
- dune-geometry [ tarball: dune-geometry-2.2.1.tar.gz ]
- dune-grid [ tarball: dune-grid-2.2.1.tar.gz ]
- dune-grid-dev-howto [ tarball: dune-grid-dev-howto-2.2.1.tar.gz ]
- dune-grid-howto [ tarball: dune-grid-howto-2.2.1.tar.gz ]
- dune-istl [ tarball: dune-istl-2.2.1.tar.gz ]
- dune-localfunctions [ tarball: dune-localfunctions-2.2.1.tar.gz ]
DUNE 2.2.1 - Release Notes
Build system
- Fixed test for support of
__attribute__((unused)) - Support for automake 1.13 (FS 1243)
- Made dunecontrol faster
- dunecontrol can handle multiple installed dune-common modules (FS 1250)
- dunecontrol has better support for suggestions
- Build system finds ParMETIS 4.0.2 (FS 1163)
- Out-of-source builds of the documentation are supported now.
dune-common
- Fixed warnings about unused typedefs.
- More standard compliant shared_ptr implementation usable with gcc-4.1.
- More standard compliant nullptr implementation
- Fixed illegal forward declaration of
std::pair(FS 1121) - Fixed infinity norm of NaN matrices (FS 1147)
- The
infinity_normof aDenseVectorreturns NaN if one of its entries is NaN (FS 1147) - Improved support for clang compiler
dune-geometry
- Improved support for clang compiler
- Fixed compilation for zero-dimensional grids
dune-grid
- Better support for clang
- Detect and support alberta grid configured with –disable-graphics
- Fixed compilation of gmsh2dgf FS 929)
- UGGrid switched to using
static_castfrom C-style casts. - Fixed support of UG with gcc 4.6.3 on OpenSuse 11.3 (FS 1142)
- Fixed ALUGridFactory on MacOS.
- Allow compilation of subsequent modules with -D
if dune-grid is not used (FS 1203)
dune-istl
- Reduced warnings when compiling with clang.
- We now use
templateto qualify member templates of class templates (FS 1251). - We now always initialize data memory in
BCRSMatrix(FS 1041) - Improved support for
std::complexin Krylov solvers. - Fixed
dbgsimplementation (FS 1170) - Fixed wrong assertion in
matMultTransposeMult(FS 1171) FieldMatrixcan now be constructed from aDiagonalMatrixAMGnow detects Dirichlet boundary conditions and updates the left hand side x duringpresuch that A_dd*x_d=b_d holds.- Allow setting
setSkipIsolated(true)inAMG’s coarsening criterion. - Fixed call of METIS function.
dune-localfunctions
No mentionable changes.
dune-grid-howto
No mentionable changes.
dune-grid-dev-howto
No mentionable changes.
DUNE 2.2 - Release Notes
Build system
- The macro
DUNE_SYMLINKhas been removed. It had been deprecated since the 2.0 release. Its purpose was the creation of the symlink ‘dune’ pointing from a modules top-level directory to itself (i.e.,dune-foo/dune --> dune-foo). The link created too much confusion. In the current layout of a dune module,dune-foo/dunehas to be an actual directory. - The
DUNE_DEPRECATEDmacro has gotten a cousin,DUNE_DEPRECATED_MSG. It allows to append an information string which gets printed by the compiler along with the warning. - The resume feature of
dunecontrolis now disabled by default, i.e., no resume file is written to the user’s home directory. To enable this feature, you have to specify the name of the resume file in the variableRESUME_FILEof your options file. - The majority of m4 macros honors configure caching. To use this feature with
dunecontroladd--cache-file=/tmp/dune-config.cacheto your options file. Be aware that the file persists betweendunecontrolruns. If you encounter any problems, you want to change the configuration, or to rerun all checks, the cache file should be removed manually.
dune-common
- The macro
DUNE_VERSION_NEWERhas lost its last argument ‘revision’. That argument was never supposed to be there and the macro did not actually use it. If you want to test for Dune module version numbers including the revision (third digit), please use theDUNE_VERSION_NEWER_REVmacro. If you need to stay compatible with the 2.1 releases, you even have to useDUNE_VERSION_NEWER_REV. Notice that passing zero for the revision number is equivalent to callingDUNE_VERSION_NEWER. FieldVector::sizeis now a method rather than an enum value. This makesFieldVectormore compliant with thestlconventions for container classes. To ease the transition there is a special mechanism: For the time being,FieldVector::sizeremains an enum value, hence all your code compiles as before. However you get a compiler warning explaining the issue and suggesting to configure with--enable-fieldvector-size-is-method. If you do so, thenFieldVector::sizebecomes a method, and you may have to go out and adjust your code. The configure flag is transitional and will be removed after dune 2.2 is out. We apologize for the inconvenience. There is no smoother way to do the transition, as you can’t haveFieldVector::sizeto be both an enum value and a method at the same time. If you do need the container size as an enum value useFieldVector::dimension.- A new macro
DUNE_UNUSEDhas been introduced. It provides a portable replacement for the__attribute__((unused))compiler attribute. In other words, if your compiler whines about an unused variable, but for some reason you cannot remove the variable, then you can mark it with this attribute to make the compiler shut up. Thanks to Elias Pipping for the patch.
Deprecated and removed features
- The
ConfigParserclass, already deprecated in Dune 2.1, has been removed. Please useParameterTreetogether withParameterTreeParserinstead. - The
Int2Typemechanism, already deprecated in Dune 2.1, has been removed. Please useintegral_constantinstead. - The class
Dune::GeometryTypehas been moved to dune-geometry. The header<dune/common/geometrytype.hh>is deprecated, please use<dune/geometry/type.hh>instead. - The
utility.hhfile, a backward-compatibility stub fortupleutility.hh, has been removed. Please usetupleutility.hhdirectly. - The
finitestack.hhfile has been deprecated. Please usestd::stack<Dune::ReservedVector>instead of theFiniteStackclass. - The
f5.m4build system check has been removed. Apparently it was never actually used by anyone. - The
Generic_MPI_Datatypeclass has been removed. - The methods
rbeginandrendof the classesDenseMatrixandDenseVectorhave been removed.
dune-geometry
New core module for mesh-independent and mostly geometric things. Most of its contents was taken out of dune-grid. The moved subsystems are listed below. Kudos to Christoph GrĂ¼ninger for doing much of the work.
Dune::GeometryType(previously dune-common)- Parts from the generic geometries (generic construction classes, corner mappings…). The
Dune::Geometryclass is part of the grid interface and therefore stays in dune-grid. - The generic reference elements (
Dune::GenericReferenceElements) etc. (previously dune-grid.) - The quadrature rules
Dune::QuadratureRulesetc. (previously dune-grid.)
dune-grid
- The
AmiraMeshWritercan now write 2d-in-3d simplex grids. These appear in Amira asSurfaceobjects. Vertex data on such grids can also be written. - dune-grid now requires the new core module dune-geometry.
- The
UGGridgrid manager now supports communication on edges, but only if your grid is 3d. (Thanks to Bernd Flemisch and Alexander Schlaich for the implementation) Update: Now it also works for 2d grids if you stay on level zero. - Geometries are no longer returned as references but as objects, i.e.,
Entity::geometry,Entity::geometryInFather,Intersection::geometry,Intersection::geometryInInside, andIntersection::geometryInOutsidenow return an object instead of a reference. This geometry object is specified to remain valid until the grid is modified (or deleted). Notice: While most code will continue to work without change, this might affect your code in a very subtle way, if you store references (or pointers) to the geometry object. Such references will now refer to a temporary object, which will be deleted at the end of the corresponding name space (i.e., at the next closing brace). - Parallel VTK files produced by the
VTKWriterused to get a prefix “s_SIZE_:” (.pvtu/.pvtpfiles) or “s_SIZE_:p_RANK_:” (.vtu/.vtpfiles). Since the colon “:” is unsupported on Windows and is annoying when usingscp, the prefixes have been changed to “s_SIZE_-” and “s_SIZE_-p_RANK_-”. You should check your post-processing scripts whether they are affected by this change. - The template parameter of the
VTKFunctionclass is now aGridView(it used to be aGrid).
Deprecated and removed features
All removed features have already been deprecated in dune-grid-2.1.
- The method
BasicGeometry::normalhas been removed. - The
EntityPointer::compactifymethod has been removed. The concept has been superseded by theEntitySeed. - The
UGGridthat took a heap size as its sole argument has been removed. If you want to set the default UG heap size please use the methodUGGrid::setDefaultHeapSize. - Two
readmethods of theGmshReaderthat had a grid as one of their arguments have been removed. Mesh readers are supposed to create the grid objects themselves. - The cast of the entity iterators (level/leaf/hierarchic) to
EntityPointerhas been removed. Although they provide a similar interface these iterators are not aEntityPointers. - The file
referencetopologies.hhhas been marked as deprecated, and will be removed after the release of dune-grid 2.2. It was an internal header not to be used by outside code, and has become obsolete. - The file
dynamicsubindexid.hhhas been marked as deprecated, and will be removed after the release of dune-grid 2.2. - The default implementation for EntitySeeds (as EntityPointers) has been removed. Each grid implementation now needs to implement EntitySeeds itself.
dune-istl
Matrix::transposedMultis deprecated, useMatrix::mtv- Support for SuperLU 4.3.
- Our wrapper of SuperLU now supports also
float,std::complex<float>, andstd::complex<double>. Unfortunately, SuperLU can only cope with one numeric type at a time. Therefore the user has to defineSUPERLU_NTYPEto 0, 2, and 3 to get support forfloat,std::complex<float>, andstd::complex<double>, respectively. - The
MatrixIndexSetclass now usessize_tfor all variables holding sizes. - Precision of writeMatrixToMatlab is adjustable.
- Added support for reading and writing in matrix market format.
- Made parallel AMG scale to nearly 300.000 processors.
- Added Parameter class to adjust AMG solver
KAMGimplements aggregation AMG with Krylov cycle.
Deprecated and removed features
- The deprecated class
ISTLAllocatorhas been removed. Default allocator is nowstd::allocator, and all new implementations should adhere tostd::allocator’s interface. - The support for the external library SuperLU older than the version 3.0 from 2005 is deprecated.
- The methods
rbeginandrendof the classesMatrix,BCRSMatrix,ScaledIdMatrix,DiagonalMatrix, andVariableBlockVectorhave been removed.
dune-localfunctions
- The module now includes second-order Lagrangian shape functions on hexahedra and pyramids (Implementation by Bernd Flemisch).
- For Q2 elements, the dimension of the reference cube can now be controlled with a template parameter. Unfortunately, the actual implementation is not dimension-independent yet, but 1d, 2d and 3d work. The old Q22D* classes are deprecated.
- dune-localfunctions no longer requires dune-grid, but the new core module dune-geometry instead. dune-localfunctions still suggests dune-grid though, since it is used by some of the tests.
- The module now includes the Brezzi-Douglas-Marini elements BDM1Q2 and BDM12D and the Raviart-Thomas elements RT1Q2D, RT12D, RT1Q3D and RT2Q2D (Thanks to Human Rezaijafari for the implementation).
dune-grid-howto
dune-grid-dev-howto
Known Bugs
-
Our drop-in replacement of std::shared_ptr differs slightly from the official implementation. With Dune::shared_ptr only the destructor of the base class A will be called in the following example:
struct A{...}; struct B:public A{...}; void voo() { shared_ptr p = shared_ptr(new B); }In contrast the shared_ptr in (std|std::tr1|boost) will call the destructor of B even if it is not virtual. We intend to resolve this issue only implicitly by eventually discarding our own reimplementation of shared_ptr:
-
The pseudo inverse used in the generic geometries might fail for nearly singular matrices. This is not really a problem unless the grid is nearly degenerate.
A list of all bugs can be found online in our bug-tracker http://www.dune-project.org/flyspray/.
|
Legal Statements / Impressum |
Hosted by TU Dresden & Uni Heidelberg |
generated with Hugo v0.111.3
(Apr 14, 22:30, 2026)