Lateral Circulation in Estuarine channel driven by Background Diffusion

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
Jianxing
Posts: 12
Joined: Fri May 24, 2024 7:40 pm
Location: Institude of Marine Science at UNC

Lateral Circulation in Estuarine channel driven by Background Diffusion

#1 Unread post by Jianxing »

Hello everyone,

Thanks for reading this post.

I'm doing my research on circulation and stratification in microtidal estuaries. I use an idealized straight-channel estuary grid (show below) and I want to check the numerical circulation isn't significant in my grid situation.

here is my model domain, the land depth is set to 0.5m to distinguish from water. The grid resolution is 50m*50m in the channel and decreases gradually in the sound area to save computational cost. There are 30 vertical layers.

Code: Select all

 
 Lm == 1100            ! Number of I-direction INTERIOR RHO-points
 Mm == 102           ! Number of J-direction INTERIOR RHO-points
 N == 30         ! Number of vertical levels
 THETA_S == 0.0d0                      ! surface stretching parameter
 THETA_B == 0.0d0                      ! bottom  stretching parameter
 TCLINE == 1.0d+16                     ! critical depth (m)
 
Image

So I closed all the four side boundary conditions to make sure there is no force. And I create a linear increase of salinity vertically from 0 PSU to 16 PSU (show below).

Here is the initial salinity profile and code from the ana_initial file
Image


The background mixing coefficient for salt is 5*10-6 and for momentum is 5*10-5.

Code: Select all

! Vertical mixing coefficients for tracers in nonlinear model and
! basic state scale factor in adjoint-based algorithms: [1:NAT+NPT,Ngrids]

AKT_BAK == 5.0d-6  5.0d-6 5.0d-6  5.0d-6   ! m2/s

ad_AKT_fac == 1.0d0  1.0d0                    ! nondimensional

! Vertical mixing coefficient for momentum for nonlinear model and
! basic state scale factor in adjoint-based algorithms: [Ngrids].

AKV_BAK == 5.0d-5  5.0d-5                  ! m2/s

ad_AKV_fac == 1.0d0                           ! nondimensional

I run the model and I'm expecting that the water should stay still or some very small circulation due to pressure gradient error (the numerical circulation). But it looks like there is a strong lateral circulation happening cross channel which confuses me (show below)

Here is the lateral circulation
Image

And also the there is vertical diffusion of salt due to background value:

Here is the salinity profile at the end of model running time, the stratification is decreasing
Image


So this circulation starts from bottom and then propagates. The salt diffusion starts from surface and bottom. The salt flux is set to zero at surface and bottom. After some thinking and trying I realized that this circulation is not due to pressure gradient error. To confirm that, I modified the bathy from 1-6m (from shore to middle water) to 3-6m which decreases the slope but the circulation doesn't decrease. Also I use a higher resolution grid (20m*20m) and the circulation remains the same. These two evidence shows that this circulation is driven by something else.

I then found out that this circulation might be created by the vertical diffusion of salt at bottom due to the background mixing coefficient of salt. The salt diffusion at the sloped bottom due to background value of mixing coefficient creates horizontal gradient of salinity closed to bottom area and then drives bottom upwelling. To further confirm I also try to use rectangle shape channel which the depth is uniform everywhere (no slope). There is still vertical diffusion of salt which decreases the stratification but there is no flow at all. Also I try to decrease the background mixing coefficient of salt from 5*10-6 to 5*10-7 and the circulation decreases a lot (show below):

Image

So in general my concern is: I now check that the numerical circulation (pressure gradient error) is not important in my grid and I don't need to worry about it. But I'm not sure whether I need to worry about this circulation driven by the background diffusion of salt. Or this circulation simply just represents the lateral circulation due to bottom boundary mixing like Chen and Sanford's paper showed? I attach the paper to this post as well.

Thanks again for reading my post!!
Attachments
Chen and Sanford, 2008.pdf
(2.44 MiB) Downloaded 254 times

User avatar
wilkin
Posts: 922
Joined: Mon Apr 28, 2003 5:44 pm
Location: Rutgers University
Contact:

Re: Lateral Circulation in Estuarine channel driven by Background Diffusion

#2 Unread post by wilkin »

