Releases: Deltares/MeshKernel
Releases · Deltares/MeshKernel
v3.0.1
What's Changed
Minor patch that fixes the nuspec package input configurations. Otherwise identical to v3.0.0.
v3.0.0
Major improvements
- A new efficient mesh deletion algorithm has been introduced, allowing for the deletion of a mesh based on a polygon with two options:
- Delete faces inside the polygon that are not intersected by the polygon segments.
- Delete faces inside the polygon that are intersected by the polygon segments.
- Minimum edge size in meters is now taken into account when refining a mesh based on a polygon or samples, both in spherical and Cartesian coordinates.
- Mesh refinement based on the Courant criteria now considers the max_courant_time.
- Improved the generation of rotated curvilinear grids within a polygon.
- Performance has been enhanced by utilizing 32-bit integers for unsigned indexes.
- The refinement of a polygon perimeter has been improved.
- The polygon class has been refactored.
- The generation of curvilinear grids has been improved by introducing Eigen.
- Input and parameter range checks are now in place. When invalid values are specified, exceptions are thrown and errors are registered.
API changes
- Improve performance of search algorithms
mkernel_mesh2d_get_edge
andmkernel_mesh2d_get_node_index
by introducing a bounding box defining the search area. - Small, non-contiguous regions of an unstructured mesh can be removed using the
mkernel_mesh2d_remove_disconnected_regions
function. - Quadrangular unstructured meshes can now be connected using the
mkernel_mesh2d_connect_meshes
API function. - Snapping a polygon to a land boundary is now possible with the
mkernel_polygon_snap_to_landboundary
function. - Snapping a spline to a land boundary is now available through the
mkernel_splines_snap_to_landboundary
function. mkernel_curvilinear_make_uniform
is now divided in 3 apis for separating responsibilitiesmkernel_curvilinear_make_rectangular_mesh
: for making a curvilinear mesh based on origin, rows and columnsmkernel_curvilinear_make_rectangular_mesh_from_polygon
: for making an curvilinear mesh inside a polygon with defined block sizesmkernel_curvilinear_make_rectangular_mesh_on_extension
: for making an curvilinear mesh on a defined area using defined block sizes
mkernel_mesh2d_make_uniform
is now divided in 3 apis for separating responsibilitiesmkernel_mesh2d_make_rectangular_mesh
: for making an unstructured mesh based on origin, rows and columnsmkernel_mesh2d_make_rectangular_mesh_from_polygon
: for making an unstructured mesh inside a polygon with defined block sizesmkernel_mesh2d_make_rectangular_mesh_on_extension
: for making an unstructured mesh on a defined area using defined block sizes
- Triangular mesh generation functions have been renamed as follows:
mkernel_mesh2d_make_mesh_from_polygon
->mkernel_mesh2d_make_triangular_mesh_from_polygon
mkernel_mesh2d_make_mesh_from_samples
->mkernel_mesh2d_make_triangular_mesh_from_samples
- The
mkernel_mesh2d_delete
function now supports only two options: InsideNotIntersected = 0 and InsideAndIntersected = 1. This algorithm supersedes the previous mesh deletion algorithms. - edge_faces and face_edge have been added to the meshkernelapi::Mesh2D structure to allow the reconstruction of the faces
Bug fixes
- Account for boundary edges in
mkernel_mesh2d_get_orthogonality
,mkernel_mesh2d_get_smoothness
- The translation of large polygons in spherical coordinate generates erroneous results when used to inquire if a point is in polygon
v2.0.0
What's Changed
API changes
- Added mesh refinement based on bilinear interpolation:
mkernel_mesh2d_refine_based_on_gridded_samples
- Added a projection factor in
mkernel_contacts_compute_single
, for generating 1D2D contacts when 1D nodes are not inside the mesh2d - Removed
block_size
parameter inMakeGridParameters
- Added an API for making uniform curvilinear grids based on extension:
mkernel_curvilinear_make_uniform_on_extension
- Added an API for making uniform mesh2d based on extension:
mkernel_mesh2d_make_uniform_on_extension
- Added an API for retrieving the projection type of the current instance:
mkernel_get_projection
- Add default initialization for several parameters in the API structures
Bugs
- Fix a bug in creating a MeshKernel instance with spherical coordinates
Improvements
- Improve speed for
Mesh2D::FindFaces
algorithm by using a static vector for edges to faces mapping - Fixed memory leaks in triangulation
- Statically linked NetCDF libraries with the script available in scripts/install_netcdf_static.ps1
- macOS support with GCC
- Better project tree and CMake build configuration scripts
New Contributors
- @HiddeElzinga made their first contribution in #111
- @evetion made their first contribution in #112
- @ahmad-el-sayed made their first contribution in #127
- @BillSenior made their first contribution in #182
Full Changelog: v1.0.0...v2.0.0
v1.0.0
- First stable release
- Features:
- 1d meshes
- 2d meshes
- Contacts
- Curvilinear Grids
- Polygons
- Mesh creation routines