CVMix/CVMix-src

Shear PP and background

Closed this issue · 11 comments

The original PP scheme includes a background term that is added on.

The implementation in CVMix is the same and, as a result, breaks the "a al carte" approach that we strive for in CVMix. In order to run the CVMix shear PP module we have to initialize CVMix background module, i.e. shear depends on background.

I propose that we drop the background part of PP. Most everyone who uses CVMix shear will be using some form of background mixing that is set outside of PP. For example, right now MPAS-O has to test if shear mixing is using PP and, if so, subtract out the background from the result (because we have added it elsewhere.)

It will lead to clearer code all around to simply remove the addition of background from CVMix shear PP. (Note that it is not added into CVMix shear KPP).

Hi,

I agree. Or is there something about PP that makes it need to know about
the background diffusivity?

I just looked at the CVMix manual. Nothing obvious for why we need to know
about the background diffusivity inside PP. So if we indeed are fine not
knowing about the background, then we should remove it from PP to be more
modular with the schemes.

Mike...can you comment?

Steve

On Fri, Oct 24, 2014 at 1:46 PM, Todd Ringler notifications@github.com
wrote:

The original PP scheme includes a background term that is added on.

The implementation in CVMix is the same and, as a result, breaks the "a al
carte" approach that we strive for in CVMix. In order to run the CVMix
shear PP module we have to initialize CVMix background module, i.e. shear
depends on background.

I propose that we drop the background part of PP. Most everyone who uses
CVMix shear will be using some form of background mixing that is set
outside of PP. For example, right now MPAS-O has to test if shear mixing is
using PP and, if so, subtract out the background from the result (because
we have added it elsewhere.)

It will lead to clearer code all around to simply remove the addition of
background from CVMix shear PP. (Note that it is not added into CVMix shear
KPP).


Reply to this email directly or view it on GitHub
#47.

Dr. Stephen M. Griffies
NOAA Geophysical Fluid Dynamics Lab
201 Forrestal Road
Princeton, NJ 08542
USA

I added the dependency on static mixing to be consistent with the way the coefficients nu_b and kappa_b are used in the Pacanowski and Philander paper:

nu = nu_0 / (1 + alpha_Ri)^n + nu_b
kappa = nu / (1 + alpha_Ri) + kappa_b = nu_0 / (1 + alpha_Ri)^(n+1) + nu_b / (1 + alpha_Ri) + kappa_b

Basically, the issue was that removing nu_b from the nu computation changed what you wanted to use for kappa_b [and worse, made it dependent on Ri]

Hi,

I suggest we implement PP only for the case where there is zero background
nu_b=0. Doing so will allow us to have a clean implementation where PP is
split completely from background.

We really need to have a clean way to distinguish PP from background in the
CVMix implementation. I guess is that this detail will impact very few
people, since PP is used by only a few today. In fact, I believe some POP
simulations (ala Maltrud) use PP. Is that still the case?

Steve

On Fri, Oct 24, 2014 at 3:51 PM, Michael Levy notifications@github.com
wrote:

I added the dependency on static mixing to be consistent with the way the
coefficients nu_b and kappa_b are used in the Pacanowski and Philander
paper:

nu = nu_0 / (1 + alpha_Ri)^n + nu_b
kappa = nu / (1 + alpha_Ri) + kappa_b = nu_0 / (1 + alpha_Ri)^(n+1) + nu_b
/ (1 + alpha_Ri) + kappa_b

Basically, the issue was that removing nu_b from the nu computation
changed what you wanted to use for kappa_b [and worse, made it dependent on
Ri]


Reply to this email directly or view it on GitHub
#47 (comment).

Dr. Stephen M. Griffies
NOAA Geophysical Fluid Dynamics Lab
201 Forrestal Road
Princeton, NJ 08542
USA

I should also note that the Richardson mixing defined in Large et al does not have this implicit dependence on the background diffusivities, hence why I kept it separate in that case.

Steve,

One problem with specifying nu_b = 0 is that the PP conclusions recommend

nu_b = 1 cm^2/s
kappa_b = 0.1 cm^2/s
n = 2
alpha = 5
nu_zero = O(50 cm^2/s)

If we add a PP test to our regression suite (one does not exist at the moment), I think those are the parameters we should use.

~Mike

Hi,

OK. As we have no plans at GFDL to use PP, then I am agnostic.

Steve

On Fri, Oct 24, 2014 at 3:58 PM, Michael Levy notifications@github.com
wrote:

Steve,

One problem with specifying nu_b = 0 is that the PP conclusions recommend

nu_b = 1 cm^2/s
kappa_b = 0.1 cm^2/s
n = 2
alpha = 5
nu_zero = O(50 cm^2/s)

If we add a PP test to our regression suite (one does not exist at the
moment), I think those are the parameters we should use.

~Mike


Reply to this email directly or view it on GitHub
#47 (comment).

Dr. Stephen M. Griffies
NOAA Geophysical Fluid Dynamics Lab
201 Forrestal Road
Princeton, NJ 08542
USA

Gokhan and I discussed it a little bit more after we got off the phone; how does this sound for a solution:

  1. Remove shear mixing dependence on background mixing
  2. Add nu_b and kappa_b to shear mixing parameter list
  3. At initialization, have default be nu_b = 0 and kappa_b = 0

This gives users the flexibility to separate the background mixing from the shear mixing (which seems to be a common use case) or to include the background mixing as in the original paper.

Sounds good to me. I might suggest adding something into the names to make clear that nu_b and kappa_b only apply to the PP scheme.

On Oct 27, 2014, at 9:54 AM, Michael Levy notifications@github.com wrote:

Gokhan and I discussed it a little bit more after we got off the phone; how does this sound for a solution:

  1. Remove shear mixing dependence on background mixing
  2. Add nu_b and kappa_b to shear mixing parameter list
  3. At initialization, have default be nu_b = 0 and kappa_b = 0

This gives users the flexibility to separate the background mixing from the shear mixing (which seems to be a common use case) or to include the background mixing as in the original paper.


Reply to this email directly or view it on GitHub #47 (comment).

Yeah, I think the current naming convention is PP_* for Pacanowski-Philander parameters and KPP_* for Large et al parameters... though maybe I should change the latter to LMD_*

All good.

Steve

On Monday, October 27, 2014, Michael Levy notifications@github.com wrote:

Yeah, I think the current naming convention is PP_* for
Pacanowski-Philander parameters and KPP_* for Large et al parameters...
though maybe I should change the latter to LMD_*


Reply to this email directly or view it on GitHub
#47 (comment).

Dr. Stephen M. Griffies
NOAA Geophysical Fluid Dynamics Lab
201 Forrestal Road
Princeton, NJ 08542
USA

As of 9b1e558 cvmix_background dependence has been replaced with the PP_nu_b and PP_kappa_b parameters in cvmix_shear. By default, PP_nu_b = PP_kappa_b = 0. This commit has been included in in the v0.62-beta release.