Encyclopaedia Index

Link

LINK: The PHOENICS grid-restructuring feature

Contents

  1. Description
  2. Examples

    2.1An annotated Q1 file

  3. Further developments
  4. Sources of further information

Description

1.1 Purposes

(a) Fitting irregularly-shaped ducts

Fitting the structured grid of PHOENICS to practically-arising problems can be accomplished in a crude way by "blocking off", by way of zero porosity settings, spaces covered by the grid which are not in fact accessible to fluid or heat. This practice may be excessively wasteful of both storage and computer time.

Grid-restructuring (also called domain-decomposition) enables the the waste to be avoided by (in effect) removal of cells from regions where they are not needed to places where they are needed.

(b) Fine-grid embedding

During the removal process, the cells can be reduced in size sufficiently to be placed inside other cells. This enables patches to be covered with small cells, without the necessity (usually entailed by a fully structured grid) of extending the refinement into places where it is not needed.

2. Examples

2.1 An annotated Q1 file

The following working Q1 file illustrates the use of the link scheme for the simulation of a flow in a duct having a shape of the following type:

                           ------------------------
                           |
                           |                     ---->
        -------------------|


---> ----------------------- | | -------------------| ^ | y | x -------------->

The entries in the Q1 are in upper-case type. Explanatory comments are in lower case. The case is one which features in the "active-demo" set, under the heading "grid-restructuring".


XLINK.Q1 ..... DBS ...... 01.11.92
TALK=F;RUN( 1, 1);VDU=VGACURSR


