TALK=T;RUN(1,1) DISPLAY (Modified from the original by dbs on 27/01/15) This example illustrates a use of In-Form transfer objects for a z-direction heat-conduction problem of which the boundary conditions dictate that, although two geometrical dimensions are allowed for, namely y and z, in the solution the temperature varies linearly with z and is independent of y. The wall at iz=0 is held at zero temperature while a fixed heat flux is applied at the iz=high boundary. The heat flux, dimensions and conductivity are chosen so that, when the z-direction grid is uniform with NZ=10, the exact solution is: T=1.0, 3.0, 5.0, etc. at successive cells. This facilitates checking the accuracy of the result. The domain is divided into two parts, as shown below ! /----------------+-----------------/ low / ! / high wall / 1st part ! 2nd part / wall / ! / / ---------------+-----------------/ ^ y ! |-------> z-direction The run(1,2) at the top of the Q1 file ensures that two runs are made in succession, for the two sets of data in the file separated by the first STOP. The TROB1 transfer object at the high boundary is formed at the end of the first run by means of an '(export' In-Form statement. The second run reads the information at the low boundary from the TROB1 object by means of an '(import' In-Form statement. The y-direction grid intervals in the two parts can differ, as shown by the differing NY and YPOWER below; and NZ and ZPOWER can also be varied. HOWEVER, the apparent success of the method has been achieved by means of a subterfuge which disguises the fact that a two-consec$ utive- run process can NOT solve the postulated problem, because in the$ first solution for the lower-z half, nothing is known about the highest$ -z fixed- heat flux boundary condition. UNLESS, that is to say, it receives a little help; which the crea$ tor of the original Q1has provided by telling the lower-z half also to recei$ ve the same heat flux at its high-z boundary. If this help is removed, by setting case=1, the first-run solutio$ n is tem1=0 throughout; then the second run-solution is certainly linear, b$ ut with the wrong left-hand value. To confirm this, set caseno=1 What is then needed is a series of further runs, characterised by$ right- hand runs exporting information to subsequent left-hand runs; whi$ ch, as iterations of the process proceed, gradually acquire sufficient i$ nformation about the extreme-right-hand boundary condition. Some things the 2-run-only procedure can accomplish very well, na$ mely: * transfer information from left to right correctly, when NYleft does not equal NYright. * transfer information from left to right correctly, when YPOWERleft does not equal YPOWERright * transfer information from left to right correctly, when YVLASTleft >= VVLASTright. (caseno=2) when YVLASTleft < VVLASTright, (caseno=3) BUT with the perfectly correct consequence that the temperature distribution in the right-hand domain is no longer one-dimenson$ al. ENDDIS ************************************************************ Group 1. Run Title and Number ************************************************************ ************************************************************ TEXT(Transfer objects; 1d diffusion; 1st run.) ************************************************************ ************************************************************ IRUNN = 1 ;LIBREF = 0 ************************************************************ Group 2. Time dependence STEADY = T ************************************************************ Group 3. X-Direction Grid Spacing CARTES = T NX = 1 XULAST =1. XFRAC(1)=1. ************************************************************ Group 4. Y-Direction Grid Spacing NY = 4 YVLAST =0.5 YFRAC(1)=0.125 ;YFRAC(2)=0.353553 YFRAC(3)=0.649519 ;YFRAC(4)=1. ************************************************************ Group 5. Z-Direction Grid Spacing PARAB = F NZ = 5 ZWLAST =1. ZFRAC(1)=0.2 ;ZFRAC(2)=0.4 ZFRAC(3)=0.6 ;ZFRAC(4)=0.8 ZFRAC(5)=1. ************************************************************ Group 6. Body-Fitted Coordinates ************************************************************ Group 7. Variables: STOREd,SOLVEd,NAMEd ONEPHS = T 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(TEM1,Y,Y,N,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(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 =1. ;TMP1 =0. EL1 =0. TSURR =0. ;TEMP0 =0. PRESS0 =0. DVO1DT =0. ;DRH1DP =0. EMISS =0. ;SCATT =0. RADIA =0. ;RADIB =0. ENUL =1.0E-05 ;ENUT =0. PRNDTL(TEM1)=-1. PRT(TEM1)=1. CP1 =1. ;CP2 =1. ************************************************************ Group 10.Inter-Phase Transfer Processes ************************************************************ Group 11.Initial field variables (PHIs) FIINIT(TEM1)=1.0E-10 No PATCHes yet used for this Group INIADD = F 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(LW ,LWALL , 1, 1, 1, 4, 1, 1, 1, 1) COVAL(LW ,TEM1,1. ,0. ) PATCH(HW ,HIGH , 1, 1, 1, 4, 5, 5, 1, 1) COVAL(HW ,TEM1, FIXFLU ,1. ) PATCH(PAT2 ,HIGH , 1, 1, 1, 4, 5, 5, 1, 1) XCYCLE = F EGWF = T WALLCO = GRND2 ************************************************************ Group 14. Downstream Pressure For PARAB ************************************************************ Group 15. Terminate Sweeps LSWEEP = 10 ;ISWC1 = 1 LITHYD = 1 ;LITFLX = 1 ;LITC = 1 ;ITHC1 = 1 SELREF = T RESFAC =1.0E-04 ************************************************************ Group 16. Terminate Iterations LITER(TEM1)=100 ENDIT(TEM1)=0. ************************************************************ Group 17. Relaxation RELAX(TEM1,LINRLX,1.) OVRRLX =0. EXPERT = F ;NNORSL = F ************************************************************ Group 18. Limits VARMAX(TEM1)=1.0E+10 ;VARMIN(TEM1)=-1.0E+10 ************************************************************ Group 19. Data transmitted to GROUND PARSOL = F ISG21 = 10 ISG50 = 1 ISG62 = 1 SPEDAT(SET,EXPORT,PAT2,C,TROB1) ************************************************************ Group 20. Preliminary Printout ************************************************************ 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(TEM1,Y,N,Y,Y,Y,Y) ************************************************************ Group 22. Monitor Print-Out IXMON = 1 ;IYMON = 1 ;IZMON = 1 NPRMON = 100000 ;NPRMNT = 1 ;TSTSWP = -1 UWATCH = T ;USTEER = T HIGHLO = F ************************************************************ Group 23.Field Print-Out & Plot Control NPRINT = 100000 ;NUMCLS = 5 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