ROMS grid stiffnesses and consequences
ROMS grid stiffnesses and consequences
When I run ROMS, I always use the Parabolic Splines density Jacobian (DJ_GRADPS) option and I am under the impression that the pressure gradient errors are related to the grid stiffnesses. I have some questions regarding the grid stiffness criteria:
(1) For ROMS with DJ_GRADPS, do I need to satisfy BOTH the Haney criterion (0 <= stiffness <= 0.4) and the Beckmann & Haidvogel criterion (3 <= stiffness <= 7)? Or, is one of the above criteria sufficient?
(2) What is the penalty for violating each of the above criteria? What symptoms would I see in my model results/solutions upon violating these criteria - eg. loss of stratification, numerical instability, etc.?
(3) Almost all of our ROMS applications involve modeling flow in Bays & Estuaries which contain narrow, deep channels which are both naturally occuring and man-made (ie. navigation channels). We need to resolve these channels but upon doing so, we almost always violate both grid stiffness criteria (even after using a large number of grid points - typical grids can have ~ 400 x 400 points in horizontal). If we smooth the bathymetry to satisfy the criteria, we fill-up and bury the narrow, deep channels. What should we do in situations such as these?
(1) For ROMS with DJ_GRADPS, do I need to satisfy BOTH the Haney criterion (0 <= stiffness <= 0.4) and the Beckmann & Haidvogel criterion (3 <= stiffness <= 7)? Or, is one of the above criteria sufficient?
(2) What is the penalty for violating each of the above criteria? What symptoms would I see in my model results/solutions upon violating these criteria - eg. loss of stratification, numerical instability, etc.?
(3) Almost all of our ROMS applications involve modeling flow in Bays & Estuaries which contain narrow, deep channels which are both naturally occuring and man-made (ie. navigation channels). We need to resolve these channels but upon doing so, we almost always violate both grid stiffness criteria (even after using a large number of grid points - typical grids can have ~ 400 x 400 points in horizontal). If we smooth the bathymetry to satisfy the criteria, we fill-up and bury the narrow, deep channels. What should we do in situations such as these?
Re: ROMS grid stiffnesses and consequences
Ideally, yes, both. They are similar to each other, though I have always focussed on the Beckmann one. ROMS then reports that my Haney number is up around 16, which Sasha quotes as being "insane". One way to reduce the Haney number is to reduce N, which is not an option.lanerolle wrote:(1) For ROMS with DJ_GRADPS, do I need to satisfy BOTH the Haney criterion (0 <= stiffness <= 0.4) and the Beckmann & Haidvogel criterion (3 <= stiffness <= 7)? Or, is one of the above criteria sufficient?
Symptoms could include model instability and/or spurious deep currents. The canonical test is the seamount in a stratifiied ocean generating its own flow. For that, the flow resembles a flower, with four outward jets and four inward jets. Note that the strength of those jets is a worst case scenario - ambient flow will advect the water elsewhere before the bogus currents can grow to their full potential.(2) What is the penalty for violating each of the above criteria? What symptoms would I see in my model results/solutions upon violating these criteria - eg. loss of stratification, numerical instability, etc.?
Hah! Well, experiment, see what runs, see if you believe it. If you find you need 1000x1000 points to believe it, that's your answer. Have you heard Jim McWilliams talk about sub-mesoscale flows? We are not converged when we use our 10 km grid, which we are still using in order to afford a multi-decadal simulation.(3) Almost all of our ROMS applications involve modeling flow in Bays & Estuaries which contain narrow, deep channels which are both naturally occuring and man-made (ie. navigation channels). We need to resolve these channels but upon doing so, we almost always violate both grid stiffness criteria (even after using a large number of grid points - typical grids can have ~ 400 x 400 points in horizontal). If we smooth the bathymetry to satisfy the criteria, we fill-up and bury the narrow, deep channels. What should we do in situations such as these?
Re: ROMS grid stiffnesses and consequences
I'm little bit confused
about the stiffness criteria. Anyone can explain me the meaning and the mathematical definition of both?
Are you sure that is
0 < rx0 (Haney) < 0.4
and
3 < rx1 (Beckmann and Haidvogel) < 7
and not viceversa?
Thank you in advance
Arianna
![Embarassed :oops:](./images/smilies/icon_redface.gif)
![Question :?:](./images/smilies/icon_question.gif)
0 < rx0 (Haney) < 0.4
and
3 < rx1 (Beckmann and Haidvogel) < 7
and not viceversa?
Thank you in advance
Arianna
Re: ROMS grid stiffnesses and consequences
It is vice versa, as Lyon suggests.
Re: ROMS grid stiffnesses and consequences
Suppose that you do not have any thermocline (hc=0). Then the vertical levels of the models are
with h(e) the bathymetry at the wet cell e and phi(k) the vertical parametrization.
The Beckman and Haidvogel number is defined as with e and e' two neighboring wet cells.
The Haney number (see full formulas in Utility/stiffness.F) is There is no clear cut and agreed recommendation for the maximal value of those factors.
What I would say is:
(a) Between rx0 and rx1, the parameter that matters the most is rx1 because it is related to the hydrostatic consistency of the vertical stratification.
(b) There are four ways to decrease the Haney number:
--(1) Increase the horizontal resolution.
--(2) Change the values of the parameters ThetaB and ThetaS determining the scaling function phi of the ROMS model.
--(3) Decrease the number of vertical levels N.
--(4) Smooth the bathymetry to reduce this maximum.
I wrote some programs for bathymetry filtering in http://www.liga.ens.fr/~dutour/Bathymetry/index.html i.e. given the rx0 you want to achieve, it gives you the smallest perturbation to the bathymetry needed to achieve it.
Code: Select all
h(e, k)=h(e) phi(k)
The Beckman and Haidvogel number is defined as
Code: Select all
rx0=max |h(e)-h(e')|/(h(e)+h(e'))
The Haney number (see full formulas in Utility/stiffness.F) is
Code: Select all
rx1=rx0 max (phi(i)+phi(i-1))/(phi(i) - phi(i-1))
What I would say is:
(a) Between rx0 and rx1, the parameter that matters the most is rx1 because it is related to the hydrostatic consistency of the vertical stratification.
(b) There are four ways to decrease the Haney number:
--(1) Increase the horizontal resolution.
--(2) Change the values of the parameters ThetaB and ThetaS determining the scaling function phi of the ROMS model.
--(3) Decrease the number of vertical levels N.
--(4) Smooth the bathymetry to reduce this maximum.
I wrote some programs for bathymetry filtering in http://www.liga.ens.fr/~dutour/Bathymetry/index.html i.e. given the rx0 you want to achieve, it gives you the smallest perturbation to the bathymetry needed to achieve it.
- arango
- Site Admin
- Posts: 1356
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Re: ROMS grid stiffnesses and consequences
Actually this is correctI think in ROMS (ROMS/Utility/stiffness.F), the two metrics (Beckmann & Haidvogel and Haney) are written out (to screen) the wrong way round.
![Exclamation :!:](./images/smilies/icon_exclaim.gif)
1/2 r = ABS(delta H) / Havg
this ratio is always less than one. In ROMS we report 1/2 r. Notice that the Haney (1991) hydrostatic condition ratio rx1 is always greater than one. If you still have doubts, your are can check the above references.
Re: ROMS grid stiffnesses and consequences
No, I do not agree. The factor rx1 can be lower than 1.
If the bathymetries are z_w(e,k) with e a wet cell and k a vertical level then with e and e' two adjacent wet cells.
If the bathymetry of the wet cells is constant then rx1=0. The condition rx1<=1 is equivalent to the hydrostatic condition. See, for example, Figure 1 and Equation 2.10 in "A method for computing horizontal pressure-gradient force in an oceanic model with a nonaligned vertical coordinate" by A.F. Shchepetkin and J.C. McWilliams.
If the bathymetries are z_w(e,k) with e a wet cell and k a vertical level then
Code: Select all
rx1=max (z_w(e,k)-z_w(e',k) + z_w(e,k-1)-z_w(e',k-1))/(z_w(e,k)+z_w(e',k) - z_w(e,k-1)-z_w(e',k-1))
If the bathymetry of the wet cells is constant then rx1=0. The condition rx1<=1 is equivalent to the hydrostatic condition. See, for example, Figure 1 and Equation 2.10 in "A method for computing horizontal pressure-gradient force in an oceanic model with a nonaligned vertical coordinate" by A.F. Shchepetkin and J.C. McWilliams.