Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Free surface for non-hydrostatic model? #3946

Open
shriyafruitwala opened this issue Nov 21, 2024 · 7 comments · May be fixed by #3968
Open

Free surface for non-hydrostatic model? #3946

shriyafruitwala opened this issue Nov 21, 2024 · 7 comments · May be fixed by #3968
Labels
question 💭 No such thing as a stupid question

Comments

@shriyafruitwala
Copy link

Hi all,

I am trying to simulate internal tides generated by barotropic tidal flow over complex topography in a closed domain. To do this, I would need a free surface to allow for the waves to propagate. I also want to resolve the mixing excited by these waves, so this would be in a non-hydrostatic regime. Would it be possible to allow for a free surface in the non-hydrostatic model with an immersed boundary? Thanks!!

@glwagner
Copy link
Member

Hi @shriyafruitwala, I am wondering --- is there any way to formulate your problem by prescribing a vertical velocity at the top of the domain? If that is the case, it may be possible to use @jagoosw's open boundary implementation for this.

I also believe that linear free surface dynamics would be relatively straightforward to implement, since we can simply use the implementation in the hydrostatic model. There is a little code reshuffling required however and I also have to think if there would be an issues in computing the vertical velocity tendency on the top surface (eg k = Nz + 1) which is necessary for this. @simone-silvestri and @jm-c may have thought about this.

@navidcy navidcy added the question 💭 No such thing as a stupid question label Nov 22, 2024
@shriyafruitwala
Copy link
Author

Thanks for getting back to me! I think that would work in a pinch, but it would probably be cleaner to have the free surface capability.

@glwagner
Copy link
Member

glwagner commented Nov 27, 2024

Well, I agree it would be simpler for users. I'm not exactly sure what adding a linear free surface to the NonhydrostaticModel would look like, eg how it interacts with the pressure correction. Perhaps @jm-c knows.

I also wonder if BackgroundFields might be used to accomplish something similar to what I suggested without requiring an open boundary condition.

@glwagner
Copy link
Member

glwagner commented Dec 2, 2024

Here's the MITgcm documentation: https://mitgcm.readthedocs.io/en/latest/algorithm/algorithm.html#non-hydrostatic-formulation

It looks like the implicit free surface algorithm involves first computing the free surface via an implicit solve, correcting the barotropic velocity component, and then afterwards solving for the non-hydrostatic pressure.

Since we have code to do all of those steps separately it would seem that implementing a linear free surface is merely a matter of rearranging a few things. Does that sound right @jm-c ?

@jm-c
Copy link
Collaborator

jm-c commented Dec 2, 2024

@glwagner The MITgcm documentation is not completely right in how it justifies the 2 steps, but it's a good starting point (plus the code also allows some refinements that are not documented). But in general, the linear free surface should not be difficult to implement in the implicit-pressure, non-hydrostatic formulation, I agree.

@glwagner
Copy link
Member

glwagner commented Dec 2, 2024

Ok, I'll give it a shot later today

@glwagner
Copy link
Member

glwagner commented Dec 2, 2024

Implementation going on in #3968 if anyone would like to follow along.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question 💭 No such thing as a stupid question
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants