Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More momentum diagnostics #820

Open
owang01 opened this issue Apr 1, 2024 · 10 comments
Open

More momentum diagnostics #820

owang01 opened this issue Apr 1, 2024 · 10 comments

Comments

@owang01
Copy link
Collaborator

owang01 commented Apr 1, 2024

Helen Pillar @hpillar implemented more momentum diagnostics for checkpoint68d. These include
new momentum diagnostics to further decompose momentum diagnostics of existing advection, explicit dissipation, and external forcing.

Below is the a list of the new diagnostics:

New diagnostics needed to further decompose advection:
[Um_dPSdx,Vm_dPSdy]: U/V momentum tendency from surface pressure gradients
[Um_dKEdx,Vm_dKEdx]: U/V momentum tendency from grad KE
[Um_CorNL, Vm_CorNL]: U/V momentum tendency from nontrad (cosine) Coriolis

New diagnostics needed to further decompose explicit dissipation:
[Um_Diss2,Vm_Diss2]: U/V momentum tendency from harmonic viscosity
[Um_Diss4,Vm_Diss4]: U/V momentum tendency from biharmonic viscosity
[UBotDrag,VBotDrag]: U/V momentum tendency from bottom drag
[UShIDrag,VShIDrag]: U/V momentum tendency from ice shelf drag

New diagnostics needed to further decompose external forcing:
[Um_wind,Vm_wind]: U/V momentum tendency from wind

Pull request #817 implements these new momentum diagnostics on the up-to-date master branch.

@jrscott
Copy link
Member

jrscott commented Apr 3, 2024

adding @hpillar

@jm-c
Copy link
Member

jm-c commented Apr 4, 2024

In general, it is usefull to have detailed diagnostics available but, as many more diagnostics tend to slow-down the run (even if not used, still have to go through the list to check that it does not need to be filled), a good compromise is better.
The other issue that might appear is that some very specific diagnostics might become difficult to maintain as the code evolves.

