CCM Test: Salinity propagation in Oresund Channel.
**************************************************************
DISPLAY
----------------------------------------------------------
This case concerns simulation of a stratified flow through
Oresund Channel. Originally, problem had been set by Urban
Svensson (CFE). The library case is its simplified version.
The main objective of this case is to demonstrate new
features of CCM specially developed for simulation of so
called shallow water flows, i.e flows with character size
in one direction much less than these in two others.
'Shallow' direction is Z axis. (See MBFGE entry in PHENC).
There are two options:
LSG10 when TRUE activates simulation of shallow flows by
truncated 3D Navier-Stokes equations;
LSG8 when TRUE activates same as LSG10 treatment; plus
pressure-correction equation is solved 2D, with WC1
defined by integration of continuity equation.
----------------------------------------------------------
ENDDIS
l(pause
**************************************************************
BOOLEAN(LTURB,LSHWT,SHWT3Z)
CCM= T; LTURB= T; SHWT3Z= T; LSHWT= F
**************************************************************
IGRID : 1 => 7x13xNZ grid
2 => 14x27xNZ grid
3 => 29x55xNZ grid
**************************************************************
INTEGER(NTIM,IGRID); IGRID= 2
REAL(REFDEN,ALFA,SALT0,SALTIN,PRSALT,DTS)
REFDEN= 1000.; ALFA= 8.E-4; SALT0= 10.; SALTIN= 30.; PRSALT= 2.
NTIM = 10; DTS = 600.
**************************************************************
PHOTON USE
p ; ; ; ; ;
set vec av off
msg Velocity Vectors:
vi z
vec k 1 sh
pause
cl
vec k m sh
ENDUSE
**************************************************************
GROUP 1. Run title and other preliminaries
IF(CCM) THEN
+IF(LSHWT) THEN
+ IF(LTURB) THEN
+ TEXT( CCM: Bay flow (2D,K-E)
+ ELSE
+ TEXT( CCM: Bay flow (2D,Lam)
+ ENDIF
+ELSE
+ IF(LTURB) THEN
+ TEXT( CCM: Bay flow (3D,K-E)
+ ELSE
+ TEXT( CCM: Bay flow (3D,Lam)
+ ENDIF
+ENDIF
ELSE
+IF(LTURB) THEN
+ TEXT(PHOE: Bay flow (3D,K-E)
+ELSE
+ TEXT(PHOE: Bay flow (3D,Lam)
+ENDIF
ENDIF
TITLE
GROUP 6. Transience; time-step specification
STEADY= F; GRDPWR(T,NTIM,NTIM*DTS,1.0)
SPEDAT(SET,GXMONI,TRANSIENT,L,F)
GROUP 6. Body-fitted coordinates or grid distortion
BFC= T; NONORT= .NOT.CCM; READCO(GRID5)
GROUP 7. Variables stored, solved & named
NAME(H1)= SALT; SOLVE(P1,V1,U1,W1,SALT);
STORE(VPOR,DUDX,DUDY,DUDZ,DVDX,DVDY,DVDZ,DWDX,DWDY,DWDZ)
SOLUTN(P1,Y,Y,Y,N,N,N)
IF(CCM) THEN
+ NAME(C1)= UC1; NAME(C2)= VC1; NAME(C3)= WC1
+ SOLVE(UC1,VC1,WC1); SOLUTN(UC1,Y,Y,Y,P,P,P)
+ SOLUTN( VC1,Y,Y,Y,P,P,P); SOLUTN(WC1,Y,Y,Y,P,P,P)
+ SOLUTN(SALT,Y,Y,Y,P,P,P)
+ TERMS(U1,N,N,N,N,N,N); TERMS(UC1,N,Y,Y,P,P,P)
+ TERMS(V1,N,N,N,N,N,N); TERMS(VC1,N,Y,Y,P,P,P)
+ TERMS(W1,N,N,N,N,N,N); TERMS(WC1,N,Y,Y,P,P,P)
+ FIINIT(UC1)= 1.E-6; FIINIT(VC1)= 1.E-6; FIINIT(WC1)= 0.0
ENDIF
IF(LTURB) THEN
+ TURMOD(KEMODL); STORE(ENUT,GEN1,RHO1,LEN1)
+ SOLUTN(KE,Y,Y,Y,P,P,P); SOLUTN(EP,Y,Y,Y,P,P,P)
+ FIINIT(KE)= 1.E-4; FIINIT(EP)= 1.E-6
+ ENUL= 1.E-6; FIINIT(ENUT)= 1.E-3
ELSE
+ ENUL= 1.E-6
ENDIF
GROUP 8. Terms (in differential equations) & devices
TERMS(SALT,N,Y,Y,P,P,P)
GROUP 9. Properties of the medium (or media)
RHO1= LINSCAL; RHO1A= REFDEN; RHO1B= ALFA*REFDEN
PRNDTL(SALT)= 1000.; PRT(SALT)= PRSALT
GROUP 11. Initialization of variable or porosity fields
INIADD= F; FIINIT(SALT)= SALT0
*** Model VPOR setting for 7x13xNZ grid:
IF(IGRID.EQ.1) THEN
***** Saltholm:
+ CONPOR(0.0,CELL,4,4, 5, 7,1,NZ)
***** Helsingor:
+ CONPOR(0.0,CELL,1,2,13,13,1,NZ)
+ CONPOR(0.0,CELL,1,1,12,12,1,NZ)
ENDIF
*** Model VPOR setting for 14x27xNZ grid:
IF(IGRID.EQ.2) THEN
***** Saltholm:
+ CONPOR(0.0,CELL,7,7,10,14,1,NZ)
***** Helsingor:
+ CONPOR(0.0,CELL,1,4,26,27,1,NZ)
+ CONPOR(0.0,CELL,1,3,25,25,1,NZ)
+ CONPOR(0.0,CELL,1,2,24,24,1,NZ)
+ CONPOR(0.0,CELL,1,1,23,23,1,NZ)
***** Hven:
+ CONPOR(0.0,CELL,8,8,21,21,1,NZ)
ENDIF
*** VPOR setting for main grid 29x55x16:
IF(IGRID.EQ.3) THEN
***** Falsterbo:
+ CONPOR(0.0,CELL,25,29,5,5,1,NZ)
+ CONPOR(0.0,CELL,25,25,6,6,1,NZ)
***** Klagshamn:
+ CONPOR(0.0,CELL,29,29,9,9,1,NZ)
***** Saltholm:
+ CONPOR(0.0,CELL,13,13,19,28,1,NZ)
+ CONPOR(0.0,CELL,14,14,19,20,1,NZ)
***** Hven:
+ CONPOR(0.0,CELL,16,17,42,42,1,NZ)
***** Helsingborg:
+ CONPOR(0.0,CELL,28,29,47,47,1,NZ)
+ CONPOR(0.0,CELL,29,29,48,48,1,NZ)
***** Helsingor:
+ CONPOR(0.0,CELL,1, 1,47,47,1,NZ)
+ CONPOR(0.0,CELL,1, 3,48,48,1,NZ)
+ CONPOR(0.0,CELL,1, 7,49,49,1,NZ)
+ CONPOR(0.0,CELL,1,10,50,51,1,NZ)
+ CONPOR(0.0,CELL,1, 9,52,55,1,NZ)
ENDIF
GROUP 13. Boundary conditions and special sources
***** INLET of salted water is defined from 1 to NZ/2
IF(IGRID.EQ.1) THEN
** North Boundary:
+PATCH( NORR,NORTH,3,NX,NY,NY,NZ/2+1, NZ,1,LSTEP)
+PATCH(NORRL,NORTH,3,NX,NY,NY, 1,NZ/2,1,LSTEP)
** South Boundary:
+PATCH( SYD,SOUTH,3,NX, 1, 1,1,NZ,1,LSTEP)
ENDIF
IF(IGRID.EQ.2) THEN
** North Boundary:
+PATCH( NORR,NORTH,5,NX,NY,NY,NZ/2+1, NZ,1,LSTEP)
+PATCH(NORRL,NORTH,5,NX,NY,NY, 1,NZ/2,1,LSTEP)
** South Boundary:
+PATCH( SYD,SOUTH,5,NX, 1, 1,1,NZ,1,LSTEP)
ENDIF
IF(IGRID.EQ.3) THEN
** North Boundary:
+PATCH( NORR,NORTH,10,NX,NY,NY,NZ/2+1, NZ,1,LSTEP)
+PATCH(NORRL,NORTH,15,24,NY,NY, 1,NZ/2,1,LSTEP)
** South Boundary:
+PATCH( SYD,SOUTH, 9,NX, 1, 1,1,NZ,1,LSTEP)
ENDIF
COVAL(NORR, P1,10.*FIXP,0.); COVAL(NORR,SALT,ONLYMS,SAME)
COVAL(NORRL,P1,1.E-20,1.E20*REFDEN*0.3)
COVAL(NORRL,SALT,ONLYMS,SALTIN)
COVAL(SYD,P1,1000.,1000.); COVAL(SYD,SALT,ONLYMS,SALT0)
** Bottom Friction:
PATCH(BOTFRI,LWALL,1,NX,1,NY,1,1,1,LSTEP)
IF(LTURB) THEN
+ COVAL( SYD,KE,ONLYMS,1.E-4); COVAL( SYD,EP,ONLYMS,1.E-6)
+ COVAL( NORRL,KE,ONLYMS,1.E-4); COVAL( NORRL,EP,ONLYMS,1.E-6)
+ COVAL( NORR,KE,ONLYMS,1.E-4); COVAL( NORR,EP,ONLYMS,1.E-6)
+ COVAL(BOTFRI,KE, LOGLAW,LOGLAW); COVAL(BOTFRI,EP, LOGLAW,LOGLAW)
+IF(CCM) THEN
+ COVAL(BOTFRI,UC1,LOGLAW,0.0); COVAL(BOTFRI,VC1,LOGLAW,0.0)
+ COVAL(BOTFRI,WC1,LOGLAW,0.0)
+ELSE
+ COVAL(BOTFRI,U1,LOGLAW,0.0); COVAL(BOTFRI,V1,LOGLAW,0.0)
+ COVAL(BOTFRI,W1,LOGLAW,0.0)
+ENDIF
** Turbulence/Buoyancy interaction:
+ PATCH(KEBUOY,PHASEM,1,NX,1,NY,1,NZ,1,LSTEP)
+ COVAL(KEBUOY,KE,GRND4,GRND4); COVAL(KEBUOY,EP,GRND4,GRND4)
ELSE
+IF(CCM) THEN
+ COVAL(BOTFRI,UC1,1.0,0.0); COVAL(BOTFRI,VC1,1.0,0.0)
+ COVAL(BOTFRI,WC1,1.0,0.0)
+ELSE
+ COVAL(BOTFRI,U1,1.0,0.0); COVAL(BOTFRI,V1,1.0,0.0)
+ENDIF
ENDIF
** Buoyancy forces:
BUOYC= -9.81
IF(CCM) THEN
+ BUOYE= REFDEN*(1.+ALFA*SALT0)
ELSE
+ PATCH(BUOY,PHASEM,1,NX,1,NY,1,NZ,1,LSTEP)
+ BUOYD= REFDEN*(1.+ALFA*SALT0); COVAL(BUOY,W1,FIXFLU,DENSDIFF)
+ COVAL(BUOY,U1,FIXFLU,DENSDIFF);COVAL(BUOY,V1,FIXFLU,DENSDIFF)
ENDIF
** Coriolis forces:
CORIOL= 1.E-4
GROUP 15. Termination of sweeps
LSWEEP= 50; TSTSWP= -1
GROUP 16. Termination of iterations
SELREF= T; RESFAC= 1.E-6
GROUP 17. Under-relaxation devices
RELAX(P1,LINRLX,0.5); RELAX(SALT,FALSDT,1000.)
IF(LTURB) THEN
+ KELIN= 3; RELAX(KE,LINRLX,0.25); RELAX(EP,LINRLX,0.25)
+ LITER(KE)= 10; LITER(EP)= 10; OUTPUT(ENUT,Y,N,N,Y,Y,Y)
ENDIF
GROUP 18. Limits on variables or increments to them
VARMIN(SALT)= SALT0; VARMAX(SALT)= SALTIN
VARMAX(ENUT)= 1.0
GROUP 19. Data communicated by satellite to GROUND
IF(CCM) THEN
+ LSG4= T; LSG8= LSHWT; LSG10= SHWT3Z
+ RELAX(UC1,FALSDT,1000.); RELAX(VC1,FALSDT,1000.)
+ RELAX(WC1,FALSDT, 1.)
+ LITER(P1)= 20; LITER(UC1)= 5; LITER(VC1)= 5; LITER(WC1)= 5
ELSE
+ RELAX(U1,FALSDT,1000.); RELAX(V1,FALSDT,1000.)
+ RELAX(W1,FALSDT, 1.)
ENDIF
GROUP 22. Spot-value print-out
IXMON= 7; IYMON= 5; IZMON= NZ/2+1
GROUP 23. Field print-out and plot control
IDISPA= 10; CSG1=URB