ITADN

A few ideas for new diagnostics for wave-mean interaction problems

#184Openglwagner 创建于 2024-11-14
enhancement
G
glwagnercommented
Here are some ideas for additional diagnostics inspired by discussions with @jonathanlilly and @JeffreyEarly. ### Eigensolver for vertical modes I think it would be nice to have an eigensolver to compute vertical modes from a horizontally-averaged / reduced buoyancy profile (or taking in the vertical derivative of buoyancy directly). This means solving the eigenproblem $$ \partial_z \left ( \frac{f^2}{N^2} \partial_z \phi_n \right ) + \frac{1}{R_n^2} \phi_n = 0 \qquad \text{with} \qquad \partial_z \phi = 0 \qquad \text{at} \qquad z = -H, 0 $$ where $1/R_n^2$ are the eigenvalues, $R_n$ is the Rossby radii of deformation of mode $n$, $f$ is the Coriolis parameter (a constant) and $N^2(z)$ is the vertical derviative of buoyancy (a function of $z$). The eigenfunctions $\phi_n(z)$ are the "vertical modes". Finite volume details: $\phi$ is located at `Center` in the vertical, while `N^2` is located at `Face`. This works out naturally so no shenanigans seem to be required here. I think this can be implemented by meshing Oceananigans.AbstractOperations with [Krylov.jl](https://github.com/JuliaSmoothOptimizers/Krylov.jl). In other words I am imagining a user interface wherein we write something like ```julia B = Field(Average(b, dims=(1, 2))) N² = ∂z(B) ϕ = Field{Nothing, Nothing, Center}(grid) L = ∂z(f^2 / N² * ∂z(ϕ)) sol = eigensolve(L) ``` where `b` would be the buoyancy field and `f` the Coriolis parameter. Many permutations on the above syntax might make sense too. ### Diagnostics for wave-mean decomposition Related to vertical modes would be diagnostics that allow one to decompose solutions into an internal wave and mean (or quasi-geostrophic) component. I think @JeffreyEarly knows how to do this well. We can also support a direct solver for the Omega equation; eg solving ![image](https://github.com/user-attachments/assets/a8f788cd-096d-4602-9823-767ba1f2ab1f) using a solver similar to the `FourierTridiagonalPoissonSolver` (combining horizontal-FFT with vertical tridiagonal). This would require modest (not heroic) efforts. The screenshot is from [Danioux et al 2016](https://www.cambridge.org/core/services/aop-cambridge-core/content/view/C26BF0CDB9C79D4F30C50CB7577482E3/S0022112012000900a.pdf/spontaneous-inertia-gravity-wave-generation-by-surface-intensified-turbulence.pdf).
5 条评论