E3SM-Ocean-Discussion / E3SM

Ocean discussion repository, for ocean issues and longer-term pull requests for E3SM source code. Please make pull requests that are ready to merge into https://github.com/E3SM-Project/E3SM
https://e3sm.org
Other
1 stars 0 forks source link

Conceptual bug in Redi slope triad calculation #113

Open vanroekel opened 2 weeks ago

vanroekel commented 2 weeks ago

Currently the slope triad computations (the critical ingredient of the redi parameterization) are defined to do horizontal gradients in model index space, see here

https://github.com/E3SM-Project/E3SM/blob/master/components/mpas-ocean/src/shared/mpas_ocn_gm.F#L304-L322

Given this quantity should be the isopycnal slope in physical space, I believe we need to redefine

dTdx = (activeTracers(indexTemperature, k, cell2) &
                          - activeTracers(indexTemperature, k, cell1)) &
                         *dcEdgeInv

as

dTdx = (activeTracers(indexTemperature, k, cell2) &
                          - activeTracers(indexTemperature, k, cell1)) &
                         *dcEdgeInv + dTdz*dz/dx

where dTdz and dzdx would be edge based quantities (similar to how the PGF zmid is calculated). Through much of the global ocean this won't matter, but will matter near bathymetry and at the ice cavity transition. A similar change is needed for salinity (dSdx) I think.

vanroekel commented 2 weeks ago

pinging @mark-petersen in particular for thoughts.

vanroekel commented 2 weeks ago

also noting that the Griffies 1998 paper on this does say 'isoneutral diffusion in z-coordinate models', so I think for z* we need an alteration and for PBCs too I think

mark-petersen commented 1 week ago

I'm not sure about this. I called the variable dTdx for simplicity, but if it the coordinates are tilted, this is the derivative in the direction of the horizontal coordinate, so we could have called it dTds where z=s(x) is the surface following the vertical middle of the cells. I need to think about this more.

vanroekel commented 1 week ago

I don't quite understand what you are saying. My thinking is the slope needs to be in z-space and now it is in model coordinate space (or middle of the cell space). The diffusion should be along the isopycnal and I think you'd want the horizontal derivative to be on a fixed z not between model levels.

I guess a simple test would be to modify the parabolic bowl to have large horizontal variations in thickness with steep isopycnals and see if the diffusion remains isopycnal