Hello,
I have recently finished a two-way nested simulation to study the dispersal of tracers from an underwater volcano. The attached is an animation showing the preliminary results. Basically, my grid configuration is of the refinement type with a small fine grid (blue box) embedded inside a big coarse grid with a refinement factor of 5. The simulation includes realistic bathymetry and the currents are driven by realistic surface, tidal, and sub-tidal forcing that is applied at the open boundaries of the large domain. Overall, I am very impressed by how well the two-way nesting works in ROMS. As the animation shows, the presence of the nesting interface does not appear to affect the dispersal of the tracer and flow through it, which is what I was hoping to see.
Here is my question. The bathymetry I used is the same for both grids with the resolution matching that of the coarse grid. Naturally, I would like to use a more finely resolved bathymetry across the fine grid. This leads to a question of whether the differences in bathymetry across the nesting interface could be problematic. In other words, is it necessary to apply some kind of filtering method to smooth the transition between fine and coarse bathymetries across the nesting interface or this kind of smoothing is done implicitly in ROMS through vertical interpolation at contact points?
Thanks!
Guangyu
Bathymetry differences in nested simulations
Bathymetry differences in nested simulations
- Attachments
-
- dye_hor_1400m_coarse_heat_dye.gif (1.36 MiB) Viewed 5131 times
Re: Bathymetry differences in nested simulations
nice animation!
For your bathy question, i am not sure there is an exact answer. It could depend on the grid sizes, bathy itself, wet/dry if that is active, etc.
IF what you have is working well, then i would suggest you can modify the bathy in most of the child, but dont adjust the child bathy along the child perimeter for a few cells distance (maybe 10 child ie equivalent to 2 parent). You could give that a try to start. After you adjust the child bathy, i would avg it back to the parent.
-j
For your bathy question, i am not sure there is an exact answer. It could depend on the grid sizes, bathy itself, wet/dry if that is active, etc.
IF what you have is working well, then i would suggest you can modify the bathy in most of the child, but dont adjust the child bathy along the child perimeter for a few cells distance (maybe 10 child ie equivalent to 2 parent). You could give that a try to start. After you adjust the child bathy, i would avg it back to the parent.
-j
Re: Bathymetry differences in nested simulations
Thanks for your quick reply, John. I have increased the resolution of the bathymetry for the small grid. I will post the results from this new simulation once it is finished.
In the meantime, there is another technical issue that I ran into when I was preparing the nested grids. I found that for some reason a refinement factor of 3 did not work. I set up the fine grid using the Matlab program 'coarse2fine' and then used another program 'contact' to create the contact-point input file. The simulation using those grids and contact-point file somehow blew up almost immediately when exchanging information between grids. The problem was solved by changing the refinement factor to 5. I had the same problem with another idealized test I did before. I am wondering if this problem is due to some glitch in the Matlab code (i.e., 'contact') used to create the contact-point input file or the choice of refinement factor (e.g., 3, 5, 7) is dependent on some nuances of the coarse grid?
In the meantime, there is another technical issue that I ran into when I was preparing the nested grids. I found that for some reason a refinement factor of 3 did not work. I set up the fine grid using the Matlab program 'coarse2fine' and then used another program 'contact' to create the contact-point input file. The simulation using those grids and contact-point file somehow blew up almost immediately when exchanging information between grids. The problem was solved by changing the refinement factor to 5. I had the same problem with another idealized test I did before. I am wondering if this problem is due to some glitch in the Matlab code (i.e., 'contact') used to create the contact-point input file or the choice of refinement factor (e.g., 3, 5, 7) is dependent on some nuances of the coarse grid?
Re: Bathymetry differences in nested simulations
i am not sure why a 3 would have an issue but a 5 factor would work. If it blew up right away, that is the best type of problem. Look at the std out and make sure there are no nans, look at the rst file to see where it had troubles. You have to be a detective some times.
Re: Bathymetry differences in nested simulations
Probably not relevant for your 3 vs 5 refinement, but perhaps interesting to look into if you have very shallow regions or very steep bathymetry gradients along the grid:
viewtopic.php?f=14&t=5438&p=21072#p21072
I haven't updated my ROMS code in a while, so I'm not sure if this is still relevant. Also I don't use the Matlab code, so I don't know how the intersections are handled there. Following jcwarner's suggestion
viewtopic.php?f=14&t=5438&p=21072#p21072
I haven't updated my ROMS code in a while, so I'm not sure if this is still relevant. Also I don't use the Matlab code, so I don't know how the intersections are handled there. Following jcwarner's suggestion
, would eliminate this issue, so IMHO it's good practice to make quick progress.... but dont adjust the child bathy along the child perimeter for a few cells distance (maybe 10 child ie equivalent to 2 parent).
Re: Bathymetry differences in nested simulations
Hi John and Stephan,
I have finished a new run wherein the bathymetry is refined within the child grid. I did not make any adjustment to the refined bathymetry near the nesting interface since I mainly wanted to see how the nesting works in the presence of the differences in bathymetry across the interface.
The results are not good, though. As you can see from the attached diagrams of the 30-day averaged velocities sampled at a given depth (1400 m), the velocities within and near the refined child domain do not look right. This is confirmed by comparing the simulated currents with the measurements taken above the seamount, for which the match gets much worse when the high-resoluation bathymetry is used for the child domain.
This seems to suggest that it is important to eliminate differences in bathymetry across the nesting interface. I will try John’s approach and see if that solves the problem. In the meantime, I would like to know if the conventional wisdom is to make sure the coarse and fine grids share the bathymetry and thus sigma levels at the contact points.
Regarding the issue with the refinement factor, the simulation with 3:1 refinement reported NaNs immediately after the first exchange of information between the two grids. I will look into the contact-point input file to see if there is any NaN in any of the variables.
Guangyu
I have finished a new run wherein the bathymetry is refined within the child grid. I did not make any adjustment to the refined bathymetry near the nesting interface since I mainly wanted to see how the nesting works in the presence of the differences in bathymetry across the interface.
The results are not good, though. As you can see from the attached diagrams of the 30-day averaged velocities sampled at a given depth (1400 m), the velocities within and near the refined child domain do not look right. This is confirmed by comparing the simulated currents with the measurements taken above the seamount, for which the match gets much worse when the high-resoluation bathymetry is used for the child domain.
This seems to suggest that it is important to eliminate differences in bathymetry across the nesting interface. I will try John’s approach and see if that solves the problem. In the meantime, I would like to know if the conventional wisdom is to make sure the coarse and fine grids share the bathymetry and thus sigma levels at the contact points.
Regarding the issue with the refinement factor, the simulation with 3:1 refinement reported NaNs immediately after the first exchange of information between the two grids. I will look into the contact-point input file to see if there is any NaN in any of the variables.
Guangyu