Dear ROMS users,
I have a bizarre problem at the contact point layer in the configuration of a coarse grid and a fine grid, nested inside of the domain with TWO-WAY interaction.
I've spotted bizarre residual currents across the grid frame in my highly tidal region (North Sea). I had a close look at the salinity and found out, that it is 5 PSU higher than the normal for the fine grid.
Is it a numerical problem or not, and how can I avoid it?
Here is an image of the output after five days. And also the header file attached.
Contact point problem with salinity in Two Way Nesting run
Contact point problem with salinity in Two Way Nesting run
- Attachments
-
- north_sea_nesting.h
- (2.85 KiB) Downloaded 432 times
Evgeny Ivanov
PostDoc,
MAST, University of Liege, Belgium
PostDoc,
MAST, University of Liege, Belgium
Re: Contact point problem with salinity in Two Way Nesting r
Dear Eugen
Referring to the attached header file I recommend you to apply the following suggestions hope it can help you.
1: #define UV_SADVECTION ======> undef "UV_SADVECTION"
2: You have two options for the grid nesting "TWO_WAY, ONE_WAY". When NESTING option is switch ON, the model will run "TWO_WAY" .
Otherwise "ONE_WAY" option should to define for run. I suggest that you run "ONE_WAY" and see how that works.
#define NESTING
#ifdef NESTING
# define ONE_WAY
#endif
3: To use the bottom friction options, "UV_LOGDRAG", "UV_LDRAG" and "UV_QDRAG", I think you need the option "UV_DRAG_GRID" to have
higher accuracy in calculating bottom friction, and accordingly the option "ANA_DRAG".
Please let me know if you need any clarification,
Good luck,
Farshid
Referring to the attached header file I recommend you to apply the following suggestions hope it can help you.
1: #define UV_SADVECTION ======> undef "UV_SADVECTION"
2: You have two options for the grid nesting "TWO_WAY, ONE_WAY". When NESTING option is switch ON, the model will run "TWO_WAY" .
Otherwise "ONE_WAY" option should to define for run. I suggest that you run "ONE_WAY" and see how that works.
#define NESTING
#ifdef NESTING
# define ONE_WAY
#endif
3: To use the bottom friction options, "UV_LOGDRAG", "UV_LDRAG" and "UV_QDRAG", I think you need the option "UV_DRAG_GRID" to have
higher accuracy in calculating bottom friction, and accordingly the option "ANA_DRAG".
Please let me know if you need any clarification,
Good luck,
Farshid
Re: Contact point problem with salinity in Two Way Nesting r
Dear Farshid ,
Thank you for these suggestions !
1) I undefined UV_SADVECTION, but the result is almost the same.
2) Surprisingly One-Way nesting works fine (I knew it before), but for our study we need the two-way, to prove its superiority compare to the one-way.
3) I scaled the bottom drag for each grid cell via UV_DRAG_GRID back on the days, experimented with it via ranging it in large proportions, but it does not cause these weird salinity amplification, as I remember.
In the contact point layer I've made a bathymetry smoothing from one grid to another, so this is probably also not an issue...
Thank you for these suggestions !
1) I undefined UV_SADVECTION, but the result is almost the same.
2) Surprisingly One-Way nesting works fine (I knew it before), but for our study we need the two-way, to prove its superiority compare to the one-way.
3) I scaled the bottom drag for each grid cell via UV_DRAG_GRID back on the days, experimented with it via ranging it in large proportions, but it does not cause these weird salinity amplification, as I remember.
In the contact point layer I've made a bathymetry smoothing from one grid to another, so this is probably also not an issue...
Evgeny Ivanov
PostDoc,
MAST, University of Liege, Belgium
PostDoc,
MAST, University of Liege, Belgium
Re: Contact point problem with salinity in Two Way Nesting r
Dear Eugen
I don't think there's actually any difference. Please take a look at ".../Nonlinear/nesting.F" and ".../Modules/mod_nesting.F". I refer you to John Wilkin comment in the following link, https://www.myroms.org/forum/viewtopic.php?f=14&t=4288
Good luck, Farshid
I don't think there's actually any difference. Please take a look at ".../Nonlinear/nesting.F" and ".../Modules/mod_nesting.F". I refer you to John Wilkin comment in the following link, https://www.myroms.org/forum/viewtopic.php?f=14&t=4288
Good luck, Farshid
- arango
- Site Admin
- Posts: 1367
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Re: Contact point problem with salinity in Two Way Nesting r
I haven't noticed this in my applications that have run stable for years. Are you using those three refinement grids? If so, one of the refined grids is touching the boundary of the other. That will affect the order of the contact points between them. It is the chicken and egg question, what came first? I always avoid that situation. Anyway, your configuration may require some thinking. The location of nested grids is no arbitrary. There are a lot of aspects to consider.
One thing that you need check is the relationship between the land/sea mask between coarser and finer grids. It seems that all your issues are always next to the land/sea mask.
You need to be sure that the Reynolds Numbers (U dx/nu) for all the grids. For example for 1:3 refinement we need:
One thing that you need check is the relationship between the land/sea mask between coarser and finer grids. It seems that all your issues are always next to the land/sea mask.
You need to be sure that the Reynolds Numbers (U dx/nu) for all the grids. For example for 1:3 refinement we need:
Code: Select all
VISC2 == 90.0d0 30.0d0 10.0d0 (m2/s)
TNU2 == 2*27.0d0 2*9.0d0 2*3.0d0 (m2/s)
Re: Contact point problem with salinity in Two Way Nesting r
Thanks, arango !
I tested all proposed solutions, and found out, that the source of the problem was the time step, which was five times smaller for the child grid, than for the parent, due to a grid cell size ratio of 1:5.
With the advection schemes TS_C4VADVECTION and TS_U3HADVECTION I always encountered this "boundary" problem, right until I switched to the same time step for the both parent and child grids. Obviously, it's not the best solution in terms of computational time.
The scheme TS_MPDATA doesn't have this issues. I'm working now with it.
I tested all proposed solutions, and found out, that the source of the problem was the time step, which was five times smaller for the child grid, than for the parent, due to a grid cell size ratio of 1:5.
With the advection schemes TS_C4VADVECTION and TS_U3HADVECTION I always encountered this "boundary" problem, right until I switched to the same time step for the both parent and child grids. Obviously, it's not the best solution in terms of computational time.
The scheme TS_MPDATA doesn't have this issues. I'm working now with it.
Evgeny Ivanov
PostDoc,
MAST, University of Liege, Belgium
PostDoc,
MAST, University of Liege, Belgium
- jivica
- Posts: 172
- Joined: Mon May 05, 2003 2:41 pm
- Location: The University of Western Australia, Perth, Australia
- Contact:
Re: Contact point problem with salinity in Two Way Nesting r
Actually, you might be able to run your child grid with time step the same as in your parent grid (large time step, efficient, as for example I have the case in coastal nested domain where is quite shallow region).
If your child grid is in shallow region and parent has some deep parts then interplay btw finer grid resolution (dx) and smaller sqrt(gH) could be OK.
Do not know what are your CFLs at the child/parent grids, but nothing prevents you to have different time step ratio and grid resolution (I think)...
This is unrelated to advection schemes you are using.
Cheers
I.
If your child grid is in shallow region and parent has some deep parts then interplay btw finer grid resolution (dx) and smaller sqrt(gH) could be OK.
Do not know what are your CFLs at the child/parent grids, but nothing prevents you to have different time step ratio and grid resolution (I think)...
This is unrelated to advection schemes you are using.
Cheers
I.