Regarding momentum diagnostics, we can currently (post PR #219, Aug 2019) decompose the budget into 5 big groups of terms, Advection, Pressure gradient, explicit dissipation, Implicit dissipation and External forcing, with a little additional one for the Adams-Bashforth:

TOTUTEND/86400 = Um_Advec + Um_dPhiX + Um_Diss + Um_ImplD + Um_Ext + AB_gU
TOTVTEND/86400 = Vm_Advec + Vm_dPhiY + Vm_Diss + Vm_ImplD + Vm_Ext + AB_gV

Note that Coriolis tendency is included in U/Vm_Advec and the free-surface pressure gradient is included in U/Vm_dPhiX/Y.

And more diagnostics are available to split the "big" groups into individual terms, specially for non-linear terms for which the time-averaged tendency cannot be retrieved from the time-averaged state vars.

Currently, there is no diagnostic for the Bernouilli term (a non-linear term) as it is easy to get this tendency from the KE diagnostics ("momKE "), just by computing (offline) the horizontal gradient:
dKEdx(i,j) = - ( KE(i,j) - KE(i-1,j) ) * recip_dxC(i,j)
dKEdy(i,j) = - ( KE(i,j) - KE(i,j-1) ) * recip_dyC(i,j)

So I am not sure that we really need 2 new diagnostics for this term since it's easy to derive from momKE (plus save disk space, single 3-D output instead of 2).

The same is true for new diagnostics Um_dPsdx and Vm_dPsdy (momentum tendency from surface pressure gradients) as they can easily be computed as minus the horizontal gradient of free-surface ETAN times gravity.

Regarding viscous terms, I think it will be usefull to separate the horizontal harmonic viscosity tendency from the biharmonic viscosity tendency, specially in vector-invariant form where we don't have individual fluxes (as we do in flux-form). It's a little bit funny that we have 26 3-D diagnostics for all types of horizontal viscosity but none for individual tendencies.

And regarding bottom drag tendencies (UBotDrag,VBotDrag) and ice-shelf drag tendencies (UShIDrag,VShIDrag), they got replaced in PR #219 with bottom-drag stress and ice-shelf stress. So the tendencies could be derived from the frictional stress (will not be exact with z* but close to) but the stress is probably more relevant for the momentum budget.
And these 4 new diagnostics, as implemented in PR #817, don't work when using implicit bottom or ice-shelf drag (selectImplicitDrag=2).
So, at the end, I am not sure these 4 new diags are really necessary but if they are, it would be useful to know why and to have them work also as expected for selectImplicitDrag=2.

The wind-stress tendency diagnostics are, from my point of view, redundant with the external-forcing tendencies Um_Ext,Um_Ext. And since it's very easy to output a single level of a 3-D diagnostics field, I don't think we need these 2.

The tendencies from 3-D (or Non-Hyd. or "non-traditional") Coriolis might be useful in some cases, but since it's a linear term, the time-mean effect can be recovered from the time-mean state (this is what I do when I need to get these terms).
It would require also to add the vertical-momentum counter part diagnostic (+ also in the quasiHydrostatic case ?).
But since it's not used in ECCO-v4 (select3dCoriScheme=0), we could decide, for now, not to include these 2 new diagnostics.

@owang01
Copy link
Collaborator Author

owang01 commented Apr 22, 2024

@jm-c Thank you for your detailed comments. I will remove those that can be easily derived offline from other existing diagnostics, but keep the momentum tendency terms due to harmonic and biharmonic viscosity. For the time being, I also keep the four tendency terms due to bottom and ice-shelf drag, and will see how to make them work with selectImplicitDrag=2. In short, the terms I will keep are as the following:
[Um_Diss2,Vm_Diss2]: U/V momentum tendency from harmonic viscosity
[Um_Diss4,Vm_Diss4]: U/V momentum tendency from biharmonic viscosity
[UBotDrag,VBotDrag]: U/V momentum tendency from bottom drag
[UShIDrag,VShIDrag]: U/V momentum tendency from ice shelf drag

@jm-c
Copy link
Member

jm-c commented May 9, 2024

Regarding the additional momentum tendency diagnostics for bottom and ice-shelf drag: Since (a) these diags were previously replaced (in PR #219) and (b) it would involve more work to get these to work with selectImplicitDrag =2, and (c) it's not very clear that the alternative top and bottom stress diagnostics cannot be used instead, I suggest a compromise solution with a new CPP option (in MOM_COMMON_OPTIONS.h, default = undef) around the additional pieces of code. This way it's not strictly speaking new "standard" diagnostics, no concern about slowing down the code ; it also provide a place to keep some comments (around the definition of the CPP option in MOM_COMMON_OPTIONS.h) and avoid confusion with current drag-stress diagnostics.
And for the momentum tendency from ice shelf drag, I think it make sense to fill these diagnostics as it's done in PR #817, i.e, where the drag-tendency is computed ; but the calls to DIAGNOSTICS_ADDTOLIST would fit better in shelfice_init_fixed.F (cannot be used without pkg/shelfice), even if it requires to include MOM_COMMON_OPTIONS.h to get the new CPP option.

@jm-c
Copy link
Member

jm-c commented May 9, 2024

Suggestion for this new CPP option: may be "ALLOW_MOM_TENDENCY_EXTRA_DIAGS" ?

@mjlosch
Copy link
Member

mjlosch commented May 9, 2024

The name is fine for me. ALLOW_MOM_EXTRA_DIAGS would be shorter and one could at some point include diagnostics that are not "tendencies".

@jm-c
Copy link
Member

jm-c commented May 10, 2024

@mjlosch I prefer to keep "tendency" (or a shorter version of it) in the name. I though could also have "bottom-drag" in it but since it will also be used for top-drag (from ice-shelf) tendency then it's not that great.
@owang01 What do you think and which CPP option name would you pick ?

@owang01
Copy link
Collaborator Author

owang01 commented May 11, 2024

@jm-c and @mjlosch I am fine with both, but I slightly prefer to have "tendency" or its short version in the CPP option name. How about ALLOW_MOM_TEND_EXTRA_DIAGS?

@jm-c
Copy link
Member

jm-c commented May 13, 2024

@owang01 I like our suggestion, ALLOW_MOM_TEND_EXTRA_DIAGS is good.

@owang01
Copy link
Collaborator Author

owang01 commented May 14, 2024

Thank you @jm-c. I will enclose the momentum tendency diagnostics for bottom and ice-shelf drag within this CPP option, and move calling DIAGNOSTICS_ADDTOLIST to shelfice_init_fixed.F

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants