I have been running some simulations of a moderate (~1 km) resolution of a coastal area (southern New England), at the moment strictly with a tidal forcing. While I have been able to get reasonable initial results, I seem to have a problem with model blow-up that I haven't solved, and am hoping someone can point me in the right direction. I have found previous threads discussing the possible causes of model blow-up, and nothing seems to fit this description exactly, other than statements that there are no hard and fast rules sometimes.
Initially the problem presented itself with after 21 hours of simulated time. Upon examination, it appeared as though a region of the grid [i.e., more than a single gridpoint, and at all levels of the water column] suddenly had all field variables turn to NaN. Changing the timestep did not alter the result, and in fact the code crashed after the same 21 hours regardless of the number of timesteps it took to get there.
I went back and re-created the grid, but with a different hmin [minimum depth at the shore for the grid generation tool I'm using; 1 m instead of 0.5 m], and it ran for longer... when I finally raised hmin to 2 m, it ran for about a month [simulated time; seemingly reaching a quasi-periodic state early on] without problems, and then again crashed. This is almost long enough for what I need at the moment, but I am concerned that increasing hmin further will start to substantially alter the bathymetry of the model, and I would prefer to understand what the problem is. Is it most likely just a need to increase the horizontal resolution I'm using? I have seen warnings that this is needed if the bathymetry is very steep, but the part of the grid where the ROMS crashes with NaN values does not seem particularly steep.
Is there a logical / predictable reason for this problem, or is it a question of trial and error until a grid works for a sufficiently long simulation? Further, if I am able to find a grid / model setup that runs sufficiently long for me, do I have any reason to distrust the results? [e.g., if I need ROMS to run for 30 days to get the data I need and it crashes on day 31, but shows no other instabilities, should I be concerned?]
Connection between hmin and model blow-up
Re: Connection between hmin and model blow-up
My guess is that your tides are causing the water column depth to go negative at some time and place. Do you have WET_DRY defined? You might try turning it on to see what that does. I blogged about my tides here
In engineering, they increase the resolution until the solution doesn't change anymore, like you were doing with your timestep. We are making assumptions about things being resolved enough, hydrostatic enough, etc. It's not always easy to check those assumptions or to know how far to push them. In sea ice, there is an assumption that you have enough ice floes in one grid to be able to count on it being a continuous isotropic medium. People use these ice models knowing full well that isn't the case, but you do get an answer that seems not too bizarre.
In engineering, they increase the resolution until the solution doesn't change anymore, like you were doing with your timestep. We are making assumptions about things being resolved enough, hydrostatic enough, etc. It's not always easy to check those assumptions or to know how far to push them. In sea ice, there is an assumption that you have enough ice floes in one grid to be able to count on it being a continuous isotropic medium. People use these ice models knowing full well that isn't the case, but you do get an answer that seems not too bizarre.
- arango
- Site Admin
- Posts: 1356
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Re: Connection between hmin and model blow-up
This looks like a vertical CFL violation due to very small level thicknesses. Any strong forcing like wind stress or tides will make your application to blow-up. I would check the bathymetry around and smooth a little to see if this helps.
The minimum depth to consider depends on how stiff your bathymetry is. If h is greater than 1000m at the shelf break, I always clamp the minimum value to 20m. I would check the vertical mixing coefficients to see how large are they.
The minimum depth to consider depends on how stiff your bathymetry is. If h is greater than 1000m at the shelf break, I always clamp the minimum value to 20m. I would check the vertical mixing coefficients to see how large are they.
Re: Connection between hmin and model blow-up
Defining WET_DRY appears to have done the trick, or at least allows the model to keep running; I will double-check that no other problems have formed. It did not occur to me that the tides might be large enough to cause negative values of depth, especially since I thought I had seen warnings about using WET_DRY in previous posts, but it does make sense for the region.
I need to keep hmin around O(1 m) for my test case, though, because the water depth is O(20 m) for much of the region I am interested in. I will keep in mind the vertical CFL condition when I add in wind and wave forcings, however, because this means I will also be forced to keep the very small level thicknesses near the boundaries.
Thank you for the quick and useful replies.
I need to keep hmin around O(1 m) for my test case, though, because the water depth is O(20 m) for much of the region I am interested in. I will keep in mind the vertical CFL condition when I add in wind and wave forcings, however, because this means I will also be forced to keep the very small level thicknesses near the boundaries.
Thank you for the quick and useful replies.