Release 0.7.0

changeset:
  730:8ef6cd2

Changes:

- This only updates us to by Python3 compatible.  No other changes, and parallel
  tessellation is still not revised (broken).

--------------------------------------------------------------------------------
Release 0.5.24

changeset:
  613:49f868f0879d

Changes:

- This a bugfix revision of the 0.5.23 release.
- Mostly building fixes (choice of MPI compiler, some missing initializations, etc.)
- Also modified how tessellateDegenerate works, so that it does not modify the
  the input positions.

--------------------------------------------------------------------------------
Release 0.5.23

changeset:
  602:ecadaf969184

Changes:

- This a bugfix revision of the 0.5.23 snapshot released previously.
- There was a bug in the configuation/build logic that would cause the python
  bindings for the DistributedTesselators not to be built.
- As of 0.5.22 we have folded in Joachim's cmake build improvements as well.

--------------------------------------------------------------------------------
Release 0.5.22

changeset:
  581:a9704935f287

Changes:

- Significant efficiency and robustness improvement to TriangleTessellator
- Added unified PLC-based interface to Boost.Geometry operations
- Added Python utility classes and soon-to-be unit tests in polytope_py
- Internal reorganization of types
- A few new unit tests.

--------------------------------------------------------------------------------
Release 0.5.21

changeset:
  513:e27e1ea53a20

Changes:

- Mostly minor fixes/changes.  Added some python functionality.

--------------------------------------------------------------------------------
Release 0.5.20

changeset:
  490:bc5088adddb1

Changes:

- Adding a link flag for building the python extension module on Mac OSX.

--------------------------------------------------------------------------------
Release 0.5.19

changeset:
  472:c13a436c0bb9

Changes:

- Minor python changes (improved printing of PLCs, etc.)
- Release LICENSE file now correct.
- David added documentation in the "doc/" directory.
- Assorted minor bug fixes.

--------------------------------------------------------------------------------
Release 0.5.18

changeset:
  458:4d944000229a

Changes:

- Updates to build on latest Mac OSX (10.9) using Xcode 5.0.2.  We are also
  building with cmake 2.8.12, and it looks like our old HDF5 cmake rules were
  broken with this version.  I have removed internal HDF5 cmake rules and all
  seems good with the cmake default version.

--------------------------------------------------------------------------------
Release 0.5.17

changeset:
  353:ad25ff9e774b

Bugfix:

- Dave pointed out potential memory error in how we built up new unique keys 
  when collapsing topology.  Implemented the corrections across tessellators.

Changes:

- Created new methods on the Tessellator base class to allow tessellations with
  degenerate input point sets.  These are not tested yet.

- Moved the hash to uint64_t methods from TetgenTessellator's private space
  to generic utility methods.  At some point we need to reconcile this approach
  with Dave's quantizing coordinates class.

--------------------------------------------------------------------------------

Release 0.5.16

changeset:
  347:380ba754304a

Bugfix:

- Resurrected the TetgenTessellator -- at this point only the unbounded case.  
  Its passing its unit tests and we've produced some large serial tessellations
  with it, but not extensively tested yet.

--------------------------------------------------------------------------------
Release 0.5.15

changeset:
  329:22c3fa7cc85d

Bugfix:

- Some uninitialized variables were causing strange behavior when running 
  optimized. No other changes.
- Fixed a bug in the new logic of convexHull_2d that checks for collinearity in
  the input.  The 3D remains behind on this for now.

--------------------------------------------------------------------------------
Release 0.5.14

changeset:
  327:6ebae51127e5

Bugfix:

- Minor bugfix for compilation with clang++.  No algorithmic changes.

--------------------------------------------------------------------------------
Release 0.5.13

changeset:
  321:c2a87aa916d7


Bugfix:

- Major testing of our distributed capabilities. Expansion of the distributed
  unit tests to improve robustness.
- Subtle bug in the convexIntersect function
- Refactoring the 2D tessellators to better handle degenerate cases and
  interface with the orphan cell algorithm

Added capability:

- Amended the algorithm for computing processor communication for the
  distributed tessellator. (Included in this is a theoretical basis for why
  the algorithm ought to work.)
- You can now build Polytope without the tests. Configuring with
  option build_tests=0 will turn off testing
- Running "make test" will now test the distributed capabilities (and acutally
  use multiple processors!) If cmake finds MPI and the srun executable, it will
  default to using that. Otherwise, it will search for mpirun. If it fails on
  both, the distributed tests won't run.

--------------------------------------------------------------------------------
Release 0.5.12

changeset:
  311:2fe0292d80ad

Bugfix:

- Significant testing of the BoostTessellator has increased its robustness
- Expansion of the unit tests to include moving generators and controlling
  topological changes in degenerate meshes.
- Fixed the problem of Triangle returning very thin Delaunay triangles at the
  boundary. TriangleTessellator is more robust now.

Added capability:

- The BoostTessellator computes both bounded and unbounded meshes with similar
  reliability to the TriangleTessellator now. A Python interface is also
  available for the BoostTessellator.
- Large reorganization of the source code to expose code shared by both 2D
  tessellators. Provides a new development direction for wrapping additional
  tessellators in the future.

--------------------------------------------------------------------------------
Release 0.5.11

changeset:
  301:f2f026c57719

Bugfix:

- Triangle was found to produce triangles using collinear points, leading to
  infinite circumcenter positions. Modifications made to make sure this error
  does not impact the Voronoi dual
