Sponge layer application #3980
Replies: 1 comment 1 reply
-
Hello @rafacmartins. Note that If you want to apply multiple forcings to a variable you indeed pass it as a tuple of forcings, so your syntax is in part correct (a part from the fact that However, you need to wrap the bottom_mask = GaussianMask{:z}(center=-grid.Lz, width=100meters)
north_sponge = Relaxation(rate=1/30minutes, mask=mask_func, target=0)
bottom_sponge = Relaxation(rate=1/30minutes, mask=bottom_mask, target=0)
mom_forcings = (north_sponge, bottom_sponge)
forcing = (; u = mom_forcings, v = mom_forcings) |
Beta Was this translation helpful? Give feedback.
-
Hi,
I’m currently running a few simulations of a submesoscale front confined in a zonal channel using Oceananigans. In my current setup, I need to apply a sponge layer at the y-boundaries of my domain as well as at the bottom (due to the propagation of internal waves, which can be observed around 14 days of simulation, 7-8s into the video below on the lower left panel, the plot it's not the best but it's just to illustrate those waves).
GPU_sponge_layer_2_5km_test_half_UHR.mp4
Note: this simulation above only applies the sponge layer only as
forcing = (u=mom_sponge, v=mom_sponge, w=mom_sponge)
, not applying something specific for those waves.Currently, I’m planning to apply the sponge layer as follows, to make sure that those internal waves are not being reflected.
My question is: should I also apply the
mom_sponge
to w, or even apply thebottom_mask
to u and v? If so, how could I do this? Would it look something like this?forcing = (u=(mom_sponge, bottom_mask), v=(mom_sponge, bottom_mask), w=(mom_sponge, bottom_mask) )
]Thank you!
Beta Was this translation helpful? Give feedback.
All reactions