[MITgcm-support] non-hydrostatic momentum budget

Andrea Cimatoribus andrea.cimatoribus at epfl.ch
Thu Aug 3 07:33:45 EDT 2017


Hi Jean-Michel,
thanks for your reply and sorry for the delay in mine.

I tried your suggestion, using PHI_SURF instead of gravity*ETAN. Results 
improve, in both hydrostatic (they were already good) and nonhydrostatic 
configurations. However, in the nonhydrostatic version I still missed 
something. I switched off GGL90 parameterization in order to use 
explicit viscosity/diffusivity. This further improves the NH results. I 
still see some discrepancy (relative error 10%) between my budget and 
TOTUTEND, but it seems to be related to numerical noise generated 
restarting from interpolated IC. I could not run longer tests, but 
errors do decay already during the first hour of the simulation.

Note that the model does give a warning when using GGL90 and implicit 
viscosity in the nonhydrostatic case. If I understand right, GGL90 works 
on the 2D results which change after the full 3D solution is seeked. 
This raises the question of how to parameterise turbulence in the NH 
case, but that is a different question.

Thanks again for the precious help!
Andrea



Andrea Cimatoribus
postdoctoral researcher
EPFL ENAC IIE ECOL
https://people.epfl.ch/andrea.cimatoribus

On 27/07/17 22:24, Jean-Michel Campin wrote:
> Hi Andrea,
> 
> There is one thing that I forgot but just came back to my mind yesterday:
> you could try to compute the pressure gradient using diagnostic PHI_SURF
> (instead of gravity*ETAN), PHI_NH (as you did) and Um_dPHdx,Vm_dPHdy.
> 
> When using: exactConserv=.TRUE., etaN is (re-)computed from the vertically
> integrated continuity eq. and this could introduce differences in the momentum
> budget:
> 1) if a large solver tolerance is used and the 2-D solver convergence is poor.
> 2) when filters (Shapiro, Fourier) are used after solve_for_pressure
>   (e.g., shap_filt_uvStar=.FALSE.,)
> 3) in Non-Hydrostatic simulation: In this case, the separation between surface
>    pressure and NH pressure is not made clearly; the sum of two is correct (i.e.,
>    PHI_SURF + PHI_NH ) and gravity*ETAN should represent the free-surface contribution
>    but there is no reason for PHI_NH to be just the NH pressure (free of
>    any surface contribution).
> 
> At some point, I tried to separate the 2 contributions (zeroPsNH=True
>   in solve_for_pressure.F) but it did not work well, partly because
> changing the initial guess for the 3-D solver was slowing down the convergence.
> So at the end, zeroPsNH=F is hard-coded.
> 
> Cheers,
> Jean-Michel
> 
> On Fri, Jul 07, 2017 at 10:39:29AM +0200, Andrea Cimatoribus wrote:
>> One step ahead:
>>
>> as hinted in http://mitgcm.org/sealion/online_documents/node38.html
>> I tried summing the nonhydrostatic pressure term:
>>
>> Um_NHP = -(PHI_NH(i) - PHI_NH(i-1)) / DXC
>>
>> The results definitely improve near the boundary, but I am still missing
>> something.
>>
>> Best,
>> Andrea
>>
>> Andrea Cimatoribus
>> postdoctoral researcher
>> EPFL ENAC IIE ECOL
>> https://people.epfl.ch/andrea.cimatoribus
>>
>> On 06/07/17 17:30, Andrea Cimatoribus wrote:
>>> Dear all,
>>> I am trying to compute the budget of momentum in my
>>> non-hydrostatic configuration. First of all, thanks to all those
>>> who contributed in the past on this topic, it certainly saved me
>>> huge amounts of time and head-scratching.
>>>
>>> I put here the recipe from JMC for reference:
>>> [du/dt] = - gravity * ( ETAN(i) - ETAN(i-1) ) / DXC
>>>          + Um_dPHdx
>>>          + Um_Advec   (+ Um_Cori : but only if using CD-Scheme )
>>>          + Um_Diss    (+ Implicit vertical viscosity tendency)
>>>          + Um_Ext
>>>          + AB_gU
>>>
>>> The problem:
>>> the recipe above works beautifully (relative error <<1e-3) in the
>>> hydrostatic case, with only some issues near the boundary, I guess
>>> because of my cheap ETA derivatives. However, in the
>>> nonhydrostatic case, the above budget gives relative errors around
>>> 10% in many places (10% of the "truth" diagnosed via
>>> TOTUTEND/TOTVTEND).
>>>
>>> What term am I missing? Could it be that TOTUTEND does not have
>>> all the terms in the NH case? I tried looking into mom_vecinv.F,
>>> but I could not reach any conclusion. I also tried playing with
>>> ADVrE_Um/ADVrE_Vm fluxes (treating it as the implicit vertical
>>> viscosity term), but that didn't help either (I thought the
>>> vertical advection was missing).
>>>
>>> Thank you for your insights,
>>> Andrea
>>>
>>>
>>> PS: I attach the data file and a figure for the curious ones, it
>>> shows the relative error of the diagnosed acceleration (magnitude
>>> of vector) with respect to the one directly produced via
>>> TOTUTEND/TOTVTEND. There seems to be some correlation (not
>>> perfect, though) between the relative error and the advective
>>> term.
>>>
>>>
>>>
>>> _______________________________________________
>>> MITgcm-support mailing list
>>> MITgcm-support at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>>
>>
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
> 
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support
> 


More information about the MITgcm-support mailing list