PHOTON USE
p;;;;;;;;
msg There is no need to press RETURN
upause 3
msg The grid outline.
gr ou z 1 co 8
upause 3
msg The complete grid
gr z 1 co 10
upause 3
gr off
red
msg The left-hand part of the active grid
gr co 8
z 1
1 5 1 10
upause 3
msg The right-hand part of the active grid
gr co 4
z 1
9 13 1 10
upause 3
red
msg Velocity vectors on the left
vec z 1 x 1 5 y 1 10 sh
upause 3
msg Velocity vectors on the right
vec z 1 x 8 13 y 1 10 sh
upause 3
red
msg The pressure field
con p1 fi
z 1
1 5 1 10
0.01
con p1 fi
z 1
8 13 1 10
0.01
upause 3
con off
red
msg The temperature field
con temp fi
z 1
1 5 1 10
0.01
con temp fi
z 1
8 13 1 10
0.01
vec z 1 x 1 5 y 1 10
vec z 1 x 8 13 y 1 10
msg Press e to END
enduse
GROUP 1. Run title and other preliminaries
TEXT(Multi-Blocking By Shear, XY Plane
TITLE
mesg(PC486/50 time last reported as appx. 45.sec
DISPLAY
Grid-restructuring (also called domain-decomposition or multi-
blocking) allows parts of grids to be moved from their usual
positions and linked with unusual neighbours. The advantage is
that irregular shapes can then be fitted without significant
waste of computer storage or execution time.
The method is here illustrated for a simple rectangular shape
which has one part shifted relative to the other, as indicated.
+-------+
| | ^ shift right-hand
| | | of the grid up
+-------+ | +-------+-------+
| | | | |
| | | | |
| +-------+ | | | grid
| | desired | | | used
| | shape | | |
+-------+ +-------+-------+
LSG58=T, so as to ensure that BFC=T for display purposes only,
ie in SATELLITE and PHOTON, but BFC=F in the EARTH run, because
the grid is cartesian. This saves much storage.
press return to continue.
ENDDIS
READVDU(ANS,CHAR,N)
REAL(XLENGTH,YLENGTH,ZLENGTH)
INTEGER(NXNOM,IYSHFT,ISHIFT,IEXTRA)
XLENGTH=1.0;YLENGTH=1.0;ZLENGTH=1.0
NXNOM=10;NPHI=20;NX=NXNOM+2;NY=10;NZ=1
XLENGTH=XLENGTH*NX/NXNOM
MESG(NXNOM=:NXNOM:; NY=:NY:; NZ=1
MESG(What y-direction shift would you like ? (from 1-ny to ny-1 )
READVDU(IYSHFT,INT,0)
ISHIFT=2*NY-IYSHFT
mesg(the offset between linked points is 2*ny - iyshft ie :ishift:
GROUP 3. X-direction grid specification
**Domain is XLENGTH m long in x-direction, with equal intervals
GRDPWR(X,NX,XLENGTH,1.0)
GROUP 4. Y-direction grid specification
**Domain is YLENGTH m long in y-direction, with equal intervals
GRDPWR(Y,NY,YLENGTH,1.0)
GROUP 5. Z-direction grid specification
**Domain is ZLENGTH m long in z-direction, with equal intervals
GRDPWR(Z,NZ,ZLENGTH,1.0)
IEXTRA=0;BFC=T;IEXTRA=1;NX=NX+1;XULAST=1.3
mesg(Create an initial grid. Press return
READVDU(ANS,CHAR,N)
GSET(D,NX,NY,NZ,XULAST,YVLAST,ZWLAST)
ISHIFT=ISHIFT+NY
VIEW(K,1)
mesg(Shift one part relative to the other. Press return
READVDU(ANS,CHAR,N)
GSET(C,K1,F,K1,NXNOM/2+3,NX,1,NY,+,-3.0/13.0*XLENGTH, YVLAST*IYSHF$
T/NY,0.0)
VIEW(K,1)
GSET(C,K2,F,K1,1,NX,1,NY,+,0.0,0.0,ZLENGTH)
GROUP 7. Variables stored, solved & named
**Choose first-phase enthalpy (H1) as dependent variable
and activate the whole-field elliptic solver
SOLUTN(H1,Y,Y,Y,N,N,N);NAME(H1)=TEMP
STORE(VPOR);SOLVE(P1,U1,V1);SOLUTN(P1,Y,Y,Y,N,N,N)
GROUP 8. Terms (in differential equations) & devices
**For pure conduction, cut out built-in source and convection
terms
TERMS(TEMP,N,N,Y,N,Y,Y)
GROUP 9. Properties of the medium (or media)
**Thermal conductivity will be ENUL*RHO1/PRNDTL(TEMP), so :
ENUL=1.0;RHO1=1.0;PRNDTL(TEMP)=1.0
GROUP 11. Initialization of variable or porosity fields
INIADD=F
FIINIT(VPOR)=1.0
IF(IYSHFT.GT.0) THEN
CONPOR(BAR1,0.0,CELL,NXNOM/2+1,NXNOM/2+1,1,IYSHFT,1,NZ)
CONPOR(BAR2,0.0,CELL,NXNOM/2+2+IEXTRA,NXNOM/2+2+IEXTRA, NY-IYSHFT+$
1,NY,1,NZ)
ENDIF
IF(IYSHFT.LT.0) THEN
CONPOR(BAR1,0.0,CELL,NXNOM/2+1,NXNOM/2+1,NY+1+IYSHFT,NY,1,NZ)
CONPOR(BAR2,0.0,CELL,NXNOM/2+2+IEXTRA,NXNOM/2+3+IEXTRA, 1,-IYSHFT,$
1,NZ)
ENDIF
IF(BFC) THEN
CONPOR(EXTRACEL,0.0,CELL,NXNOM/2+2,NXNOM/2+2,1,NY,1,NZ)
ENDIF
FIINIT(P1)=0.45
PATCH(BLOK2,INIVAL,NX/2+1,NX,1,NY,1,NZ,1,LSTEP)
INIT(BLOK2,P1,0.0,-0.45)
GROUP 13. Boundary conditions and special sources
**Cold
PATCH(COLD,CELL,1,1,1,NY,1,1,1,1)
COVAL(COLD,TEMP,1.E5,-0.9)
COVAL(COLD,P1,FIXVAL,0.9)
PATCH(HOT,CELL,NX,NX,1,NY,NZ,NZ,1,1)
COVAL(HOT,TEMP,1.E5,0.9)
COVAL(HOT,P1,FIXVAL,-0.9)
link feature: for patch names beginning with +. This feature
makes val = phi(i + nint(vphie i + ishift
IF(IYSHFT.GE.0) THEN
PATCH(+1,CELL,NXNOM/2+1,NXNOM/2+1,1+IYSHFT,NY,1,1,1,1)
ELSE
PATCH(+1,CELL,NXNOM/2+1,NXNOM/2+1,1,NY+IYSHFT,1,1,1,1)
ENDIF
COVAL(+1,TEMP,FIXVAL,ISHIFT)
COVAL(+1,P1,FIXVAL,ISHIFT)
COVAL(+1,U1,FIXVAL,ISHIFT)
COVAL(+1,V1,FIXVAL,ISHIFT)
IF(IYSHFT.GE.0) THEN
PATCH(+2,CELL,NXNOM/2+2+IEXTRA,NXNOM/2+2+IEXTRA, 1,NY-IYSHFT,1,1,1$
,1)
ELSE
PATCH(+2,CELL,NXNOM/2+2+IEXTRA,NXNOM/2+2+IEXTRA, 1-IYSHFT,NY,1,1,1$
,1)
ENDIF
COVAL(+2,TEMP,FIXVAL,-ISHIFT)
COVAL(+2,P1,FIXVAL,-ISHIFT)
COVAL(+2,U1,FIXVAL,-ISHIFT)
COVAL(+2,V1,FIXVAL,-ISHIFT)
GROUP 15. Termination of sweeps
LSWEEP=20;SELREF=T;RESFAC=1.E-2
GROUP 16. Termination of iterations
LITER(TEMP)=-10;LITER(P1)=-1
GROUP 17. Under-relaxation devices
RELAX(U1,FALSDT,0.1);RELAX(V1,FALSDT,0.1)
GROUP 21. Print-out of variables
**Print fields of temperature
OUTPUT(TEMP,Y,Y,Y,Y,Y,Y)
GROUP 22. Spot-value print-out
IXMON=NX/2+1;IYMON=NY/2+1;IZMON=NZ/2+1
GROUP 23. Field print-out and plot control
NXPRIN=NX/5;NYPRIN=NY/5;NZPRIN=NZ/5
**Plot a profile along the line Iy=ny/2
PATCH(YLINE,PROFIL,1,NX,NY/2,NY/2,1,1,1,1)
PLOT(YLINE,TEMP,0.0,0.0);PLOT(YLINE,P1,0.0,0.0)
PLOT(YLINE,U1,0.0,0.0)
** Plot contour diagrams for the plane
PATCH(FIRST,CONTUR,1,NXNOM/2,1,NY,1,NZ,1,1)
PLOT(FIRST,TEMP,0.0,20.0);PLOT(FIRST,P1,0.0,20.0)
PATCH(SECOND,CONTUR,NXNOM/2+3,NX,1,NY,1,NZ,1,1)
PLOT(SECOND,TEMP,0.0,20.0);PLOT(SECOND,P1,0.0,20.0)
GROUP 24. Dumps for restarts
NXPRIN=1;NYPRIN=1
IXMON=NXNOM/2;RESREF(TEMP)=1.E-10;TSTSWP=12345
IXPRF=NXNOM/2-1;IXPRL=NXNOM/2+1+IEXTRA
Q1QUIT=T
TSTSWP=-1
** set LSG58=t in order to switch off bfc treatment in earth
until dumping to phi, and also rename u1 and v1 in order that
PHOTON can plot vectors
LSG58=T
NAME(U1)=UCRT;NAME(V1)=VCRT