```
TALK=T;RUN(1,1)
DISPLAY

This case exemplifies the setting of sources in In-Form objects.

It concerns the temperature of water flowing within a
cylindrical vessel which contains a spiral heating element.

The spiral is an In-Form object formed by use of the SPHERE
function with the cartesian x, y and coordinates of the sphere
centre varying with the angular coordinate xg of the
cylindrical-polar co-ordinate system (CARTES=F), as follows

(INFOB at PATCH1 is SPHERE(1+.5*sin(xg),1+.5*cos(xg),1+.5*xg,  .2\$
)+SPHERE(1+.5*sin(xg),1+.5*cos(xg),4.14+.5*xg,.2) with INFOB_1)

Two SPHERE functions are used because two turns of the spiral are
required.

The following formula sets a heat source:
char(heatfl)
heatfl=2000.
(SOURCE of TEM1 at PATCH1 is :heatfl: with INFOB_1)

The flow resistance exerted by the spiral is represented by a mom\$
entum
source as follows:

char(uresis,vresis,wresis)
uresis=-1000.*VABS*VOL*U1
vresis=-1000.*VABS*VOL*V1
wresis=-1000.*VABS*VOL*W1
(SOURCE of U1 at PATCH1 is :uresis: with LINE!INFOB_1)
(SOURCE of V1 at PATCH1 is :vresis: with LINE!INFOB_1)
(SOURCE of W1 at PATCH1 is :wresis: with LINE!INFOB_1)

The following formulae defines MARK variable.
MARK is used by PHOTON for marks of borders of a spiral.

(INITIAL of MARK at PATCH1 is 1. with INFOB_1)

In addition this example illustrates how RESIDUALS and CORRECTIONS
can be stored with In-Form using.

First declare 3D storage of TRES and TCOR variables in which
residuals and corrections values will be saved.

STORE(TRES,TCOR)

Then store residuals of temperature in TRES by the statement:

(STORED of TRES is RESI(TEM1))

Then store temperature corrections in TCOR by the statement:

(STORED of TCOR is CORR(TEM1))

The Q1 contains PHOTON USE commands
ENDDIS
infrbegin
debug f
formula t
stored t
infrend
PHOTON USE
p

up z
gr ou y m
ve x 1 sh
ve x 20 sh
surf mark x 0.99
surf mark z 0.99
msg Velocity vectors
msg Press  to continue
pause
ve cl
con p1 x 1 fil;.01
con p1 x 20 fil;.01
red
msg Pressure contours
msg Press  to continue
pause
con cl
con tem1 x 1 fil;.01
con tem1 x 20 fil;.01
red
msg Temperature contours
pause
con cl
con tres x 1 fil;.01
con tres x 20 fil;.01
red
msg Residuals of temperature contours
pause
con cl
con tcor x 1 fil;.01
con tcor x 20 fil;.01
red
msg Corrections of temperature contours
pause
con cl
do izz=1,40,8
con tem1 iz izz fi;0.001
enddo
ENDUSE
************************************************************
Group 1. Run Title and Number
************************************************************
************************************************************

TEXT(3D heating spiral: 768                  )

************************************************************
************************************************************

IRUNN = 1 ;LIBREF = 768
************************************************************
Group 2. Time dependence
************************************************************
Group 3. X-Direction Grid Spacing
CARTES = F
NX = 40
XULAST =6.28
XFRAC(1)=0.025 ;XFRAC(2)=0.05
XFRAC(3)=0.075 ;XFRAC(4)=0.1
XFRAC(5)=0.125 ;XFRAC(6)=0.15
XFRAC(7)=0.175 ;XFRAC(8)=0.2
XFRAC(9)=0.225 ;XFRAC(10)=0.25
XFRAC(11)=0.275 ;XFRAC(12)=0.3
XFRAC(13)=0.325 ;XFRAC(14)=0.35
XFRAC(15)=0.375 ;XFRAC(16)=0.4
XFRAC(17)=0.425 ;XFRAC(18)=0.45
XFRAC(19)=0.475 ;XFRAC(20)=0.5
XFRAC(21)=0.525 ;XFRAC(22)=0.55
XFRAC(23)=0.575 ;XFRAC(24)=0.6
XFRAC(25)=0.625 ;XFRAC(26)=0.65
XFRAC(27)=0.675 ;XFRAC(28)=0.7
XFRAC(29)=0.725 ;XFRAC(30)=0.75
XFRAC(31)=0.775 ;XFRAC(32)=0.8
XFRAC(33)=0.825 ;XFRAC(34)=0.85
XFRAC(35)=0.875 ;XFRAC(36)=0.9
XFRAC(37)=0.925 ;XFRAC(38)=0.95
XFRAC(39)=0.975 ;XFRAC(40)=1.
************************************************************
Group 4. Y-Direction Grid Spacing
NY = 40
YVLAST =1.
YFRAC(1)=0.025 ;YFRAC(2)=0.05
YFRAC(3)=0.075 ;YFRAC(4)=0.1
YFRAC(5)=0.125 ;YFRAC(6)=0.15
YFRAC(7)=0.175 ;YFRAC(8)=0.2
YFRAC(9)=0.225 ;YFRAC(10)=0.25
YFRAC(11)=0.275 ;YFRAC(12)=0.3
YFRAC(13)=0.325 ;YFRAC(14)=0.35
YFRAC(15)=0.375 ;YFRAC(16)=0.4
YFRAC(17)=0.425 ;YFRAC(18)=0.45
YFRAC(19)=0.475 ;YFRAC(20)=0.5
YFRAC(21)=0.525 ;YFRAC(22)=0.55
YFRAC(23)=0.575 ;YFRAC(24)=0.6
YFRAC(25)=0.625 ;YFRAC(26)=0.65
YFRAC(27)=0.675 ;YFRAC(28)=0.7
YFRAC(29)=0.725 ;YFRAC(30)=0.75
YFRAC(31)=0.775 ;YFRAC(32)=0.8
YFRAC(33)=0.825 ;YFRAC(34)=0.85
YFRAC(35)=0.875 ;YFRAC(36)=0.9
YFRAC(37)=0.925 ;YFRAC(38)=0.95
YFRAC(39)=0.975 ;YFRAC(40)=1.
************************************************************
Group 5. Z-Direction Grid Spacing
PARAB = F
NZ = 40
ZWLAST =8.
ZFRAC(1)=0.025 ;ZFRAC(2)=0.05
ZFRAC(3)=0.075 ;ZFRAC(4)=0.1
ZFRAC(5)=0.125 ;ZFRAC(6)=0.15
ZFRAC(7)=0.175 ;ZFRAC(8)=0.2
ZFRAC(9)=0.225 ;ZFRAC(10)=0.25
ZFRAC(11)=0.275 ;ZFRAC(12)=0.3
ZFRAC(13)=0.325 ;ZFRAC(14)=0.35
ZFRAC(15)=0.375 ;ZFRAC(16)=0.4
ZFRAC(17)=0.425 ;ZFRAC(18)=0.45
ZFRAC(19)=0.475 ;ZFRAC(20)=0.5
ZFRAC(21)=0.525 ;ZFRAC(22)=0.55
ZFRAC(23)=0.575 ;ZFRAC(24)=0.6
ZFRAC(25)=0.625 ;ZFRAC(26)=0.65
ZFRAC(27)=0.675 ;ZFRAC(28)=0.7
ZFRAC(29)=0.725 ;ZFRAC(30)=0.75
ZFRAC(31)=0.775 ;ZFRAC(32)=0.8
ZFRAC(33)=0.825 ;ZFRAC(34)=0.85
ZFRAC(35)=0.875 ;ZFRAC(36)=0.9
ZFRAC(37)=0.925 ;ZFRAC(38)=0.95
ZFRAC(39)=0.975 ;ZFRAC(40)=1.
************************************************************
Group 6. Body-Fitted Coordinates
************************************************************
Group 7. Variables: STOREd,SOLVEd,NAMEd
ONEPHS = T
NAME(1)=P1 ;NAME(3)=U1
NAME(5)=V1 ;NAME(7)=W1
NAME(146)=TCOR ;NAME(147)=TRES
NAME(148)=VABS ;NAME(149)=MARK
NAME(150)=TEM1
* Y in SOLUTN argument list denotes:
* 1-stored 2-solved 3-whole-field
* 4-point-by-point 5-explicit 6-harmonic averaging
SOLUTN(P1,Y,Y,Y,N,N,Y)
SOLUTN(U1,Y,Y,N,N,N,Y)
SOLUTN(V1,Y,Y,N,N,N,Y)
SOLUTN(W1,Y,Y,N,N,N,Y)
SOLUTN(TCOR,Y,N,N,N,N,Y)
SOLUTN(TRES,Y,N,N,N,N,Y)
SOLUTN(VABS,Y,N,N,N,N,Y)
SOLUTN(MARK,Y,N,N,N,N,Y)
SOLUTN(TEM1,Y,Y,Y,N,N,Y)
************************************************************
Group 8. Terms & Devices
* Y in TERMS argument list denotes:
* 1-built-in source 2-convection 3-diffusion 4-transient
* 5-first phase variable 6-interphase transport
TERMS(P1,Y,Y,Y,N,Y,Y)
TERMS(U1,Y,Y,Y,Y,Y,Y)
TERMS(V1,Y,Y,Y,Y,Y,Y)
TERMS(W1,Y,Y,Y,Y,Y,Y)
TERMS(TEM1,N,Y,Y,Y,Y,Y)
DIFCUT =0.5 ;ZDIFAC =1.
GALA = F ;ADDDIF = F
ISOLX = -1 ;ISOLY = -1 ;ISOLZ = -1
************************************************************
Group 9. Properties used if PRPS is not
stored, and where PRPS = -1.0 if it is!
RHO1 =998.22998 ;TMP1 =0.
EL1 =0.
TSURR =0. ;TEMP0 =273.
PRESS0 =1.0E+05
DVO1DT =1.18E-04 ;DRH1DP =0.
EMISS =0. ;SCATT =0.
ENUL =1.006E-06 ;ENUT =0.
PRNDTL(U1)=1. ;PRNDTL(V1)=1.
PRNDTL(W1)=1. ;PRNDTL(TEM1)=-0.597
PRT(U1)=1. ;PRT(V1)=1.
PRT(W1)=1. ;PRT(TEM1)=1.
CP1 =4181.799805 ;CP2 =1.
************************************************************
Group 10.Inter-Phase Transfer Processes
************************************************************
Group 11.Initial field variables (PHIs)
FIINIT(P1)=1.0E-10 ;FIINIT(U1)=1.0E-10
FIINIT(V1)=1.0E-10 ;FIINIT(W1)=1.0E-10
FIINIT(TCOR)=1.0E-10 ;FIINIT(TRES)=1.0E-10
FIINIT(VABS)=1.0E-10 ;FIINIT(MARK)=0.
FIINIT(TEM1)=0.
No PATCHes yet used for this Group
FSWEEP = 1
NAMFI =CHAM
************************************************************
Group 12. Patchwise adjustment of terms
Patches for this group are printed with those
for Group 13.
Their names begin either with GP12 or &
************************************************************
Group 13. Boundary & Special Sources

PATCH(PATCH1 ,CELL , 1, 40, 1, 40, 1, 40, 1, 1)
COVAL(PATCH1 ,U1 ,In-Form:source - see Grp 19)
COVAL(PATCH1 ,V1 ,In-Form:source - see Grp 19)
COVAL(PATCH1 ,W1 ,In-Form:source - see Grp 19)
COVAL(PATCH1 ,TEM1,In-Form:source - see Grp 19)

PATCH(INLET ,LOW , 1, 40, 1, 40, 1, 1, 1, 1)
COVAL(INLET ,P1 , FIXFLU ,9.9823 )
COVAL(INLET ,U1 ,0. ,0. )
COVAL(INLET ,V1 ,0. ,0. )
COVAL(INLET ,W1 ,0. ,1.0E-02 )
COVAL(INLET ,TEM1,0. ,0. )

PATCH(OUTLET ,HIGH , 1, 40, 1, 40, 40, 40, 1, 1)
COVAL(OUTLET ,P1 ,1000. ,0. )
COVAL(OUTLET ,TEM1,0. , SAME )

PATCH(WALLN ,NWALL , 1, 40, 40, 40, 1, 40, 1, 1)
COVAL(WALLN ,U1 ,1. ,0. )
COVAL(WALLN ,W1 ,1. ,0. )
XCYCLE = F
EGWF = T
WALLCO = GRND2
************************************************************
Group 14. Downstream Pressure For PARAB
************************************************************
Group 15. Terminate Sweeps
LSWEEP = 100 ;ISWC1 = 1
LITHYD = 1 ;LITFLX = 1 ;LITC = 1 ;ITHC1 = 1
SELREF = T
RESFAC =1.0E-04
************************************************************
Group 16. Terminate Iterations
LITER(P1)=20 ;LITER(U1)=10
LITER(V1)=10 ;LITER(W1)=10
LITER(TEM1)=20
ENDIT(P1)=1.0E-03 ;ENDIT(U1)=1.0E-03
ENDIT(V1)=1.0E-03 ;ENDIT(W1)=1.0E-03
ENDIT(TEM1)=1.0E-03
************************************************************
Group 17. Relaxation
RELAX(P1,LINRLX,1.)
RELAX(U1,FALSDT,1.)
RELAX(V1,FALSDT,1.)
RELAX(W1,FALSDT,1.)
RELAX(TCOR,LINRLX,1.)
RELAX(TRES,LINRLX,1.)
RELAX(VABS,LINRLX,1.)
RELAX(MARK,LINRLX,1.)
RELAX(TEM1,FALSDT,1.0E+09)
OVRRLX =0.
EXPERT = F ;NNORSL = F
************************************************************
Group 18. Limits
VARMAX(P1)=1.0E+10 ;VARMIN(P1)=-1.0E+10
VARMAX(U1)=1.0E+06 ;VARMIN(U1)=-1.0E+06
VARMAX(V1)=1.0E+06 ;VARMIN(V1)=-1.0E+06
VARMAX(W1)=1.0E+06 ;VARMIN(W1)=-1.0E+06
VARMAX(TCOR)=1.0E+10 ;VARMIN(TCOR)=-1.0E+10
VARMAX(TRES)=1.0E+10 ;VARMIN(TRES)=-1.0E+10
VARMAX(VABS)=1.0E+10 ;VARMIN(VABS)=-1.0E+10
VARMAX(MARK)=1.0E+10 ;VARMIN(MARK)=-1.0E+10
VARMAX(TEM1)=1.0E+10 ;VARMIN(TEM1)=0.
************************************************************
Group 19. Data transmitted to GROUND
PARSOL = F
ISG62 = 0
SPEDAT(SET,STORED,TRES,C,=RESI(TEM1)!RESIDU)
SPEDAT(SET,STORED,TCOR,C,=CORR(TEM1)!CORREC)
SPEDAT(SET,INFOB,*!PATCH1,C,=SPHERE(1+.5*SIN(XG)&1+.5*COS(XG)&1+.\$)
SPEDAT(SET,INFOB,*!PATCH1,C,5*XG&.2&0&0&0)+SPHERE(1+.5*SIN(XG)&1+\$)
SPEDAT(SET,INFOB,*!PATCH1,C,.5*COS(XG)&4.14+.5*XG&.2&0&0&0)!INFOB\$)
SPEDAT(SET,INFOB,*!PATCH1,C,_1)
SPEDAT(SET,INITIAL,MARK!PATCH1,C,=1.!INFOB_1)
SPEDAT(SET,SOURCE,TEM1!PATCH1,C,=2000.!INFOB_1)
SPEDAT(SET,SOURCE,U1!PATCH1,C,=-1000.*VABS*VOL*U1!LINE!INFOB_1)
SPEDAT(SET,SOURCE,V1!PATCH1,C,=-1000.*VABS*VOL*V1!LINE!INFOB_1)
SPEDAT(SET,SOURCE,W1!PATCH1,C,=-1000.*VABS*VOL*W1!LINE!INFOB_1)
************************************************************
Group 20. Preliminary Printout
DISTIL = T ;NULLPR = F
NDST = 0
DSTTOL =1.0E-02
EX(P1)=0.02545 ;EX(U1)=1.398E-04
EX(V1)=1.123E-04 ;EX(W1)=0.01006
EX(TCOR)=0.01262 ;EX(TRES)=0.2509
EX(VABS)=0.01006 ;EX(MARK)=0.03159
EX(TEM1)=16.6
************************************************************
Group 21. Print-out of Variables
INIFLD = F ;SUBWGR = F
* Y in OUTPUT argument list denotes:
* 1-field 2-correction-eq. monitor 3-selective dumping
* 4-whole-field residual 5-spot-value table 6-residual table
OUTPUT(P1,Y,Y,Y,N,Y,Y)
OUTPUT(U1,Y,Y,Y,N,Y,Y)
OUTPUT(V1,Y,Y,Y,N,Y,Y)
OUTPUT(W1,Y,Y,Y,N,Y,Y)
OUTPUT(TCOR,Y,N,Y,N,N,N)
OUTPUT(TRES,Y,N,Y,N,N,N)
OUTPUT(VABS,Y,N,Y,N,N,N)
OUTPUT(MARK,Y,N,Y,N,N,N)
OUTPUT(TEM1,Y,N,Y,Y,Y,Y)
************************************************************
Group 22. Monitor Print-Out
IXMON = 11 ;IYMON = 11 ;IZMON = 11
NPRMON = 100 ;NPRMNT = 1 ;TSTSWP = -1
UWATCH = T ;USTEER = T
HIGHLO = F
************************************************************
Group 23.Field Print-Out & Plot Control
NPRINT = 100000 ;NUMCLS = 5
NXPRIN = -1 ;IXPRF = 1 ;IXPRL = 10000
NYPRIN = -1 ;IYPRF = 1 ;IYPRL = 10000
NZPRIN = -1 ;IZPRF = 1 ;IZPRL = 10000
XZPR = F ;YZPR = F
IPLTF = 1 ;IPLTL = -1 ;NPLT = -1
ISWPRF = 1 ;ISWPRL = 100000
ITABL = 3 ;IPROF = 1
ABSIZ =0.5 ;ORSIZ =0.4
NTZPRF = 1 ;NCOLPF = 50
ICHR = 2 ;NCOLCO = 45 ;NROWCO = 20
No PATCHes yet used for this Group
************************************************************
Group 24. Dumps For Restarts
SAVE = T ;NOWIPE = F
NSAVE =CHAM
STOP
```