noaa-ocs-modeling / OCSMesh

OCSMesh is a mesh preparation tool for coastal ocean modeling applications.
https://noaa-ocs-modeling.github.io/OCSMesh/
Creative Commons Zero v1.0 Universal
11 stars 8 forks source link

Adding boundaries to global OceanMesh2D #116

Open SanderHulst opened 8 months ago

SanderHulst commented 8 months ago

Hi!

I'm running ADCIRC on a global mesh that was generated with OceanMesh2D. It has no boundary information as can be seen below.

image

That is a problem when I regrid the output to a regular mesh. I have been working on a solution and it now looks like:

image

Is there interest to have this code + tests in OCSMesh? If so, I'll prepare a PR, or move it to another internal lib otherwise.

SorooshMani-NOAA commented 8 months ago

Hi @SanderHulst I do appreciate new features. In that sense there's interest, however I haven't really tested OCSMesh for global meshes. I think it'd be a good idea to start a PR with the code you have (no cleanup, polishing, etc.) so that I get a better understanding of what it's doing, then I can suggest whether it makes sense to include it in OCSMesh or not.

In case you've used OCSMesh with your global boundary mesh and it works, then I'm definitely in for a PR for this.

Also in case you have your code in its current form anywhere else for me to look and understand, then we can start from there.

Please let me know what you prefer.

SanderHulst commented 8 months ago

@SorooshMani-NOAA

I've create a PR in my fork as it is too hacky yet. See https://github.com/SanderHulst/OCSMesh/pull/3.

SorooshMani-NOAA commented 8 months ago

Thank you!

SanderHulst commented 1 month ago

I'm back :) Work and private directed my attention elsewhere

SorooshMani-NOAA commented 1 month ago

@SanderHulst glad to hear that! Right now I'm not sure what the plan is for this PR and update. @felicio93 is now mostly focused on the meshing related items from our side. I'm tagging him to follow up. Please also let me know if I can help in anyway.

As I said last time, I never really tested global scale mesh with OCSMesh, so I'd appreciate some context about how this update is going to be used and if there could be any test code or a small example

SanderHulst commented 3 weeks ago

Hi,

As said, I'm experimenting with a global ADCIRC mesh that came with the paper "Global storm tide modeling with ADCIRC v55: unstructured mesh design and performance"*.

ADCIRC runs the mesh just fine without any notion of land / internal boundaries, but I needed it for regridding unstructured output to a regular mesh, suitable for downstream processing. In the regridding, boundary node values are set to NaN so that there is no data over land.

I found that the tidal predictions from the global mesh, with internal tidal forcing only, in the Northsea are not as good as those from a regional mesh bounded by harmonic constituents from Hamtide. Nevertheless, we still have the global mesh running for places outside our regions of interest. Coincidentally, I created a mesh for the North and Middle American Eastcoast, which I found later on has almost the same extend as the Atlantic STOFS grid. STOFS also comes with a global mesh, which is now running as a NOAA experiment**, ***.

Now, all global grids are created with OceanMesh2D. As I do not have access to a Matlab license, I rely on OCSMesh to get the boundaries defined in the global mesh.

Let me go over this PR and comment there. But this is the background.

References

) Pringle, William & Wirasaet, Damrongsak & Roberts, Keith & Westerink, Joannes. (2021). Global storm tide modeling with ADCIRC v55: unstructured mesh design and performance. Geoscientific Model Development. 14. 1125-1145. 10.5194/gmd-14-1125-2021. ) Contreras, Maria Teresa et al. (2023). A Channel-to-Basin Scale ADCIRC Based Hydrodynamic Unstructured Mesh Model for the US East and Gulf of Mexico Coasts. https://doi.org/10.25923/wktm-c719 ) https://polar.ncep.noaa.gov/estofs/global/index.htm

SorooshMani-NOAA commented 3 weeks ago

@SanderHulst thank you for the detailed information about what and why you're doing this.

Note that the STOFS-Atl mesh was created mostly using SMS and through manual control of different aspects of the mesh. Global STOFS 2D is created using OceanMesh2D and SMS I believe with some manual intervention (as far as I know).

With new updates in OCSMesh from @felicio93 the automation of river insertion for STOFS Atlantic mesh is possible to do in OCSMesh. As I said we never tried this tool with global meshes and it's not used in any of the current operational systems (hopefully it'll be utilized in the near future upgrades!).

I just wanted to clarify that the current tool is not used in any of the systems you mentioned. Another thing to keep in mind is that the initial target of OCSMesh was SCHISM. Nothing prevents one from trying it for ADCIRC, but it might require some more quality control (post processing of mesh) for a successful ADCIRC run.

We really appreciate your contribution and testing with ADCIRC. Since I'm not directly involved with OCSMesh dev (as much as before) I leave it up to you and @felicio93 to discuss the timeline of testing, validation and merge.