650 likes | 873 Views
Simulate Geo-technical Problem (2 nd part). Zhou Yongfa Project manager. Elastic-Plastic Problem. 1. Analysis of Elastic-Plastic Problem and Yield Function 2. Simulating method of anchor 3. User Practice: Underground Digging in Mohr-Coulomb Rock Field. E-Plastic stress analysis.
E N D
Simulate Geo-technical Problem(2nd part) Zhou Yongfa Project manager
Elastic-Plastic Problem 1. Analysis of Elastic-Plastic Problem and Yield Function 2. Simulating method of anchor 3. User Practice: Underground Digging in Mohr-Coulomb Rock Field
E-Plastic stress analysis • Calculation of the elastic-plastic stress around pinhole • Use yield function of Mohr-Coulomb
Problem Description A hole in the middle of the elastic plate R0: the radius of the hole P: the pressure around the plate R0=1.0 m P =1600 Pa c =1000 Pa f =0.2
Problem description With Mohr-Coulomb yield function, we have the theory result around the pinhole Stress in elastic zone
Problem description Stress in plastic zone
Theoretical solution Radius of plastic zone Input R0=1.0 m,p=1600 Pa,c=1000 Pa,f=0.2 to above express The theory radius of plastic zone is 0.1293 m。
Mohr-Coulomb Mohr-Coulomb yield function
Solving step • 1.Using solid mechanics formula library generate 2D elastic-plastic program • 2.Modify the PRE parameter • 3.Add Mohr-Coulomb yield function • 4.Modeling and meshing • 5.Calculating and analysis
Using formula lib FEPG Appwizard Solid E_Plastic 2DXY AWZ sdispe q4, ll2, ilu, outcore OK
Solving step • 1.Using solid mechanics formula library generate 2D elastic-plastic program • 2.Modify the PRE parameter • 3.Add Mohr-Coulomb yield function • 4.Modeling and meshing • 5.Calculating and analysis
Modify PRE file matedata nespa aeq4 1.0e10;0.3;0;0;0.2;1.0e3;1.0;3000;0.6; nespa all2 0;100; nespb beq4 1.0e10;0.3;0;0;0.2;1.0e3;1.0;3000;0.6; matedata nespa aeq4 1.0e10;0.3;0;0;0.2;1.0e3;0.0; nespa all2 0;1600; nespb beq4 1.0e10;0.3;0;0;0.2;1.0e3;0.0;
Solving step • 1.Using solid mechanics formula library generate 2D elastic-plastic program • 2.Modify the PRE parameter • 3.Add Mohr-Coulomb yield function • 4.Modeling and meshing • 5.Calculating and analysis
nespa.pde defi disp u v coor x y coef un,vn func exx eyy exy shap %1 %2 gaus %3 $c6 dimension de(3),e(2,2),d(3,3),dv(3),dg(2,2) $c6 dimension dp(3,3),p(4) $c6 external prager Drucker-Prager function $c6 logical filestr $c6 common /gpstr/ gpstr(6,100000),str(6)
nespa.pde … … $cv de(1) = e(1,1) $cv de(2) = e(2,2) $c6 de(3) = e(1,2)+e(2,1) $c6 call getstr(p,str,de,dv,d,dp,1,prag,prager) $c6 if (prag.gt.-p(2)*0.0001) then $c6 do i=1,3 $c6 do j=1,3 $c6 d(i,j)=d(i,j)-dp(i,j) … … Drucker-Prager function
Plastic matrix Calculation Stres.for & plas.for Calculate plastic matrix Dp Calculate plastic stress Codes of yield function lies in plas.for
Plas.for Drucker-Prager function real*8 FUNCTION PRAGER(X,U) implicit real*8 (a-h,o-z) DIMENSION U(4),S(3),x(4) tgo=x(1) q0=x(4) c=x(2)+q0*U(4) PV= X(3) D = (U(1)+U(2))*(1+pv)/3. S(1) = U(1) - D S(2) = U(2) - D S(3) = U(3) Source codes of Drucker-Prager function In plas.for
nespa.pde UK = (u(1)+u(2))*pv-D SJ = (S(1)**2+S(2)**2+UK**2)/2.+S(3)**2 alpha=tgo/dsqrt(9+12*tgo**2) ck=3*c/dsqrt(9+12*tgo**2) PRAGER = DSQRT(SJ) + ALPHA*D*3 - CK RETURN END Source codes of Drucker-Prager function In plas.for
Add M-C function in plas.for Mohr-Coulomb yield function
Add M-C function in plas.for Mohr-Coulomb function real*8 FUNCTION MohrC(X,U) implicit real*8 (a-h,o-z) DIMENSION U(4),X(4),EMSTR(3) emstr(1)=U(1)+U(2) coefb=-U(1)-U(2) coefc=U(1)*U(2)-U(3)**2 emstr(2)=((-coefb)+dsqrt(coefb**2-4*coefc))/2 emstr(3)=((-coefb)-dsqrt(coefb**2-4*coefc))/2 if (emstr(1).lt.emstr(2)) then etemp=emstr(2) emstr(2)=emstr(1) emstr(1)=etemp end if Source codes of Mohr-Coulomb function In plas.for
Add M-C function in plas.for if (emstr(1).lt.emstr(3)) then etemp=emstr(3) emstr(3)=emstr(1) emstr(1)=etemp end if if (emstr(2).lt.emstr(3)) then etemp=emstr(2) emstr(2)=emstr(3) emstr(3)=etemp end if tgo=x(1) c=x(2) cosf=1./dsqrt(1.+tgo*tgo) Source codes of Mohr-Coulomb function In plas.for
Add M-C function in plas.for MohrC=emstr(1)-emstr(3)-2.0*c*cosf MohrC=MohrC+(emstr(1)+emstr(3))*(dsqrt(1-cosf*cosf)) RETURN END Source codes of Mohr-Coulomb function In plas.for
Compile plas.for Right click mouse button on plas.for in FEPG interface Then run fl32.exe /W0 /nologo /c plas.FOR
Modify nespa.pde defi disp u v coor x y coef un,vn func exx eyy exy shap q 4 gaus q $c6 dimension de(3),e(2,2),d(3,3),dv(3),dg(2,2) $c6 dimension dp(3,3),p(4) $c6 external MohrC $c6 logical filestr $c6 common /gpstr/ gpstr(6,100000),str(6) Modify prager to MohrC
Modify nespa.pde … … $cv de(1) = e(1,1) $cv de(2) = e(2,2) $c6 de(3) = e(1,2)+e(2,1) $c6 call getstr(p,str,de,dv,d,dp,1,prag, MohrC) $c6 if (prag.gt.-p(2)*0.0001) then $c6 do i=1,3 $c6 do j=1,3 $c6 d(i,j)=d(i,j)-dp(i,j) … … Modify prager to MohrC
Compile nespa.pde Click run command button in FEPG interface
Compile nespa.pde In command line run pde nespa aeq4
Compile nespa.pde Right click mouse button on nespa in FEPG interface Then run Let.bat nespa
Modify nespb.pde disp sxx,syy,sxy,wp,vep,vyp,did coor x y coef un,vn shap q 4 gaus q mass q vol $c6 dimension de(3),e(2,2),dv(3),dg(2,2) $c6 dimension dp(3,3),d(3,3),p(4) $c6 external MohrC $c6 logical filestr $c6 common /gpstr/ gpstr(6,100000),str(6) Modify prager to MohrC
Modify nespb.pde … … $cv de(1) = e(1,1) $cv de(2) = e(2,2) $c6 de(3) = e(1,2)+e(2,1) $c6 call getstr(p,str,de,dv,d,dp,1,prag, MohrC) $c6 if (prag.gt.-p(2)*0.0001) then $c6 eid=0.0d0 $c6 else $c6 eid=1.0d0 $c6 endif … … Modify prager to MohrC
Compile nespb.pde Click run command button in FEPG interface
Compile nespb.pde In command line run pde nespb beq4
Compile nespb.pde Right click mouse button on nespb in FEPG interface Then run Let.bat nespb
Summarize 1.Modify PRE file modify parameters 2.Modify plas.for add Mohr-Coulomb function 3.Modifynespa.pde modify yield function to M-C for displacement calculation 4.Modify nespb.pde modify yield function to M-C for stress calculation
Summarize 5.Compile plas.for fl32.exe /W0 /nologo /c plas.FOR 6.Compilenespa.pde pde nespa aeq4 7.Compile nespb.pde pde nespb beq4 8.Link to nespa.exe let.bat nespa 9.Link to nespb.exe let.bat nespb
Solving step • 1.Using solid mechanics formula library generate 2D elastic-plastic program • 2.Modify the PRE parameter • 3.Add Mohr-Coulomb yield function • 4.Modeling and meshing • 5.Calculating and analysis
Assign material One kind of material for the plate
Assign boundary conditions Displacement boundary conditions
Meshing Quadrilateral
Solving step • 1.Using solid mechanics formula library generate 2D elastic-plastic program • 2.Modify the PRE parameter • 3.Add Mohr-Coulomb yield function • 4.Modeling and meshing • 5.Calculating and analysis
Result 1st Principal stress 3rd Principal stress
Compare Theory solution and calculate solution
Compare elastic zone plastic zone The calculate Radius of plastic zone D=0.130 m The theory radius of plastic zone is 0.1293 m。
Simulating anchor 2. Simulating method of anchor global coor. o’x’y’ & local coor. x
Equations of anchor Equilibrium equations of anchor in local coordinate system Recast to weak form
GES & GLT Prepare 2 files GES file Descript PDE in local coordinate system GLT file Transform local coordinate system to global coordinate system
GES & GLT GES PDE in local coor. GLT Transform to global Coor. automatic Assembling in global Coor.
GES file trull2 defi disp u,v var u1,v1,u2,v2, refc rx, coor x, func = ex, dord 1,1 node 2 $c6 pe=prmt(1) $c6 pa=prmt(2) $c6 fu=prmt(3) $c6 time=prmt(4) Trull2.ges
GES file $c6 dt=prmt(5) $c6 imate=prmt(6)+0.5 $c6 ielem=prmt(7)+0.5 $c6 nelem=prmt(8)+0.5 shap u= u1=(1.-rx)/2 u2=(1.+rx)/2 v= v1=(1.-rx)/2 v2=(1.+rx)/2 Trull2.ges