TALK=f;RUN(1,1)
  DISPLAY
  Problem: Torsion of the long thin Beam (Plate).
   1. Comparison - a analytical solution (Timoshenko, Paragraph 108)
   2. Bottom of the beam is fixed (U1=V1=W1 = 0),
      Top - set tangential stress TauYZ for V1.
      
  ENDDIS

 
 ************************************************************
  Group 1. Run Title and Number
 ************************************************************
TEXT(3D TORSION of thin Beam; s305)
libref=305
title
  Declarations and settings
REAL(LX,LY,LZ,POISSON,YOUNG)
REAL(Momnt,TAUZ,GG,SHRYZ) 
LX=2.e-3
LZ=50.e-3
LY=10.e-3 

YOUNG   = 1/0.5E-11   ! Young's modulus
POISSON=0.3           ! Poisson's ratio
GG = YOUNG/(2.0*(1.0+POISSON))
  *********************************
Momnt = 10.0 * LX  
 
TAUZ= 3*Momnt/LY/(LX**3)/GG
TAUZ
SHRYZ = 2*GG*TAUZ

  ******* plus  SHRXZ (see Timoshenko, Paragraph 108 !)
SHRYZ = 2*SHRYZ 

SHRYZ 
  *********************************



INTEGER(NXBODY,NYBODY,NZBODY)

 ************************************************************
  Group 2. Time dependence
 STEADY  =    T
 ************************************************************
  Group 3. X-Direction Grid Spacing
 CARTES  =    T
 NXBODY = 6
 GRDPWR(X,NXBODY,LX,1)  

 ************************************************************
  Group 4. Y-Direction Grid Spacing
 NYBODY = 8
 GRDPWR(Y,NYBODY,LY,1)  
 ************************************************************
  Group 5. Z-Direction Grid Spacing
 NZBODY = 12
 GRDPWR(Z,NZBODY,LZ,1)  
  ************************************************************
  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,DRH1,VISL)     ! Necessary to save storage DRH1,VISL 

 STORE(STRX,STRY,STRZ,STXY,STXZ,STYZ)
 STORE(EPSY,EPSX,EPSZ)
 STORE(U1T,V1T,U1/T,V1/T)

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

 ************************************************************
  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)=160

 ************************************************************
  GROUP 13. BOUNDARY & SPECIAL SOURCES
char(FormU,FormV)  
FormU=-:TAUZ:*ZG*(YG-0.5*:LY:)
FormV=:TAUZ:*ZG*(XG-0.5*:LX:)
 
PATCH(DOWNZ,LWALL,1,NX,1,NY,1,1,1,1)            ! z=0 - fixed ALL
COVAL(DOWNZ,W1,FIXVAL,0.0)
PATCH(DOWN0X,CELL,1,NX-1,1,NY,1,1,1,1)
(SOURCE of U1 at DOWN0X is COVAL(FIXVAL,:FormU:)) 
PATCH(DOWN0Y,CELL,1,NX,1,NY-1,1,1,1,1)
(SOURCE of V1 at DOWN0Y is COVAL(FIXVAL,:FormV:)) 


PATCH(UP0Y,HIGH,1,NX,1,NY,NZ,NZ,1,1)            ! UP - Moment of two force
(SOURCE of V1 at UP0Y is COVAL(FIXFLU,:SHRYZ:*(XG-0.5*:LX:))) 


 ************************************************************
  GROUP 15. TERMINATE SWEEPS
 LSWEEP  =      4500
 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
 #maxmin

 ************************************************************
  GROUP 23.FIELD PRINT-OUT & PLOT CONTROL
TSTSWP = - 1   ! graphic-mode
NYPRIN = 1
NXPRIN = 1
NZPRIN = 1
IXMON = NX-2
IYMON = 2
IZMON = NZ-2
      #conprom 

  inform7begin
   **** CALCULATE analytical solution ***
(STORED VAR U1T IS :FormU:)
(STORED VAR V1T IS :FormV:)
(STORED VAR U1/T IS U1/(U1T+1.e-20))
(STORED VAR V1/T IS V1/(V1T+1.e-20))

  inform7end
    restrt(all)

STOP