CCM Test: Swirling flow in a linear expanding pipe.
  DISPLAY
   ---------------------------------------------------------
   This case concerns axisymmetric incompressible laminar flow
   in a linear expanding pipe. The task is to demonstrate
   the use of the self-adjustment iteration procedure.
   LSG11=T activates automatic calculation of the false time step.
   ---------------------------------------------------------
  ENDDIS
BOOLEAN(LUNIF,LNORT); LUNIF = F
  **************************************************************
    GROUP 1. Run title and other preliminaries
TEXT( PHOENICS: Swirling flow.
 
INTEGER(NZ1,NZ2,NZ3)
REAL(REYNO,UIN,WIN,HCH1,LST1,LST2,HCH2,LCHAN,UCR,WCR,DTHYD)
  ** Problem definition:
REYNO= 200.0;  UIN  = 1.5; WIN = 1.0
HCH2 = 2.0;    LCHAN= 12.0
HCH1 = 1.0;    LST1 = 0.4;  LST2= 1.0
NZ1  = 4;      NZ2  = 4;    NZ3 = 12;    NZ   = NZ1+NZ2+NZ3
NY   = 16
 
    GROUP 3. X-direction grid specification
    GROUP 4. Y-direction grid specification
    GROUP 5. Z-direction grid specification
    GROUP 6. Body-fitted coordinates or grid distortion
 
BFC = T; GSET(D,1,NY,NZ,LCHAN,HCH2,HCH2/NY)
GSET(P,P1,0.0, 0.0, 0.0      );  GSET(P,P2,0.0,0.0, LST1     )
GSET(P,P3,0.0, 0.0, LST1+LST2);  GSET(P,P4,0.0,0.0, LCHAN    )
GSET(P,P5,0.0, HCH2,LCHAN    );  GSET(P,P6,0.0,HCH2,LST1+LST2)
GSET(P,P7,0.0, HCH1,LST1     );  GSET(P,P8,0.0,HCH1,0.0      )
GSET(L,L12,P1,P2,NZ1, 1.0);  GSET(L,L23,P2,P3,NZ2, 1.4)
GSET(L,L34,P3,P4,NZ3, 1.2);  GSET(L,L45,P4,P5,NY,  1.0)
GSET(L,L56,P5,P6,NZ3,-1.2);  GSET(L,L67,P6,P7,NZ2,-1.4)
GSET(L,L78,P7,P8,NZ1, 1.0);  GSET(L,L81,P8,P1,NY,  1.0)
 
GSET(F,F1,P1,P2.P3,P4,-,P5,P6.P7,P8,-);
GSET(M,F1,+K+J,1,1,1)
GSET(C,I:NX+1:,F,I1,RZ,-0.01,0.0,0.0)
 
    GROUP 7. Variables stored, solved & named
SOLVE(V1,W1,UC1,VC1,WC1)
SOLUTN(P1,Y,Y,Y,N,N,N);   SOLUTN(UC1,Y,Y,Y,N,N,Y)
SOLUTN(VC1,Y,Y,Y,N,N,Y);  SOLUTN(WC1,Y,Y,Y,N,N,Y)
    GROUP 8. Terms (in differential equations) & devices
TERMS(VC1,N,Y,Y,P,P,P);  TERMS(V1,N,N,N,N,N,N)
TERMS(WC1,N,Y,Y,P,P,P);  TERMS(W1,N,N,N,N,N,N)
    GROUP 9. Properties of the medium (or media)
ENUL=UIN*HCH1/REYNO; RHO1=1.0
    GROUP 10. Inter-phase-transfer processes and properties
    GROUP 11. Initialization of variable or porosity fields
INIADD=F
FIINIT(UC1)=1.E-5; FIINIT(VC1)=1.E-5; FIINIT(VC1)=1.E-5
 
    GROUP 12. Unused
    GROUP 13. Boundary conditions and special sources
    ** Inlet.
DO II = 1,NY
+ IF(LUNIF) THEN
+  UCR = UIN
+  WCR = WIN
+ ELSE
+  UCR = UIN*(2*II-1)/NY/2
+  WCR = WIN*(1.0-((2*II-1)/NY/2)**2)
+ ENDIF
+ INLET(INL:II:,LOW,1,NX,II,II,1,1,1,1)
+ VALUE(INL:II:,P1,WCR*RHO1)
+ VALUE(INL:II:,UC1,UCR);  VALUE(INL:II:,VC1,0.0)
+ VALUE(INL:II:,WC1,WCR)
ENDDO
    ** Walls.
PATCH(WN,NWALL,1,NX,NY,NY,1,NZ,1,1)
COVAL(WN,UC1,1.0,0.0); COVAL(WN,WC1,1.0,0.0); COVAL(WN,VC1,1.0,0.0)
    ** Outlet.
PATCH(OUT1,HIGH,1,NX,1,NY,NZ,NZ,1,1); COVAL(OUT1,P1,1.E3,0.0)
    GROUP 14. Downstream pressure for PARAB=.TRUE.
    GROUP 15. Termination of sweeps
LSWEEP = 200; TSTSWP = -1
    GROUP 16. Termination of iterations
SELREF = T;   RESFAC = 1.E-3
    GROUP 17. Under-relaxation devices
CCM= T; LSG3 = T; LSG4 = T
    ** Switch on axisymmetrical treatment.
LSG6 = T
    ** Switch on the automatic calculation of the
       false time step.
LSG11 = T
    GROUP 18. Limits on variables or increments to them
    GROUP 19. Data communicated by satellite to GROUND
    GROUP 20. Preliminary print-out
    GROUP 21. Print-out of variables
OUTPUT(P1,Y,N,N,Y,Y,Y)
    GROUP 22. Spot-value print-out
IXMON = NX/2+1; IYMON = NY/2+1; IZMON=1
    GROUP 23. Field print-out and plot control
    GROUP 24. Dumps for restarts
DEBUG=F