```
TALK=f;RUN(1,1)
DISPLAY
Problem: Vertical prismatic (0.3x03x2.5 m) bar & gravity force
-Rho*g.
At the upper end - a uniform normal stress equal to
total weight of the bar Rho*g*LZ.
1. Comparison - a analytical solution:
U = -P*Rho*g*x*z/E,
V = -P*Rho*g*z*y/E,
W = Rho*g/E/2*[ (z^2 - LZ^2) + P*(x^2+y^2)]

2. Similar to s301, But fluid-layers are used

ENDDIS

************************************************************
Group 1. Run Title and Number
************************************************************
TEXT(3D Prismatic bar & gravity force)
Declarations and settings
REAL(Rho,GF,FZ,LX,LY,LZ,POISSON,YOUNG)
Rho = 1.e4
GF=9.8
FZ= Rho*GF
LX=0.15
LZ=2.5
LY=0.15
YOUNG   = 1/0.5E-11   ! Young's modulus
POISSON=0.3           ! Poisson's ratio
INTEGER(NXBODY,NYBODY,NZBODY)

************************************************************
Group 2. Time dependence
************************************************************
Group 3. X-Direction Grid Spacing
CARTES  =    T
NXBODY = 5
NREGX=3                             ! 3 regions
IREGX=1;GRDPWR(X,1,0.01*LX,1.0)     ! single inner fluid cell
IREGX=2;GRDPWR(X,NXBODY,LX,1)
IREGX=3;GRDPWR(X,1,0.01*LX,1.0)     ! single outer fluid cell

************************************************************
Group 4. Y-Direction Grid Spacing
NYBODY = 5
NREGY=3                             ! 3 regions
IREGY=1;GRDPWR(Y,1,0.01*LY,1.0)     ! single inner fluid cell
IREGY=2;GRDPWR(Y,NYBODY,LY,1)
IREGY=3;GRDPWR(Y,1,0.01*LY,1.0)     ! single outer fluid cell
************************************************************
Group 5. Z-Direction Grid Spacing
NZBODY = 5
NREGZ=3                             ! 3 regions
IREGZ=1;GRDPWR(Z,1,0.01*LZ,1.0)     ! single inner fluid cell
IREGZ=2;GRDPWR(Z,NZBODY,LZ,1)
IREGZ=3;GRDPWR(Z,1,0.01*LZ,1.0)     ! single outer fluid cell
************************************************************
Group 7. Variables: STOREd,SOLVEd,NAMEd
ONEPHS  =    T
SOLVE(P1,V1,U1,W1)
SOLUTN(P1  ,Y,Y,Y,N,N,N)
SOLUTN(U1  ,Y,Y,Y,N,N,Y)
SOLUTN(V1  ,Y,Y,Y,N,N,Y)
SOLUTN(W1  ,Y,Y,Y,N,N,Y)

STORE(PRPS)
STORE(DRH1,VISL)

STORE(STRZ)
STORE(EPSY,EPSX,EPSZ)
STORE(U1T,V1T,W1T,U1/T,V1/T,W1/T)

************************************************************
GROUP 8. ITERATION NUMBERS ETC
RESFAC=1.e-7
RESREF(V1)=0.0
RESREF(U1)=0.0  ! to prevent premature exit
LITER(V1) = 50 ! from solver
LITER(U1) = 50
LITER(P1) = 50
RESREF(W1)=0.0
LITER(W1) = 50

************************************************************
GROUP 9. PROPERTIES

CSG10='Q1'                  ! materials with various POISSON ratios
MATFLG=T;NMAT=1
160    7800.0    0.3       473.0   43.0      1.0e-5   0.5e-11

************************************************************
GROUP 11. INITIAL VALUES
fiinit(p1)=0.0
fiinit(u1)=0.0
fiinit(v1)=0.0
fiinit(w1)=0.0

FIINIT(PRPS)=0
PATCH(BODY,INIVAL,2,NX-1,2,NY-1,2,NZ-1,1,1)
INIT(BODY,PRPS,FIXVAL,160)

************************************************************
GROUP 13. BOUNDARY & SPECIAL SOURCES

PATCH(FORC01,HIGH,2,NX-1,2,NY-1,NZ-1,NZ-1,1,1)            ! Upper - sprain
COVAL(FORC01,W1,FIXFLU,FZ*LZ)

PATCH(FORCGRA,VOLUME,2,NX-1,2,NY-1,1,NZ-1,1,1)             ! Volume - gravity force
COVAL(FORCGRA,W1,FIXFLU,-FZ)

PATCH(ONEP,CELL,2,NX-1,2,NY-1,NZ-1,NZ-1,1,1)                           ! Fixed moving
real(C00)
C00 = FZ/YOUNG*POISSON/2
char(Frm00)
Frm00 = :C00:*(XG^2 + YG^2)
(source of W1 at ONEP is COVAL(1,:FRM00:))

PATCH(AXESXX,EAST,1,1,2,NY-1,2,NZ-1,1,1)            ! X = 0 plate
COVAL(AXESXX,U1,FIXVAL,0.0)

PATCH(AXESYY,NORTH,2,NX-1,1,1,2,NZ-1,1,1)            ! Y = 0 plate
COVAL(AXESYY,V1,FIXVAL,0.0)

************************************************************
GROUP 15. TERMINATE SWEEPS
LSWEEP  =      700
ISG21=LSWEEP
************************************************************
GROUP 17. RELAXATION
#CONPROM
RELAX(P1  ,LINRLX, 1.000000E+00)
spedat(rlxfac,rlxu1d,r,0.5)
spedat(rlxfac,rlxv1d,r,0.5)
spedat(rlxfac,rlxw1d,r,0.5)
************************************************************
GROUP 19. DATA TRANSMITTED TO GROUND
STRA    =    T
PARSOL  =    F
ISG52   =    3   !   probe & res

************************************************************
GROUP 23.FIELD PRINT-OUT & PLOT CONTROL
TSTSWP = - 1   ! graphic-mode
NYPRIN = 1
NXPRIN = 1
NZPRIN = 1
IXMON = NX-2
IYMON = NY-2
IZMON = NZ-2
output(prps,n,n,n,n,n,n)
output(drh1,n,n,n,n,n,n)
output(visl,n,n,n,n,n,n)
output(epsZ,n,n,n,n,n,n)

#conprom

inform7begin
real(CX,CZ,CZ05)
CX = FZ/YOUNG*POISSON
CZ = FZ/YOUNG
CZ05 = CZ/2
char(Frm1,Frm2,FRM3)
Frm1 = :CZ05:*((ZW-0.01*:LZ:)^2 - :LZ:^2)+
Frm2 = :CX:/2*((XG-0.01*:LX:)^2+(YG-0.01*:LY:)^2)
Frm3=*(ZG-0.01*:LZ:)
**** CALCULATE analytical solution ***
(STORED VAR W1T IS :Frm1::Frm2: with imat>100)

(STORED VAR U1T IS -:CX:*(XU-0.01*:LX:):frm3: with imat>100)
(STORED VAR V1T IS -:CX:*(YV-0.01*:LY:):frm3: with imat>100)

(STORED VAR U1/T IS U1/(U1T+1.e-20) with imat>100)
(STORED VAR V1/T IS V1/(V1T+1.e-20) with imat>100)
(STORED VAR W1/T IS W1/(W1T+1.e-20) with imat>100)

inform7end

restrt(all)

STOP
```