How to add SPONGE near the later boundary

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
feroda

How to add SPONGE near the later boundary

#1 Unread post by feroda »

Hi all,
Obviously, SPONGE is used to impose a sponge layer near the lateral boundary. The areas are characterized with enhanced viscosity/diffusion.

I have three questions on the application of SPONGE

1. what's the physics of adding sponge layers near the lateral boundary?
I know it may help to make the model more stable by transporting the energy input from the boundary
more fast to the interior domain. But, I am afraid whether it is something too artificial?

2. what is the relationship between VISC2 from ocean_*.in and visc2_r from ana_hmixcoef.h?
This question can be asked in another way: Is it true that the visc2_r is used in the sponge layers,
while visc2 is used in the other areas?

3. the most important and general one as the subject, how to do the SPONGE in a realistic
application?
I check the code in ROMS/Functionals/ana_hmixcoef.h, which says
!-----------------------------------------------------------------------
! Increase horizontal mixing in the sponge areas.
!-----------------------------------------------------------------------
!! User modifiable section.
# if defined ADRIA02
! Adriatic Sea southern sponge areas.
fac=4.0_r8
....
....

This application is only used for the standard test case adria02. Can it be changed to any other
cases by directly changing the number 6(which means 6 grids near the lateral boundary are treated as
the sponge layers) in line
DO j=JstrR,MIN(6,JendR) (from ana_hmixcoef.h)?


Any kind advice and direction are greatly appreciated!

jacopo
Posts: 81
Joined: Fri Nov 21, 2003 9:30 pm
Location: CNR-ISMAR

Re: How to add SPONGE near the later boundary

#2 Unread post by jacopo »

you may be interested to read the post

viewtopic.php?f=14&t=1191&p=4159&hilit=sponge#p4159
feroda wrote: 2. what is the relationship between VISC2 from ocean_*.in and visc2_r from ana_hmixcoef.h?
This question can be asked in another way: Is it true that the visc2_r is used in the sponge layers,
while visc2 is used in the other areas?
No, visc2_r is the value of viscosity used by the model (anywhere in the domain). VISC2 from ocean*.in is an input value that is transformed in visc2_r depending on your application. E.g., if you have defined VISC_GRID, the horizontal viscosity is set according to the grid size:

Code: Select all

cff=visc2(ng)/grdmax(ng)
DO j=JstrR,JendR
DO i=IstrR,IendR
visc2_r(i,j)=cff*grdscl(i,j)
END DO
END DO
here visc2(ng) is the value in the input file, while visc2_r is the eventual value used by the model.
feroda wrote: This application is only used for the standard test case adria02. Can it be changed to any other
cases by directly changing the number 6(which means 6 grids near the lateral boundary are treated as
the sponge layers) in line
DO j=JstrR,MIN(6,JendR) (from ana_hmixcoef.h)?


Any kind advice and direction are greatly appreciated!
yes, you can use whatever value you want instead of '6'. The larger the number of rows/columns, the thicker the sponge layer.

Then you have to change accordingly also

Code: Select all

DO j=MAX(JstrR,7),JendR 
i.e., the non sponge part of the domain, ranging from 7 to END in the adriatic case.

Jacopo

Post Reply