If you have a linear salt profile then you should have constant d(rho)/dz and then the vertical diffusion term (d/dz*AKT*constant) would be identically zero. So, I doubt that explicit vertical diffusion is the the issue. Besides, AKT_BAK is just a background minimum to the chosen vertical turbulence closure scheme (e.g. GLS_MIXING). (You don't say what scheme you are using). AKT_BAK is not an analytical constant vertical diffusivity unless you modified Functionals/ana_vmix.h to use it.

I think it is more likely that you have explicit horizontal diffusion along s-surfaces and that this introduces spurious diapycnal mixing. Do you have #define TS_DIF2 and #define MIX_S_TS with a sizable TNU2 in roms.in? Deactivate that mixing and see if things improve. Generally, we recommend #define MIX_GEO_TS instead of s-mixing.

You could also see exactly what is driving this circulation by activating #define DIAGNOSTICS_TS and inspecting each contribution in the term balance.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

Jianxing
Posts: 12
Joined: Fri May 24, 2024 7:40 pm
Location: Institude of Marine Science at UNC

Re: Lateral Circulation in Estuarine channel driven by Background Diffusion

#3 Unread post by Jianxing »

wilkin wrote: Sat May 25, 2024 7:23 pm If you have a linear salt profile then you should have constant d(rho)/dz and then the vertical diffusion term (d/dz*AKT*constant) would be identically zero. So, I doubt that explicit vertical diffusion is the the issue. Besides, AKT_BAK is just a background minimum to the chosen vertical turbulence closure scheme (e.g. GLS_MIXING). (You don't say what scheme you are using). AKT_BAK is not an analytical constant vertical diffusivity unless you modified Functionals/ana_vmix.h to use it.

I think it is more likely that you have explicit horizontal diffusion along s-surfaces and that this introduces spurious diapycnal mixing. Do you have #define TS_DIF2 and #define MIX_S_TS with a sizable TNU2 in roms.in? Deactivate that mixing and see if things improve. Generally, we recommend #define MIX_GEO_TS instead of s-mixing.

You could also see exactly what is driving this circulation by activating #define DIAGNOSTICS_TS and inspecting each contribution in the term balance.
Hi John, Thanks for your reply!!

Yes I set a linear salt profile, I show the ana_initial file code below, 6 m is the maximum water depth

Code: Select all

# if defined ESTUARY_TEST2
      DO k=1,N(ng)
        DO i=IstrR,IendR
          DO j=JstrR,JendR
             
                t(i,j,k,1,isalt)=-z_r(i,j,k)/6.0_r8*16.0_r8
             
            
          END DO
        END DO
      END DO
      DO k=1,N(ng)
        DO i=IstrR,IendR
          DO j=JstrR,JendR
            t(i,j,k,1,itemp)=25.0_r8
          END DO
        END DO
      END DO
#endif
      RETURN
      END SUBROUTINE ana_NLMinitial_tile
I also show my cpp_option below:

Code: Select all

#define ROMS_MODEL

#define UV_LOGDRAG
#define SALINITY
#define SOLVE3D
#define SPLINES_VVISC
#define SPLINES_VDIFF
#define DJ_GRADPS
#define CURVGRID
#define UV_ADV
#undef  UV_COR
#define UV_VIS2
#define MIX_S_UV

#define GLS_MIXING
#if defined GLS_MIXING
# define KANTHA_CLAYSON
# define N2S2_HORAVG
#define RI_SPLINES
#endif

#define MASKING
#define ANA_INITIAL
#define ANA_SMFLUX
#define ANA_STFLUX
#define ANA_BTFLUX
#define ANA_SSFLUX
#define ANA_BSFLUX
#define ANA_SPFLUX
#define ANA_BPFLUX
#define AVERAGES
#define PERFECT_RESTART
#define DIAGNOSTICS_UV
#define DIAGNOSTICS_TS
I don't have the #define TS_DIF2 and #define MIX_S_TS in my list.

And yes I'm using GLS_MIXING and I understand that AKT_BAK is the background minimum value, not the analytical constant. I'm expecting that the vertical diffusion should be zero because the d(rho)/dz is a constant too. I do activate DIAGNOSTICS_TS to check every term. I try to use a rectangle-shaped channel to simplify the situation and I found out that the vertical mixing term (salt_vdiff from the output) starts from the bottom and surface and propagates to the middle. The advection is all much smaller compared to the vertical diffusion term. I show the figures below:

Here is the profiles of salt_rate, salt_vdiff and salt_yadv at the first time step to show the vertical diffusion starts from bottom and surface boundaries. I didn't define MIX_S_TS so there is no horizontal salt diffusion.
Image
Image
Image

Below is my thinking of the vertical diffusion at the boundary and I might be wrong:

Take the bottom as an example, for the bottom grid cell, there is salt flux from this grid cell to the upper cell due to AKT*d(salinity)/dz, but there is no flux from below to this cell because I set the bottom salt flux to zero. So in general this grid cell diffuses salt to the upper cell and the salinity decreases. So does the surface boundary.

If this is the reason for the vertical diffusion of salt, it looks more like the model issue and can't be avoid?

Thanks again for your reply!

Post Reply