TALK=f;RUN(1,1)
DISPLAY
A rectangular plate with a centrally-placed CIRCULAR hole is
extended by uniform equal forces on its left and right
surfaces, which are allowed to distort.
By reason of symmetry, only one quarter of the plate is analysed.
Comparison - a analytical solution (Timoshenko and Goodier).
See also: I. Demirdzic, S. Musafija
"Finite Volume method for stress analysis in Complex Domains"
Int. J. for numerical methods in engineering",
v. 37, 3751-3756 (1994).)
ENDDIS
PHOTON USE
p;;;;
set prop off
msg
msg PRPS contours
msg
cont PRPS z 1 fil;.0001
gr Z 1
pause
cl
msg
msg V1 contours
msg
cont V1 z 1 fil;.0001
vec z 1 col 0
pause
cl
msg
msg U1 contours
msg
cont U1 z 1 fil;.0001
vec z 1 col 0
pause
cl
msg
msg STRX contours
msg
cont STRX z 1 fil;.0001
pause
cl
msg
msg SXTH contours
msg
cont SXTH z 1 fil;.0001
pause
cl
msg
msg SX/T contours
msg
cont SX/T z 1 fil;.0001
pause
cl
msg
msg STRY contours
msg
cont STRY z 1 fil;.0001
pause
cl
msg
msg SYTH contours
msg
cont SYTH z 1 fil;.0001
pause
cl
msg
msg SY/T contours
msg
cont SY/T z 1 fil;.0001
pause
cl
msg
msg STXY contours
msg
cont STXY z 1 fil;.0001
pause
cl
msg
msg SXYT contours
msg
cont SXYT z 1 fil;.0001
pause
cl
msg
msg XY/T contours
msg
cont XY/T z 1 fil;.0001
pause
ENDUSE
************************************************************
Group 1. Run Title and Number
************************************************************
TEXT(2D xy Plate with CIRCULAR hole; s202
libref=202
TITLE
integer(caseno)
caseno = 1
Declarations and settings
REAL(FX,LX,LY,R0,POISSON,YOUNG)
FX= 1.0e4
LX=2.0
LY=LX
R0=0.5
YOUNG = 1/1.0E-7 ! Young's modulus
POISSON=0.3 ! Poisson's ratio
INTEGER(NXBDY1,NYBDY1)
INTEGER(NXBDY2,NYBDY2)
************************************************************
Group 2. Time dependence
STEADY = T
************************************************************
Group 3. X-Direction Grid Spacing
CARTES = T
NXBDY1 = 30
NXBDY2 = 30
NREGX=2
IREGX=1;GRDPWR(X,NXBDY1,1.1*R0,1)
IREGX=2;GRDPWR(X,NXBDY2,1.1*R0-LX,1.08)
************************************************************
Group 4. Y-Direction Grid Spacing
NYBDY1 = 30
NYBDY2 = 30
NREGY=2
IREGY=1;GRDPWR(Y,NYBDY1,1.1*R0,1)
IREGY=2;GRDPWR(Y,NYBDY2,1.1*R0-LY,1.08)
************************************************************
Group 5. Z-Direction Grid Spacing
NZ=1
ZWLAST = 0.001
************************************************************
Group 7. Variables: STOREd,SOLVEd,NAMEd
ONEPHS = T
SOLVE(P1,V1,U1)
STORE(PRPS)
STORE(STRX,STRY,STRZ,STXY)
STORE(EPSY,EPSX,EPSZ)
STORE(R7,TET7,SXTH,SX/T,SYTH,SY/T)
STORE(SXYT,XY/T)
************************************************************
GROUP 8. ITERATION NUMBERS ETC
RESFAC = 1.e-7 !
RESREF(U1)=-1
RESREF(V1)=-1 ! to prevent premature exit from solver
RESREF(P1)=-1
LITER(V1) = 50
LITER(U1) = 50
LITER(P1) = 20
************************************************************
GROUP 9. PROPERTIES
CSG10='Q1' ! material properties
MATFLG=T;NMAT=2
1 7800.0 0.3 473.0 43.0 1.0e-5 1.0e-7
160 7800.0 0.3 473.0 43.0 1.0e-5 1.0e-7
************************************************************
GROUP 11. INITIAL VALUES
fiinit(p1)=0.0
fiinit(u1)=0.0
fiinit(v1)=0.0
fiinit(PRPS)=160
(INITIAL of PRPS is 1 with IF(SQRT(XG^2+YG^2).LE.:R0:))
SPEDAT(SET,MATERIAL, 1,L,T)
************************************************************
GROUP 13. BOUNDARY & SPECIAL SOURCES
PATCH(LEFT,WWALL,1,1,1,NY,1,1,1,1) ! Left-end - fixed
COVAL(Left,U1,1,0.0)
PATCH(Bot,SWALL,1,NX,1,1,1,1,1,1) ! Bottom-end - fixed
COVAL(Bot,V1,1,0.0)
PATCH(dmn,cell,1,NX,1,ny,1,1,1,1)
COVAL(DMN,p1,FIXVAL,0)
if(caseno.eq.1) then ! stress on boundary
real(r02)
r02 = R0**2
***** TOP : V - normal ******
char(fV1,fV2,TV1,RV1)
RV1=(:R02:/(:LY:^2+XG^2))
TV1=ATAN(:LY:/XG)
fV1=:FX:*(-:RV1:*(0.5*COS(2*:TV1:)-
fV2=COS(4*:TV1:))-1.5*:RV1:^2*COS(4*:TV1:))
PATCH(TopV,NORTH,1,NX,NY,NY,1,1,1,1)
(source of V1 at TOPV is COVAL(FIXFLU,:fV1::fV2:))
***** TOP : U - tangential ******
char(fU1,fU2,TU1,RU1)
RU1=(:R02:/(:LY:^2+XU^2))
TU1=ATAN(:LY:/XU)
fU1=:FX:*(-:RU1:*(0.5*SIN(2*:TU1:)+
fU2=SIN(4*:TU1:))+1.5*:RU1:^2*SIN(4*:TU1:))
PATCH(TopU,NORTH,1,NX-1,NY,NY,1,1,1,1)
(source of U1 at TOPU is COVAL(FIXFLU,:fU1::fU2:))
***** RIGHT : U - normal ******
char(fU3,fU4,TU2,RU2)
RU2=(:R02:/(:LX:^2+YG^2))
TU2=ATAN(YG/:LX:)
fU3=:FX:*(1-:RU2:*(1.5*COS(2*:TU2:)+
fU4=COS(4*:TU2:))+1.5*:RU2:^2*COS(4*:TU2:))
PATCH(RIGHTU,EAST,NX,NX,1,NY,1,1,1,1)
(source of U1 at RIGHTU is COVAL(FIXFLU,:fU3::fU4:))
***** RIGHT : V - tangential ******
char(fV3,fV4,TV2,RV2)
RV2=(:R02:/(:LX:^2+YV^2))
TV2=ATAN(YV/:LX:)
fV3=:FX:*(-:RV2:*(0.5*SIN(2*:TV2:)+
fV4=SIN(4*:TV2:))+1.5*:RV2:^2*SIN(4*:TV2:))
PATCH(RIGHTV,EAST,NX,NX,1,NY-1,1,1,1,1)
(source of V1 at RIGHTV is COVAL(FIXFLU,:fV3::fV4:))
else
PATCH(FORY,EAST,NX,NX,1,NY,1,1,1,1) ! Right-end - compression
COVAL(FORY,U1,FIXFLU,FX)
endif
! PLANE-STRAIN, STRZ = 0
SPEDAT(BOUNDARY,ZCONST,R,1.e20)
************************************************************
GROUP 15. TERMINATE SWEEPS
LSWEEP = 400
ISG21=LSWEEP
************************************************************
GROUP 17. RELAXATION
#CONPROM
RELAX(P1 ,LINRLX, 1.000000E+00)
relax(U1,linrlx,1.0)
relax(V1,linrlx,1.0)
************************************************************
GROUP 19. DATA TRANSMITTED TO GROUND
STRA = T
************************************************************
GROUP 23.FIELD PRINT-OUT & PLOT CONTROL
TSTSWP = - 1 ! graphic-mode
IXMON = NX-2
IYMON = 2
IZMON = 1
NYPRIN = 4
NXPRIN = 3
#endpause
#maxmin
#$s003
inform7begin
char(form1,form2)
(STORED VAR R7 IS SQRT(XG^2+YG^2))
(STORED VAR TET7 IS ATAN(YG/(XG+1.e-10)))
form1=:FX:*(1.0-(:R0:/R7)^2*(1.5*COS(2*TET7)+
form2=COS(4*TET7))+1.5*(:R0:/R7)^4*COS(4*TET7))
(STORED VAR SXTH IS :form1::form2: with imat>100)
(STORED VAR SX-T IS STRX-SXTH with imat>100)
(STORED VAR SX/T IS STRX/SXTH with imat>100)
char(form3,form4)
form3=:FX:*(-(:R0:/R7)^2*(0.5*COS(2*TET7)-
form4=COS(4*TET7))-1.5*(:R0:/R7)^4*COS(4*TET7))
(STORED VAR SYTH IS :form3::form4: with imat>100)
(STORED VAR SY-T IS STRY-SYTH with imat>100)
(STORED VAR SY/T IS STRY/SYTH with imat>100)
inform7end
char(ff1,ff2,ff3,Tf1,Rf1)
real(rf2)
rf2=R0**2
Rf1=(:Rf2:/(YV^2+XU^2))
Tf1=ATAN(YV/XU)
ff1=:FX:*(-:Rf1:*(0.5*SIN(2*:Tf1:)+
ff2=SIN(4*:Tf1:))+
ff3=1.5*:Rf1:^2*SIN(4*:Tf1:))
(STORED VAR SXYT IS :ff1::ff2::ff3: with imat>100)
(STORED VAR XY-T IS STXY-SXYT with imat>100)
(STORED VAR XY/T IS STXY/SXYT with imat>100)
restrt(all)
STOP