vertical spline reconstruction: monotonization, filtering?

Discussions, suggestions and corrections to ROMS/TOMS documentation currently under developement.

Moderators: arango, robertson

Post Reply
Message
Author
stef
Posts: 200
Joined: Tue Mar 13, 2007 6:38 pm
Location: Independent researcher
Contact:

vertical spline reconstruction: monotonization, filtering?

#1 Unread post by stef »

Is there some recommended literature about the use of vertical splines, specifically
in the context of oceanography or ROMS?

I was looking at the reconstruction of dT/dz (temperature derivative) via splines in the
function s_balance.m from the ROMS matlab repository. I try to reproduce the tridiagonal system for the derivative, departing from
Eq. 3.16 of Shchepetkin & McWilliams 2005 (btw I think there is a sign typo in the first fraction
of their 3.16, but it does not propagate to their 3.19) in the attached note.pdf. I compared
my python solution with the matlab/octave code in s_balance.m, and the derivative is
identical. I have not compared the reconstruction of T itself.

The problem is, the plots of the reconstructions look pretty bad, with large oscillations (see below).

I know that in the unbalancing of salinity, the mixed layer is damped/excluded, but the question is more generally
about the use of splines elsewhere in the ROMS code.

Specifically, the following:

Colella, P., Woodward, P., 1984. The piecewise parabolic method (PPM) for gas-dynamical simulations. J. Comput.
Phys. 54, 174–201.
James, I.D., 2000. A high-performance explicit vertical advection scheme for ocean models: how PPM can beat the CFL
condition. Appl. Math. Model. 24, 1–9.

and others use "monotonization", which is AFAIK not used in the ROMS matlab code. Is the "monotonization"
used in parts of the ROMS code?

Is the type of "conservative parabolic spline" used in s_balance.m the same type of spline used in the
FORTRAN code? And is it the same used e.g. by James 2000?

I don't know if/when to use monotonization, filtering, or both?

Are there suggestions for literature on this, perhaps in a ROMS context?
test_vert_diff_spline.png
test_vert_diff_spline.png (44.61 KiB) Viewed 6844 times
Legend for the figure:

temp: temperature profile
temp_rec: reconstructed temperature on z_w points, using parabolic splines (as in the attached pdf)
dtdz: vertical derivative on z_w points, using splines as in s_balance.m and the attached pdf (I compared the matlab
code results in octave to my Python version, it's identical). No filter was used.
dtdz_centered: plain centered differences mapped to the depths halfway between rho points


Thanks for any help.
Attachments
note.pdf
(90.3 KiB) Downloaded 80 times

Post Reply