** MBFGE Test: Mono_Propellant Rocket Combustion.
  **************************************************************
  DISPLAY
  ----------------------------------------------------------
  The main purpose of the case is to demonstrate various
  two-phase options available with CCM/MBFGE.
  ----------------------------------------------------------
  ENDDIS
  **************************************************************
INTEGER(IFIC);  CCM= T;  IFIC= 2
  **************************************************************
  PHOTON USE
   p ; ; ; ; ;
 
   msg Computational Domain:
   mgrid 1 k 1
   mgrid 2 k 1 col 4
   msg Press Any Key to Continue...
   pause
   cl
   set vec av off
   msg Gas Velocity Vectors:
   mvec 1 k 1 sh
   mvec 2 k 1 sh
   msg Press Any Key to Continue...
   pause
   cl
   msg Droplet Velocity Vectors:
   set vec ph 2
   mvec 1 k 1 sh
   mvec 2 k 1 sh
   msg Press Any Key to Continue...
   pause
   cl
   msg Contours of Pressure:
   mcon 1 p1 k 1 fi
   0.001
   mcon 2 p1 k 1 fi
   0.001
   pause
   cl
   msg Volume Fraction of Liquid
   mcon 1 liq k 1 sh
   int 50
   mcon 2 liq k 1 sh
   int 50
   msg Press Any Key to Continue...
   pause
  ENDUSE
  **************************************************************
    GROUP 1. Run title and other preliminaries
