[MITgcm-support] phivel / psivel

Jean-Michel Campin jmc at ocean.mit.edu
Mon Jul 13 23:15:55 EDT 2015


Hi Ryan,

I don't think there is an obvious bug since this problem 
has been reported (not to the list) and investigated in other set-up. 

The implemented algorithm solve for velocity potential (related to the 
divergence part) using the a CG-2d solver very similar to the one 
in SOLVE_FOR_PRESSURE ; And after removing the divergent part, 
just directly integrate horizontally to get the stream function.
The problem with this algorithm is that when the convergence/accuracy
of the velocity potential solver is not good enough, the error
in the stream function accumulates and become obvious at tile edges.

Note that with OBCS, the problem is different (requires to make some
assumption on how to spread/remove the net divergence comming from the
Open-Boundaries).

Cheers,
Jean-Michel

On Tue, Jul 07, 2015 at 10:15:49PM -0400, Ryan Abernathey wrote:
> Hello,
> 
> I am trying to use the new diagnostics PhiVEL and PsiVEL to perform a
> Helmholtz decomposition of my velocity fields.
> 48 |PhiVEL  |  1 |    45 |SMR P   MR|m^2/s           |Horizontal Velocity
> Potential (m^2/s)
> 49 |PsiVEL  |  1 |    48 |SZ  P   MR|m.m^2/s         |Horizontal Velocity
> Stream-Function
> 
> Phi looks great. However, in Psi, there are some discontinuities at tile
> boundaries. This makes it impossible to take the derivatives to recover the
> non-divergent component of the velocity field.
> 
> Figures and data files can be seen here:
> http://nbviewer.ipython.org/gist/rabernat/677b0c95635928d3f05c
> 
> Has anyone experienced this problem? Any idea how to fix it? Possible bug?
> 
> Thanks,
> Ryan
> 
> 
> p.s. I found these comments in diag_calc_psivel.F. This sounds similar to
> my problem. But I am not using OBCS, so I guess they don't apply.
> 
> C- Note: OB may introduce discontinuity in domain & tile stream-function
> map;
> C     within a tile: define a local "is-set" mask (=kPsi) and
> C                    propagate stream-function value without assumption.
> C     between tiles: present code is not "general", likely to work with
> C                    simple OB setting and/or simple tile connection (no
> exch2).
> C     A truly general algorithm requires to change CUMULSUM_Z_TILE (adding 1
> C     more input dPsi/tile) and to account for disabled tile-connection due
> C     to OB when setting cumsum tile-mapping (W2_SET_MAP_CUMSUM).

> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list