Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#619 closed bug (Fixed)

IMPORTANT: Updated nesting routines for refinement

Reported by: arango Owned by: arango
Priority: major Milestone: Release ROMS/TOMS 3.7
Component: Nonlinear Version: 3.7
Keywords: Cc:

Description

This is an important update for the nesting algorithms:

  • Corrected bugs in subroutine put_refine2d of nesting.F. The conditional to avoid updating contact points at refined grid physical boundaries for time index indx1(ng) was incorrect.
  • Corrected the time index to t2 for the donor grid mass fluxes REFINED(cr)%DU_avg2(1,m,t2) and REFINED(cr)%DV_avg2(1,m,t2) in put_refine2d.
  • Corrected the logic to use more than one refined grid in an application. The logic to initialize arrays in structure BRY_CONTACT(:,cr) is more robust by introducing the conjugate contact region (CCR) concept. See mod_nesting.F for details.
  • Corrected the index when the REFINED structure is used. Changed REFINED(ir) to REFINED(cr). This was a bug when we have more than one refined grid in an application.
  • Corrected the reading of several variables for the nested grid connectivity NetCDF file, NGCNAME, in set_contact.F. The local variables Lcoincident, Lcomposite, Lmosaic, and Lrefinement need to be dimension (Ngrids-1)*2 and not Ngrids. That is, they need to be of the size of number of contact regions, Ncontact = (Ngrids-1)*2. This was also corrected in the Matlab scripts c_contact.m and wrt_contact.m that defines and writes such variables.

WARNING: Users need to also update the Matlab repository and recreate the nesting grid connectivity NetCDF file, NGCNAME, for their applications.

Also correct few things in other files:

  • Added a more robust logic in the vertical interpolation in the 4D-Var routines extract_obs.F and ad_extract_obs.F. Many thanks to Paul Mattern for bringing this to my attention.

Comments on the nesting algorithms:

  • We are still learning how to use these algorithms and designing simple applications to insure that algorithms were coded correctly for the intended capabilities. We found out that in order to conserve volume in refinement applications, the nesting has to be two-way. This is a very interesting result that we are trying to find complete explanations for it. Our applications with one-way nesting (ONE_WAY) tend to loose volume after several days.

This can be illustrated by adding two refined grids to the LAKE_SIGNELL application:

One-way, free-surface after 2 days of simulation:

https://www.myroms.org/trac/zeta_one_way3.png

Notice that the free-surface in the bottom-left and top-right refined grids have lower values when compared to the coarse grid values. The refinement is 1:3 for both finer grids. The bathymetry is flat. Here both refined grids are loosing volume slowly in time. The bottom-left grid is completely dark blue. The top-right grid exhibits much lower values. Just click on the figure to see a large resolution figure.

Two-way, free-surface after 2 days of simulation:

https://www.myroms.org/trac/zeta_two_way3.png

This is the same configuration as the above case but with ONE_WAY turned off. That is, ROMS is run in a two-way configuration. You can see the smooth continuation of colors between the coarse and finer grids. Notice the finer grids have additional physics since the gravity wave phenomena is better resolved. In our realistic applications we can see the trail of internal waves.

I will load the LAKE_SIGNELL nesting application to the test repository soon. Many thanks to John Wilkin for setting this grids and testing the nesting algorithms. We are now looking at the science of nesting instead of coding...

  • It is very clear from our experience, so far, that we need to pay a lot of attention to how the nested grids and the connectivity information is built. We need to conserve volume and compute the bathymetry accordingly... I foresee the Matlab scripts to continue to evolve as we gain more experience and try new applications.

Change History (3)

comment:1 by arango, 10 years ago

Resolution: Fixed
Status: newclosed

comment:2 by arango, 10 years ago

Summary: IMPORTANT: Update nesting rotuines for refinementIMPORTANT: Updated nesting rotuines for refinement

comment:3 by arango, 10 years ago

Summary: IMPORTANT: Updated nesting rotuines for refinementIMPORTANT: Updated nesting routines for refinement
Note: See TracTickets for help on using tickets.