TEXT(MBFGE-2P: Mono-Propellant Combustion.
TITLE
    *** Locally-defined parameters:
      FLOW    mass flow rate at the inlet
      VELIN   inlet velocity
      LPIP    the length of the rocket motor
      CHATIM  relaxation factor
INTEGER(NX1,NY1,NZ1,NX2,NY2,NZ2)
REAL(FLOW,VELIN,LPIP,CHATIM,LBL1,DIAM)
FLOW= 1.E3; VELIN= 50.0;  LPIP= 1.0;  CHATIM= LPIP/VELIN
LBL1= 0.5*LPIP;           DIAM= 0.5*LPIP
NY1 = 8;   NY2  = IFIC*NY1
NX1 = 10;   NZ1  = 1;     NX2 = 10;    NZ2   = 1
    GROUP 6. Body-fitted coordinates or grid distortion
BFC = T
  ** Define grid points and lines for the first domain:
GSET(P,P1,0.0, 0.0, 0.0);  GSET(P,P2,LBL1,0.0, 0.0)
GSET(P,P3,LBL1,DIAM,0.0);  GSET(P,P4,0.0, DIAM,0.0)
GSET(L,L12,P1,P2,NX1,1.0); GSET(L,L23,P2,P3,NY1,1.0)
GSET(L,L34,P3,P4,NX1,1.0); GSET(L,L41,P4,P1,NY1,1.0)
  ** Define grid points and lines for the second domain:
GSET(P,P5,LBL1,0.0, 0.0);  GSET(P,P6,LPIP,0.0, 0.0)
GSET(P,P7,LPIP,DIAM,0.0);  GSET(P,P8,LBL1,DIAM,0.0)
GSET(L,L56,P5,P6,NX2,1.0); GSET(L,L67,P6,P7,NY2,1.0)
GSET(L,L78,P7,P8,NX2,1.0); GSET(L,L85,P8,P5,NY2,1.0)
  ** Create grid for the first domain.
GSET(D,NX1,NY1,NZ1,LBL1,DIAM,DIAM)
GSET(F,F1,P1,-,P2,-,P3,-,P4,-); GSET(M,F1,+I+J,1,1,1)
GSET(C,K:NZ1+1:,F,K1,1,NX1,1,NY1,+,0.0,0.0,DIAM,INC,1.0)
DUMPC(MBGR1)
  ** Create grid for the second domain.
GSET(D,NX2,NY2,NZ2,LPIP-LBL1,DIAM,DIAM)
GSET(F,F2,P5,-,P6,-,P7,-,P8,-); GSET(M,F2,+I+J,1,1,1)
GSET(C,K:NZ2+1:,F,K1,1,NX2,1,NY2,+,0.0,0.0,DIAM,INC,1.0)
DUMPC(MBGR2)
  ** Assemble blocks:
NUMBLK = 2
READCO(MBGR+L); GVIEW(Z); VIEW
    GROUP 7. Variables stored, solved & named
ONEPHS = F
NAME(C1)= UC1; NAME(C2)= UC2; NAME(C3)= VC1; NAME(C4)= VC2
SOLVE(P1,U1,U2,V1,V2,R2,RS,UC1,UC2,VC1,VC2)
STORE(R1,MDOT,CFIP)
NAME(R1)= GAS; NAME(R2)= LIQ; NAME(RS)= RSH
SOLUTN(LIQ,P,P,P,N,P,P); SOLUTN(RSH,P,P,P,N,P,P)
    GROUP 8. Terms (in differential equations) & devices
TERMS(GAS,Y,Y,N,Y,Y,Y); TERMS(LIQ,Y,Y,N,Y,N,Y)
TERMS(RSH,Y,Y,N,Y,N,Y)
TERMS(UC1,Y,Y,N,Y,Y,Y); TERMS(UC2,Y,Y,N,Y,N,Y)
TERMS(VC1,Y,Y,N,Y,Y,Y); TERMS(VC2,Y,Y,N,Y,N,Y)
    GROUP 9. Properties of the medium (or media)
RHO1= 1.E1;  RHO2= 1.E4;  PRESS0= 1.E7
    GROUP 10. Inter-phase-transfer processes and properties
CFIPS= GRND1;  CFIPC= 1.0E5;  CMDOT= 1.0;  RLOLIM= 1.E-9
MESG(Friction Coefficient = :CFIPC:
MESG(Enter a new value, or press 
READVDU(CFIPC,REAL,1.E5)
    GROUP 11. Initialization of variable or porosity fields
FIINIT(GAS) = 0.999;  FIINIT(LIQ)= 0.001;  FIINIT(RSH)= 0.001
FIINIT(MDOT)= 0.01*FLOW
FIINIT(UC1) = VELIN;  FIINIT(UC2)= VELIN
FIINIT(VC1) = 1.0;  FIINIT(VC2)= 1.0
    GROUP 13. Boundary conditions and special sources
    ** Inlet.
MPATCH(1,IN,WEST,1,1,1,NY1/2,1,1,1,LSTEP)
 COVAL(IN,P2,FIXFLU,2.0*FLOW)
MESG(Liquid-injection velocity = :VELIN:
MESG(Enter a new value, or press 
READVDU(VELIN,REAL,VELIN)
 COVAL(IN,UC2,ONLYMS,VELIN)
    ** Outlet.
MPATCH(2,OUT,EAST,NX2,NX2,1,NY2/2,1,NZ2,1,LSTEP)
 COVAL(OUT,P1,FIXP,0.0); COVAL(OUT,P2,FIXP*RHO2/RHO1,0.0)
 COVAL(OUT,UC1,ONLYMS,0.0); COVAL(OUT,UC2,ONLYMS,0.0)
    GROUP 15. Termination of sweeps
LSWEEP = 500; TSTSWP = -1
    GROUP 16. Termination of iterations
SELREF = T;   RESFAC = 1.E-3
    GROUP 17. Under-relaxation devices
RELAX(RSH,LINRLX,0.6);RELAX(LIQ,LINRLX,0.6)
RELAX(P1,LINRLX,0.5)
RELAX(UC1,FALSDT,    CHATIM); RELAX(UC2,FALSDT,    CHATIM)
RELAX(VC1,FALSDT,0.1*CHATIM); RELAX(VC2,FALSDT,0.1*CHATIM)
    GROUP 18. Limits on variables or increments to them
VARMIN(10)= 1.E-9; VARMIN(11)= 1.E-9
    GROUP 19. Data communicated by SATELLITE to GROUND
   ** PRTSIZ=T activates GXDROP
PRTSIZ= T
    GROUP 21. Print-out of variables
OUTPUT(GAS,N,N,N,N,N,N); OUTPUT(MDOT,Y,Y,Y,Y,Y,Y)
    GROUP 22. Spot-value print-out
IXMON = NX1/2+1