TALK=T;RUN( 1, 1) ************************************************************ Q1 created by VDI menu, Version 3.6, Date 12/09/05 CPVNAM=VDI;SPPNAM=Core Echo DISPLAY / USE settings DISPLAY This one-dimensional heat conduction problem tests the correctness of NEWPARSOL solver which gives correct result at one iteration. The domain is XLENG [m] long in x; object BLOCK is on the right side of the domain. The domain material is air, the object is steel. The object does not fit the grid. k1 k2 |-------!---|---!-------| | ! |///!///////| | 1 ! 2 |///!///3///| | ! |///!///////| |-------!---|---!-------| x=0 x1=1.5 x2=XLENG This case containts several tasks selected by CASENO. CASENO=1 - set tem1 0 and flux=1 at west and east boundaries. CASENO=2 - fix zero values in left and right, set volume source 1 at sunny sub-cell. CASENO=3 - fix zero values in left and right, set volume source 1 at dark sub-cell. CASENO=4 - fix zero values in left and right, set volume source 1 at sunny and dark sub-cells. CASENO=5 - set value 0 at west and east boundaries, fix value at sunny sub-cell. CASENO=6 - set value 0 at west and east boundaries, fix value at dark sub-cell. CASENO=7 - set value 0 at west and east boundaries, fix value at sunny and dark sub-cell. CASENO=8 - unsteady, fix zero values in left and right, initial value 1. CASENO=9 - set tem1 0 and 1 at west and east boundaries, set volume source 1 at sunny sub-cell. CASENO=10- set tem1 0 and 1 at west and east boundaries, set volume source 1 at dark sub-cell. CASENO=11- set tem1 0 and 1 at west and east boundaries, set volume source 1 at sunny dark sub-cell. ENDDIS ************************************************************ IRUNN = 1 ;LIBREF = 703 ************************************************************ INTEGER(CASENO) mesg(CASENO=1 - set tem1 0 and flux=1 at west and east boundaries. mesg(CASENO=2 - fix zero values in left and right, mesg( set volume source 1 at sunny sub-cell. mesg(CASENO=3 - fix zero values in left and right, mesg( set volume source 1 at dark sub-cell. mesg(CASENO=4 - fix zero values in left and right, mesg( set volume source 1 at sunny and dark sub-cells. mesg(CASENO=5 - fix zero values in left and right, mesg( fix value at sunny sub-cell. mesg(CASENO=6 - fix zero values in left and right, mesg( fix value at dark sub-cell. mesg(CASENO=7 - fix zero values in left and right, mesg( fix value at sunny and dark sub-cell. mesg(CASENO=8 - unsteady, fix zero values in left and right, mesg( initial value 1. mesg(CASENO=9 - set tem1 0 and 1 at west and east boundaries, mesg( set volume source 1 at sunny sub-cell. mesg(CASENO=10- set tem1 0 and 1 at west and east boundaries, mesg( set volume source 1 at dark sub-cell. mesg(CASENO=11- set tem1 0 and 1 at west and east boundaries, mesg( set volume source 1 at sunny dark sub-cell. CASENO=1 mesg(caseno=:caseno: ok? If not, insert required value readvdu(caseno,int,:caseno:) caseno INTEGER(NCEL,ICUT) NCEL=3 mesg(number of cells is :ncel: OK? If not, set other UNEVEN number readvdu(ncel,int,:ncel:) ncel ICUT=NCEL/2+1 ! Currect number of cut-cell REAL(TIMELAST);TIMELAST=1000. ! time, seconds REAL(TIMESTEP);TIMESTEP=1. ! last time step REAL(X1,X2,XLENG,XHALF,X4,K1,K2) XLENG=3. ! x size of domain X1=0.5*XLENG ! x position of middle X2=XLENG XHALF=0.5*XLENG/NCEL ! Half size of cell X4=0.5*XHALF REAL(DEL);DEL=1.5*XHALF K1=0.0258 k2=43. REAL(FLX); FLX=1.0 ! flux at boundary ix=nx REAL(LINK); LINK=1./(.5*XHALF/K1+.5*XHALF/K2) REAL(TEM0);TEM0=0.0 INTEGER(NUMMAT);NUMMAT=111 REAL(SOURC,SSOURC,DSOURC); sourc=1.0 ! source value ssourc=sourc*xhalf; dsourc=sourc*xhalf ! source value in sub-cells REAL(SVAL,DVAL);SVAL=1.;DVAL=1. IF(CASENO.EQ.5) THEN + SVAL=ssourc/(K1/DEL+LINK)/(1-LINK*LINK/(K1/DEL+LINK)/(K2/DEL+LINK)) + DVAL=LINK*ssourc/((K1/DEL+LINK)*(K2/DEL+LINK)-LINK*LINK) ENDIF IF(CASENO.EQ.6) THEN + SVAL=dsourc/LINK/((K1/DEL/LINK+1)*(K2/DEL/LINK+1)-1) + DVAL=(K1/DEL/LINK+1)*dsourc/LINK/((K1/DEL/LINK+1)*(K2/DEL/LINK+1)-1) ENDIF IF(CASENO.EQ.7) THEN + SVAL=(ssourc*(K2/DEL+LINK)+dsourc*LINK)/((K1/DEL+LINK)$ *(K2/DEL+LINK)-LINK*LINK) + DVAL=(dsourc*(K1/DEL+LINK)+ssourc*LINK)/((K1/DEL+LINK)$ *(K2/DEL+LINK)-LINK*LINK) ENDIF REAL(T0OB);T0OB=TEM0 ! Initial value of dark part of sub-cell IF(CASENO.EQ.8) THEN + T0OB=1.0 real(at,ct,f0,g0,scof,dcof) f0=t0ob; g0=t0ob ! initial values at sunny and dark sub-cells at=1.189*1005*xhalf/(timelast-tfirst)/timestep ! rho+s*cp_s*vol/del_time ct=7800*473*xhalf/(timelast-tfirst)/timestep ! rho_d*cp_d*vol/del_time real(delt);delt=(tlast-tfirst)/lstep scof=k1/del+link+at dcof=k2/del+link+ct + SVAL=(at*f0*dcof+ct*g0*link)/(scof*dcof-link*link) + DVAL=(ct*g0*scof+at*f0*link)/(scof*dcof-link*link) ENDIF Group 1. Run Title TEXT(NEWPARSOL, 1D heat-conduction in x dir ************************************************************ Group 2. Transience STEADY = T IF(CASENO.EQ.8) THEN + STEADY=F ENDIF * Set overall time and no. of steps RSET(U,0.000000E+00,TIMELAST,TIMESTEP) ************************************************************ Groups 3, 4, 5 Grid Information * Overall number of cells, RSET(M,NX,NY,NZ,tolerance) RSET(M,NCEL,1,1) ************************************************************ Group 6. Body-Fitted coordinates ************************************************************ Group 7. Variables: STOREd,SOLVEd,NAMEd ONEPHS = T * Non-default variable names NAME(148) =TEM1 ; NAME(150) =PRPS * Solved variables list SOLVE(TEM1) * Stored variables list STORE(PRPS,KOND) STORE(DVAR,DRES,DCOR) ! newparsol solution at dark STORE(RST1,CRT1,APT1,AET1,AWT1) STORE(S_EX,D_EX) ! exact solution at sunny and dark STORE(SE/S,DE/D) ! exact/newparsol_solution for sunny and dark * Additional solver options SOLUTN(TEM1,Y,Y,Y,N,N,Y) inform7begin (stored var rst1 is resi(tem1)) (stored var crt1 is corr(tem1)) (stored var apt1 is apco(tem1)) (stored var aet1 is aeco(tem1)) (stored var awt1 is awco(tem1)) if(caseno.eq.1) then (stored s_ex is xg*flx/k1 with if(xg<=x1)) (stored s_ex is (xg-x1)*flx/k2+flx*x1/k1 with if(xg>x1)) patch(sunycell,cell,icut,icut,1,ny,1,nz,1,1) (stored s_ex at sunycell is .5*(x1+xu[-1])*flx/k1) ! sunny part of cut-cell (stored d_ex at sunycell is xhalf*flx/k2+flx*x1/k1)! dark part of cut-cell endif if(caseno.eq.2) then (stored s_ex is ssourc/(K1/DEL+LINK)/(1.-LINK*LINK/(K1/DEL+LINK)/$ (K2/DEL+LINK)) with if(ix=icut)) (stored d_ex is LINK*ssourc/((K1/DEL+LINK)*(K2/DEL+LINK)-LINK*LIN$ K) with if(ix=icut)) endif if(caseno.eq.3) then (stored s_ex is dsourc/LINK/((K1/DEL/LINK+1)*(K2/DEL/LINK+1)-1.) $ with if(ix=icut)) (stored d_ex is (K1/DEL/LINK+1)*dsourc/LINK/((K1/DEL/LINK+1)*(K2/$ DEL/LINK+1)-1.) with if(ix=icut)) endif if(caseno.eq.4) then (stored s_ex is (ssourc*(K2/DEL+LINK)+dsourc*LINK)/((K1/DEL+LINK)$ *(K2/DEL+LINK)-LINK*LINK) with if(ix=icut)) (stored d_ex is (dsourc*(K1/DEL+LINK)+ssourc*LINK)/((K1/DEL+LINK)$ *(K2/DEL+LINK)-LINK*LINK) with if(ix=icut)) endif if(caseno.eq.5) then (stored s_ex is sval with if(ix=icut)) (stored d_ex is dval with if(ix=icut)) endif if(caseno.eq.6) then (stored s_ex is sval with if(ix=icut)) (stored d_ex is dval with if(ix=icut)) endif if(caseno.eq.7) then (stored s_ex is sval with if(ix=icut)) (stored d_ex is dval with if(ix=icut)) endif if(caseno.eq.8) then (stored s_ex is sval with if(ix=icut)) (stored d_ex is dval with if(ix=icut)) endif if(caseno.ge.9.and.caseno.le.11) then + if(caseno.eq.9) then + dsourc=0. + endif + if(caseno.eq.10) then + ssourc=0. + endif real(scut,dcut) scut=ssourc+link*(dsourc+k2/(x1-x4))/(link+k2/(x1-x4)) scut=scut/(link+k1/(x1-x4)-link*link/(link+k2/(x1-x4))) dcut=(scut*link+dsourc+k2/(x1-x4))/(link+k2/(x1-x4)) (stored d_ex is dcut with if(ix=icut)) flx=scut*k1/(x1-x4) (stored s_ex is flx*xg/k1 with if(xg<=x1)) flx=(dcut-1.)*k2/(x1-x4) (stored s_ex is dcut-flx*(xg-x1-x4)/k2 with if(xg>x1)) endif (stored var SE/S is s_ex/tem1 with if(tem1!=0.)) (stored var DE/D is d_ex/dvar with if(dvar!=0.)) inform7end ************************************************************ Group 8. Terms & Devices ************************************************************ Group 9. Properties PRESS0 = 1.000000E+05 ;TEMP0 = 2.730000E+02 * Domain material is: 0 Air at 20 deg C, 1 atm, treated as i SETPRPS(1, 0) ENUT = 0.000000E+00 DVO1DT = 3.410000E-03 PRNDTL(TEM1) = -K1 ************************************************************ Group 10.Inter-Phase Transfer Processes ************************************************************ Group 11.Initialise Var/Porosity Fields FIINIT(PRPS) = -1.000000E+00 FIINIT(TEM1) = TEM0 FIINIT(DVAR) = -1.234E-11 FIINIT(DRES) = -1.234E-11 FIINIT(DCOR) = -1.234E-11 FIINIT(S_EX) = 0.; FIINIT(D_EX) = 0. FIINIT(SE/S) = 0.; FIINIT(DE/D) = 0. IF(CASENO.EQ.8) THEN + PATCH(INIT1,INIVAL,icut,icut,1,ny,1,nz,1,1) + COVAL(INIT1,TEM1, 1.000000E+00, T0OB) ENDIF INIADD = F ************************************************************ Group 12. Convection and diffusion adjustments No PATCHes used for this Group ************************************************************ Group 13. Boundary & Special Sources ! Set values 0 and 1 at west and east boundaries IF(CASENO.EQ.1) THEN + PATCH(WWAL ,WWALL ,1,1,1,ny,1,nz,1,1) + COVAL(WWAL ,TEM1, 1.000000E+00, 0.000000E+00) + PATCH(EFLUX ,EAST ,nx,nx,1,ny,1,nz,1,1) + COVAL(EFLUX ,TEM1, FIXFLU, 1.000000E+00) ENDIF IF(CASENO.GT.1.AND.CASENO.LE.8) THEN ! Fix zero values in 1 and nx cells + PATCH(wfix ,VOLUME,1,icut-1,1,ny,1,nz,1,LSTEP) + COVAL(wfix ,TEM1, FIXval , 0.0) + PATCH(efix ,VOLUME,icut+1,nx,1,ny,1,nz,1,LSTEP) + COVAL(efix ,TEM1, FIXval , 0.0) ENDIF IF(CASENO.EQ.2.OR.CASENO.EQ.4) THEN ! Set source in sunny sub-cell + PATCH(SNYFLUX ,VOLUME,icut,icut,1,ny,1,nz,1,LSTEP) + COVAL(SNYFLUX ,TEM1, FIXFLU , SVAL) ENDIF IF(CASENO.EQ.5) THEN ! Fix value in sunny sub-cell + PATCH(SNYFLUX ,VOLUME,icut,icut,1,ny,1,nz,1,LSTEP) + COVAL(SNYFLUX ,TEM1, FIXVAL , SVAL) ENDIF IF(CASENO.EQ.7) THEN ! Fix value in sunny sub-cell + PATCH(SNYFLUX ,VOLUME,icut,icut,1,ny,1,nz,1,LSTEP) + COVAL(SNYFLUX ,TEM1, FIXVAL , SVAL) ENDIF IF(CASENO.GE.9.AND.CASENO.LE.11) THEN ! Set boundary conditions + PATCH(WWAL ,WWALL ,1,1,1,ny,1,nz,1,1) + COVAL(WWAL ,TEM1, 1.000000E+00, 0.000000E+00) + PATCH(EWAL ,EWALL ,nx,nx,1,ny,1,nz,1,1) + COVAL(EWAL ,TEM1, 1.000000E+00, 1.000000E+00) ENDIF IF(CASENO.EQ.9.OR.CASENO.EQ.11) THEN ! Set source in sunny sub-cell + PATCH(SNYFLUX ,VOLUME,icut,icut,1,ny,1,nz,1,LSTEP) + COVAL(SNYFLUX ,TEM1, FIXFLU , SVAL) ENDIF EGWF = T ************************************************************ Group 14. Downstream Pressure For PARAB ************************************************************ Group 15. Terminate Sweeps LSWEEP = 1 RESFAC = 1.000000E-03 ************************************************************ Group 16. Terminate Iterations LITER (TEM1) = 1 IF(CASENO.EQ.3.OR.CASENO.EQ.6.OR.CASENO.EQ.7.OR.CASENO.EQ.8) THEN + LITER (TEM1) = 2 ENDIF IF(CASENO.EQ.10.OR.CASENO.EQ.11) THEN + LITER (TEM1) = 2 ENDIF IF(CASENO.EQ.4) THEN + LITER (TEM1) = 3 ENDIF ************************************************************ Group 17. Relaxation relax(tem1,falsdt,1.E10) ************************************************************ Group 18. Limits ************************************************************ Group 19. EARTH Calls To GROUND Station USEGRD = T ;USEGRX = T ASAP = T PARSOL = T SPEDAT(SET,GXMONI,TRANSIENT,L,F) ************************************************************ Group 20. Preliminary Printout ECHO = T DISTIL = T ;NULLPR = F NDST = 0 DSTTOL = 1.000000E-02 EX (TEM1) = 0.000000E+00 ;EX (PRPS) = 3.354000E+00 ************************************************************ Group 21. Print-out of Variables ************************************************************ Group 22. Monitor Print-Out IXMON = 1 ;IYMON = 1 ;IZMON = -3 NPRMON = 100000 NPRMNT = 1 TSTSWP = -1 ************************************************************ Group 23.Field Print-Out & Plot Control NPRINT = 100000 NTPRIN = 100 ;ISTPRF = 1 ;ISTPRL = 10000 NXPRIN = 1 ISWPRF = 1 ;ISWPRL = 100000 PATCH (PLOT ,PROFIL,1,NX,1,1,1,1,1,1) PLOT(PLOT ,TEM1, 0.000000E+00, 0.000000E+00) ************************************************************ Group 24. Dumps For Restarts GVIEW(P,0.000000E+00,0.000000E+00,1.000000E+00) GVIEW(UP,0.000000E+00,1.000000E+00,0.000000E+00) > DOM, SIZE, X2, 1.000000E+00, 1.000000E+00 > DOM, MONIT, X1, 1.000000E+00, 1.000000E+00 > DOM, SCALE, 1.000000E+00, 1.000000E+00, 1.000000E+00 > DOM, SNAPSIZE, 1.000000E-02 > GRID, RSET_X_1, NCEL, 1.000000E+00 > GRID, RSET_Y_1, 1, 1.000000E+00 > GRID, RSET_Z_1, 1, 1.000000E+00 > OBJ, NAME, BLOCK > OBJ, POSITION, X1, 0.000000E+00, 0.000000E+00 > OBJ, SIZE, XHALF, 1.000000E+00, 1.000000E+00 > OBJ, GEOMETRY, cube4 > OBJ, ROTATION24, 1 > OBJ, GRID, NO > OBJ, TYPE, BLOCKAGE > OBJ, MATERIAL, NUMMAT > OBJ, TIME_LIMITS, ALWAYS_ACTIVE > OBJ, INI_TEMP, T0OB IF(CASENO.EQ.3.OR.CASENO.EQ.4) THEN > OBJ, HEAT_FLVX, 0.000000E+00, DVAL ENDIF IF(CASENO.EQ.6.OR.CASENO.EQ.7) THEN > OBJ, FIXED_TMP, 0.000000E+00, DVAL ENDIF IF(CASENO.EQ.10.OR.CASENO.EQ.11) THEN > OBJ, HEAT_FLVX, 0.000000E+00, DVAL ENDIF > OBJ, NAME, BLOCK2 > OBJ, POSITION, X1+XHALF, 0.000000E+00, 0.000000E+00 > OBJ, SIZE, X2-X1-XHALF, 1.000000E+00, 1.000000E+00 > OBJ, GEOMETRY, cube4 > OBJ, ROTATION24, 1 > OBJ, GRID, NO > OBJ, TYPE, BLOCKAGE > OBJ, MATERIAL, NUMMAT > OBJ, TIME_LIMITS, ALWAYS_ACTIVE > OBJ, INI_TEMP, 0. PHOTON USE AUTOPLOT USE file phi 5 d 1 tem1;d 1 dvar;Col1 1;Col2 2;blb4 1;blb2 2;Redr text 1 1 Temperature in structured storage 0.9E+03 0.28E+04 CR text 1 2 Temperature in dark sub-cells 0.9E+03 0.27E+04 CR msg Press any key to END pause ENDUSE STOP isg60=1 ! set active NewParsol