I’m exploring using CROCO for some stratified flow over topography problems and have some questions. To keep things clear I’ll limit this post to one issue.

When testing a simple stratified, nonhydrostatic (NBQ) geostrophic adjustment problem where it is assumed that that d/dy = 0 (flow is invariant in the y-direction, but full dynamics in x-z). The initial condition is a tanh stratification with a localized Gaussian interface displacement. To implement the d/dy=0, I specify NS_PERIODIC and set MMm0=1. However, the code quickly crashes (by developing very large y-velocities) unless MMm0=3. I also find this problem in when rotation is turn off (undef UV_COR), so it doesn’t seem to be related to rotation. MMm0=1 with NS periodic conditions works fine in the hydrostatic mode.

Is there a way to simply impose the d/dy=0 invariance with MMm0=1 in the NBQ mode? It is computationally quite inefficient to keep three grid points in y when only one is needed.

Hi, I am actually surprised that periodic conditions with Mm=1 worked in the hydrostatic case. The way of doing d/dy=0 is either Mm=1 with closed NS conditions (transverse velocities v=0) or Mm=3 with periodic conditions (allowing non zero transverse velocities)… Patrick

I’ll just checked again and Mm=1 does work for NS_PERIODIC in the hydrostatic mode.

So there is no way to use Mm=1 for the NBQ mode? Mm=3 is pretty inefficient for this situation. Would it be possible to simply eliminate at the d/dy terms in the governing equations? Though I suspect that this could be complicated task.

I wanted to check to be certain there is absolutely no work-around to avoid Mn = 3 (to get d/dy = 0 with rotation in a 2.5D simulatio). Mm = 1 would greatly reduce the computational load. If not, then I will dig into the code to see if I can’t implement it (though this is probably a large task to get right).

Stencils in CROCO are large, especially for advection: 5 points at least and 7 points if using UP5 or WENO5 (5th order schemes), i.e. 2 or 3 points on each side of the center point. Thus, you need at least 2 or 3 interior points to copy in the outside (shadow) zones. I guess that if you disable cross-section advection, you may succeed with one point since the pressure gradient has a 3 point stencil (not always with NBQ), but that will require a bit of work and testing. For cross-sections, we often use wall boundaries (with free slip) and Mm=1, but in this case there is no flow across the section…

Thanks. I’m not surprised that the Mm=3 requirement is dictated by the stencil size requirements. I did look into simply setting all y-derivative terms to zero (rather than y-advection), but am just not familiar enough with the code at this time to be sure I can get it correctly implemented.