Releases: CHLNDDEV/OceanMesh2D
OceanMesh2D V6.0
We invite you to support our efforts by becoming a sponsor. Your contribution will help us continue our work and make further improvements. To learn more and to sponsor us, please visit: https://github.com/sponsors/krober10nd. Thank you for considering supporting our project!
Added
Added ability to generate constrainsts for shorelines automatically using the new high-fidelity method. #264
auxiliary file reader function that can be used standalone e.g., m = m.read({'fort.13','fort.15'})), as well as called from within msh() function. #287
swanoutput namelist for SWAN model outputs. #287
Added new function in msh called remesh_patch to remesh within specified polygonal domains and insert back into parent mesh. #301
Read and write to 2dm format. #300
namelist and RSTIMNC input arguments for Make_f15.m fort.15 generator. updated the help message for all input argumebts to Make_f15. #283
New stability namelist options to Make_f15.m fort.15 generator. #283
Optionality for mesh2dgen to choose the method of mesh generation kind, and the maximum iteration count iter. #272
Option improve_with_reduced_quality to meshgen for allowing for mesh improvements even when quality is decreasing or large number of nodes eliminated, which sometimes is necessary to force the advancement in mesh quality.
Option delaunay_elim_on_exit to meshgen to skip the last call to delaunay_elim to potentially avoid deleting boundary elements.
Geoid offset nodal attribute in Calc_f13 subroutine. #251
Support for writing Self Attraction and Loading (SAL) files in NetCDF for the ADCIRC model. #231
Added 'high-fidelity' option for automatically forming and constraining edges into the mesh. #264
Changed
treating logicals in namelists as a logicals type within MATLAB but ouput as a string. #287
Calc_Sponge.m to allow for sponge in polygon region and coefficents based on spatially varying depth. #287
removed namelists from default setup in Make_f15.m fort.15 generator to be invoked by user as an input argument instead. #283
Use implicit smoother (ds=1) in msh.clean when fix points are present. #283
Default filename for the dynamicWaterLevelCorrection is now null so that it is not evoked by default. #272
Default mesh improvement strategy is ds 2.
Retrieve boundary indices in msh.get_boundary_of_mesh method. #259
msh.offset63 struct and associated write/make routines for dynamicwaterlevel offset functionality. #259
dynamicWaterLevelCorrection to fort.15 namelist, and PRBCKGRND option to met fort.15 namelist. #261
Improved code readability by auto-indenting core functions and reworking 'setup' and 'Examples' functions, including adding necessary files for separation from core functions. #308
Renamed functions for clarity and fixed multiple small bugs; changes are compatible with OpenEarthTools but distinct. #308
Fixed
catch for offset_nodes of int type in writeoffset63.m. #287
writing out the wave coupling timestep RSTIMNC on the WTIMNC line of fort.15 when NWS > 300. #283
make_bc call with empty varargin, e.g., when calling inner. #283
Make_offset63 call with constant offset (length 1 time_vector). #283
ourKNNsearch call in nanfill option of Griddata (msh.interp). #283
m_map link in setup.sh Issue #277. #283
Updated Calc_f13.m to avoid an "Unrecognized variable" error by ensuring "broken" is always defined. #282
Fixed test for likely geographic coordinates in Make_f15.m. #282
updated Gridded_to_Mesh_SeaBed_DepthAveraged.m to fix the infinite loop in using Cal_IT_Fric.m by filling in the NaNs at greater depths with values from above. #280
Recursive cleaning issues: infinite loop and preservation of fixed points.
msh.interp method for K argument of length 1, and for the test to determine whether the bathymetry grid is irregular. #259
Printing of namelist character strings or numbers. #261
Make_offset63.m time interval computation. #261 and #272
Removed dependency on statistics toolbox when using the 'nanfill' option in msh.interp. #269
Missing routines for reading in elvstaname and velstaname in readfort15.m by adding readlinevecname() method. #281
Incorrect reference to ibtype was changed to ibtypee in map_mesh_properties function. #298
What's Changed
- correcting outgw in readfort15 to outgm by @WPringle in #250
- Adding nodal attribute by @krober10nd in #251
- Update SRTM to 2.3 by @krober10nd in #252
- Enhancements/msh class by @WPringle in #259
- Default msh.clean options by @krober10nd in #256
- Enhancements/namelist by @WPringle in #261
- Support for writing Self Attraction and Loading (SAL) files in NetCDF for the ADCIRC model by @krober10nd in #231
- update links for download data by @fsanti1 in #263
- adding Jiangchao's publication and image by @krober10nd in #267
- Eliminate statistics toolbox dependency by @krober10nd in #269
- Update README.md by @WPringle in #271
- meshgen optionality by @WPringle in #266
- Patch changes to mesh2dgen and Make_f15 utility functions by @WPringle in #272
- update Gridded_to_Mesh_SeaBed_DepthAveraged.m to fix the infinite loop in using Cal_IT_Fric.m by @Jiangchao3 in #280
- Bug fix: station name reading methods by @kentonwho in #281
- Various bugfixes by @dahonegger in #282
- Bug fix/interp and cleaning by @WPringle in #283
- Fixed ibtypee typo bug in map_mesh_properties by @tgasher in #298
- IMPRV: adding read and write 2dm by @krober10nd in #301
- IMPRV: added remesh_patch function by @krober10nd in #300
- read in existing auxiliary files into msh obj, updates to make_bc by @WPringle in #287
- Multiple changes after throughout testing by @omouraenko in #308
- adding high-fidelity option to meshgen for meshing hardened shorelines/coastal structures by @WPringle in #264
New Contributors
- @fsanti1 made their first contribution in #263
- @kentonwho made their first contribution in #281
- @dahonegger made their first contribution in #282
- @tgasher made their first contribution in #298
Full Changelog: V5.0...V6.0
OceanMesh2D V5.0
[5.0.0] - 2021-08-01
Added
meshgen.build()
now will rewind the iteration set in the case mesh improvement cannot improve the qualities. #234msh.plot()
now has acmap
in which the user can specify their anycmocean
colormapradius_separated_points
function that trims the points in the mesh to have a specified resolution that can be used beforem_quiver
so that vectors are evenly plotted. #225- Deleting boundary conditions by specifyng their indices in
msh.object.bd
field. See #205 - Ability for user to set their own axis limits when plotting with
msh.plot()
. #224
Fixed
- Minor fix to
msh.make_bc
using theauto
method. #237 - correction in setting stereographic projection bounds in
setProj
to make sure points are not pushed outside and become NaNs (was limited to radius of 178 deg but made sure can go up to full 180 deg). #225 - Correctly deleting weirs from boundary object through
make_bc
delete method. See #205 - Array format fix for reading in ibtype and nvell from fort.14 file and when executing carry_over_weirs. See #206
- Fix for irregular grid spacings in DEMs. See #204
- tidal constituents for
Make_f15
can now contain "major8" in addition to other constituents in the string/cell array #221 - Correctly collect NDBC and NOS stations in mesh when creating
fort15
file usingMake_f15
for meteorological, velocity and elevation records #242
Changed
msh.plot()
using typebd
option now creates a legend for the different boundary condition types. #247- forcing facecolor to white in
m_trimesh
so that it does not intefere with background color option. #245 - made topographic elevation bound option for max_ele, wl, slp, and g
edgefx
kwargs consistent and added explanation of this option is included inedgefx
help. #230 m_plot()
function callsm_grid()
with background color input kwarg (ifbackcolor
option used) instead of manual application. #225tidal_data_to_ob
function called fromMake_f15
populates boundary condition tidal constituents that do not exist in the tidal database with zero values so that user can add user-defined values later (previously did not populate). #225- Improved
cmocean
for pivot handling with discrete colormap. #225 - Renamed
Calc_NLCD_Mannings
toCalc_Mannings_Landcover
and making option for 'ccap' landcover type in addition to 'nlcd' (default) and added the ability to using user specified inteprolation (e.g., nearest, linear, cell-averaging, etc.) of the landcover data to the mesh vertices. #221
OceanMesh2D V4.0
[4.0.0] - 2021-03-14
**Added
- mesh2d interface improvements to filter small polygons.
- Support for creation of fort.20 files for forcing rivers by @Jiangchao3
- Mesh "cleaning" modes moderate and aggressive transfer nodal attributes via improvements to msh.map_mesh_properties
- msh.remove_attribute() method to remove f13 attribute(s)
- new msh.interp() slope_calc kwarg option to set the method of computing the topographic gradients (slopes), either rms [default] or abs
- new extract_subdomain() keep_numbering kwarg option to keep the full mesh triangulation numbering on the subdomain [off by default].
**Changed
- msh.plot() overhaul. All options are specified via kwargs.
- msh.plot() option subset option is now called subdomain
- msh.plot() arbitary f13 option now utilizes colormap kwarg termed 'colormap'
- utilities/extract_subdomain now is called with kwargs.
- Cleaning up msh.bound_courant_number() to use msh.get_boundary_of_mesh() for Delaunay-triangulation and enabling
msh.clean() to do the transfer of attributes automatically. - msh.plus(obj1,obj2) can now carry over obj2 f13 attributes if they also are present in obj1
- msh() now more efficiently stores boundary conditions that are read in from fort.xx files, and msh.write() can write out arbitrary vertex indices (instead of just 1 to NP) in the case a subdomain is extracted.
**Fixed
- Boundary labeling fix
- Prompt when labeling bcs using outer kwarg in make_bc
- fix for boundary condition mapping in msh.map_mesh_properties() especially for weirs/barriers
- fix for barrier mapping in msh.plus() routine
- fix for msh.make_bc(m,auto,gdat) where gdat is empty. In this case it uses the depths on the mesh to determine the open boundaries.
- check for poly2ccw mapping toolbox function in kml2struct
- fix for msh.plot() on log colormap when plotting f13 attributes
OceanMesh2D V3.3
See the changelog on the README for details.
Zenodo repository link: https://doi.org/10.5281/zenodo.4386220
OceanMesh2D V3.2
- Minor bug fixes to auto timestep selection method
- Bug fix to deactivate 3d shapefile reading logic in geodata by default.
- Enabling the user to enforce the minimum of all edgefx's when performing multiscale meshing.
- Improved mesh resolution smoothness (and element quality) when meshing with the multiscale meshing technique via initial point distributions that conform more accurately to smoothed mesh sized functions.
- New example to highlight mesh size smoothing capabilities with the multiscale technique.
OceanMesh2D V3.1
-Improvements to automatic boundary detection/classification msh.make_bc
-Better control of plotting with hold on option.
-Improvements to writing and reading files from other formats besides ADCIRC's fort.14
-Better control over point constraints when using the msh.plus
operator (for instance new option lock_dis
that ensures a vertices further than lock_dis
around the edges of the to-be-merged-in-patch will not move.
-Reduction in RAM usage when reading very fine resolution DEMs (this is only active if the memory usage is excessive).
-A number of small improvements to mesh reading from msh()
. See #93. Also, no more coordinate system assumptions when plotting.
-A small but useful testing suite to run through some of the major features.
-Improvements to extracting subdomain with extract_subdomain
- Zach's new Subgrid barrier f13 attribute to
Calc_f13
- Elemental slope limiter to
Calc_f13
OceanMesh2D V3.0.0
This version contains a variety of modifications and improvements from V2.0. Here we list the major enhancements since V2.0.0.
Improvements in:
- Bounding mesh size fields to respect both minimum and maximum Courant numbers. This is particularly useful for SCHISM and models that use Eulerian-Lagrangian Method . See #56
- Using back-up DEMs to replace gaps or holes in other datasets. See Back up DEM #61
- New mesh improvement strategy to optimize mesh quality based on collapsing thin or degenerate triangles together.
- Global meshing is more robust. Note that it has been working very stably with rotated meshes (to eliminate singularity) in simulations using ADCIRC V55.
- Several new mesh attributes (e.g., initial_river_elevation) for ADCIRC's fort.13 file creation.
- Better topographic-lengthscale filtering based on barotropic Rossby radius (see commit 9305c).
- Several CI tests for local Jenkins server.
- Better documentation using MATLAB's "help" method.
- Clearer data structure used to build weirs into the mesh and many bug fixes to meshing insets with weirs.
- Higher geometric quality meshes with point and edge constraints.
- Mesh merging using the msh.plus() to support insets that respect point and/or edge constraints. It also does not require the polybool function (which was a toolbox dependency).
- msh.clean() now features categorical options and experienced a variety of bug fixes.
- Bug fixes to msh.makens() for automatically applying boundary conditions.
Happy meshing,
OceanMesh2D V2.5.0
Stable release for future updates to be based off of.
OceanMesh2D V2.0
This release has a number of additional capabilities:
-
The primary change is using the m_map library to mesh in an arbitrary projected space ensuring the user-defined mesh size constraints are obeyed on the sphere. The ability to build meshes in a projected space (e.g.., stereographic) supports global meshing where the boundaries are wrapped/periodic in space by construction.
-
The capability to use nests and meshing extents with arbitrary polygonal extents is now supported. Previously, this was required to be rectangular bounding boxes.
-
New stricter termination criteria are introduced based on a geometric quality saturation. This termination criterion produces higher-geometric quality meshes than before.
-
Updates to plotting, plus operator (to merge two overlapping meshes in projected space), and various msh methods (e.g., interp method).
-
The ability to specify weir crestlines (as polylines) to constrain internal boundaries in the mesh generation process.
-
A number of bug fixes have been dealt with making the release much more stable and reliable.
OceanMesh2D V1.0
A self-contained MATLAB mesh generation toolkit for the development of coastal oceans meshes composed of two-dimensional, unstructured triangles. The software embeds the mesh generation into an object-orientated framework that integrates the necessary pre- and post-processing tools to inevitably perform numerical simulations with the mesh.
The main features are:
-The ability to automatically handle and convert arbitrarily complex vector data that represent complex coastal boundaries into practical mesh boundaries used in the mesh generation process.
-A variety of commonly used mesh size functions that can easily be controlled via name-value pairs to a class constructor.
-A data storage class that contains many necessary post-processing and visualization methods to ensure the mesh is ready for simulation.
-A modified version of the DistMesh mesh generator that can support the types of data used to mesh large geophysical datasets in MATLAB with no paid toolbox dependencies.