GROUP 1. RUN TITLE AND OTHER PRELIMINARIES
TEXT(X-DIRECTION LINK IN XY PLANE
MESGM(X-DIRECTION LINK IN XY PLANE


REAL(XLENGTH,YLENGTH,ZLENGTH,FLORES,P1CO)
INTEGER(NXNOM,IYSHFT,ISHIFT,IYPLUS,IYBOT)
CHAR(ANS)
BOOLEAN(L2R)
L2R=F
FLORES=0.0
P1CO=2.0E10


XLENGTH=1.0;YLENGTH=1.0;ZLENGTH=1.0
NXNOM=10;NY=10;NZ=1


NPHI=20
NX=NXNOM+2


MESGA(THIS FILE, XLINKXY.Q1, TESTS THE "LINK" BUILT INTO PHOENICS
MESG(IT CONCERNS STEADY FLOW THROUGH A DUCT OF SHAPE FORMED BY THE
MESG(LATERAL DISPLACEMENT OF ONE HALF OF A RECTANGULAR DUCT RELATIVE
MESG(TO THE OTHER.
MESG(NXNOM=:NXNOM:; NY=:NY:; NZ=:NZ:
MESGB(XLENGTH=:XLENGTH:; YLENGTH=:YLENGTH:; ZLENGTH=:ZLENGTH:
DELAY(500)
IF(NY.GT.1) THEN
MESGM(WHAT Y-DIRECTION SHIFT WOULD YOU LIKE ? (FROM 1-NY TO NY-1 )
READVDU(IYSHFT,INT,0)
ENDIF
ISHIFT=2*NY-IYSHFT
MESGM(ISHIFT IS THE OFFSET BETWEEN LINKED POINTS, =2*NY - IYSHFT
ISHIFT


MESGM(FLOW-RESISTANCE FACTOR = :FLORES: IF NOT OK, INSERT YOUR VALUE
READVDU(FLORES,REAL,:FLORES:)
FLORES
MESGM(PRESSURE COEFFICIENT = :P1CO: IF NOT OK, INSERT YOUR VALUE
READVDU(P1CO,REAL,:P1CO:)
P1CO


MESGM(FLOW IS FROM LEFT TO RIGHT. OK? (Y/N)
L2R=T
READVDU(ANS,CHAR,Y)
IF(:ANS:.EQ.N) THEN
L2R=F
L2R
ENDIF


IYBOT=NY/2+1
MESGM(INFLOW IS FROM :IYBOT: TO NY. IF NOT OK, INSERT BOTTOM IY
READVDU(IYBOT,INT,IYBOT)
IYBOT


GROUP 3. X-DIRECTION GRID SPECIFICATION
**DOMAIN IS XLENGTH M LONG IN X-DIRECTION, WITH EQUAL INTERVALS
GRDPWR(X,NX,XLENGTH,1.0)
XULAST=XLENGTH
XFRAC(1)=-NXNOM/2
XFRAC(2)=1/NXNOM
XFRAC(3)=2
XFRAC(4)=0.01*XFRAC(2)
XFRAC(5)=-XFRAC(1)
XFRAC(6)=XFRAC(2)


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)


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)
STORE(IMB1,PCOR)


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.0E-3;RHO1=1.0;PRNDTL(TEMP)=1.0


GROUP 11. INITIALIZATION OF VARIABLE OR POROSITY FIELDS
INIADD=F
IF(L2R) THEN
FIINIT(U1)=0.5
ELSE
FIINIT(U1)=-0.5
ENDIF


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,NXNOM/2+2, 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,NXNOM/2+2, 1,-IYSHFT,1,NZ)
ENDIF


GROUP 13. BOUNDARY CONDITIONS AND SPECIAL SOURCES
** COLD BOUNDARY ON THE LEFT
IF(L2R) THEN
PATCH(COLD,WEST,1,1,IYBOT,NY,1,1,1,1)
COVAL(COLD,U1,ONLYMS,1.0)
ELSE
PATCH(COLD,WEST,NX,NX,IYBOT,NY,1,1,1,1)
COVAL(COLD,U1,ONLYMS,-1.0)
ENDIF
COVAL(COLD,TEMP,1.E5,-0.9)
COVAL(COLD,P1,FIXFLU,1.0)


** HOT BOUNDARY ON THE RIGHT
IF(L2R) THEN
PATCH(HOT,CELL,NX,NX,1,NY,NZ,NZ,1,1)
ELSE
PATCH(HOT,CELL,1,1,IYBOT,NY,1,1,1,1)
ENDIF
COVAL(HOT,TEMP,1.E5,0.9)
COVAL(HOT,P1,1.E-2,0.0)


IYPLUS IS INTRODUCED IN AN ATTEMPT TO COUNTERACT THE EFFECT OF
THERE BEING NO V CELLS AT THE SOUTH AND NORTH BOUNDARIES
IYPLUS=0
IF(IYSHFT.GT.0) THEN
IYPLUS=-1
ENDIF
IF(IYSHFT.LT.0) THEN
IYPLUS=1
ENDIF
IYPLUS=-IYPLUS
IYPLUS=0
MESGM(IYPLUS = :IYPLUS: CORRECT?
IF(IYSHFT.GE.0) THEN
PATCH(+1,WEST,NXNOM/2+1,NXNOM/2+1,1+IYSHFT,NY,1,1,1,1)
PATCH(+1U,WEST,NXNOM/2,NXNOM/2,1+IYSHFT,NY,1,1,1,1)
ELSE
PATCH(+1,WEST,NXNOM/2+1,NXNOM/2+1,1,NY+IYSHFT,1,1,1,1)
PATCH(+1U,WEST,NXNOM/2,NXNOM/2,1,NY+IYSHFT,1,1,1,1)
ENDIF
COVAL(+1,TEMP,1.E5,ISHIFT)
COVAL(+1,P1,P1CO,ISHIFT)
COVAL(+1,U1,FIXVAL,ISHIFT)
COVAL(+1,V1,FIXVAL,ISHIFT+IYPLUS)
COVAL(+1U,U1,FIXVAL,ISHIFT)


INTEGER(III)
III=NXNOM/2+2
IF(IYSHFT.GE.0) THEN
PATCH(+2, WEST,III, III, 1,NY-IYSHFT,1,1,1,1)
PATCH(+2U,WEST,III-1,III-1,1,NY-IYSHFT,1,1,1,1)
ELSE
PATCH(+2,WEST,III,III, 1-IYSHFT,NY,1,1,1,1)
PATCH(+2U,WEST,III-1,III-1,1-IYSHFT,NY,1,1,1,1)
ENDIF
COVAL(+2,TEMP,1.E5,-ISHIFT)
COVAL(+2,P1,P1CO,-ISHIFT)
COVAL(+2,U1,FIXVAL,-ISHIFT)
COVAL(+2U,U1,FIXVAL,-ISHIFT)
COVAL(+2,V1,FIXVAL,-ISHIFT-IYPLUS)


PATCH(FLOWRES,VOLUME,1,NX,1,NY,1,NZ,1,1)
COVAL(FLOWRES,U1,FLORES,0.0)
COVAL(FLOWRES,V1,FLORES,0.0)


PATCH(GP12DFE1,EAST,NXNOM/2,NXNOM/2,1,NY,1,1,1,1)
COVAL(GP12DFE1,TEMP,0.5,0.0)


PATCH(GP12DFE2,EAST,NXNOM/2+2,NXNOM/2+2,1,NY,1,1,1,1)
COVAL(GP12DFE2,TEMP,0.5,0.0)


GROUP 15. TERMINATION OF SWEEPS
LSWEEP=20;RESREF(P1)=1.E-10
RESREF(U1)=1.E-30;RESREF(V1)=1.E-30


GROUP 16. TERMINATION OF ITERATIONS


** SET THE FREQUENCIES OF APPLICATION OF THE ONE-DIMENSIONAL
CORRECTION FEATURES IN THE LINEAR-EQUATION SOLVER TO ONCE
PER ITERATION FOR EACH DIRECTION.
ISOLX=1;ISOLY=1;ISOLZ=1
LITER(TEMP)=10;LITER(P1)=20


GROUP 17. UNDER-RELAXATION DEVICES
RELAX(V1,FALSDT,0.05)
RELAX(U1,FALSDT,0.05)


GROUP 18. LIMITS ON VARIABLES OR INCREMENTS TO THEM
GROUP 19. DATA COMMUNICATED BY SATELLITE TO GROUND
GROUP 20. PRELIMINARY PRINT-OUT
ECHO=T


GROUP 21. PRINT-OUT OF VARIABLES
**PRINT FIELDS OF TEMPERATURE
OUTPUT(TEMP,Y,Y,Y,Y,Y,Y)


GROUP 22. SPOT-VALUE PRINT-OUT
IYMON=NY/2+1;IZMON=NZ/2+1;IXMON=NX-1;ITABL=1


GROUP 23. FIELD PRINT-OUT AND PLOT CONTROL
IXPRF=NXNOM/2-1;IXPRL=NXNOM/2+3
NXPRIN=1;NYPRIN=1
**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
UWATCH=T;NPLT=1;TSTSWP=-1
LSWEEP=200
SELREF=T
RESFAC=1.E-2
IXPRF=IXPRF+1;IXPRL=IXPRL+1


LSWEEP=5;NPRINT=1;TSTSWP=-1;IXPRF=1;IXPRL=NX
IF(NY.EQ.1) THEN
SOLUTN(V1,N,N,N,N,N,N);OUTPUT(V1,N,N,N,N,N,N)
ENDIF
SOLUTN(TEMP,N,N,N,N,N,N);OUTPUT(TEMP,N,N,N,N,N,N)
OUTPUT(VPOR,Y,Y,Y,Y,Y,Y)
NPRINT=10000;LSWEEP=200
STOP

3. Further developments

4. Sources of further information

  1. Examples of grid restructuring may be found in the "active-demo" set supplied with PHOENICS. It may be instructive to inspect the relevant Q1 files.
  2. For information on how the fine-grid embedding is achieved see the Fortran file GXRSTR in directory d_earth/d_grxfor

    See also the papaer by:..... in the 1992 PHOENICS User Conference.


wbs