[MITgcm-support] Drift in free surface

Pascal Bourgault pascal.bourgault at gmail.com
Tue Jan 19 12:42:37 EST 2021

Hi MITgcmers,

My question is vague and might not even be related to the MITgcm itself, 
but I am kinda lost right now, not knowing where to look.

My setup is the following :

  * 2D (X-Z) plane, so only one Y coordinate, with a "thinWall" on all
    YG=-dY points.
  * ~9k points in X (with differing Δx on the sides, 15 m on most of the
  * 70 x 1m in Z. The bathymetry is one of an estuary so ~15 m deep in
    the west to 70 m in the east, with some bumps, but smoothed so dH/dx
    is always very small.
  * I used the "old" formulation for the curvilinear grid as so to pass
    a Δy that varies along x, in order to represent varying
    estuary/river channel width, but staying in 2D. For this I was
    helped by this very forum a few weeks ago (thanks Martin!).
  * Non-hydrostatic, Δt = 1 s,   f=β=0
  * Implicit free surface
  * OBCS used for prescribing T and S on both sides, U in the east
    (downstream), and Orlanski used for U and W upstream (west). This
    means I haven't specify anything for W in the east, AFAIU it is set
    to 0 by OBCS at the boundary.
  * The downstream forcing of U includes:
      o   a tide (large amplitude, period of 12.4h, quasi-constant above
        and going to zero at the bottom)
      o   PLUS a constant flow (small amplitude, concentrated in the
        first 15 m)

The forcing is meant to represent both tides and river outflow, all 
forced on the same boundary, letting Orlanski deal with the residuals 
upstream (my domain is too small to encompass all the estuary, so there 
should be some (smaller) tides upstream).

Problem: The tide-averaged flow is not conserved. Pseudo code:

taF = (UVEL.weighted(hFacW) * dyG).sum('Z').mean(time over each tide period)  # is the tidally-averaged flow (m³/s) for each column

I would then expect d taF / dx to be zero, but it isn't.  After many 
tidal periods, I still have a larger "tidally-averaged inflow" upstream 
than downstream.  And when looking a the free surface I see that ETAN is 
drifting, again averaged over the tidal period.  dη / dt = C > 0, where 
C looks constant after the first few tidal periods.

So after this long context (thanks for reading all!), my questions:

Has anyone here ever used the MITgcm in this 2D X-Z kind of 
configuration, am I missing some crucial parts that could explain the drift?

Is this a problem that could originate from the use of a linearized free 
surface? I am not able to activate the non-linear version of the 
algorithm because of my need to use Orlanski's conditions. But I could 
into this deeper, if it was clear that non-linear surface could solve 
the problem.

Thanks a lot!

Pascal Bourgault

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.mitgcm.org/pipermail/mitgcm-support/attachments/20210119/0c7e8166/attachment.html>

More information about the MITgcm-support mailing list