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!
How to add SPONGE near the later boundary
Re: How to add SPONGE near the later boundary
you may be interested to read the post
viewtopic.php?f=14&t=1191&p=4159&hilit=sponge#p4159
here visc2(ng) is the value in the input file, while visc2_r is the eventual value used by the model.
Then you have to change accordingly also
i.e., the non sponge part of the domain, ranging from 7 to END in the adriatic case.
Jacopo
viewtopic.php?f=14&t=1191&p=4159&hilit=sponge#p4159
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: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?
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
yes, you can use whatever value you want instead of '6'. The larger the number of rows/columns, the thicker the sponge layer.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!
Then you have to change accordingly also
Code: Select all
DO j=MAX(JstrR,7),JendR
Jacopo