TALK=T;RUN(1,1) 274
```
PHOTON USE
p

msg pressure contours and velocity vectors
msg (for case 276, pressure represents velocity potential)
con p1 x 1 fi;0.05; con p1 y 1 fi;0.05
set ref vec 40.0; vec x 1; vec y 1
msg
msg Press e to END
ENDUSE
****** TO LOAD CASE: TYPE L(274) ******
GROUP 1. Run title and other preliminaries
TEXT(3D Nav.Sto.Flow Around A Moving Van
TITLE
DISPLAY
This is a 3-dimensional Cartesian example in which a solid
body immersed in an unconfined flow is represented by means of
'porosities'.  The turbulence of the flow is crudely represented
by a prescribed constant turbulent viscosity within the fluid,
together with a logarithmic law of the wall for skin friction.
The lower (south) boundary of the flow domain, representing
the road surface, is modelled as a moving wall. The example is
an up-to-date version of that reported in the report PDR/CHAM UK/5
An impression of the geometry can be gained by examining
the following sketch.                |
______________            |______
|**************|           |******|
^    __|**************|         ^ |******|
|   |*****************|         | |******|
y|   |*****************|        y| |******|
|   ~**~~~~~~~~~~~~~**~         | |~~~~**
**             **            |    **
-------------------------------------------
z---->                  x--->
ENDDIS
#pause
GROUP 2. Transience; time-step specification
GROUP 3. X-direction grid specification
nx=8; ny=12; nz=20
incl(spinxyz1)
*  Write objects
RSET(D,VAN,5.0,6.0,20.,1,0)

RSET(M,nx,ny,nz)

RSET(B,FWHL,  1.,   0,  5., 0.5, 0.5, 1., 12, 0)
RSET(B,RWHL,  1.,   0,  9., 0.5, 0.5, 1., 12, 0)
RSET(B,BODY1,  0, 0.5,  5., 1.5,  1., 5., 12, 0)
RSET(B,BODY2,  0, 1.5,  6., 1.5, 1.5, 4., 12, 0)
RSET(B,ROAD,   0,   0,  0 ,  5.,  0, 20., 10, 0)
RSET(B,UPSTR,  0,   0,   0,  5., 6.,   0,  7, 0)
RSET(B,DWSTR,  0,   0, 20.,  5., 6.,   0,  5, 0)

GROUP 6. Body-fitted coordinates or grid distortion
GROUP 7. Variables stored, solved & named
SOLVE(P1,U1,V1,W1)
**Select whole-field solution procedure for pressure,
and point-by-point for velocities
SOLUTN(P1,Y,Y,Y,N,N,N); SOLUTN(U1,Y,Y,n,Y,N,Y)
SOLUTN(V1,Y,Y,n,y,N,Y); SOLUTN(W1,Y,Y,n,y,N,Y)
store(prps,imb1)
GROUP 8. Terms (in differential equations) & devices
GROUP 9. Properties of the medium (or media)
ENUL=1.E-5; ENUT=1.0E-3

GROUP 10. Inter-phase-transfer processes and properties
GROUP 11. Initialization of variable or porosity fields
FIINIT(P1)=0.0; FIINIT(W1)=14.0; fiinit(prps)=-1

** Vehicle body
patch(BODY1,inival,object,body1, 1,1)
coval(BODY1,prps,0.0,198)

patch(BODY2,inival,object,body2, 1,1)
coval(BODY2,prps,0.0,198)

** Front wheel
patch(FWHL,inival,object,fwhl,1,1)
coval(FWHL,prps,0.0,198)

** Rear wheel
patch(RWHL,inival,object,rwhl, 1,1)

GROUP 13. Boundary conditions and special sources
** Upstream boundary
patch(UPSTR,LOW,object,upstr,1,1)
coval(UPSTR,P1,fixflu,14.0); coVAL(UPSTR,W1,onlyms,14.)
** Downstream boundary
PATCH(DWSTR,HIGH,object,dwstr,1,1)
COVAL(DWSTR,P1,0.1,0.)
COVAL(DWSTR,U1,ONLYMS,0.0);COVAL(DWSTR,V1,ONLYMS,0.0)
COVAL(DWSTR,W1,ONLYMS,0.0)

** Following Patches are only necessary if BODY definition
above is set with positive limits **

GROUP 15. Termination of sweeps
LSWEEP=200
LSWEEP=20
GROUP 17. Under-relaxation devices
RELAX(U1,FALSDT,1.0e-4);RELAX(V1,FALSDT,1.0e-4)
RELAX(W1,FALSDT,1.0e-4)
SARAH=0.005
varmin(u1)=-1.e11;varmax(u1)=1.0
varmin(v1)=-1.e11;varmax(v1)=1.0
varmin(w1)=-1.e11;varmax(w1)=2.0
GROUP 21. Print-out of variables
YZPR=T
GROUP 22. Spot-value print-out
IXMON=5;IYMON=5;IZMON=5
GROUP 22. Spot-value print-out
TSTSWP=-1
GROUP 23. Field print-out and plot control
NXPRIN=NX/2;NYPRIN=NY/5;NZPRIN=NZ/10
PATCH(PROFILE,PROFIL,NX-1,NX-1,NY/2,NY/2,1,NZ,1,1)
PLOT(PROFILE,W1,0.0,0.0);PLOT(PROFILE,P1,0.0,0.0)
PLOT(PROFILE,U1,0.0,0.0);PLOT(PROFILE,V1,0.0,0.0)
PATCH(XEQ1,CONTUR,1,1,1,NY,1,NZ,1,1);PLOT(XEQ1,P1,0.0,20.0)
PLOT(XEQ1,U1,0.0,20.0);PLOT(XEQ1,V1,0.0,20.0)
PLOT(XEQ1,W1,0.0,20.0)
PATCH(XEQ5,CONTUR,5,5,1,NY,1,NZ,1,1);PLOT(XEQ5,P1,0.0,20.0)
PLOT(XEQ5,W1,0.0,20.0)
PATCH(WAKE,CONTUR,1,NX,1,NY,NZ-5,NZ-5,1,1)
PLOT(WAKE,W1,0.0,20.0)
#endpause
#maxmin
#conprom
lsweep=10
lsweep=50
lsweep=5
incl(spinxyz3)
```