TALK=T;RUN( 1, 1) ** LOAD(x584) from the x Input Library DISPLAY This case shows the sliding mesh and unstructured mesh capabilities of GCV. The geometry is shown crudely below. In reality, the edges of all the blocks are formed from arcs. -------------------------------- › \ › › \ Block 3 › › ----------------------› › › ›\ › › › › \ Block 2 › › › › -------------› › › › › › X Block› › › › › › X 1 › › › › › › XXXXXXX › › › › › › X › › › › › › X › › › › › -------------› › › › › › › › ›---------------------- › › › › › --------------------------------- Block 1 has a cartesian topology, and contains two blockages forming a cross. Blocks 2 and 3 have polar topologies. The links between blocks 1 and 2 are 'unnatural'. Blocks 1 and 2 rotate relative to block 3 with a rotational speed of 10 radians/s. ENDDIS VRV USE * Start of frame PROBE 2.000000E+00 1.000000E+01 1.000000E+00 SLICE Z SLICE SAVE PROBE 7.300000E+01 2.600000E+01 1.000000E+00 SLICE Z SLICE SAVE PROBE 7.700000E+01 3.700000E+01 1.000000E+00 SLICE Z VIEW 0.000000E+00 0.000000E+00 1.000000E+00 UP 0.000000E+00 1.000000E+00 0.000000E+00 VIEW SIZE 1.633682E+01 VIEW DEPTH 3.000000E+00;VIEW TILT 0.8 OBJECT HIDE TYPE CELLTYPE OBJECT HIDE TYPE BFC_DOMAIN VARIABLE Velocity; VARIABLE RANGE 0 19 VECTOR ON VECTOR REFERENCE 9.000000E+00 VECTOR COLOUR MULTI CONTOUR ON MSG Press OK to animate PAUSE ANIMATE ENDUSE integer(nn1, nn2, nn3) real(rots,steps, velin) nn1 - number of cells on each side of central block nn2 - number of radial cells in outer blocks nn3 - number of cells in depth direction - must be ODD rots - number of rotations to calculate angvel - angular velocity in radians/s velin - Wind speed in m/s (0.0 for still air) nn1=21; nn2=5; nn3=1 rots=.1 angvel=10 velin=10 Group 1. Run Title TEXT(Sliding grid test case ************************************************************ Group 2. Transience STEADY = f ### EARTH calculates time step to ensure blocks step by one cell each time step steps=rots*4*nn1 grdpwr(t,steps,1,1) ************************************************************ Groups 3, 4, 5 Grid Information ************************************************************ Group 6. Body-Fitted coordinates BFC=T * Set points XPO=-2.5 ;YPO= 2.5 ;ZPO=-1.0;GSET(P,P21 ) XPO= 2.5 ;YPO= 2.5 ;ZPO=-1.0;GSET(P,P22 ) XPO= 2.5 ;YPO=-2.5 ;ZPO=-1.0;GSET(P,P23 ) XPO=-2.5 ;YPO=-2.5 ;ZPO=-1.0;GSET(P,P24 ) XPO= 0.0 ;YPO= 3.5356;ZPO=-1.0;GSET(P,P25 ) XPO= 3.5356;YPO= 0.0 ;ZPO=-1.0;GSET(P,P26 ) XPO= 0.0 ;YPO=-3.5356;ZPO=-1.0;GSET(P,P27 ) XPO=-3.5356;YPO= 0.0 ;ZPO=-1.0;GSET(P,P28 ) XPO=-6.0 ;YPO= 6.0 ;ZPO=-1.0;GSET(P,P31 ) XPO= 6.0 ;YPO= 6.0 ;ZPO=-1.0;GSET(P,P32 ) XPO= 6.0 ;YPO=-6.0 ;ZPO=-1.0;GSET(P,P33 ) XPO=-6.0 ;YPO=-6.0 ;ZPO=-1.0;GSET(P,P34 ) XPO=-6.0 ;YPO= 6.0 ;ZPO=-1.0;GSET(P,P35 ) XPO=-8.5 ;YPO= 8.5 ;ZPO=-1.0;GSET(P,P41 ) XPO= 8.5 ;YPO= 8.5 ;ZPO=-1.0;GSET(P,P42 ) XPO= 8.5 ;YPO=-8.5 ;ZPO=-1.0;GSET(P,P43 ) XPO=-8.5 ;YPO=-8.5 ;ZPO=-1.0;GSET(P,P44 ) XPO=-8.5 ;YPO= 8.5 ;ZPO=-1.0;GSET(P,P45 ) * Set lines/arcs GSET(L,L31,P21,P22,nn1,1.0,ARC,P25) GSET(L,L32,P22,P23,nn1,1.0,ARC,P26) GSET(L,L33,P23,P24,nn1,1.0,ARC,P27) GSET(L,L34,P24,P21,nn1,1.0,ARC,P28) GSET(L,L41,P21,P31,nn2,1.0) GSET(L,L42,P31,P33,2*nn1,1.0,ARC,P32) GSET(L,L43,P33,P35,2*nn1,1.0,ARC,P34) GSET(L,L44,P35,P21,nn2,1.0) GSET(L,L51,P31,P41,nn2,1.0) GSET(L,L52,P41,P43,2*nn1,1.0,ARC,P42) GSET(L,L53,P43,P45,2*nn1,1.0,ARC,P44) GSET(L,L54,P45,P35,nn2,1.0) * Set frames for inner block 1 gset(d,nn1+2,nn1+2,nn3) GSET(F,F1,P24,-,P23,-,P22,-,P21,-) * Match a grid mesh GSET(M,F1,+I+J,2,2,1,LAP3) * Copy/Transfer/Block grid planes GSET(C,K:nz+1:,F,K1,1,nx,1,ny,+,0,0,2,INC,1) GSET(C,I1,F,I2,1,ny,1,nz,+,0,0,0,INC,1) GSET(C,I:nx+1:,F,I:nx:,1,ny,1,nz,+,0,0,0,INC,1) GSET(C,J1,F,J2,1,nx,1,nz,+,0,0,0,INC,1) GSET(C,J:ny+1:,F,J:ny:,1,nx,1,nz,+,0,0,0,INC,1) dumpc(mbgr1) GSET(D,4*nn1+2,nn2+2,nn3) * Set frames for middle block 2 GSET(F,F41,P21,P22.P23.P24,P21,-,P35,P33,P31,-) * Match a grid mesh GSET(M,F41,+I+J,2,2,1,TRANS) * Copy/Transfer/Block grid planes GSET(C,K:nz+1:,F,K1,1,NX,1,NY,+,0,0,2,INC,1) GSET(C,I1,F,I2,1,NY,1,NZ,+,0,0,0,INC,1) GSET(C,I:nx+1:,F,I:nx:,1,NY,1,NZ,+,0,0,0,INC,1) GSET(C,J1,F,J2,1,NX,1,NZ,+,0,0,0,INC,1) GSET(C,J:ny+1:,F,J:ny:,1,NX,1,NZ,+,0,0,0,INC,1) view ********** DUMPC(MBGR2) GSET(D,4*nn1+2,nn2+1,nn3) * Set frames for outer block 3 GSET(F,F51,P31,P33,P35,-,P45,P43,P41,-) * Match a grid mesh GSET(M,F51,+I+J,2,2,1,TRANS) * Copy/Transfer/Block grid planes GSET(C,K:nz+1:,F,K1,1,NX,1,NY,+,0,0,2,INC,1) GSET(C,I1,F,I2,1,NY,1,NZ,+,0,0,0,INC,1) GSET(C,I:nx+1:,F,I:nx:,1,NY,1,NZ,+,0,0,0,INC,1) GSET(C,J1,F,J2,1,NX,1,NZ,+,0,0,0,INC,1) GSET(C,J:ny+1:,F,J:ny:,1,NX,1,NZ,+,0,0,0,INC,1) view ********** DUMPC(MBGR3) #### assemble blocks NUMBLK=3 READCO(MBGR+Y) solve(p1,u1,v1) turmod(kemodl) store(enut,el1); kelin=3 if(nn3.gt.1) then solve(w1) endif setprps(1,0) store(prps) gcv=t 2 - 3 N/S, natural Sliding link mpatch(2,mbl2.3,north,2,nx-1,ny-1,ny-1,1,nz,1,lstep) mpatch(3,mbl3.2,south,2,nx-1, 2, 2,1,nz,1,lstep) ### name of patch linking sliding block to stationary block spedat(set,gcvsld,mbl2.3,l,t) 1 - 2 N/S, natural mpatch(1,mbl1.2,north,2, nx-1,ny-1,ny-1,1,nz,1,lstep) mpatch(2,mbl2.1,south,2,nn1+1, 2, 2,1,nz,1,lstep) 1 - 2 E/S, unnatural mpatch(1,mbl1-2, east, nx-1, nx-1,2,ny-1,1,nz,1,lstep) mpatch(2,mbl2-1,south,nn1+2,2*nn1+1,2, 2,1,nz,1,lstep) spedat(set,gcv,mbl2-1,c,esl) 1 - 2 S/S, unnatural mpatch(1,mbl1+2,south, 2, nx-1,2,2,1,nz,1,lstep) mpatch(2,mbl2+1,south,2*nn1+2,3*nn1+1,2,2,1,nz,1,lstep) spedat(set,gcv,mbl2+1,c,nel) 1 - 2 W/S, unnatural mpatch(1,mbl1#2, west, 2, 2,2,ny-1,1,nz,1,lstep) mpatch(2,mbl2#1,south,3*nn1+2,nx-1,2, 2,1,nz,1,lstep) spedat(set,gcv,mbl2#1,c,wnl) 2 - 2 W/E, natural mpatch(2,mbl2.2,west, 2, 2,2,ny-1,1,nz,1,lstep) mpatch(2,mbl2-2,east,nx-1,nx-1,2,ny-1,1,nz,1,lstep) 3 - 3 W/E, natural mpatch(3,mbl3.3,west, 2, 2,2,ny,1,nz,1,lstep) mpatch(3,mbl3-3,east,nx-1,nx-1,2,ny,1,nz,1,lstep) ### MBS patch for each rotating block mpatch(1,mbs1,cell,1,nx,1,ny,1,nz,1,lstep) mpatch(2,mbs2,cell,1,nx,1,ny,1,nz,1,lstep) ### rotation speed rsg2=angvel ### blockages in form of cross mpatch(1,blok1,inival,nx/2+1-3,nx/2+1+3,ny/2+1,ny/2+1, NN3/2+1,NN3$ /2+1,1,LSTEP) coval(blok1,prps,0,198) mpatch(1,blok2,inival,nx/2+1,nx/2+1,ny/2+1-3,ny/2+1+3, NN3/2+1,NN3$ /2+1,1,LSTEP) coval(blok2,prps,0,198) iniadd=f if(velin.eq.0) then ### fixed pressure on outer edge of block 3 mpatch(3,out,north,2,nx-1,ny,ny,1,nz,1,lstep) coval(out,p1,1e3,0) else real(kein,epin) kein=(0.02*velin)**2 epin=0.09*kein**2/(200*enul) fiinit(ke)=kein; fiinit(ep)=epin; fiinit(v1)=-velin mpatch(3,bfcin1,north,2,3*(nx-2)/8+1,ny,ny,1,nz,1,lstep) coval(bfcin1,p1,fixflu,grnd1) coval(bfcin1,u1,onlyms,grnd1) coval(bfcin1,v1,onlyms,grnd1) coval(bfcin1,ke,onlyms,kein) coval(bfcin1,ep,onlyms,epin) coval(bfcin1,vcrt,onlyms,-velin) mpatch(3,bfcin2,north,7*(nx-2)/8+1, nx-1,ny,ny,1,nz,1,lstep) coval(bfcin2,p1,fixflu,grnd1) coval(bfcin2,u1,onlyms,grnd1) coval(bfcin2,v1,onlyms,grnd1) coval(bfcin2,ke,onlyms,kein) coval(bfcin2,ep,onlyms,epin) coval(bfcin2,vcrt,onlyms,-velin) bfca=1 mpatch(3,out,north,3*(nx-2)/8+2,7*(nx-2)/8,ny,ny,1,nz,1,lstep) coval(out,p1,1e3,0) endif lsweep=15 tstswp=-1 ixmon=5; iymon=3 lsg9=t relax(u1,falsdt,10) relax(v1,falsdt,10) ### dump PHI and grid files every step. Grid files will contain rotated geometry. idispa=1 csg1=a; csg2=b distil=t store(uc1,vc1,prps) EX(P1 )= 7.046E+00 ; EX(U1 )= 2.094E+00 ; EX(V1 )= 2.297E+00 EX(KE )= 1.853E-02 ; EX(EP )= 2.472E-02 ; EX(PRPS)= 3.880E-01 EX(EPKE)= 4.454E-01 ; EX(VC1 )= 3.360E+00 ; EX(UC1 )= 3.077E-01 EX(EL1 )= 1.156E-02 ; EX(ENUT)= 1.362E-03 ; EX(WCRT)= 3.880E-11 EX(VCRT)= 3.360E+00 ; EX(UCRT)= 3.077E-01 LIBREF = 584 stop