TALK=f;RUN(1,1) DISPLAY A rectangular plate with a centrally-placed CIRCULAR hole is extended by uniform equal forces on its Top and Bottom surfaces, which are allowed to distort. By reason of symmetry, only one quarter of the plate is analysed. For calculation is used POLAR coordinates and Boundary Flow Cells. Comparison - a analytical solution (Timoshenko ) Boundary Condition: =================== V ( UR) : --------- Y = RO : StrY = FX/2*(1-RI^2/RO^2) + FX/2*(1 + 3*RI^4/RO^4 - 4*RI^2/RO^2)*COS(2*X) U ( UTeta) : ------------ X = 0, PI/2 : U = 0, Y = RO : StXY = - FX/2 * (1 - 3*RI^4/RO^4 + 2*RI^2/RO^2) *SIN(2*X) Exact Solution: =============== Displacements ------------- V = FX/(2*E)* R* {(1-P) + RI^2/R^2*(1+P) + [(1 - RI^4/R^4)*(1+P) + 4*RI^2/R^2]*COS(2*X) } U = -FX/(2*E)* R* [(1 + RI^4/R^4)*(1+P) + 2*RI^2/R^2*(1-P)]* SIN(2*X) Strains ------- EpsY = FX/(2*E)* {(1-P) - RI^2/R^2*(1+P) + [(1+P)*(1 + 3*RI^4/R^4) - 4*RI^2/R^2]*COS(2*X)} EpsX = FX/(2*E)* {(1-P) + RI^2/R^2*(1+P) - [(1+P)*(1 + 3*RI^4/R^4) - P * 4*RI^2/R^2]*COS(2*X)} EpsZ = - P * FX/(2*E) * [ 2 - 4*RI^2/R^2*COS(2*X) ] D = FX/E*(1-2*P) * [1 - 2*RI^2/R^2*COS(2*X) ] Stress ------ StrY = FX/2*(1-RI^2/R^2) + FX/2*(1 + 3*RI^4/R^4 - 4*RI^2/R^2)* COS(2*X) StrX = FX/2*(1+RI^2/R^2) - FX/2*(1 + 3*RI^4/R^4)*COS(2*X) StXY = - FX/2 * (1 - 3*RI^4/R^4 + 2*RI^2/R^2)*SIN(2*X) StrZ = 0 ENDDIS PHOTON USE p;;;; set prop off msg msg Grid msg 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 V1TH contours msg cont V1TH z 1 fil;.0001 pause cl msg msg V1/T contours msg cont V1/T z 1 fil;.0001 pause cl msg msg U1 contours msg cont U1 z 1 fil;.0001 vec z 1 col 0 pause cl msg msg U1TH contours msg cont U1TH z 1 fil;.0001 pause cl msg msg U1/T contours msg cont U1/T z 1 fil;.0001 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 XYTH contours msg cont XYTH z 1 fil;.0001 pause ENDUSE ************************************************************ Group 1. Run Title and Number ************************************************************ READQ1=T TEXT(Polar Plate with CIRCULAR hole Declarations and settings REAL(RI,RO,POISSON,YOUNG,FX,LR,LTETA,LLX) RI=0.5 ! inner radius RO=2 ! outer radius LR = RO-RI FX= 1.0e4 LTETA=3.1416/2 LLX = LTETA*0.01 YOUNG = 1/(0.5E-11) ! Young's modulus POISSON=0.3 ! Poisson's ratio integer(NXCYL,NYCYL) Grid settings NYCYL =30 NXCYL =20 NZ = 1 integer(CaseDBG) CaseDBG = 0 **** !!! *** ISG59 = 1 ************************************************************ ************************************************************ Group 2. Time dependence STEADY = T ************************************************************ Group 3. X-Direction Grid Spacing CARTES = F NREGX=3 IREGX=1;GRDPWR(X,1,LLX,1.0) IREGX=2;GRDPWR(X,NXCYL,LTETA,1) IREGX=3;GRDPWR(X,1,LLX,1.0) ************************************************************ Group 4. Y-Direction Grid Spacing RINNER = RI - 0.01*LR NREGY=3 IREGY=1;GRDPWR(Y,1,0.01*LR,1.0) IREGY=2;GRDPWR(Y,NYCYL,LR,1.4) IREGY=3;GRDPWR(Y,1,0.01*LR,1.0) ************************************************************ Group 5. Z-Direction Grid Spacing ZWLAST = 0.5E+00 GRDPWR(Z,NZ,1.0,1.0) ! uniform z grid ************************************************************ Group 7. Variables: STOREd,SOLVEd,NAMEd ONEPHS = T SOLVE(P1,V1,U1) STORE(PRPS) STORE(PRPS,DEN1,ENUL,DVO1,DRH1) STORE(EPSX,EPSY,EPSZ) STORE(EXTH,EYTH,EZTH) STORE(STRX,STRY,STXY) STORE(SXTH,SYTH,XYTH) STORE(SX/T,SY/T,XY/T) STORE(P1TH) STORE(U1TH,V1TH,U1/T,V1/T,P1/T) STORE(EX/T,EY/T,EZ/T) ************************************************************ GROUP 8. ITERATION NUMBERS ETC RESFAC=1.e-7 RESREF(V1)=0.0 RESREF(u1)=0.0 LITER(V1) = 40 LITER(U1) = 40 spedat(rlxfac,rlxu1d,r,0.4) spedat(rlxfac,rlxv1d,r,0.4) ************************************************************ 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(PRPS)=0 PATCH(BODY,INIVAL,2,NX-1,2,NY-1,1,1,1,1) INIT(BODY,PRPS,FIXVAL,160) ************************************************************ GROUP 13. BOUNDARY & SPECIAL SOURCES ********* Exact Solution: Stress ******** char(ag2,ag4,av2,av4) real(FX2) FX2=FX/2 ag2=(:RI:/RG)^2 ag4=(:RI:/RG)^4 av2=(:RI:/RV)^2 av4=(:RI:/RV)^4 char(bg,bu) bg=(XG-:LLX:) bu=(XU-:LLX:) char(FSY1,FSY2,FBY1,FBY2, FSX1,FSX2,FSXY1,FSXY2) FSY1=:FX2:*((1-:ag2:)+(1+3*:ag4: FSY2=-4*:ag2:)*COS(2*:bg:)) FBY1=:FX2:*((1-:av2:)+(1+3*:av4: FBY2=-4*:av2:)*COS(2*:bg:)) FSX1=:FX2:*((1+:ag2:)-(1+3*:ag4:) FSX2=*COS(2*:bg:)) FSXY1=-:FX2:*(1-3*:av4:+2*:av2:) FSXY2=*SIN(2*:bu:) (STORED VAR SXTH IS :FSX1::FSX2: with imat>100) (STORED VAR SX/T IS STRX/SXTH with imat>100) (STORED VAR SYTH IS :FSY1::FSY2: with imat>100) (STORED VAR SY/T IS STRY/SYTH with imat>100) (STORED VAR XYTH IS :FSXY1::FSXY2: with imat>100) (STORED VAR XY/T IS STXY/XYTH with imat>100) ****** Polar Source for U **** STORE(PUTH) char(FPOU1,FPOU2) real(FX211) FX211 = FX2*1.e-11 FPOU1=-:FX211:*(1-3*:ag4:+2*:ag2:) FPOU2=*SIN(2*:bu:)/RG (STORED VAR PUTH IS :FPOU1::FPOU2: with imat>100) ********* Exact Solution: Displacement ******** char(FU1,FU2,FV1,FV2,FV3) real(ONEPLP,ONEMNP,FX2E) ONEPLP = 1.0 + POISSON ONEMNP = 1.0 - POISSON FX2E = FX/2/YOUNG FU1=-:FX2E:*RG*(:ONEPLP:*(1+:ag4:)+2*:ag2: FU2=*:ONEMNP:)*SIN(2*:bu:) FV1=:FX2E:*RV*(:ONEMNP:+:av2:*:ONEPLP:+ FV2=((1-:av4:)*:ONEPLP:+4*:av2:) FV3=*COS(2*:bg:)) (STORED VAR U1TH IS :FU1::FU2: with imat>100) (STORED VAR U1/T IS U1/U1TH with imat>100) (STORED VAR V1TH IS :FV1::FV2::FV3: with imat>100) (STORED VAR V1/T IS V1/V1TH with imat>100) ********* Exact Solution: Strains ******** char(FEY1,FEY2,FEX1,FEX2,FEX3,FEZ,FEP) real(FXZ,FXP) FXZ = -POISSON*FX/2/YOUNG FXP = FX/YOUNG*(1-2*POISSON) FEX1=:FX2E:*(:ONEMNP:+:ag2:*:ONEPLP:-(:ONEPLP:* FEX2=(1+3*:ag4:)-4*:ag2:*POISSON) FEX3=*COS(2*:bg:)) FEY1=:FX2E:*(:ONEMNP:-:ag2:*:ONEPLP:+(:ONEPLP:* FEY2=(1+3*:ag4:)-4*:ag2:)*COS(2*:bg:)) FEZ=:FXZ:*(2 - 4*:ag2:*COS(2*:bg:)) FEP=:FXP:*(1 - 2*:ag2:*COS(2*:bg:)) (STORED VAR EXTH IS :FEX1::FEX2::FEX3: with imat>100) (STORED VAR EX/T IS EPSX/EXTH with imat>100) (STORED VAR EYTH IS :FEY1::FEY2: with imat>100) (STORED VAR EY/T IS EPSY/EYTH with imat>100) (STORED VAR EZTH IS :FEZ: with imat>100) (STORED VAR EZ/T IS EPSZ/EZTH with imat>100) (STORED VAR P1TH IS :FEP: with imat>100) (STORED VAR P1/T IS P1/P1TH with imat>100) ************* BC ***************************** PATCH(dmn,cell,1,NX,1,ny,1,1,1,1) COVAL(DMN,p1,FIXVAL,0) --------- V1 (VR) --------------------- PATCH(OUTV,NORTH,2,NX-1,NY-1,NY-1,1,1,1,1) (source of V1 at OUTV is COVAL(FIXFLU,:FBY1::FBY2:)) --------- U1 (VTeta) --------------------- PATCH(LOWX,WEST,1,1,2,ny-1,1,1,1,1) coval(LOWX,U1,1.e6,0.0) PATCH(HIGHX,EAST,NX-1,NX-1,2,ny-1,1,1,1,1) coval(HIGHX,U1,1.e6,0.0) PATCH(OUTU,NORTH,1,NX-1,NY-1,NY-1,1,1,1,1) (source of U1 at OUTU is COVAL(FIXFLU,:FSXY1::FSXY2:)) ************************************************************ GROUP 15. TERMINATE SWEEPS LSWEEP = 400 ISG21 = LSWEEP ENDIT(V1) =0.0 RESREF(V1)=0.0 ENDIT(u1) =0.0 RESREF(u1)=0.0 ************************************************************ GROUP 17. RELAXATION #CONPROM ************************************************************ GROUP 19. DATA TRANSMITTED TO GROUND STRA = T ************************************************************ GROUP 23.FIELD PRINT-OUT & PLOT CONTROL TSTSWP = - 1 ! graphic-mode ISG52 = 3 ! probe & res #maxmin output(den1,n,n,n,n,n,n) output(drh1,n,n,n,n,n,n) output(dvo1,n,n,n,n,n,n) output(enul,n,n,n,n,n,n) output(prps,n,n,n,n,n,n) IXMON = NX/2 IYMON = NY-1 IZMON = 1 ******* RESIDUALS ! ******** if(CaseDBG.NE.0) then LSWEEP = 1 PATCH(BODY_XX,INIVAL,1,NX-1,1,ny,1,1,1,1) (INITIAL of U1 at BODY_XX is :FU1::FU2:) PATCH(BODY_YY,INIVAL,1,NX,1,NY-1,1,1,1,1) (INITIAL of V1 at BODY_YY is :FV1::FV2::FV3:) (stored var v1rs is resi(v1)) (stored var u1rs is resi(u1)) (stored var u1an is anco(u1)) (stored var u1as is asco(u1)) (stored var u1ae is aeco(u1)) (stored var u1aw is awco(u1)) (stored var u1ap is apco(u1)) STORE(DIFU,GRDU,TANU) STORE(POLU) PATCH(BD_YY,CELL,1,NX,1,ny-1,1,1,1,1) (SOURCE of V1 at BD_YY is COVAL(1.e5,:FV1::FV2::FV3:)) PATCH(BD_XX,CELL,1,NX-1,1,ny,1,1,1,1) (SOURCE of U1 at BD_XX is COVAL(1.e5,:FU1::FU2:)) NYPRIN=1 NXPRIN=1 endif STOP