Closed ali-ramadhan closed 4 years ago
Yes you're right. Currently Oceananigans.jl is only non-hydrostatic. We've considered adding a hydrostatic mode (shouldn't be hard to implement) but haven't really needed it yet so we've stuck with non-hydrostatic mode as we mostly do small-scale simulations (also see issue #72). Do you need to run in hydrostatic mode?
Ah interesting. Like on a regular Cartesian grid but with some grid cells cut out so you effectively have a cylindrical domain but with jagged walls (that get smoother as you increase the resolution)? It's not a built-in feature but you could use the forcing functions to add topography via an immersed boundary method (basically damping the velocity to zero inside the boundary). For an example of this, see PR #693: Viscous flow around a cylinder verification experiment. We're happy to help with setting up this kind of stuff too.
No we don't have any mesoscale eddy parameterizations. Actually we don't really have any parameterizations in Oceananigans.jl besides turbulent diffusivity/viscosity closures as we've been mostly focused on running small-scale simulations that resolve the turbulence and trying to figure out the best parameterization from the data. Depending on what you need though, it might not be too hard to implement. It's worth discussing if you need something like GM Redi.
Hmmm, this isn't something that we've done as adding topography isn't really a built-in feature yet but it should be possible to impose a no-slip boundary condition at a cylindrical wall using a custom forcing function though, not an Oceananigans.jl boundary condition. I'm not 100% sure but if you want no-slip my guess is that you probably want to use a Value/Dirchlet boundary condition.
I think @glwagner would know more about whether it's possible to properly implement a no-slip Value/Dirchlet BC on a curved boundary.
Reply:
No, non-hydrostatic is good... it's just to double check...
Yes... either varied grid or topography is fine as long as it works. I guess I should try to test it to see which is the easy way...
That is ok. Not in an urgent manner. It's perfectly fine to test the non-parameterised eddy resolving case at relative high resolution, since efficiency is the claimed strength of Julia and I want to check how efficient it is as well.
Naively thought it will just be coating 1-3 nonslip layers by enforcing 0 velocities around the topographic feature, well, if the topographic feature is set correctly.. is it more complicated?
Originally posted over email
As long as you can describe your boundary using a function like boundary(x, y, z)
or using an array like boundary[i, j, k]
then implementing an immersed boundary method should be pretty straightforward. I give more details here: https://github.com/CliMA/Oceananigans.jl/issues/743#issuecomment-622406785
Maybe @glwagner can confirm but Oceananigans.jl fills in halo regions to weakly enforce value boundary conditions such as no-slip. An immersed boundary method would dampen velocities in the boundary to zero, so I believe that by using an immersed boundary method, you get no-slip boundary conditions along the topography by default?
Just moving an email thread to a GitHub issue: