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