- Updated the algorithm for computing cell centroids

Added capability:

- Introducing the BoostTessellator! Building Polytope with Boost v1.52 or higher
  will wrap the 2D Boost.Polygon tessellator. This is a fast sweepline routine
  based on Fortune's Algorithm. The BoostTessellator currently works for
  unbounded and simple bounded problems and will be rigorously tested in the
  near future.
- The MeshEditor class includes routines for detecting and cleaning edges whose
  length falls below some local relative tolerance. This includes methods for 
  deleting specified cell/face/node indices in a consistent manner. 

--------------------------------------------------------------------------------
Release 0.5.10

changeset:
  292:7ace19fe234f

Bugfix:

- The method for detecting and eliminating degenerate nodes has been refined
  in TriangleTessellator to make it more robust to large circumcenter positions
- TriangleTessellator has been reorganized to speed up bounded tessellations
- More test boundaries and cases for the orphaned cell algorithm

Added capability:

- Triangle circumcenters are now computed with exact predicates to improve
  robustness of the 2D algorithm

--------------------------------------------------------------------------------
Release 0.5.9

changeset:
  278:c3c28b740513

Bugfix:

- Extensive testing, particularly of the orphaned pieces of cells for complex
  boundaries in 2D tessellations.
- TriangleTessellator has been refactored to more closely match the structure
  used in TetgenTessellator.
- David has put in a fair amount of work debugging the DistributedTessellator,
  which seems fairly robust now.

Added capability:

- Initial implementation of the 3D Tetgen tessellator.  Currently only supports
  unbounded tessellations.

--------------------------------------------------------------------------------
Release 0.5.8

changeset:
  239:ff9d1d22e3ba

Bugfix:

- For bounded tessellations using TriangleTessellator, cells may leave orphaned
  pieces for complicated boundaries. Added algorithm to distribute the orphaned
  piece among its neighbors using a local Voronoi mesh.

Added capability:

- Polytope may be built with Python wrappers using PyBindGen. Currently wrap
  the Tessellation, Tessellator, and PLC structs as well as provide methods for
  using C++ containers as Python objects. User must specify a Python executable 
  and version number and a path to the PyBindGen installation. Additional checks
  on the Python path determine if bindings can be generated before building.

--------------------------------------------------------------------------------
Release 0.5.7

changeset:
  210:3928f2ed1913

Fixes to compile on IBM xlC platforms in a fairly broken (i.e., no
Boost.Geometry) way.

--------------------------------------------------------------------------------
Release 0.5.6

changeset:
  202:53fca806b57f

Bugfixes for specific platforms.  

1.  Build and test correctly on Mac OS/X with clang++.

2.  Build (but nearly useless) on IBM xlC.  xlC does not handle Boost.Geometry
    correctly, so we have disabled all code employing Boost.Geometry on that
    platform, which means the TriangleTessellator is not available.

--------------------------------------------------------------------------------
Release 0.5.5

changeset:
  199:caa54ad70b77

More bugfixes:

- DistributedTessellator passes its tests now. Added second adjacency loop to
  catch any neighboring domains that see each other on the full mesh but not
  necessarily on the hull mesh. tests/test_FailedCommunicaton illustrates how
  this can happen.

- TriangleTessellator now checks that all tessellation nodes lie inside the
  boundary. Nodes outside are moved to the boundary using the new nearestPoint
  routine, provided the node does not move a distance greater than some
  geometric tolerance.

- Added several new tests for the 2D serial and distributed tessellators. New
  routines in polytope_test_utilities and new classes aid in designing further
  tests.

--------------------------------------------------------------------------------
Release 0.5.4

Minor bugfixes:

- Upping required Boost version to 1.51 since we get incorrect geometries with
  the Triangle tessellator using 1.50.

- Pulling the requirement of throwing the -fPIC compile flag out to all compilers
  rather than just GNU.  Not sure if this will be portable in all cases yet, but
  we definitely need this in the instance of intel icpc.

--------------------------------------------------------------------------------
Release 0.5.3

Introducing the SerialDistributedTessellator, which should produce reliable
tessellations in parallel because it reduces all generators to all processors,
builds the global tessellation, and then culls down to each domains owned cells.
This is obviously not a good solution for scaling, but will be a useful check
on the DistributedTessellator.

--------------------------------------------------------------------------------
Release 0.5.2

More bugfixes for the most part:

- Adding a parallel consistency checking method (checkDistributedTessellation)
  that performs fairly extensive (and potentially expensive) checking of the
  parallel data structures.

- Trying to make the DistributedTessellator more robust, but at least with our
  one fully functioning serial Tessellator (Triangle) we still get occasionally
  bad parallel structures.  The problem is that the tessellation is not 100%
  reproducible with the same generator positions in different orders.

- Adding some new make configuration options, like use_silo=0/1.

--------------------------------------------------------------------------------
Release 0.5.1

Minor bugfix release:

- Puts the ASSERT2 macro inside the polytope namespace to avoid conflicts with
  host codes.

--------------------------------------------------------------------------------
Release 0.5.0

Initial release of polytope.  Includes functional 2D tessellator
TriangleTessellator and somewhat flaky VoroPP_2d and VoroPP_3d tessellators.
The DistributedTessellator seems to be working OK as well.  TetgenTessellator is
not passing it's unit tests.

Basically this release is intended as an initial beta release for the 2D
Triangle based tessellator, both serial and parallel.
