220 likes | 383 Views
Implementation of Grid Nesting: a first look with grid mosaics. John Warner, USGS Hernan Arango, Rutgers. Motivation slide. Warner, J. C., W. R. Geyer, and J. A. Lerczak (2005), Numerical modeling of an estuary: A comprehensive skill assessment, J. Geophys. Res., 110,
E N D
Implementation of Grid Nesting: a first look with grid mosaics John Warner, USGS Hernan Arango, Rutgers
Motivation slide • Warner, J. C., W. R. Geyer, and J. A. Lerczak (2005), Numerical modeling of an estuary: A comprehensive skill assessment, J. Geophys. Res., 110, • C05001, doi:10.1029/2004JC002691. Existing modeling application of Hudson River. Need to extend southern boundary into region of strong variations.
Outline • Existing methods of grid manipulation • Grid nesting types • Other procedures of nesting • Development of our proposed nesting approach • Simple Application (dogbone) • Grid generation tool • Realistic Application (Hudson)
Existing methods of grid manipulation Grid curvature • For rectilinear grids, use manipulation techniques of: • curvature • masking • stretching • to allow increased resolution in regions of interest. Grid stretching Land/Sea masking
Some drawbacks of these techniques Rectilinear grid is not ‘ideal’ to provide strong resolution along coastlines or in regions of strongly varying topography. Need methods to allow: - increased resolution in localized regions of interest - limited masking - localized curvature Grid curvature in different directions a lot of masked regions Stretching extends along entire grid
Some drawbacks of these techniques Rectilinear grid is not ‘ideal’ to provide strong resolution along coastlines or in regions of strongly varying topography. Need methods to allow: - increased resolution in localized regions of interest - limited masking - localized curvature Grid curvature in different directions a lot of masked regions Stretching extends along entire grid
M 1 L M M M 1 1 L 1 1 1 L 1 L 1 Need better methods: Grid Nesting (3 Types) Grid 1 Grid 2 1) Mosaic (East-West Contact) grids aligned along one side Grid 2 Grid 2 M Grid 1 Grid 1 M 1 1 L 3) Refinement 1 1 L 1 grid overlaps more than 1 boundary 2) Composed localized region of increased resolution
Some issues to consider for nesting: Grid 1 Grid 2 Need to exchange information between grids that are connected. - Model fields are at different grid locations (Arakawa C Grid). - What needs to be exchanged ? - When do we exchange it ? - Numerical stencil of advection and mixing formulations require spatial footprint. At the grid boundaries, there are not enough points to fulfill that footprint.
What happens at the boundaries? Istr = 1 Istr = 1, I_RANGE = 1 .. 0 1 1 2 2 3 3 Non-Periodic FX(1,j) FX(0,j)=FX(1,j) 0 1 1 2 2 3 3 -2 -2 -1 -1 Periodic Advection schemes require data fields beyond edge of the grid. For Periodic we add additional ghost points.
Nesting strategies by others Some models exchange fluxes at boundaries + Use only local information. - Fluxes may be different from each grid, so need to average them. - This will lead to different results depending on where the grids are connected.
How do we propose to do nesting? - For now focus on mosaic and composite grids. - For now, use coincident points (have formulation for spatial interpolation). - 2 way nested system (dynamical interaction). - Time step adjacent grids using information of the data fields from the other mesh (Ookochi, 1972). - This is similar to Periodic formulation already in ROMS - May require a dynamical interface when 2 grids are of different resolution
v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u r r r r r r r r r r r r r Mosaic Grids: East-West Contact Grid 1 1 L M M 1 1 1 L-1 L L+1 L+2
r v v v v v v v v v v v v v v v v v v v v v v v v v r r r r r r r r r r r r r r r r r r r r r u u u u u u u u u u u u u u u u u u r r r r u u u u u u u u u u u u u u u u u u u u u u u u u u u r r u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u v v v v v v v v v v v v v v r r r r r r r r r r r r r r v v v v v v v v v v v v v v r r r r r r r r r r r r r r v r r r r r r r r r r r r r r v v v v v v v v v v v v v v r r r r r r r r r r r r r r v v v v v v v v v v v v v v r r r r r r r r r r r r r r v v v v v v v v v v v v v v r r r r r r r r r r r r r r v r r r r r r r r r r r r r r Mosaic Grids: East-West Contact Grid 2 -2 -1 0 L 1 M M v v v v v v v v v v v v v 1 1 1 L
Composite grid - ROMS time stepping time step loop main3d time loop steps for each grid sequentially, then exchange information. synchronization point
Nesting.F call interp_nesting call allocate_nesting uses pointers so there is no copy of data
Pros Cons of our approach Pros + For concurrent grid spacing: results will be identical no matter how it is tiled (even with large stencil advection schemes) + Allows natural extension of advection schemes. + No need to avg fluxes + Want to only acquire primary variables from other grid. For nesting halo region currently acquire : ubar, vbar, u, v, zeta, rzeta, Zt_avg1, DU_avg1, DV_avg1, bu/vstr, tke, gls, Akv, Akt, Huon Hvom (step3d_uv) + To ensure mass conservation, want to compute all secondary variables on each local grid. For nesting halo region currently compute : omega, rhoA, rhoS, rho, bvf, Hz, z_r, z_w, Huon Hvom (set_massflux), metrics + Greatly reduces the masked areas. Cons - Grid is larger (depends on how you develop the grids) - Grid Preprocessing - BC's a little trickier - need to move them out of cppdefs.h
Idealized Test Case : Dogbone Case 1: whole grid Grid 1 Grid 2 Case 2: two separate grids Lm-3 Lm-2 Lm-1 Lm L L+1 L+2 close up of connection region -3 -2 -2 -1 -1 0 0 1 1 2 2 3 3
Dogbone results animation of free surface Case 1: whole grid Case 2: two separate grids
Gridgen:needed for more complicated setups 1) user provides bounding polygon with identifiers for L/R turns. 2) then either - nx, ny or - node coordinates 3) final grids are cut out
Example: Hudson River Estuary + NY Harbor free surface bottom salinity
Summary • Developing a method for nesting the includes capabilities for mosaic grids, composite grids, and grid refinement. • Time integration of grid points near the mesh interface is performed using data from fields of adjacent mesh. • Simple test case (dogbone) demonstrates that the method reproduces identical results from a mosaic grid as compared to a continuous grid. • Successful application of composite grid to a realistic estuarine setting. • Method can be used to connect unlimited grid segments to enhance grid resolution of ROMS in regions of strongly varying coastlines.