Skip to content
Snippets Groups Projects
CHANGELOG.md 6.96 KiB
Newer Older
Ansgar Burchardt's avatar
Ansgar Burchardt committed
<!--
SPDX-FileCopyrightText: Copyright © DUNE Project contributors, see file LICENSE.md in module root
SPDX-License-Identifier: LGPL-2.1-or-later
-->

# dune-uggrid 2.10 (unreleased)

* Remove deprecated `AllocEnvMemory` and `FreeEnvMemory`. They were
  wrappers of standard `malloc` and `free`.

* Remove deprecated `Mark` and `Release`. Use `MarkTmpMem` and
  `ReleaseTmpMem` instead.

* Remove deprecated `HeapAllocMode` and its flags `FROM_BOTTOM` and `FROM_TOP`.
  They lost any influence, as we use the system heap.

* Remove deprecated `DDD_InfoProcList`, use `DDD_InfoProcListRange` instead.

* Remove deprecated `DDD_IFOneway`, use method overload with context as first
  argument instead.

# dune-uggrid 2.9 (2022-11-25)
* The `dune-uggrid` module does not set the preprocessor flag `HAVE_UG` anymore.
Oliver Sander's avatar
Oliver Sander committed
  Use `HAVE_DUNE_UGGRID` instead.
* Several unused data members have been removed from the `UGGrid` data structure.
  The grids will behave as before, but the memory footprint should be a bit smaller.
# dune-uggrid 2.8 (2021-09-06)
* Added support for All_All communication on facets.
* Removes support for `_2` and `_3` macros.
* Remove support for XDR.

# dune-uggrid 2.7.0 (2019-12-20)
* Multiple grids are now also allowed in the parallel implementation
  [!96]: https://gitlab.dune-project.org/staging/dune-uggrid/merge_requests/96

*   The `TET_RULESET` compile-time option has been renamed to
    `DUNE_UGGRID_TET_RULESET` and is enabled by default.
    It is no longer necessary to provide the `RefRules.data` file.
    [!134](https://gitlab.dune-project.org/staging/dune-uggrid/merge_requests/134)

* Header files moved below dune/uggrid. Headers are installed in the same
  sub-directory and no longer into ug/. This breaks compatibility to UG 3.13.
  [!137](https://gitlab.dune-project.org/staging/dune-uggrid/merge_requests/137)

# dune-uggrid 2.6.0 (2018-04-03)

* Transfer of element data during load balancing is supported.
  See [!55][] and [dune-grid!172][]
* `dune-uggrid` has gained a new build-time switch `TET_RULESET` (default is off).
  When set, `UGGrid` will use a better algorithm to compute green closures for red--green
  grid refinement.  This better algorithm, which involves a complete rule set
  for tetrahedral elements, leads to refined grids with smaller closures.
  It also fixes at least one [bug](https://gitlab.dune-project.org/core/dune-grid/issues/27).
  *Beware:* when `TET_RULESET` is set, UG wants to read a table from the file `RefRule.data`
  (in `uggrid/lib/ugdata`).  This file needs to be in the current directory, otherwise `UGGrid`
  will abort. The long-term plan is to compile the data file into the binary, and make
  the new closure algorithm the default.
* Many now unused parts of UG have been removed from the source.
* The memory management of UG got a major overhaul:
  - As malloc/free memory management was used for a long time, we removed
    the manual heap management of UG.
  - `DYNAMIC_MEMORY_ALLOCMODEL` was used by default, now we removed the
    switch and cleaned up all `#ifdef`s
  - The `FROM_BOTTOM`/`FROM_TOP` flags during memory allocation didn't have
    any influence, as we use the system heap. The enums were deprecated
    and the interface updated.
  - unified the different memory allocation methods
  - removed user data from the `MULTIGRID` structure
  - removed virtual heap management
* The `InsertElement` algorithm has been completely rewritten. Up to now the user
  had to ensure that enough memory was allocated in order to create a
  lookup for the `InsertElement` neighbor search. This was necessary to
  ensure an O(n) complexity. Otherwise loading large meshes was
  prohibitively slow. The new implementation uses modern C++ data
  structures. To speed up the neighbor search we maintain a hash-map
  (i.e. `unordered_map`) from a face to an element. The new
  implementation is as fast as the old one, can dynamically adapt to
  the mesh size and uses less memory.

See the list of all [dune-uggrid 2.6 merge requests][] for minor
changes not mentioned here.

  [!55]: https://gitlab.dune-project.org/staging/dune-uggrid/merge_requests/55
  [dune-grid!172]: https://gitlab.dune-project.org/core/dune-grid/merge_requests/172
  [dune-uggrid 2.6 merge requests]: https://gitlab.dune-project.org/staging/dune-uggrid/merge_requests?milestone_title=Dune+2.6.0&scope=all&state=all

# dune-uggrid 2.5.0 (2017-12-18)

* dune-uggrid is now a DUNE module that will only contain UG's grid
  manager in the future.
* Switch to CMake build system.


# UG Release 3.13.0 (01-03-2016)
* Rename macros `_2` and `_3` to `UG_DIM_2` and `UG_DIM_3` respectively,
  to avoid clashes with symbols of the same name in libc++.
* Add file `.gitlab-ci.yml` to drive the Gitlab continuous integration features
* Remove an obsolete XCode project file, and an obsolete mystery file 'conf.h'
* Fix an out-of-bounds array access reported by the gcc sanitizer



# UG Release 3.12.1 (11-05-2015)
* Fix bug in `Makefile.am` which prevented building of tarballs.


# UG Release 3.12.0 (11-05-2015)
The major change in this release is the official transformation of the
Oliver Sander's avatar
Oliver Sander committed
entire code base to C++.  While pretty much everybody (read: all Dune users)
has compiled UG as C++ for many years now, the code itself was still
officially C.  In the 3.12.0 release all .c files have now been renamed
to .cc, and UG will hence build as C++ by default.
Thanks to Christoph Grüninger.

* Remove code that redefines standard types on specific architectures
  (Fixes Debian build problems of dune-grid)
* Fix various problems when compiling with clang
* Fix the return type of a few methods that don't actually return anything.
* Removal of dead and redundant code
* Minor cleanup and beautifications in ddd



# UG Release 3.11.1 (2-12-2014)
Oliver Sander's avatar
Oliver Sander committed

This is mainly a bugfix release.  As the only behavioral change, memory
management now defaults to the operating system heap, rather than the
built-in heap.  This eases debugging and appears to speed up the code.

* Make method `CreateLine` return `void` instead of `INT`.
Oliver Sander's avatar
Oliver Sander committed
  This fixes a segfault when compiling with clang.
  Thanks to Carsten Gräser.
* More build system and other cleanup



# UG Release 3.11.0 (12-06-2014)

This release contains several bugfixes related to dynamic load balancing.
It also contains many important cleanup patches (kudos to Ansgar Burchardt).

* Properly set `SideVector` `VCOUNT` fields after load balancing
  (Dune FlySpray 810: https://dune-project.org/flyspray/index.php?do=details&task_id=810 )
* Bugfix: Always identify MIDNODEs to the proclist of the father edge
* Bugfix: Initialize EDIDENT for edges for 3d _and 2d_ before refinement
* Bugfix: Call the `RestrictPartitioning` method more often before adaptive refinement
* Remove the Fortran interface to the DDD library
* Remove left-overs from the Chaco load balancer which used to be contained
  in the UG source tree
* Remove lots of code related to obsolete architectures and the old build system
* Remove old, non-free version of netgen
* Constification in the DDD subsystem
* Various build-system improvements