Minus values of sediment next to sediment point sources
Minus values of sediment next to sediment point sources
Dear all,
Using ROMS 3.0 to simulate transportation of sediment dumped from the ship (point source). There's always minus value of sediment next to the point source.
In ANA_PSOURCE.H, I have modified Qshape, Qbar, etc. and:
......................................................
DO is=1,Nsrc
Dsrc(is)=1.0_r8
Lsrc(is,itemp)=.TRUE.
Lsrc(is,isalt)=.TRUE.
DO ised=1,NST
Lsrc(is,NAT+ised)=.TRUE.
end do
END DO
.......................................................
DO ised=1,NST
Tsrc(is,k,ised+NAT)=1325.0_r8
END DO
......................................................
The simulations were run with:
#define UV_ADV
#define UV_COR
#define UV_QDRAG
#define UV_VIS2
#define MIX_S_UV
#undef VISC_GRID
#define UV_PSOURCE
#define TS_U3HADVECTION
#define TS_C4VADVECTION
#undef TS_A4HADVECTION
#undef TS_A4VADVECTION
#define TS_DIF2
#define MIX_S_TS
#undef DIFF_GRID
#define TS_PSOURCE
#define ANA_PSOURCE
#define NONLIN_EOS
#define SALINITY
#define DJ_GRADPS
#define TS_MPDATA
#define CURVGRID
#define MASKING
#define SPLINES
#define SOLVE3D
#define AVERAGES
#undef WET_DRY
#undef NEARSHORE_MELLOR
#define RADIATION_2D
#define STATIONS
#define FLOATS
#define WESTERN_WALL
#define RAMP_TIDES
#define SSH_TIDES
#ifdef SSH_TIDES
# define ADD_FSOBC
# define EAST_FSCHAPMAN
# define NORTH_FSCHAPMAN
# define SOUTH_FSCHAPMAN
#else
# define EAST_FSGRADIENT
# define NORTH_FSGRADIENT
# define SOUTH_FSGRADIENT
#endif
#define UV_TIDES
#ifdef UV_TIDES
# define ADD_M2OBC
# define EAST_M2FLATHER
# define NORTH_M2FLATHER
# define SOUTH_M2FLATHER
#else
# define EAST_M2RADIATION
# define NORTH_M2RADIATION
# define SOUTH_M2RADIATION
#endif
#define EAST_M3RADIATION
#define EAST_TRADIATION
#define SOUTH_M3RADIATION
#define SOUTH_TRADIATION
#define NORTH_M3RADIATION
#define NORTH_TRADIATION
#define SEDIMENT
#ifdef SEDIMENT
# define BEDLOAD_MPM
# undef BEDLOAD_SOULSBY
# define RIVER_SEDIMENT /* Process river sediment point-sources */
# define SED_DENS /* Activate sediment to affect equation of state */
# define SED_MORPH /* allow bottom model elevation to evolve */
# define SUSPLOAD /* Activate suspended load transport */
# define ANA_SEDIMENT
#endif
#define MY25_MIXING
#ifdef MY25_MIXING
# define N2S2_HORAVG
# define KANTHA_CLAYSON
#endif
#undef GLS_MIXING
#ifdef GLS_MIXING
# define N2S2_HORAVG
# undef KANTHA_CLAYSON
#endif
#undef LMD_MIXING
#ifdef LMD_MIXING
# define LMD_RIMIX
# define LMD_CONVEC
# define LMD_SKPP
# undef LMD_BKPP
# define LMD_NONLOCAL
#endif
#undef BULK_FLUXES
#ifdef BULK_FLUXES
# define LONGWAVE
# undef ANA_CLOUD
# define ANA_HUMIDITY
# undef ANA_PAIR
# undef ANA_TAIR
# define ANA_RAIN
# undef ANA_WINDS
#endif
#define SOLAR_SOURCE
#define DIURNAL_SRFLUX
#define ANA_BPFLUX
#define ANA_BSFLUX
#define ANA_BTFLUX
#define ANA_SPFLUX
#define ANA_SSFLUX
Any suggestion?
Thanks in advance,
Using ROMS 3.0 to simulate transportation of sediment dumped from the ship (point source). There's always minus value of sediment next to the point source.
In ANA_PSOURCE.H, I have modified Qshape, Qbar, etc. and:
......................................................
DO is=1,Nsrc
Dsrc(is)=1.0_r8
Lsrc(is,itemp)=.TRUE.
Lsrc(is,isalt)=.TRUE.
DO ised=1,NST
Lsrc(is,NAT+ised)=.TRUE.
end do
END DO
.......................................................
DO ised=1,NST
Tsrc(is,k,ised+NAT)=1325.0_r8
END DO
......................................................
The simulations were run with:
#define UV_ADV
#define UV_COR
#define UV_QDRAG
#define UV_VIS2
#define MIX_S_UV
#undef VISC_GRID
#define UV_PSOURCE
#define TS_U3HADVECTION
#define TS_C4VADVECTION
#undef TS_A4HADVECTION
#undef TS_A4VADVECTION
#define TS_DIF2
#define MIX_S_TS
#undef DIFF_GRID
#define TS_PSOURCE
#define ANA_PSOURCE
#define NONLIN_EOS
#define SALINITY
#define DJ_GRADPS
#define TS_MPDATA
#define CURVGRID
#define MASKING
#define SPLINES
#define SOLVE3D
#define AVERAGES
#undef WET_DRY
#undef NEARSHORE_MELLOR
#define RADIATION_2D
#define STATIONS
#define FLOATS
#define WESTERN_WALL
#define RAMP_TIDES
#define SSH_TIDES
#ifdef SSH_TIDES
# define ADD_FSOBC
# define EAST_FSCHAPMAN
# define NORTH_FSCHAPMAN
# define SOUTH_FSCHAPMAN
#else
# define EAST_FSGRADIENT
# define NORTH_FSGRADIENT
# define SOUTH_FSGRADIENT
#endif
#define UV_TIDES
#ifdef UV_TIDES
# define ADD_M2OBC
# define EAST_M2FLATHER
# define NORTH_M2FLATHER
# define SOUTH_M2FLATHER
#else
# define EAST_M2RADIATION
# define NORTH_M2RADIATION
# define SOUTH_M2RADIATION
#endif
#define EAST_M3RADIATION
#define EAST_TRADIATION
#define SOUTH_M3RADIATION
#define SOUTH_TRADIATION
#define NORTH_M3RADIATION
#define NORTH_TRADIATION
#define SEDIMENT
#ifdef SEDIMENT
# define BEDLOAD_MPM
# undef BEDLOAD_SOULSBY
# define RIVER_SEDIMENT /* Process river sediment point-sources */
# define SED_DENS /* Activate sediment to affect equation of state */
# define SED_MORPH /* allow bottom model elevation to evolve */
# define SUSPLOAD /* Activate suspended load transport */
# define ANA_SEDIMENT
#endif
#define MY25_MIXING
#ifdef MY25_MIXING
# define N2S2_HORAVG
# define KANTHA_CLAYSON
#endif
#undef GLS_MIXING
#ifdef GLS_MIXING
# define N2S2_HORAVG
# undef KANTHA_CLAYSON
#endif
#undef LMD_MIXING
#ifdef LMD_MIXING
# define LMD_RIMIX
# define LMD_CONVEC
# define LMD_SKPP
# undef LMD_BKPP
# define LMD_NONLOCAL
#endif
#undef BULK_FLUXES
#ifdef BULK_FLUXES
# define LONGWAVE
# undef ANA_CLOUD
# define ANA_HUMIDITY
# undef ANA_PAIR
# undef ANA_TAIR
# define ANA_RAIN
# undef ANA_WINDS
#endif
#define SOLAR_SOURCE
#define DIURNAL_SRFLUX
#define ANA_BPFLUX
#define ANA_BSFLUX
#define ANA_BTFLUX
#define ANA_SPFLUX
#define ANA_SSFLUX
Any suggestion?
Thanks in advance,
Thank for the response
1) Yes, I have "is" and "k" loop
2) I mean the negative value next to (Isrc,Jsrc) and the 1325 value shows the sediment concentration as kg/m3 of Qbar (~5m3/s)
In fact, in this simulation I've tried to figure out how the sea bottom is elevated by sediment dumping.
1) Yes, I have "is" and "k" loop
2) I mean the negative value next to (Isrc,Jsrc) and the 1325 value shows the sediment concentration as kg/m3 of Qbar (~5m3/s)
In fact, in this simulation I've tried to figure out how the sea bottom is elevated by sediment dumping.
jcwarner wrote:quick look:
1) do you have an "is" and "k" loop around:
DO ised=1,NST
Tsrc(is,k,ised+NAT)=1325.0_r8
END DO
2) what do you mean "there's always a minus sign.." do the values of 1325 show up ???
-j
Sorry for the bad explanation, What I' tried to say are:
2) 1325 value shows the sediment concentration as kg/m3 of Qbar (~5m3/s) at the point source.
3) if I put point source at (i=7, j=5) then i've received the horizontal distribution of sediment concentration as the below matrix:
i= .....4 5 6 7 8 9
..........................
j=3 ...0 0 0 0 0 0...
j=4 ...0 0 4 4 4 0...
j=5 ...0 0 4 5 4 0...
j=6 ...0 0 2-5 2 0...
j=7 ...0 0 1 1 1 0...
j=8 ...0 0 0 0 0 0...
j=9 ...0 0 0 0 0 0...
2) 1325 value shows the sediment concentration as kg/m3 of Qbar (~5m3/s) at the point source.
3) if I put point source at (i=7, j=5) then i've received the horizontal distribution of sediment concentration as the below matrix:
i= .....4 5 6 7 8 9
..........................
j=3 ...0 0 0 0 0 0...
j=4 ...0 0 4 4 4 0...
j=5 ...0 0 4 5 4 0...
j=6 ...0 0 2-5 2 0...
j=7 ...0 0 1 1 1 0...
j=8 ...0 0 0 0 0 0...
j=9 ...0 0 0 0 0 0...
Oops. Okay, I missed that setting of TS_MPDATA -- I guess the "find" on my browser doesn't work on these discussion pages.
Are you specifying a point source in a cell surrounded by ocean? I don't think it's designed to work that way -- the flux needs to come in through a wall between land and sea, doesn't it?
Are you specifying a point source in a cell surrounded by ocean? I don't think it's designed to work that way -- the flux needs to come in through a wall between land and sea, doesn't it?
Check advection scheme, disable sediment density
It looks like you have more than one TS advection scheme enabled...undefine all except for
Also, try it without sediment density effects turned on first...and do a sanity check to make sure your water + sediment density is not ridiculous...you might have to ramp it more gently over several time steps.
Also, try it without sediment density effects turned on first...and do a sanity check to make sure your water + sediment density is not ridiculous...you might have to ramp it more gently over several time steps.
Chris Sherwood, USGS
1 508 457 2269
1 508 457 2269
Daer all,
Before running wit SEDIMENT, I've deactivated SEDIMENT: ROMS worked fine!
It seemed to be fine also with T & S (at least, no ridiculous values).
You might notice that variable Dsrc, direction of point source discharge, was set to 1 in my case (which was not quite appropriate for sediment dumping).
Probably, the negative value appeared in the upstream of the point source (in the middle of the sea) probably because "It's not designed to work that way".
If so, T & S were also the case but they're not.
Before running wit SEDIMENT, I've deactivated SEDIMENT: ROMS worked fine!
It seemed to be fine also with T & S (at least, no ridiculous values).
You might notice that variable Dsrc, direction of point source discharge, was set to 1 in my case (which was not quite appropriate for sediment dumping).
Probably, the negative value appeared in the upstream of the point source (in the middle of the sea) probably because "It's not designed to work that way".
If so, T & S were also the case but they're not.
- jivica
- Posts: 172
- Joined: Mon May 05, 2003 2:41 pm
- Location: The University of Western Australia, Perth, Australia
- Contact:
Well, I had the same situation when I played with sand storms applying sediment flux at the surface in the middle of the basin .... Point is that I (and think you) want to have VERTICAL flux downward like rainfall and not horizontal like is implemented in the ROMS code... If using horizontal flux then with continuity you have to take something from the surrounding cells which is giving you negative values... If you put land as your ship position which is releasing sediment then things should be oky..
Just a thought..
MP_DATA is only for temp and salinity??? or it is as well for sediment
Nice thing would be to have VERTICAL FLUX as boundary condition for sediment to play with sand storms, or waste water disposal sediments at the bottom as well...
Ivica
Just a thought..
MP_DATA is only for temp and salinity??? or it is as well for sediment
Nice thing would be to have VERTICAL FLUX as boundary condition for sediment to play with sand storms, or waste water disposal sediments at the bottom as well...
Ivica
There is a *not*well*tested capability of:
#undef UV_PSOURCE
#define Q_PSOURCE
that allows a vertical flux tracer instead of a horizontal flux. One needs to provide the same information as for uv_psource, but for q_psource the flow is in the vertical direction. The i j indices would then be at rho points.
If #defined TS_MPDATA is activated, this is a 3D tracer advection (all tracers, including sediment). Right now we do not allow different advection algorithms for different tracers.
#undef UV_PSOURCE
#define Q_PSOURCE
that allows a vertical flux tracer instead of a horizontal flux. One needs to provide the same information as for uv_psource, but for q_psource the flow is in the vertical direction. The i j indices would then be at rho points.
If #defined TS_MPDATA is activated, this is a 3D tracer advection (all tracers, including sediment). Right now we do not allow different advection algorithms for different tracers.
- jivica
- Posts: 172
- Joined: Mon May 05, 2003 2:41 pm
- Location: The University of Western Australia, Perth, Australia
- Contact:
It is exactly what I needed ...
John please if you can provide little bit of info about Q_PSOURCE option ....
Like what direction notation is used (1 -1 downward or upward), and if it is specified at the surface like sand storm (just for testing how it works) at some rho points,
than it actually acts like surface boundary condition,
should I change as well _SPFLUX because I mess with surface boundary conditions.....
Have you some hints about the problem?
Would you set source part like:
#undef UV_PSOURCE
#undef TS_PSOURCE
#define Q_PSOURCE
Thanks in advance,
Ivica
John please if you can provide little bit of info about Q_PSOURCE option ....
Like what direction notation is used (1 -1 downward or upward), and if it is specified at the surface like sand storm (just for testing how it works) at some rho points,
than it actually acts like surface boundary condition,
should I change as well _SPFLUX because I mess with surface boundary conditions.....
Have you some hints about the problem?
Would you set source part like:
#undef UV_PSOURCE
#undef TS_PSOURCE
#define Q_PSOURCE
Thanks in advance,
Ivica
The sed_morph option has been tested by several different modelers, including myself, on different applications. However, every one's application is different and there is no way to test all the possibilities for everything.
There are recent posts asking about BC's for salinity. These BCs have been well tested, yet the posts show instabilities. So different applications can create complications even for *well*tested* options. It all depends on how the user applies the options. A lot of it really depends on the grid.
As far as sed morph is concerned, there have been several years of testing with that option, yet i am sure that some applications can develop issues. One needs to realize the significance of the bathymentry and the grid during any simulation. As the bathymetry changes, the hydrodynamics can change significantly. So certainly instabilities can develop, especailly near corners where there are large changes in the bathy.
There are recent posts asking about BC's for salinity. These BCs have been well tested, yet the posts show instabilities. So different applications can create complications even for *well*tested* options. It all depends on how the user applies the options. A lot of it really depends on the grid.
As far as sed morph is concerned, there have been several years of testing with that option, yet i am sure that some applications can develop issues. One needs to realize the significance of the bathymentry and the grid during any simulation. As the bathymetry changes, the hydrodynamics can change significantly. So certainly instabilities can develop, especailly near corners where there are large changes in the bathy.
Q_PSOURCE
Gang:
We fixed a few small issues with Q_SPOURCE. I ran a simple test case and it seems to be doing the correct thing. So go ahead and give that option a try. Essentially, you provide all the same info for Q_PSOURCE as you do for UV_PSOURCE, the differences are that:
Q_SPURCE is at rho poiints and the flux is in the vertical direction (positive upwards)
whereas
UV_PSOURCE is at a u or v point and flux is in the horizontal direction.
-j
We fixed a few small issues with Q_SPOURCE. I ran a simple test case and it seems to be doing the correct thing. So go ahead and give that option a try. Essentially, you provide all the same info for Q_PSOURCE as you do for UV_PSOURCE, the differences are that:
Q_SPURCE is at rho poiints and the flux is in the vertical direction (positive upwards)
whereas
UV_PSOURCE is at a u or v point and flux is in the horizontal direction.
-j
- jivica
- Posts: 172
- Joined: Mon May 05, 2003 2:41 pm
- Location: The University of Western Australia, Perth, Australia
- Contact:
In which version is that? official roms with svn or SED_CODE?
and BTW what is policy of that now, is there merging of SED stuff done occasionally as before, and we should look for the last SEC CODE or is it done in no time & we can find it in the last official roms version?
Thanks for the info!
Ivica
and BTW what is policy of that now, is there merging of SED stuff done occasionally as before, and we should look for the last SEC CODE or is it done in no time & we can find it in the last official roms version?
Thanks for the info!
Ivica
Ivica,
Whenever you want to see what's changed recently with the ROMS code, go to:
https://www.myroms.org/projects/src/browser
then click on "Last Change" (in the upper right area of your window).
At this revision (Changeset 81) you can see that Ticket 59 was resolved, and see exactly what the code changes were.
What was Ticket 59, you ask?
To find out, you can go directly to a specific Ticket by forming a URL like this:
https://www.myroms.org/projects/src/ticket/59
-Rich
Whenever you want to see what's changed recently with the ROMS code, go to:
https://www.myroms.org/projects/src/browser
then click on "Last Change" (in the upper right area of your window).
At this revision (Changeset 81) you can see that Ticket 59 was resolved, and see exactly what the code changes were.
What was Ticket 59, you ask?
To find out, you can go directly to a specific Ticket by forming a URL like this:
https://www.myroms.org/projects/src/ticket/59
-Rich
- jivica
- Posts: 172
- Joined: Mon May 05, 2003 2:41 pm
- Location: The University of Western Australia, Perth, Australia
- Contact:
Thnks Rich,
I have found it and test it as well.
It is working the way I wanted this bug is fixed.
(we were talking about that at the GRC; in old way with Q_PSOURCE
I got negative sand_01 and/or mud_01 (it used UV_PSOURCE) and because I put it on the top of the column and in the middle of domain....
but now with fixed *vertical flux* and Q_PSOURCE it is working oky.
I was wondering about sediment branch of ROMS code, if you or any of sediment developers change something in the branch, is it part of official distribution that I get via svn immediately, or like in old days have to be merge at some later time?
Ivica
I have found it and test it as well.
It is working the way I wanted this bug is fixed.
(we were talking about that at the GRC; in old way with Q_PSOURCE
I got negative sand_01 and/or mud_01 (it used UV_PSOURCE) and because I put it on the top of the column and in the middle of domain....
but now with fixed *vertical flux* and Q_PSOURCE it is working oky.
I was wondering about sediment branch of ROMS code, if you or any of sediment developers change something in the branch, is it part of official distribution that I get via svn immediately, or like in old days have to be merge at some later time?
Ivica