1#Version 5.1.0:
2## Features
3  * *PR #399, #406, #408, #410: Updates for E3SM workflow to support online remapping computation for climate applications through interfaces to TempestRemap library.
4     Major additions to expose online remapping capabilities by computing exact intersection between unstructured meshes on a sphere, and providing
5     projection weight operator computation through interfaces to TempestRemap for both scalar and vector solution fields with conservation and/or
6     monotonicity constraints. While the primary application target is E3SM for this particular feature addition, the bulk of the interfaces added
7     in this PR can be reused in other coupled physics simulations as well.
8  * *PR #403: Updates to Cython file generation process in PyMOAB.
9     We’ve done away with static `.cpp` files in the project and are now relying on users having a Cython installation greater than 0.26 on their machine.
10     This helps us with python 2/3 compatibility issues as well as superfluous re-compiles of libraries.
11## Enhancements
12  * *PR #376, #365: Updates to PyMOAB to improve the Cython interaction and Python3 compatability.
13  * *PR #397: Consistent CMake configurations for downstream apps
14  * *PR #404: Update RTT reader to support v1.0.1 specs
15  * *PR #391, #401: Delete volume/surface OBB trees and restore OBBs from file
16  * *PR #370: Several improvements in the GeomTopoTool implementation
17## Fixes
18  * *PR #363, #398: PyMOAB tag and skinner test fixes
19  * *PR #364: CMake configuration updates to not always require Fortran for BLAS/LAPACK linkage
20  * *PR #362: Several semantic and memory leak fixes due to Coverity, cppcheck and valgrind
21  * *PR #364, #366, #368, #373, #374, #375, #379, #381, #382, #384, #387, #388, #389, #400, #407, #409: Several miscellaneous configuration updates for both autotools and CMake workflows
22#Version 5.0.0:
23## Features
24  * *PR #248, #290, #299*: Eigen3, BLAS/LAPACK -- Add support for the Eigen3 BLAS/LAPACK header libraries; Now BLAS/LAPACK are required dependencies for MOAB in order to support high-performance dense solver support for various algorithms
25  * *PR #278, #286, #280, #296, #300, #325, #326, #332, #331, #334, #335, #317, #345, #346, #353, #356*: PyMOAB -- This interface now directly exposes Python modules to access common MOAB functionality in order to load, query and manipulate structured/unstructured meshes in memory. It also includes interfaces to some specific classes such as the ScdInterface and its associated classes along with the TopoUtil tool. We have also added support for Tags, Range, Skinner modules that can be used to build more advanced capabilities as needed. Currently, this interface only supports serial configuration and we intend to support parallelism through `mpi4py` dependencies in the next release. Several useful tests and examples have also been added for users to get started.
26  * *PR #162*: Add capability to load an "*unpartitioned*" mesh file through a trivial partition with the parallel option: `PARALLEL=BCAST_DELETE;PARTITION=TRIVIAL`; This works for any mesh format and so we are no longer restricted to just our parallel h5m native mesh.
27  * *PR #238*: Discrete Geometry Module -- Higher order curve and surface reconstruction strategies based on local polynomial fittings along with integrated support for recursive uniform refinement.
28  * *PR #318*: Add Mesquite optimization support to MOAB so that mesh optimization algorithms can be natively run on a MOAB mesh. It can also use the geometry information when MOAB is configured with CGM (through Lasso relational databases in MOAB).
29  * *PR #330*: Add support for computing high-order, conservative, multi-mesh projection weights with the **TempestRemap** library. Several optimizations have been implemented for the advancing-front algorithm to compute the intersections between two unstructured meshes on a sphere. In addition to this, the integration with Tempest library enables computation of the projection weights between FV/cGLL/dGLL discretizations seamlessly in a scalable fashion, even though Tempest itself is a serial library!
30  * *PR #288*: HEX8 (linear) to HEX27 (quadratic) mesh conversion utility
31## Enhancements
32  * *PR #263*: Support for building with CGM build directory (instead of installation) to ease SIGMA workflows
33  * *PR #267*: Modify scale and reflect signature in FBiGeom, now it conforms to iGeom
34  * *PR #266*: Update Matrix3 constructor
35  * *PR #143*: The original design of MOAB Core was responsible for initializing MPI (if the user / driver forgot to do it in a parallel setting). However, this is just bad design since after destruction of moab::Core object, and hence call to MPI_Finalize(), no other MPI calls could be made. This design has now been fixed and MPI_Init and MPI_Finalize should now be called in user driver code.
36  * *PR #287*: Code fails gracefully when number of ranks are greater than number of parts in loaded h5m file
37  * *PR #276*: iMOAB extensions to create and manipulate vertices in addition to querying entities and tags on the mesh
38  * *PR #291, #302*: The autotools parallel build toolchain has been accelerated and simplified
39  * *PR #298, #316*: Read node materials from gmsh file and other I/O issues.
40  * *PR #285, #293, #303, #306, #323, #315, #327, #339, #348, #355*: Several DagMC related enhancements
41               - A major DagMC refactor to move bulk of the capability to OrientedBoxTreeTool, GeomTopoTool, and GeomQueryTool tools
42               - various performance and API improvements
43               - Completely remove the DagMC tool from MOAB since the bulk of the capabilities are now exposed through other native classes in MOAB directly.
44               - Implement context for determining whether ray intersections are counted
45               - Add a method to GeomTopoTool to recover the topology of a geometry of nested volumes when the file does not contain this information
46  * *PR #311*: Update Debian dependencies.
47  * *PR #308*: `mbconvert` tool can now include the MPAS (graph) partition data during conversion
48  * *PR #304*: AHF adjacency queries will not be turned on by default until we add support for mixed meshes and poly-meshes
49  * *PR #201, #329*: The examples folder has been fully re-organized to better help users get started with capabilities and understand usage of MOAB for computational use-cases. New examples have also been added.
50  * *PR #344*: Adding an example to compute exact normals using iRel when a geometry is available.
51  * *PR #343*: Refactor the GenLargeMesh example to a callable API to generate structured HEX/TET meshes in memory
52  * *PR #341*: Update the configuration suggestions for LCF machines: ALCF, NERSC
53  * *PR #359*: Adding an option to explicitly specify NetCDF-C++ interfaces when TempestRemap is enabled
54## Fixes
55  * *PR #261*: Removing several verbose error outputs
56  * *PR #264*: Fixes for 32-bit architectures
57  * *PR #250, #262, #282*: Better support for PGI and Clang compilers
58  * *PR #268*: Titan cray intel issue for parallel HDF5 I/O
59  * *PR #250, #277, #324*: MPAS and NetCDF I/O enhancements and fixes
60  * *PR #270*: Better tests for ray tracing and OBB
61  * *PR #273, #310, #312, #322, #347*: Several updates and fixes for autotools and CMake build configuration
62  * *PR #275, #297*: Several memory leak fixes for MOAB algorithms
63  * *PR #283*: Fix for DAGMC looking for OBB_TAG
64  * *PR #283*: Several updates to `mbcoupler` tool and adding support for moab::SphericalQuad elements
65  * *PR #313*: When reading Exodus files, if the entities are higher order, use only the corner nodes for matching
66  * *PR #320*: Update options to disable fortran (this was complicated due to introduction of BLAS/LAPACK libraries as required dependencies)
67  * *PR #309, #333, #354*: Documentation updates
68  * *PR #349*: Update HDF5 includes - found through failures in Ubuntu installations
69  * *PR #337*: Fixing several compiler (GNU, Clang, Intel) warnings
70
71#Version 4.9.2:
72## Features
73  * *PR #259*: Introduce the new language-agnostic iMOAB interface to MOAB that is oriented towards FEM/FDM/FVM applications codes.
74               This is a ongoing replacement to the ITAPS iMesh interfaces but with much less verbosity and indirection in implementation.
75  * *PR #196*: Expose "mhdf" publically to be consumed by advanced visualization (VisIt) and parallel I/O use-cases
76  * *PR #195*: Addition of an optimized parallel mesh resolution algorithm when performing UMR in memory
77  * *PR #193*: Support for Attila RTT finite element mesh files
78  * *PR #203*: Support for the general OBJ triangulation files
79  * Add support for Bitbucket pipelines, Codeship/Drone.io integration for improving CI and testing infrastructure on a per-commit basis
80## Enhancements
81  * *PR #229*: Add support for polygon and polyhedra in VTK and NetCDF formats
82  * *PR #246*: Improved re-design of the DagMC tool
83  * *PR #251*: Support 64-bit integers with MetisPartitioner
84  * *PR #247*: Better support for configuration/build on BG/Q systems (ANL Vesta/Mira with GNU/XLC compilers)
85  * *PR #258*: Redesign of options to control sequence allocation (previously CoreOptions)
86## Fixes
87  * *PR #234*: Several key fixes found through cppcheck and Coverity (static analysis tools)
88  * *PR #233*: Parallel h5m file load of recursive sets
89  * *PR #213, #230, #255, #253*: Autotools/CMake fixes for MPI, HDF5, NetCDF configurations on various architectures
90  * *PR #231*: Remove explicit dependence on Cubit through MOAB
91  * *PR #227*: Several fixes for reading NetCDF and MPAS climate files
92  * *PR #236*: Correctly process mesh files created on Windows architectures
93  * *PR #242*: Make the iterator over SequenceData deterministic (especially when filling holes in entity sequences)
94
95# Version 4.9.1:
96## Features
97  * *PR #200*: MOAB now supports auto-download and configuration/installation of several dependencies (HDF5, NetCDF and Metis/ParMetis) out of the box; Use configuration options:
98    * ```--download-hdf5 --download-netcdf --download-metis``` etc
99    * We plan to add more dependency support in future releases.
100  * *PR #187*: Removal ##`qvdual`## tool from MOAB
101  * *PR #218*: Remove ##`txt`## Reader/Writer support (this was an empty shell class)
102  * A configuration suggestion script (suggest_configuration.sh) that is part of MOAB repository.
103    This script simplifies options to be used for new users.
104## Enhancements
105  * Better support for OSX, Linux and LCF systems
106  * *PR #191*: Improve augmenting ghost entities with set information (remove parallel and memory bottlenecks)
107  * *PR #194*: Generate Fortran prototypes during configuration directly (no auto-generation during build)
108  * *PR #199*: Enhanced support for dealing with polygons and polyhedra with added functionality for VTK and Exodus formats
109  * *PR #202*: AHF support for high-order elements
110  * *PR #208*: The debian support now includes Fortran and Metis dependencies
111## Fixes
112  * Several key fixes found through cppcheck and Coverity (static analysis tools)
113  * Improvements in both autotools and CMake configuration systems
114  * *PR #214, #217*: Core::connect_iterate works with non congruently allocated cells of same type.
115
116# Version 4.9.0:
117## Features
118  * PR #109: Optimized AHF data structure and scalability of parallel uniform mesh refinement now available (Major)
119  * PR #140: Merge Lasso sources to MOAB completely (Major)
120  * PR #137: Debian builds are available for MOAB out-of-the-box now; Check the link for updates:
121             https://launchpad.net/~nschloe/+archive/ubuntu/moab-nightly/+packages (Major)
122  * PR #172: Updated support to load geometry representations (CGM 15.0 + Cubit 14.9/15.0)
123## Configuration
124  @ CMake
125    * PR #166: Missing file in CMakeLists.txt and remove exe flag from sources
126    * PR #154: Don't require METIS_DIR, PARMETIS_DIR to be set
127    * PR #150: Improve CMake HDF5 detection
128    * PR #146: Remove usage of MPI_DIR, remove config/FindMPI.cmake
129    * PR #135: CMake cleanup
130    * PR #124: CMake support for verdict, Metis/ParMetis
131  @ Autotools
132    * PR #168: Remove obsolete code related to netcdf workaround in moab_mpi.h
133    * PR #163: Prepare to use "make run" target in examples folder
134    * PR #149: Replace the deprecated finite routine (C99 standard)
135    * PR #148: Modify obb tests to not be run with regular suite
136    * PR #144: Fortran libs for imeshp test
137    * PR #129: Use correct linker flags for Fortran examples in debug mode
138    * PR #121: Fixes for examples and upgrade makefile with options to run targets
139    * PR #114: Fix compiler warnings related to HAVE_UNORDERED_MAP
140    * PR #122: Enable MOAB_HAVE_VSNPRINTF for ErrorOutput.cpp
141## Fixes
142  @ General
143    * PR #165: GenLargeExample tetra option fix
144    * PR #157: Fix metis partitioner for serial builds
145    * PR #147: Rename __SDIR__ macro
146    * PR #132: CartVect duplicate removal
147    * PR #142: simplify CpuTimer
148    * PR #138: Updates to TestUtil and testMatrix3 to make sure eigenvectors (normalized) are checked correctly.
149    * PR #136: Add checks for dense double tags
150    * PR #130: Fix for the way Eigenvectors are returned in the Eigenvalue decomposition function.
151    * PR #133: Face-to-volume Sense Corrections (MOAB)
152    * PR #120: Fixed the test_adj.
153    * PR #126: Remove redundant definition of CpuTimer in WriteHDF5Parallel.cpp
154    * PR #123: Fix element_test issue due to missing mesh files
155    * PR #125: Bug in Coupler
156    * PR #119: Fix dual_test issue due to missing mesh file
157    * PR #169: Fix for quadratic pyramid adjacency creation
158  @ Parallel fixes
159    * PR #160: Fix hdf5 parallel reader if number of partitions is too small
160    * PR #159: Run more parallel tests when built without HDF5
161    * PR #158: Add option to skip augmenting the default sets with ghosts
162    * PR #145: Factor in sequence manager for ghosting
163    * PR #141: Populate sets with ghost entities
164    * PR #131: Merge_all method added to merge mesh class
165  @ I/O
166    * PR #151: HDF5 parallel reader bug
167    * PR #128: HDF5 file with more than 2^32 entities
168  @ Memory leaks
169    * PR #156: Various fixes for memory leaks in serial and parallel examples
170    * PR #153: Valgrind fix for parallel_hdf5_test
171    * PR #127: Gen large mesh memory reduction
172    * PR #116: Major changes for large mesh example
173
174# Version 4.8.2:
175## Fixes
176  * PR #106: Ghosting polyhedra elements
177  * PR #107: AHF polyhedra fix (triggered when configured with --enable-ahf)
178  * PR #110: To fix attribute warning when loading an h5m file
179  * PR #108: Addresses issues raised by faceting on models that have point curves
180  * PR #113: Fix a ParallelComm issue in PGI optimization build
181  * PR #117: Side number should return failure when side is -1
182## Enhancement
183  * PR #89: Writing Dense tags in parallel (minor)
184  * PR #104: Install configuration header to decipher dependencies (major)
185  * PR #115: Partitioning with Metis (major)
186
187# Version 4.8.1:
188## Fixes
189  * PR #97: Support read and write of point clouds and free nodes in vtk format
190  * PR #103: Add explicitly created skin entities to the passed non-null meshset. Previously, this was only available from root set
191  * GMSH and VTK reader fixes
192  * Several minor compiler warnings removed
193## Enhancement
194  * PR #101: Support computation of surface normals for different entity types
195
196# Version 4.8.0:
197## Features
198  * UMR: Implemented the uniform mesh refinement capabilities for different entity types for degrees (2,3,5). Tools to load a MOAB mesh and uniformly refine it based on user inputs is now available
199  * Coupler: Improvements in scalability of the spatial coupler and improved capabilities to perform global and subset based conservation/normalization
200  * Verdict: A new set of API functions to measure quality metrics for MOAB entities (based on Verdict library)
201  * Enhanced error handling support with clean stack traces in both serial and parallel are now provided natively (examples included)
202## Build
203  * Considerably improved CMake-based build support for linux/OSX/Windows
204  * Updated autoconf based build system to address all warnings in different architectures and more robust configuration
205      @ Improved support for OSX Mavericks
206      @ Improved 32-bit handle support
207      @ Support for configuration on ALCF machines out of the box
208* Moved tools/mbzoltan/MBZoltan.* to src/ZoltanPartitioner.*
209* Several bug fixes and warning removals based on GNU, Clang, PGI and Intel compilers
210  - PR#59: ParallelComm - update the correct partition number when creating a part
211  - PR#54: WriteNCDF - minor bug when writing out side sets
212  - PR#94: Exodus Writer - fixes for variable length tags
213* Additional unit tests for testing several finer grained APIs
214* Several updates to the User and Developer guide in documentation to detail aspects of the new features (UMR, Verdict, Error handling)
215* Overall enhanced Windows support (VS2008) (contributions by Kitware)
216
217# Lasso
218* Several code restructuring to conform library better to SIGMA stack of tools
219* Updates to the autoconf build system to make it more robust
220* Warning fixes for Clang/PGI/GNU/Intel
221* Build in optimized mode by default
222
223# Version 4.7.0:
224* Implemented the Array-based Half Facet data structures in MOAB to improve adjacency querying and efficient traversals between related entities (use --enable-ahf during configure)
225* Co-developed (MOAB and PETSc) to introduce a new native MOAB-mesh based Discretization Manager (DM) implementation in PETSc that supports parallel solution to PDE problems on unstructured grids.
226* Remove memory leak for point-to-point communication (issue #7) caused due to reuse of MPIRequest structures
227* Reading sets in parallel (ticket 273)
228* Parallel mbconvert bug (ticket 274, material sets compromised before writing)
229* Fix memory leak for tracked sets (ticket 285)
230* Fix issue #8 for merging higher dimensional entities
231* Fix edge adjacency and skinner to operate on Polygon and Polyhedra
232* Eliminated miscellaneous compiler warnings (tested on GCC-4.6.3, clang-3.0, Intel-13.1, PGI-13.6)
233* New reader/writer formats (CGNS, MPAS, GCRM); Improve support for several existing formats (Climate-NC, HOMME, CAM-Euler, CAM-FV)
234* Introduce padded polygons option for lower memory fragmentation in MPAS and GCRM climate readers
235* Add climate data NC writer, in serial and parallel, for all data formats supported by the NC reader with options to append, read time-series with concatenation
236* Add Zoltan repartitioning for MPAS reader
237* Improvements in CUBIT reader for boundary conditions data, support CUBIT 14.0 format changes, endianness for BG/Q, variable length tags for saving block attributes and headers
238* Add TET4 as supported element in Exodus reader
239* Enhanced Doxygen-based documentation support for API, user guide, developer guide and examples.
240* Added several new examples to demonstrate the usage of the API for different applications; More to be added here.
241* Added robust CMake build support for MOAB; Preliminary fixes for Windows systems.
242* Enhancements and refactoring to support reading the CGM geometry models for DagMC
243* Parallelization of the MOAB based conservative intersection (CSLAM) algorithm for advection/transport applications
244* Refactoring of MBCoupler and refactoring to support dynamic usage of new search tree algorithms (Kd, BVH)
245* Update VTKReader Paraview plugin for MOAB; Removed the old vtkMOABReader and replaced it with vtkMOABReaderNew.
246* Added meshset argument for methods in ParallelComm and Skinner
247* New options for NC reader
248    - rename PARTITION_METHOD=TRIVIAL_PARTITION to PARTITION_METHOD=TRIVIAL
249    - add NO_MIXED_ELEMENTS option fo reading polygon data (it means padded)
250    - add NO_EDGES option for MPAS reader
251    - RENAME option for renaming a variable at writing an nc file
252    - TIMESTEP option for reading nc files
253* Changes in Core::list_entities to print dense tag information
254* Changes in memory evaluators, move from type long to type long long
255* Changes to ScdInterface, mostly to support new partitioning method (sqijk) but also to allow for periodic meshes in all 3 directions
256* Install TupleList for serial builds also
257* New method in MergeMesh that allows stitching a mesh based on an integer tag defined on vertices (GLOBAL_ID)
258* Introduced interface to delete entities in ParallelComm
259
260# Lasso
261* Miscellaneous warning fixes exposed through Buildbot
262* Fix some stack smashing bugs
263* Added [Doxygen support][http://ftp.mcs.anl.gov/pub/fathom/lasso-docs] with nightly API built from repository
264* Better flag determination during configuration
265
266# Version 4.6:
267* Removed deprecated functions from the Interface: (some overloaded variants of) query_interface, release_interface,
268  tag_get_data, tag_set_data, tag_get_size.
269* Added Interface::adjacencies_iterate, whose behavior is much like tag_iterate.
270* Extended Interface::get_coords, to return entity centroids (avg vertex position) for non-vertex entities instead of failing
271* Added new iMeshP extension function iMeshP_getCommunicator, converting fortran integer to MPI C communicator
272* Various bug fixes and improvements of mbcoupler (parallel mesh to mesh transfer): handling of spectral elements, works in
273  serial now, better tolerancing for point searches
274* New conventions for handling spectral element types; see doc/metadata_info.doc for details
275* New options for mbsize, similar to those for mbconvert (allows user to specify parallel reading options, so mbsize can be
276  run as a parallel reading test)
277* Initial implementation of Damsel reader/writer
278* Major enhancements, efficiency improvements for NC data reader, including going mostly to a 2.5D representation, addition
279  of a HOMME data reader, bug fixes in representing periodic meshes in parallel
280* Initial implementation of a GCRM data reader, and a better ReadTemplate class (skeleton for writing new readers)
281* Add new metadata and properties handling to DAGMC
282* More extensive warning reporting when using GCC compilers, and many warning eliminations
283* Support for 1D in structured mesh interface
284* Improved doxygen developer documentation
285* Alternative vtkMOABReaderNew & paraview plugin (in tools directory)
286* Additions/improvements to examples
287* New performance tests that include direct tag access tests (in test/perf/perf.cpp)
288* Undeprecated one of the "tag_get_handle" functions for returning tag handle given tag name
289* Several conventional tags (GLOBAL_ID, MATERIAL_SET, others) now have conventional default
290  values; see src/MBTagConventions.hpp for a list of default values and other conventional tag
291  characteristics.
292
293# Version 4.5:
294* ITAPS: added iMesh_stepEntIter, iMesh_stepEntArrIter, iMesh_tagIterate, iMesh_createTagWithOptions (see iMesh_extensions.h)
295* More partitioning options for structured mesh (see ScdInterface::compute_partition functions, and doc/metadata_info.doc)
296* Error class exposed in API, and query_interface now supports getting access to the moab::Core member of that class.
297* Added Interface::coords_iterate and Interface::connect_iterate, analogous to tag_iterate (allows direct access to
298  coordinate and connectivity memory for blocks of entity handles)
299* Added new iMeshP extension tag_reduce
300
301# Version 4.1:
302* Structured mesh API (see src/moab/ScdInterface.hpp)
303* Parallel read of netcdf-based .nc files using pnetcdf (see doc/metadata_info.pdf)
304* Updated ParaView plugin (see tools/vtkMOABReader/README for details)
305* Direct access to dense tag storage (see tag_iterate function in src/moab/Interface.hpp)
306* Add set iterators (see src/moab/SetIterator.hpp and usage in test/perf/perf.cpp)
307* Fix zoltan build on case-insensitive file systems (e.g. MacOS)
308* Fix netcdf build w/ required HDF5 in non-system path
309
310# Version 4.0.1:
311* Compatible with iMesh 1.2 (see README.IMESH for details on compliance testing)
312
313# Version 4.0:
314* Many improvements to parallel correctness and efficiency
315* Use of MPIO for parallel read of HDF5-based file format
316* Parallel import of file formats utilizing internal communication and/or partial read of files.
317* Partial read of HDF5-based files
318* Import files from: ABAQUS, IDEAS, MCNP5, NASTRAN, Sms, TetGen, Star-CCM+
319* String-based file options for controlling format-specific file options (see README.IO for a
320  list of options.)
321* Mesh refinement tool
322* Compact storage of structured mesh data
323* Variable-length tag data
324* Alternate, cmake-based build system
325* Support for most recent ITAPS APIs
326* New data coupling tool
327* Python API based on ITAPS APIs
328* Many performance improvements (both runtime and memory), including entity sets, dense tag data,
329  bit tag data, skinning, and entity deletion.
330* MOAB namespace
331* Fixed bug in get_entities_by_type_and_tag for cases with non-zero
332  input set which has or doesn't have entities
333
334# Version 3.0.0 (SVN tag 3.0.0):
335- Updated QVDual to work with new versions of VTK and removed
336dependence on graphviz
337- Move ITAPS/TSTT interface implementation into tools/iMesh and make
338it work with configure system
339- Implement new version number system
340- Incorporate DagMC library (does fast facet-based
341ray tracing) into tools/dagmc
342- Prefer g++ to pgCC in configure scripts
343- Many improvements in kd tree functionality, performance
344- Move entity sets to be stored in sequences, better performance &
345functionality
346- Improved various file writers/readers, including:
347. Better performance of HDF5 file reader
348. Configuration with/without HDF5, netcdf
349. Vtk writer improvements
350- Added functions to MBInterface to get memory usage of MOAB
351- Fixes to various MBCN functions for 64-bit builds
352- Small changes to #defines of some tag names in MBTagConventions.hpp
353
354
355# Version 2.00 (CVS tag version_200):
356- New MBInterface method to get blocked coordinate data for vertices.
357- Speed up reading of entity sets in .h5m files.
358- Store sets in entity sequences
359- Remove use of virtual functions from MBMeshSet
360- Add API for quering total and break-down of memory use by MOAB.
361- Add initial Adaptive kD-tree implementation.
362- Add upper_bound method for MBRange.
363- Make parallel configuration (MPI rank and size) per-MOAB-instance values,
364  and add utility methods for querying/manipulating processor ID portion
365  of entity handles.
366- Fix allocation of handles such that they are allocated with the
367  correct processor ID for parallel
368- Remove MPI calls from MOAB constructor.  Make paralle config (MPI
369  rank and size) arguments to the MOAB constuctor.
370- Separate type definitions from interface definitions.  MBEntityType.h
371  contains the definition of MBEntityType and MBTypes.h contains the
372  definitions of all other types and includes MBEntityType.h.  MBInterface
373  now includes MBTypes.h rather than MBCN.hpp so some applications using
374  MBCN.hpp may have to add an explicit include.
375- Add methods to MBRange to check if all contained entities are of a given
376  type or dimension
377- Change internal storage of entity set parent/child lists so that we have
378  better behavior parent/child links become stale (don't try to delete/deref
379  stale pointers.)
380- Add lower_bound, upper_bound, equal_range methods that accept an MBEntityType
381  as input to MBRange.
382- Add front, back, pop_front and pop_back methods to MBRange
383- Change internal MBRange::PairNode definition so that the
384  MBRange::const_pair_iterator::operator->() works correctly.
385- Added 'bool' value to tag_create, defaulting to false.  When true, tag_create
386  will return MB_SUCCESS if the tag already exists *and* matches the tag
387  creation parameters.
388- Fixed bugs saving/restoring of mesh and default values for tags containing
389  MBEntityHandles to/from HDF5 files.
390- Allow special case null (zero) value for MBEntityHandle tags in HDF5 files
391- Added processor rank to entity handle, right below entity type and above id
392fields; width of this field is computed at initialization, and depends on the
393number of processors being used.  On serial versions, zero bits are used so
394handles are as before.
395- Added option to specify requested start id and processor id when creating
396a mesh set.
397- Added functionality (in MBParallelComm class) for passing mesh between processors.
398- Corrected set-related functions when inputting '0' (which is taken to mean
399the interface set, i.e. the whole mesh); in this case, one can't add parent/child
400sets, but one can request them (return no sets in that case)
401- Added functions to support tag semantics
402- Added num_hops argument for num_child_meshsets and num_parent_meshsets.
403- Removed default value for default value in tag_create function (this
404argument was making the choice between overloaded versions of this
405function ambiguous)
406- Fixed bug in MBCN::NumSubEntities when input d=0 (i.e. vertices)
407- Changed arguments to get_connectivity to take const MBEntityHandle* and size
408instead of std::vector, so single MBEntityHandle can be used as input
409- Added version of get_connectivity which returns results in an MBRange,
410for convenience of calling code needing to do range-based logic
411- Added std::string MBInterface::get_error_string(const MBErrorCode) const, which
412returns a string for the error code passed in (usually just a string representation
413of the error code enum)
414- Added MBRange variants of get_parent_meshsets, get_child_meshsets
415- Added list_entity function to MBInterface
416- Fix bug writing global/default values for tags containing entity handles
417   to HDF5 files when using 64-bit handles.
418- Fix bugs in VTK I/O for structured mesh, polygons, quadratic elements, and
419   bit tags.
420
421# Version 1.01 (CVS tag version_101):
422##New Capabilities:
423- Added support for polygons/polyhedra; polyhedra represented by
424storing polygon handles as connectivity array, otherwise poly elements
425similar to other entities in MOAB
426- Added DualTool, to compute mesh dual, and for hex meshes, dual
427surfaces/curves
428- Added support for new HDF5-based native MOAB reader/writer; this is
429the only format capable of storing any data represented in MOAB
430- Added writers for GMV, SLAC, Vtk (limited), and also a template for
431constructing new mesh writers WriteTemplate
432- Added tools/converter tool for mesh format conversion to/from any of
433the formats supported by MOAB
434- Added support for dynamically adding readers/writers and dynamically
435testing whether any in the list can read/write a given file; required
436substantial additions to MBWriteUtil
437- Added MBInterface::tag_get_default_value
438- Added MBRange functions subtract, lowerBound, operator+=, operator-=
439- Added rudimentary mesh joining capability, and a test for that to
440MBTest
441- Added "categories" tag, which represent broad category types on
442entity sets; used e.g. to indicate a set represents geometric
443vertex/edge/face/region, dual surface/curve, etc.; currently only
444supported by .cub file reader
445
446##Bug Fixes/Rearrangements:
447- Fixed bug getting up-adjacencies from entities having equivalent entities;
448some adjacencies were being missed.
449- Fixed a bug in set_connectivity, where old vertices were put on the
450end of a scratch array instead of the beginning; symptom showed up as
451old vertices still being adjacent to the element whose connectivity
452was being set.
453- Changed error returned when tag_delete_data called for entity which can't be found,
454from MB_TAG_NOT_FOUND to MB_ENTITY_NOT_FOUND
455- Fixed bug in tag_get_tags, where tag handles weren't passed back properly
456- Improved efficiency of MOAB's TSTT mesh interface implementation in
457various ways
458- Extensive changes to performance tests (in test/perf) to test MOAB
459performance compared to that of cubit and of MOAB TSTT mesh interface
460- When requesting entities with a tag value equal to the (defined)
461default value for that tag, entities not having a tag are returned in
462the list
463- Move conventional tag names from MBInterface.hpp into
464MBTagConventions.hpp
465- renamed MBCN::SubEntityConn to MBCN::SubEntityVertexIndices, and added
466new function MBCN::SubEntityConn, which returns the actual
467connectivity of a subentity given the parent connectivity, and the
468subentity dimension and index
469
470# Version 1.00:
471Initial release (woo-hoo!)
472