TALK=T;RUN(1,1) ************************************ PQ1 description ************************************ Title: Simulation of a Labyrinth Flow Author: Elena Pankova Start Date: 24.05.13 Last editing date: 26.02.14 by dbs providing as_patch alternatives for 2D objects. Objects now arranged as 3D, plates and apertures 24.12.13 by dbs * if(is_x has been supplied for all objects, so that they are easily removed from the scene. * in scenedbs.xml, but not yet here, each object is placed in a separate group for ease of access * the inlet and outlet objects have been extended over the the whole of the end areas so that the ends are fully open when the walls are removed. " later they will be made replaceable by patches in order to be more typical of recommended practice for wind tunnels. * it will probably be desirable in a 'general' group to make an initial choice of labyrinth or wind tunnel 18.12.13 by dbs parameterised .dat created work started but not completed, 16.12.13 by dbs rotation items re-arranged, objects colocub and colohex introduced Purpose: To create a simscene based on the existing library case Brief description: This is a simscene to calculate steady labyrinth flow with heat transfer, through a two-dimensial labyrinthine duct. The density, specific heat, thermal conductivity and viscosity of the fluid are supposed to be constants. ! dbs 02.06.13 the above description will require amendment as the ! SimScene acquires new capabilities ************************************ PQ1 Part 1 Declarations and settings ************************************ vredit=f ! command preventing satellite from double reading ! and re-writing of Q1. It renders unnecessary the ! introduction of saveXbegin and saveXend around In-Form ! statements when VR objects are present. xml-group general insert declaration and settings below real(rxf,rxl,ryf,ryl,rzf,rzl) ! for use with dot patches char(intr) ! INLET treatment intr=as_vr ! as_patch char(outr) ! OUTLET treatment outr=as_vr ! as_patch char(pltr) ! PLATE treatment pltr=as_vr ! as_patch real(xul) ! x-dimension of the domain xul=2.0 real(yvl) ! y-dimension of the domain yvl=1.0 real(zwl) ! z-dimension of the domain zwl=1.0 xml-group 3D objects insert declaration and settings below Object 1 boolean(is_1) ! presence of object 1 in the scene is_1=T ! F char(onam1) ! object 1 name onam1=IN-BLOCK char(ogeo1) ! shape of object 1 ogeo1=cube14 ! sphere;cone;cylinder;half-sphere;half-cone;half-cyl$ inder;colocube;colohex char(rotmo1) ! rotation mode: rot24 or rotang rotmo1=rot24 ! rotang integer(orot1) ! rotation index for rot24 mode orot1=1 char(rotcen) ! rotation centre for rotang: w=west=low x; e=east=high x;$ s=south=low y; north=high y;l=low=low z; h=high=high z rotcen=wsl!esl;wnl;wsh;enl;esh;wnh;enh;centre wsl=west-south-low, etc. integer(alpha) ! rotation angle about x-axis alpha=0 integer(beta) ! rotation angle about y-axis beta=0 integer(theta) ! rotation angle about z-axis theta=0 real(posx1) ! x_position of object 1, m posx1=0.5*xul real(posy1) ! y_position of object 1, m posy1=0.0 real(posz1) ! z_position of object 1, m posz1=0.05*zwl real(sizx1) ! x_size of object 1, m sizx1=0.2*xul real(sizy1) ! y_size of object 1, m sizy1=yvl real(sizz1) ! z_size of object 1, m sizz1=.65*zwl Object 2 boolean(is_2) ! presence of object 2 in the scene is_2=T ! F char(onam2) ! object 2 name onam2=L-BLOCK char(ogeo2) ! shape of object 2 ogeo2=cube4 integer(orot2) ! rotation index orot2=1 real(posx2) ! x_position of object 2, m posx2=0.0 real(posy2) ! y_position of object 2, m posy2=0.0 real(posz2) ! z_position of object 2, m posz2=0.0 real(sizx2) ! x_size of object 2, m sizx2=xul real(sizy2) ! y_size of object 2, m sizy2=yvl real(sizz2) ! z_size of object 2, m sizz2=.05*zwl Object 6 boolean(is_6) ! presence of object 6 in the scene is_6=T ! F char(onam6) ! object 6 name onam6=H-BLOCK char(ogeo6) ! shape of object 6 ogeo6=cube14 integer(orot6) ! rotation index orot6=1 real(posx6) ! x_position of object 6, m posx6=0.0 real(posy6) ! y_position of object 6, m posy6=0.0 real(posz6) ! z_position of object 6, m posz6=.95*zwl real(sizx6) ! x_size of object 6, m sizx6=xul real(sizy6) ! y_size of object 6, m sizy6=yvl real(sizz6) ! z_size of object 6, m sizz6=.05*zwl xml-group 2D plates insert declaration and settings below Object 4 boolean(is_4) ! presence of object 4 in the scene is_4=T ! F char(onam4) ! object 4 name onam4=W-PLATE char(ogeo4) ! shape of object 4 ogeo4=cube11 integer(orot4) ! rotation index orot4=1 real(posx4) ! x_position of object 4, m posx4=0.0 real(posy4) ! y_position of object 4, m posy4=0.0 real(posz4) ! z_position of object 4, m posz4=0.0 real(sizx4) ! x_size of object 4, m sizx4=0.0 real(sizy4) ! y_size of object 4, m sizy4=yvl real(sizz4) ! z_size of object 4, m sizz4=0.5*zwl Object 3 boolean(is_3) ! presence of object 3 in the scene is_3=T ! F char(onam3) ! object 3 name onam3=E-PLATE char(ogeo3) ! shape of object 3 ogeo3=cube11 integer(orot3) ! rotation index orot3=1 real(posx3) ! x_position of object 3, m posx3=xul real(posy3) ! y_position of object 3, m posy3=0.0 real(posz3) ! z_position of object 3, m posz3=0.5*zwl real(sizx3) ! x_size of object 3, m sizx3=0.0 real(sizy3) ! y_size of object 3, m sizy3=yvl real(sizz3) ! z_size of object 3, m sizz3=.5*zwl Object 5 boolean(is_5) ! presence of object 5 in the scene is_5=T ! F char(onam5) ! object 5 name onam5=IN-PLATE char(ogeo5) ! object 5 geometry ogeo5=cube11 integer(orot5) ! rotation index orot5=1 real(posx5) ! x_position of object 5, m posx5=0.25*xul real(posy5) ! y_position of object 5, m posy5=0.0 real(posz5) ! z_position of object 5, m posz5=0.3*zwl real(sizx5) ! x_size of object 5, m sizx5=0.0 real(sizy5) ! y_size of object 5, m sizy5=yvl real(sizz5) ! z_size of object 5, m sizz5=.65*zwl xml-group 2D apertures insert declaration and settings below real(ycn,zcn) ! for objects 7 and 8 char(radsq) Object 7 boolean(is_7) ! presence of object 7 in the scene is_7=T ! F char(onam7) ! object 7 name onam7=INLET char(ogeo7) ! shape of object 7 ogeo7=cube3t integer(orot7) ! rotation index orot7=1 real(posx7) ! x_position of object 7, m posx7=0.0 real(posy7) ! y_position of object 7, m posy7=0.0 real(posz7) ! z_position of object 7, m posz7=.5*zwlast real(sizx7) ! x_size of object 7, m sizx7=0.0 real(sizy7) ! y_size of object 7, m sizy7=yvl real(sizz7) ! z_size of object 7, m sizz7=.45*zwl real(inrads) ! inlet radius squared, m**2, if as_patch inrads=0.04 Object 8 boolean(is_8) ! presence of object 8 in the scene is_8=T ! F char(onam8) ! object 8 name onam8=OUTLET char(ogeo8) ! shape of object 8 ogeo8=cube12t integer(orot8) ! rotation index orot8=1 real(posx8) ! x_position of object 8, m posx8=xul real(posy8) ! y_position of object 8, m posy8=0.0 real(posz8) ! z_position of object 8, m eop 07.01.14 the same changes made for the outlet object posz8=0.05*zwl posz8=0.0 real(sizx8) ! x_size of object 8, m sizx8=0.0 real(sizy8) ! y_size of object 8, m sizy8=yvl real(sizz8) ! z_size of object 8, m sizz8=.45*zwl real(ourads) ! outlet radius squared, m**2, if as_patch ourads=0.04 -------------------------------------------------------------------------- xml-group variables solved insert declaration and settings below boolean(solp1) ! solve p1 solp1=T ! F boolean(solu1) ! solve u1 solu1=T ! F boolean(solv1) ! solve v1 solv1=T ! F boolean(solw1) ! solve w1 solw1=T ! F boolean(solt1) ! solve tem1 solt1=T ! F xml-group material properties insert declaration and settings below char(mt_1) ! material of object 1 mt_1 = 103,COPPER at 27 deg C !100,ALUMINIUM at 27 deg C;$ 104,EPOXY at 27 deg C; 106,GLASS at 20 deg C;$ 111,STEEL at 27 deg C; 120,Concrete block (heavyweight) char(mt_2) ! material of object 2 (lower wall) mt_2 = 100,ALUMINIUM at 27 deg C !103,COPPER at 27 deg C;$ 104,EPOXY at 27 deg C; 106,GLASS at 20 deg C;$ 111,STEEL at 27 deg C; 120,Concrete block (heavyweight) char(mt_6) ! material of object 6 (upper wall) mt_6 = 100,ALUMINIUM at 27 deg C !103,COPPER at 27 deg C;$ 104,EPOXY at 27 deg C; 106,GLASS at 20 deg C;$ 111,STEEL at 27 deg C; 120,Concrete block (heavyweight) char(flname) ! select fluid by name or properties below flname=air !saturated_water;$ ammonia;carbon_dioxide;carbon_monoxide;hydrogen;$ nitrogen;oxygen;superheated_water_vapour;$ SAE_5W-30_engine_oil;ethylene_glycol;glycerin;$ use_specified_properties; real(prno) ! Prandtl number prno=7.0 fluid values of water at 20 degC as in PROPS file real(dnsf) ! fluid density, kg/m**3 dnsf=998.23 dnsf=1.0 !**** !**** indicates values sometimes introduced via manual ! editing during testing real(sphf) ! fluid specific heat, J/(kg*degC) sphf=4181.8 sphf=1.0 !**** real(nulf) ! fluid kinematic viscosity, m**2/s nulf=1.006E-6 nulf=1.e-5 !**** real(cndf) ! fluid thermal conductivity, W/(m*degC) cndf=sphf*nulf*dnsf/prno real(prno) ! Prandtl number sphf*dnsf*nulf/cndf prno=7.0 cndf=0.597 cndf=0.025 !**** real(texf) ! fluid thermal expansient coeff. degC**-1 texf=1.18e-4 dnsf=1 sphf=1 cn xml-group models insert declaration and settings below char(turb) ! turbulence model turb=none! lvel; klmodl; kemodl ;KECHEN ; xml-group initial conditions insert declaration and settings below xml-group boundary conditions insert declaration and settings below real(invelx) ! inlet velocity in x-direction INVELx=0.05 real(intem) ! inlet temperature INtem=20.0 real(hitem) ! temperature of H-block hitem=100.0 real(lohflx) ! heat flux to L-block lohflx=1.e2 xml-group output settings insert declaration and settings below xml-group computational grid insert declaration and settings below ! dbs 06.01.13 Enable grid to be varied integer(nxx) ! x-direction interval number nxx=20 integer(nyy) ! y-direction interval number nyy=10 integer(nzz) ! z-direction interval number nzz=15 integer(nits) ! number of iterations nits=400 xml-group other numerical insert declaration and settings below xml-group graphical output insert declaration and settings below boolean(streams) ! show streamlines streams=T ! F integer(nstreams) ! number of streamlines nstreams=10 xml-end ************************************ PQ1 Part 2 Include Frommenu ************************************ INCL(frommenu.htm) mesgm(after frommenu mesgm(1 xulast=:xulast: yvlast=:yvlast: zwlast=:zwlast: ************************************ PQ1 Part 3 Consequential settings ************************************ xulast=xul; yvlast=yvl; zwlast=zwl mesgm(0 xulast=:xulast: yvlast=:yvlast: zwlast=:zwlast: ************************************************************ Q1 created by VDI menu, Version 2009, Date 17/02/09 CPVNAM=VDI;SPPNAM=Core ************************************************************ ************************************************************ GROUP 1. Run title and other preliminaries TEXT(Simulation of a Labyrinth Flow ) title TEXT(fluid is :flname: ************************************************************ IRUNN = 1 ;LIBREF = 0 GROUP 2. Transience; time-step specification STEADY = T ************************************************************ RSET(M,nxx,nyy,nzz) mesgm(2.1 xulast=:xulast: yvlast=:yvlast: zwlast=:zwlast: xulast=xul; yvlast=yvl; zwlast=zwl mesgm(2.2 xulast=:xulast: yvlast=:yvlast: zwlast=:zwlast: GROUP 3. X-direction grid specification ************************************************************ GROUP 4. Y-direction grid specification ************************************************************ GROUP 5. Z-direction grid specification * Overall number of cells, RSET(M,NX,NY,NZ,tolerance) mesgm(2 xulast=:xulast: yvlast=:yvlast: zwlast=:zwlast: ************************************************************ GROUP 6. Body-fitted coordinates or grid distortion ************************************************************ GROUP 7. Variables stored, solved & named ONEPHS = T * Non-default variable names NAME(146) =EPOR ; NAME(147) =PRPS NAME(148) =ENUT ; NAME(149) =EPKE NAME(150) =TEM1 * Solved variables list SOLVE(P1 ,U1 ,V1 ,W1 ,TEM1) * Stored variables list STORE(EPKE,ENUT,PRPS,EPOR) * Additional solver options SOLUTN(P1 ,Y,Y,Y,N,N,Y) SOLUTN(TEM1,Y,Y,Y,N,N,Y) ! dbs 01.06.13 turb if(:turb:.ne.none) then TURMOD(:turb:) endif if(:turb:.eq.klmodl) then DISWAL EL1=GRND1 EL1B=0.41 store(el1) boolean(kmod,eps) kmod=t endif if(:turb:.eq.kemodl.or.:turb:.eq.kechen) then boolean(kmod,eps) kmod=t eps=t store(el1) endif ************************************************************ GROUP 8. Terms (in differential equations) & devices mesgm(8 xulast=:xulast: yvlast=:yvlast: zwlast=:zwlast: TERMS (TEM1,Y,Y,Y,Y,Y,Y) ************************************************************ GROUP 9. Properties of the medium (or media) PRESS0 = 1.000000E+05 ;TEMP0 = 2.730000E+02 * Domain material index is 0 signifying: * Air at 20 deg C, 1 atm, treated as incompressible SETPRPS(1, 0) DVO1DT = 3.410000E-03 PRNDTL(TEM1) = -2.580000E-02 PRT (KE ) = 7.500000E-01 ;PRT (EP ) = 1.150000E+00 GROUP 9. Properties of the medium (or media) press0=1.e5 ! additive to p1 to create absolute pressure temp0=273 ! additive to p1 to create absolute pressure ! note that the following declarations appear in ! always called-at-the-start library case 014.htm CHAR(ABT,ABP) ! absolute temperature and pressure for 089 ABT=(TEM1+TEMP0); ABP=(P1+PRESS0) ! default setting condtn=if(prps.le.1.) condtn (property enul is 0.0!if(prps.gt.0)) if(:flname:.eq.use_specified_properties) then mesg(use specified properties ! the following are provided to enable the boundary-condition ! settings to be the same whether or not constant properties ! are being used ! declarations char(rho_expression) char(cp_expression) char(enu_expression) char(cond_expression) ! settings rho_expression=dnsf cp_expression=sphf enu_expression=nulf cond_expression+cndf ! the + is a mistake cond_expression=cndf (property rho1 is :dnsf:!:condtn:) (property enul is :nulf:!:condtn:) (property cp1 is :sphf:!:condtn:) (property prndtl(tem1) is -:cndf:!:condtn:) (property prndtl(tem1) is -:cndt:!if(prps.gt.1.0)) (stored var cond is :cndf:!:condtn:) ! These 2 lines affect (stored var cond is :cndt:!if(prps.gt.1.0)) ! print-out only dvo1dt=texf else ! use properties according to fluid name fluid_name=:flname: ! set name for use in next-loaded library case #$089 ! where the following character strings are ! declared and set ! rho_expression ! cp_expression ! enu_expression ! emu_expression ! cond_expression if(:flname:.eq.saturated_water) then dvo1dt=1.18e-4 endif if(:flname:.eq.SAE_5W-30_engine_oil) then dvo1dt=7.0e-4 endif if(:flname:.eq.Ethylene_Glycol) then dvo1dt=6.5e-4 endif if(:flname:.eq.Glycerin) then mesg(Glycerin endif endif ! end of if(.not.use_specified properties) ************************************************************ Group 9.1 make reference properties mesgm(9 xulast=:xulast: yvlast=:yvlast: zwlast=:zwlast: (make refdns is 0.0) (store1 refdns is rho1[,1,]!IF(iz.eq.1)) (make refkvis is 0.0) (store1 refkvis is enul[,1,]!IF(iz.eq.1)) (make refsph is 0.0) (store1 refsph is cp1[,1,]!IF(iz.eq.1)) ! (make refcnd is 0.0) (store1 refcnd is cond[,1,]!IF(iz.eq.1)) ************************************************************ GROUP 10. Inter-phase-transfer processes and properties ************************************************************ GROUP 11. Initialization of variable or porosity fields FIINIT(P1 ) = 0.000000E+00 ;FIINIT(EPOR) = 1.000000E+00 FIINIT(PRPS) = -1.000000E+00 ;FIINIT(TEM1) = 2.000000E+01 No PATCHes used for this Group INIADD = F ************************************************************ GROUP 12. Patch-wise adjustment of terms (in differential equations) No PATCHes used for this Group ************************************************************ GROUP 13. Boundary conditions and special sources No PATCHes used for this Group EGWF = T ************************************************************ GROUP 14. Downstream pressure for PARAB=.TRUE. ************************************************************ GROUP 15. Termination of sweeps LSWEEP = nits RESFAC = 1.000000E-03 ************************************************************ GROUP 16. Termination of iterations LITER (P1 ) = 200 ************************************************************ GROUP 17. Under-relaxation devices RELAX(P1 ,LINRLX, 1.000000E+00) RELAX(KE ,LINRLX, 5.000000E-01) RELAX(EP ,LINRLX, 5.000000E-01) KELIN = 3 ************************************************************ GROUP 18. Limits on variables or increments to them VARMAX(TEM1) = 3.000000E+03 ;VARMIN(TEM1) =-2.047500E+02 ************************************************************ GROUP 19. Data communicated by satellite to GROUND GENK = T CONWIZ = T IENUTA = 2 ISG50 = 1 SPEDAT(SET,FACETDAT,NUMOBJ,I,9) ************************************************************ GROUP 20. Preliminary print-out DISTIL = T ;NULLPR = F NDST = 0 DSTTOL = 1.000000E-02 ************************************************************ GROUP 21. Print-out of variables ************************************************************ GROUP 22. Spot-value print-out IXMON = 18 ;IYMON = 1 ;IZMON = 5 NPRMON = 100000 NPRMNT = 1 TSTSWP=-1 GROUP 22.1. Inforin print-out write(>inforin,SimScene is Labyrinth June 2013) write(>>inforin,fluid is :flname:) write(>>inforin,turbulence model is :turb:) ************************************************************ GROUP 22.2. Inforout print-out (print x-direction_intervals is :nxx:) (print z-direction_intervals is :nzz:) (print x-position_inblock is :posx6:) (print x-size_inblock is :sizx6:) (print reference_density is refdns) (print reference_kin_visc is refkvis) (print reference_spc_heat is refsph) ! (print reference_conductivity is refcnd) ! ************************************************************ GROUP 23. Field print-out and plot control NPRINT = 100000 ISWPRF = 1 ;ISWPRL = 100000 No PATCHes used for this Group ************************************************************ GROUP 24. Dumps for restarts ************************************************************ GROUP 25. VR-related settings Create .dat file mesgm(25 xulast=:xulast: yvlast=:yvlast: zwlast=:zwlast: > DOM, SIZE, xulast, yvlast, zwlast > DOM, MONIT, .75*zwlast, .5*zwlast, .466667*zwlast > DOM, SCALE, 1.000000E+00, 1.000000E+00, 1.000000E+00 > DOM, SNAPSIZE, 1.000000E-02 c#### dbs 25.02.14 objects re-ordered as: blockages plates apertures ------------------------------------------- blockages if(is_1) then > OBJ, NAME, onam1 > OBJ, POSITION, posx1, posy1, posz1 > OBJ, SIZE, sizx1, sizy1, sizz1 > OBJ, GEOMETRY, :ogeo1: if(:rotmo1:.eq.rot24) then > OBJ, ROTATION24, orot1 else > OBJ, rot-angle, alpha,beta,theta > OBJ, rot-centre, :rotcen: ! dbs 16.12.13 line lifted from ! below endif endif > OBJ, DOMCLIP, NO > OBJ, TYPE, BLOCKAGE > OBJ, MATERIAL, :mt_1: > obj, wireframe, yes) endif if(is_2) then > OBJ, NAME, onam2 > OBJ, POSITION, posx2, posy2, posz2 > OBJ, SIZE, sizx2, sizy2, sizz2 > OBJ, GEOMETRY, :ogeo2: > OBJ, ROTATION24, orot2 > OBJ, TYPE, BLOCKAGE > OBJ, MATERIAL, :mt_2: > OBJ, HEAT_FLUX, 0.000000E+00, lohflx endif if(is_6) then > OBJ, NAME, onam6 > OBJ, POSITION, posx6, posy6, posz6 > OBJ, SIZE, sizx6, sizy6, sizz6 > OBJ, GEOMETRY, :ogeo6: > OBJ, ROTATION24, orot6 > OBJ, TYPE, BLOCKAGE > OBJ, MATERIAL, :mt_6: > obj, temperature, hitem endif ------------------------------------------- plates if(is_3) then mesgm(object 3 ! note that this was formerly named WALL-E; ut it gas been ! re-named as E-PLATE because it has no >OBJ, WALLCO ! So it is not truly a wall if(:pltr:.eq.as_vr) then > OBJ, NAME, onam3 > OBJ, POSITION, posx3, posy3, posz3 > OBJ, SIZE, sizx3, sizy3, sizz3 > OBJ, GEOMETRY, :ogeo3: > OBJ, ROTATION24, orot3 > OBJ, TYPE, PLATE else ! the dot-patch alternative rxf=posx3/xulast*1000;rxl=posx3/xulast*1000 ryf=posy3/yvlast*1000;ryl=(posy3+sizy3)/yvlast*1000 rzf=posz3/zwlast*1000;ryl=(posz3+sizz3)/zwlast*1000 PATCH(.onam3,EAST,rxf,rxl,ryf,ryl,rzf,rzl,1,1) COVAL(.onam3,U1,FIXVAL,0.0) ! fix velocity to zero endif endif if(is_4) then mesgm(object 4 if(:pltr:.eq.as_vr) then > OBJ, NAME, onam4 > OBJ, POSITION, posx4, posy4, posz4 > OBJ, SIZE, sizx4, sizy4, sizz4 > OBJ, GEOMETRY, :ogeo4: > OBJ, ROTATION24, orot4 > OBJ, TYPE, PLATE else No setting needed because flow at west boundary is zero by default endif endif if(is_5) then mesgm(object 5 if(:pltr:.eq.as_vr) then > OBJ, NAME, onam5 > OBJ, POSITION, posx5, posy5, posz5 > OBJ, SIZE, sizx5, sizy5, sizz5 > OBJ, GEOMETRY, :ogeo5: > OBJ, ROTATION24, orot5 > OBJ, TYPE, PLATE > OBJ, POROSITY, 0.000000E+00 > OBJ, SIDE, BOTH else ! the dot-patch alternative rxf=posx5/xulast*1000;rxl=posx5/xulast*1000 ryf=posy5/yvlast*1000;ryl=(posy5+sizy5)/yvlast*1000 rzf=posz5/zwlast*1000;rzl=(posz5+sizz5)/zwlast*1000 PATCH(.:onam5:,EAST,rxf,rxl,ryf,ryl,rzf,rzl,1,1) COVAL(.:onam5:,U1,FIXVAL,0.0) ! fix velocity to zero condtn=zg.gt.:posz5:*(1.+sin(3.1416*yg/:sizy5:)) (source of u1 at .:onam5: is coval(1.e10,0.0)!if(:condtn:)) endif endif ------------------------------------------- apertures if(is_7) then if(:intr:.eq.as_vr) then > OBJ, NAME, onam7 > OBJ, POSITION, posx7, posy7, posz7 > OBJ, SIZE, sizx7, sizy7, sizz7 > OBJ, GEOMETRY, :ogeo7: > OBJ, ROTATION24, orot7 > OBJ, TYPE, INLET > OBJ, PRESSURE, 0.000000E+00 > OBJ, VELOCITY, invelx, 0.000000E+00, 0.000000E+00 > OBJ, TEMPERATURE, intem > OBJ, TURB-INTENS, 5.000000E+00 else rxf=posx7/zwlast*1000 rxl=(posx7+sizx7)/xulast*1000 ryf=posy7/zwlast*1000 ryl=(posy7+sizy7)/yvlast*1000 rzf=posz7/zwlast*1000 rzl=(posz7+sizz7)/zwlast*1000 patch(.:onam7:,west,rxf,rxl,ryf,ryl,rzf,rzl,1,1) real(ycn,zcn) ! defined higher char(radsq) ycn=posy7+0.5*sizy7 zcn=posz7+0.5*sizz7 radsq=(yg-:ycn:)^2+(zg-:zcn:)^2 condtn=radsq.gt.:inrads: (stored var rgt is 1 !if(radsq.gt.:inrads:)) ! shows condtn (source of p1 at .:onam7: is :invelx: with fixf!if(:condtn:)) coval(.:onam7:,u1,onlyms,invelx) coval(.:onam7:,tem1,onlyms,intem) endif endif if(is_8) then if(:outr:.eq.as_vr) then > OBJ, NAME, onam8 > OBJ, POSITION, posx8, posy8, posz8 > OBJ, SIZE, sizx8, sizy8, sizz8 > OBJ, GEOMETRY, :ogeo8: > OBJ, ROTATION24, orot8 > OBJ, TYPE, OUTLET > OBJ, PRESSURE, 0.000000E+00 > OBJ, TEMPERATURE, SAME > OBJ, COEFFICIENT, 1.000000E+03 > OBJ, TURBULENCE, SAME , SAME else rxf=posx8/xulast*1000 rxl=posx8/xulast*1000 ryf=posy8/zwlast*1000 ryl=(posy8+sizy8)/yvlast*1000 rzf=posz8/zwlast*1000 rzl=(posz8+sizz8)/zwlast*1000 patch(.:onam8:,east,rxf,rxl,ryf,ryl,rzf,rzl,1,1) real(ycn,zcn) ! defined higher char(radsq) ycn=posy8+0.5*sizy8 zcn=posz8+0.5*sizz8 radsq=(yg-:ycn:)^2+(zg-:zcn:)^2 condtn=radsq.lt.:ourads: (source of p1 at .:onam8: is coval(1.e3,0.0)!if(:condtn:)) (stored var rlt is 1.0 !if(radsq.lt.ourads)) ! shows condtn endif endif ************************************************************ GROUP 26 Graphical-display macros ************************************************************ GVIEW(P,-0.0798,-0.984829,0.154091) GVIEW(UP,4.645646E-03,0.154215,0.988026) GVIEW(DEPTH,1000.) GVIEW(NEARPLANE,4.0E-03) GVIEW(VDIS,1.175755) GVIEW(CENTRE,1.,0.5,0.5) ! dbs 29.06.13 The following lines write a VR-VIEWER macro write(>u, p;;;;; ) write(>>u, Start of frame ) write(>>u, * Setting display switches ) write(>>u, CONTOUR CLEAR ) write(>>u, * Settings for current slice ) write(>>u, PROBE 7.500000E-01 5.000000E-01 4.666667E-01; PROBE ON ) write(>>u, SLICE Y ) write(>>u, SLICE OUTLINE ON ) write(>>u, * View and up directions ) write(>>u, VIEW 1.066430E-01 -9.792982E-01 1.720558E-01 ) write(>>u, UP 3.025800E-04 1.730747E-01 9.849087E-01 ) write(>>u, * View size ) write(>>u, VIEW SIZE 1.175755E+00 ) write(>>u, PAUSE ) write(>>u, ) write(>>u, * Start of frame ) write(>>u, * View size ) write(>>u, VIEW SIZE 1.000000E+00 ) write(>>u, VARIABLE Pressure ) write(>>u, CONTOUR ON ) write(>>u, CONTOUR LINE OFF ) write(>>u, PAUSE ) write(>>u, ) write(>>u, * Start of frame ) write(>>u, CONTOUR CLEAR ) write(>>u, * Settings for current slice ) write(>>u, PROBE 7.500000E-01 5.000000E-01 4.666667E-01; PROBE ON ) write(>>u, SLICE X ) write(>>u, * View and up directions ) write(>>u, VIEW -1.674237E-01 -9.695425E-01 1.787650E-01 ) write(>>u, UP 2.139372E-02 1.777088E-01 9.838505E-01 ) write(>>u, * View size ) write(>>u, VIEW SIZE 1.000000E+00 ) write(>>u, VARIABLE Pressure ) write(>>u, CONTOUR ON ) write(>>u, CONTOUR LINE OFF ) write(>>u, PAUSE ) write(>>u, ) write(>>u, * Start of frame ) write(>>u, * Settings for current slice ) write(>>u, PROBE 7.500000E-01 5.000000E-01 2.866669E-01; PROBE ON ) write(>>u, SLICE Z ) write(>>u, * View and up directions ) write(>>u, VIEW -1.380509E-01 -9.777594E-01 1.578874E-01 ) write(>>u, UP -6.581631E-03 1.603158E-01 9.870434E-01 ) write(>>u, * View size ) write(>>u, VIEW SIZE 1.000000E+00 ) write(>>u, VARIABLE Pressure ) write(>>u, CONTOUR ON ) write(>>u, CONTOUR LINE OFF ) write(>>u, PAUSE ) write(>>u, ) write(>>u, * Start of frame ) write(>>u, * Settings for current slice ) write(>>u, PROBE 7.500000E-01 5.000000E-01 2.866669E-01; PROBE ON ) write(>>u, SLICE Y ) write(>>u, * View and up directions ) write(>>u, VIEW -9.143203E-02 -9.837928E-01 1.542484E-01 ) write(>>u, UP -1.495085E-03 1.550324E-01 9.879087E-01 ) write(>>u, * View size ) write(>>u, VIEW SIZE 1.000000E+00 ) write(>>u, VARIABLE Velocity ) write(>>u, CONTOUR ON ) write(>>u, CONTOUR LINE OFF ) write(>>u, PAUSE ) write(>>u, ) write(>>u, * Start of frame ) write(>>u, * Settings for current slice ) write(>>u, PROBE 7.500000E-01 5.000000E-01 4.666667E-01; PROBE ON ) write(>>u, SLICE Y ) write(>>u, * View and up directions ) write(>>u, VIEW 1.149591E-01 -9.868645E-01 1.135036E-01 ) write(>>u, UP 3.415207E-03 1.146531E-01 9.933997E-01 ) write(>>u, * View size ) write(>>u, VIEW SIZE 1.000000E+00 ) write(>>u, VECTOR ON ) write(>>u, VARIABLE Velocity ) write(>>u, CONTOUR OFF ) write(>>u, PAUSE ) write(>>u, ) write(>>u, * Start of frame ) write(>>u, * Settings for current slice ) write(>>u, PROBE 7.500000E-01 5.000000E-01 4.666667E-01; PROBE ON ) write(>>u, SLICE Y ) write(>>u, SLICE OUTLINE ON ) write(>>u, * View and up directions ) write(>>u, VIEW -8.442394E-02 -9.954255E-01 4.473880E-02 ) write(>>u, UP -1.975720E-03 4.506625E-02 9.989821E-01 ) write(>>u, * View size ) write(>>u, VIEW SIZE 1.000000E+00 ) write(>>u, VECTOR ON ) write(>>u, VARIABLE ) write(>>u, CONTOUR ON ) write(>>u, PAUSE ) write(>>u, ) write(>>u, * Start of frame ) write(>>u, * View size ) write(>>u, VIEW SIZE 1.000000E+00 ) write(>>u, * Generating streamlines ) write(>>u, VECTOR OFF ) write(>>u, CONTOUR OFF ) if(streams) then write(>>u, STREAM MODE Line ) real(zcoord,const1,const2) const1=0.05*zwlast const2=0.9*zwlast/11 do ii=1,10 if(ii.eq.1) then zcoord=7.266665E-01 endif if(ii.eq.2) then zcoord= 5.466666E-01 endif if(ii.eq.3) then zcoord= 4.266667E-01 endif if(ii.eq.4) then zcoord=7.866664E-01 endif if(ii.eq.5) then zcoord=8.266664E-01 endif if(ii.eq.6) then zcoord=9.366663E-01 endif zcoord=const1 + const2*ii write(>>u, STREAM 1.9 3.300002E-01 :zcoord: ) enddo endif write(>>u, STREAM ANIM BALL ) write(>>u, BALLSIZE 2.000000E-02 ) write(>>u, STREAM FREQUENCY 100 1 ) write(>>u, STREAM VISIBILITY ON ) write(>>u, PAUSE ) write(>>u, ) write(>>u, * Start of frame ) write(>>u, * Settings for current slice ) write(>>u, PROBE 7.500000E-01 5.000000E-01 4.666667E-01; PROBE ON ) write(>>u, SLICE Y ) write(>>u, * View size ) write(>>u, VIEW SIZE 1.000000E+00 ) write(>>u, STREAM CLEAR ) write(>>u, STREAM ANIMATE OFF ) write(>>u, * Setting object visibility and painting status ) ) write(>>u, OBJECT SHOW TYPE BLOCKAGE ) write(>>u, OBJECT HIDE LIST ) write(>>u, LIST ONAM1 ) write(>>u, OBJECT PAINT TYPE BLOCKAGE OFF ) write(>>u, OBJECT WIREFRAME TYPE BLOCKAGE OFF ) write(>>u, OBJECT SHOW TYPE INLET ) write(>>u, OBJECT PAINT TYPE INLET OFF ) write(>>u, OBJECT SHOW TYPE OUTLET ) write(>>u, PAINT TYPE OUTLET OFF ) write(>>u, OBJECT SHOW TYPE PLATE ) write(>>u, OBJECT PAINT TYPE PLATE OFF ) write(>>u, VARIABLE Temperature ) write(>>u, CONTOUR ON ) write(>>u, CONTOUR FILL ON ) write(>>u, CONTOUR LINE ON ) write(>>u, CONTOUR LINE COLOR 0 ) write(>>u, CONTOUR LINE WIDTH 1 ) write(>>u,PAUSE) write(>>u, ) write(>>u, * Start of frame ) write(>>u, CONTOUR CLEAR ) write(>>u, * Settings for current slice ) write(>>u, PROBE 7.500000E-01 5.000000E-01 4.666667E-01; PROBE ON ) write(>>u, SLICE y ) write(>>u, * View and up directions ) write(>>u, VIEW -1.674237E-01 -9.695425E-01 1.787650E-01 ) write(>>u, UP 2.139372E-02 1.777088E-01 9.838505E-01 ) write(>>u, * View size ) write(>>u, VIEW SIZE 1.000000E+00 ) write(>>u, * Setting object visibility and painting status ) write(>>u, OBJECT SHOW TYPE BLOCKAGE ) write(>>u, OBJECT PAINT TYPE BLOCKAGE OFF ) write(>>u, OBJECT SHOW TYPE INLET ) write(>>u, OBJECT PAINT TYPE INLET OFF ) write(>>u, OBJECT WIREFRAME TYPE INLET OFF ) write(>>u, OBJECT SHOW TYPE OUTLET ) write(>>u, OBJECT PAINT TYPE OUTLET OFF ) write(>>u, OBJECT WIREFRAME TYPE OUTLET OFF ) write(>>u, OBJECT SHOW TYPE PLATE ) write(>>u, OBJECT PAINT TYPE PLATE OFF ) write(>>u, OBJECT WIREFRAME TYPE PLATE OFF ) write(>>u, VECTOR OFF ) write(>>u, VECTOR COLOUR MULTI ) write(>>u, VECTOR TYPE TOTAL ) write(>>u, VARIABLE Pressure ) write(>>u, CONTOUR OFF ) write(>>u, CONTOUR LINE OFF ) write(>>u, PAUSE ) ) STOP