亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? p93.f90

?? 比奧固結平面有限元程序
?? F90
字號:
program p93     
!------------------------------------------------------------------------------
!      program 9.4 plane strain consolidation of a Biot elasto-plastic
!      solid using 8-node solid quadrilateral elements
!      coupled to 4-node fluid elements : incremental version
!      Mohr-Coulomb failure criterion : viscoplastic strain method
!------------------------------------------------------------------------------
 use new_library       ; use geometry_lib    ;    implicit none
 integer::nels,nxe,nye,neq,nband,nn,nr,nip,nodof=3,nod=8,nodf=4,nst=4,      &
          ndim=2,ndof, i,k,l,iel,ns,nstep,ntot, nodofs=2 ,iters,limit,inc
 real   ::permx,permy,e,v,det,dtim,theta,phi,snph,coh,psi,cons,p0,tol,      &
          dt,f,dsbar,dq1,dq2,dq3,lode_theta,sigm,pi,dpore,time
 logical::converged    ;  character(len=15) :: element = 'quadrilateral'
!--------------- dynamic arrays----------------------------
 real    ,allocatable :: dee(:,:), points(:,:), coord(:,:), derivf(:,:),    &
                         jac(:,:),kay(:,:),der(:,:),deriv(:,:),weights(:),  &
                         derf(:,:),funf(:), coordf(:,:), bee(:,:), km(:,:), &
                         eld(:), sigma(:), kp(:,:), ke(:,:), g_coord(:,:),  &
                         fun(:),c(:,:), width(:), depth(:), bk(:),stress(:),&
                         vol(:), loads(:), ans(:) ,volf(:,:),tensor(:,:,:), &
                         store_kp(:,:,:),phi0(:),phi1(:),bdylds(:),eps(:),  &
                         evpt(:,:,:),bload(:),eload(:),erate(:),            &
                         evp(:),devp(:),m1(:,:),m2(:,:),m3(:,:),flow(:,:),  &
                         tempdis(:),newdis(:),displ(:)   
 integer, allocatable :: nf(:,:),g(:),num(:),g_num(:,:) , g_g(:,:)            
!-------------------------input and initialisation-----------------------------
  open (10,file='p93.dat',status=    'old',action='read')
  open (11,file='p93.res',status='replace',action='write')                    
  read (10,*) nels,nxe,nye,nn,nip,                                         &
              permx, permy, phi, coh, psi, e, v, dtim, nstep, theta ,      &
              cons , p0 , tol , limit
  ndof=nod*2; ntot=ndof+nodf                                             
  allocate (dee(nst,nst),points(nip,ndim),coord(nod,ndim),derivf(ndim,nodf), &
            jac(ndim,ndim),kay(ndim,ndim),der(ndim,nod),deriv(ndim,nod),     &
            derf(ndim,nodf),funf(nodf),coordf(nodf,ndim),bee(nst,ndof),      &
            km(ndof,ndof),eld(ndof),sigma(nst),kp(nodf,nodf),g_g(ntot,nels), &
            ke(ntot,ntot),fun(nod),c(ndof,nodf),width(nxe+1),phi0(nodf),     &
            depth(nye+1),vol(ndof),nf(nodof,nn), g(ntot), volf(ndof,nodf),   &
            g_coord(ndim,nn),g_num(nod,nels),num(nod),weights(nip),phi1(nodf),&
            store_kp(nodf,nodf,nels),tensor(nst+1,nip,nels),eps(nst),evp(nst),&
            evpt(nst,nip,nels),bload(ndof),eload(ndof),erate(nst),devp(nst),  &
            m1(nst,nst),m2(nst,nst),m3(nst,nst),flow(nst,nst),stress(nst))    
        kay=0.0; kay(1,1)=permx; kay(2,2)=permy
        read (10,*)width , depth  ; pi = acos( -1.); snph=sin(phi*pi/180.)
        dt = 4.*(1.+v)*(1.-2.*v)/(e*(1.-2.*v*snph*snph))
  write(11,'(a,e12.4)') "The viscoplastic timestep is ", dt                
  nf=1; read(10,*) nr ; if(nr>0) read(10,*)(k,nf(:,k),i=1,nr)
  call formnf(nf);neq=maxval(nf)
  call deemat (dee,e,v); call sample(element,points,weights)                   
!--------- loop the elements to find nband and set up global arrays------------
  nband = 0                                                                     
 elements_1: do iel = 1 , nels
             call geometry_8qxv(iel,nxe,width,depth,coord,num)
             inc = 0
             do i=1,8; do k=1,2; inc=inc+1;g(inc)=nf(k,num(i));end do;end do
             do i=1,7,2 ; inc=inc+1 ; g(inc) = nf(3,num(i)); end do
             g_num(:,iel)=num; g_coord(:,num)=transpose(coord); g_g(:,iel) = g
             if(nband<bandwidth(g))nband=bandwidth(g)
 end do elements_1                                                            
    write(11,'(a)') "Global coordinates "
    do k=1,nn;write(11,'(a,i5,a,2e12.4)')"Node",k,"       ",g_coord(:,k);end do
    write(11,'(a)') "Global node numbers "
    do k = 1 , nels; write(11,'(a,i5,a,8i5)')                                 &
                          "Element ",k,"        ",g_num(:,k); end do        
  write(11,'(2(a,i5))')                                                       &
          "There are ",neq ,"  equations and the half-bandwidth is   ",nband
  allocate(bk(neq*(nband+1)),loads(0:neq),ans(0:neq),bdylds(0:neq),           &
            displ(0:neq),newdis(0:neq),tempdis(0:neq))
             bk = .0 ; loads = .0 ; displ = .0 ;  tensor = .0
!-------------- element stiffness integration and assembly--------------------- 
      elements_2:  do iel = 1 , nels 
               num = g_num(: , iel ); coord=transpose(g_coord(:,num)) 
               g = g_g( : , iel )   ; coordf = coord(1 : 7 : 2, : )
               km = .0; c = .0; kp = .0
           gauss_points_1: do i = 1 , nip
              call shape_der(der,points,i);  jac = matmul(der,coord) 
              det = determinant(jac)  ; call invert(jac)
              deriv = matmul(jac,der) ; tensor(1:2,i,iel) = cons
              tensor(4,i,iel) = cons; tensor(5,i,iel) = p0
              call beemat(bee,deriv); vol(:)=bee(1,:)+bee(2,:)                 
              km = km + matmul(matmul(transpose(bee),dee),bee) *det* weights(i)
!----------------------now the fluid contribution------------------------------
               call shape_fun(funf,points,i)
               call shape_der(derf,points,i)  ; derivf=matmul(jac,derf)
         kp=kp+matmul(matmul(transpose(derivf),kay),derivf)*det*weights(i)*dtim
               do l=1,nodf; volf(:,l)=vol(:)*funf(l); end do
               c= c+volf*det*weights(i)               
           end do gauss_points_1
         store_kp( : , : , iel) = kp
         call formke(km,kp,c,ke,theta);call formkv(bk,ke,g,neq)
      end do elements_2
!------------------------reduce left hand side--------------------------------
    call banred(bk,neq)  ; bdylds = .0 ; evpt = .0      ; tempdis = .0        
! --------- enter the time-stepping (load increment) loop---------------------
  time = .0
  time_steps:  do ns = 1 , nstep
       time = time + dtim ; write(11,'(a,e12.4)') "The time is    ", time
                   ans = .0 ; bdylds = .0 ; evpt = .0 ;newdis = .0
      elements_3 : do iel = 1 , nels
                     g = g_g(: , iel ) ; kp = store_kp( : , : , iel)
                     phi0 = loads ( g (ndof + 1  : ))  ! gather
                     phi1 = matmul(kp,phi0)
                     ans(g(ndof+1:))=ans(g(ndof+1:))+ phi1;ans(0)=.0;! scatter
      end do elements_3
!---------------------------- constant loading --------------------------------
           ans(1)=ans(1)-1./24.; ans(3)=ans(3)-1./6. 
           ans(5)=ans(5)-1./12. ; ans(7)=ans(7)-1./6. ; ans(9) = ans(9)-1./24. 
!-------------------------   iteration loop ----------------------------------
        iters = 0
   iterations: do
    iters=iters+1;  loads = ans + bdylds ;   call bacsub(bk,loads)
!------------------------   check convergence  --------------------------------
      newdis = loads ; newdis(nf(3,:))=.0
      call checon(newdis,tempdis,tol,converged)
      if(iters==1)converged=.false. ;  if(converged.or.iters==limit)bdylds=.0
!--------------------- go round the Gauss Points-------------------------------
      elements_4: do iel = 1 , nels
       num = g_num( : , iel ) ; coord = transpose(g_coord( : , num ))
       g = g_g( : , iel )  ;  eld = loads ( g( 1 : ndof) )    ;  bload = .0     
       gauss_points_2 : do i = 1 , nip
          call shape_der ( der,points,i); jac=matmul(der,coord)
          det = determinant(jac)  ;   call invert(jac)
          deriv = matmul(jac,der) ; call beemat (bee,deriv);eps=matmul(bee,eld)
          eps = eps -evpt( : , i , iel)    ;        sigma=matmul(dee,eps)
          stress = sigma + tensor( 1:4 , i , iel )
          call invar(stress,sigm,dsbar,lode_theta)                             
!------------------  check whether yield is violated --------------------------
call mocouf (phi, coh , sigm, dsbar , lode_theta , f )
         if(converged.or.iters==limit) then
         devp=stress 
           else
           if(f>=.0) then
           call mocouq(psi,dsbar,lode_theta,dq1,dq2,dq3)
           call formm(stress,m1,m2,m3)
           flow=f*(m1*dq1+m2*dq2+m3*dq3)     ;   erate=matmul(flow,stress)
           evp=erate*dt; evpt(:,i,iel)=evpt(:,i,iel)+evp; devp=matmul(dee,evp) 
         end if; end if
      if(f>=.0) then
        eload=matmul(transpose(bee),devp) ; bload=bload+eload*det*weights(i)
      end if
     if(converged.or.iters==limit) then
! ------------------- update stresses and porepressures -----------------------
       tensor (1:4 , i , iel ) = stress   ;   dpore = .0
       call shape_fun( funf , points , i )
       do k = 1 , nodf; dpore = dpore + funf(k)*loads(g(k+ndof)) ; end do
       tensor( 5 , i , iel ) = tensor ( 5 , i , iel ) + dpore
     end if
    end do gauss_points_2
!--------------------  compute the total bodyloads vector ---------------------
    bdylds(g( 1 : ndof)) = bdylds( g( 1 : ndof) ) + bload  ; bdylds(0) = .0
  end do elements_4             
  if(converged.or.iters==limit)exit
 end do iterations
 displ = displ + loads
 write(11,'(a,i5,a)') "It took",iters,"  iterations to converge"
 write(11,'(a,e12.4)') "The displacements are : ", displ(1)
 if(iters==limit)stop
end do time_steps
end program p93

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
六月丁香婷婷久久| 亚洲在线中文字幕| 日韩一二三区视频| 欧美区在线观看| 欧美日韩一区二区三区视频| 色婷婷综合久久| 色婷婷国产精品综合在线观看| 91蝌蚪porny| 色域天天综合网| 欧美性生活大片视频| 日韩一区二区免费在线电影 | 青椒成人免费视频| 秋霞午夜av一区二区三区| 麻豆91免费看| 国产成人99久久亚洲综合精品| 国产精品夜夜嗨| 91麻豆免费视频| 欧美日韩大陆在线| 精品久久久久久无| 国产欧美一区视频| 亚洲欧美一区二区三区久本道91| 亚洲一区二区三区四区五区中文| 五月天网站亚洲| 狠狠色丁香久久婷婷综合_中| 粉嫩久久99精品久久久久久夜| 国产精品18久久久久久久网站| 粉嫩高潮美女一区二区三区| 欧美在线看片a免费观看| 91精品国产色综合久久不卡蜜臀 | 亚洲精品videosex极品| 亚洲r级在线视频| 国产精品一区二区在线播放 | 日本vs亚洲vs韩国一区三区二区 | 国产偷国产偷精品高清尤物| 2023国产精华国产精品| 1区2区3区欧美| 免费成人av在线| av一区二区不卡| 日韩一区二区在线观看视频 | 一区二区三区精品| 麻豆精品一区二区三区| 91污片在线观看| 欧美一区二区三区视频免费播放| 国产精品网站在线| 日日欢夜夜爽一区| 99久久99久久精品免费看蜜桃| 91麻豆精品91久久久久久清纯| 国产欧美一区二区精品仙草咪| 亚洲国产一二三| 国产69精品一区二区亚洲孕妇| 欧美喷水一区二区| 亚洲三级在线免费观看| 国产乱码精品1区2区3区| 欧美日韩亚洲丝袜制服| 亚洲欧洲制服丝袜| 国产夫妻精品视频| 日韩免费一区二区| 亚洲国产精品久久一线不卡| 成人18精品视频| 国产亚洲成av人在线观看导航| 日韩av电影免费观看高清完整版| 99免费精品视频| 久久久久国产成人精品亚洲午夜| 日韩中文欧美在线| 在线观看日韩毛片| 一区二区三区加勒比av| 99久久国产综合精品色伊| 久久久久久久综合狠狠综合| 麻豆中文一区二区| 91精品国产综合久久福利软件| 亚洲福利视频一区| 欧美日韩久久不卡| 亚洲自拍偷拍九九九| 91麻豆精品一区二区三区| 中文字幕在线不卡| 色综合天天在线| 亚洲精品中文在线影院| 91在线观看一区二区| 综合久久给合久久狠狠狠97色| 成人精品在线视频观看| 中文在线资源观看网站视频免费不卡 | 国产精品国模大尺度视频| 九九九久久久精品| 亚洲精品一区二区三区99| 蜜臀久久99精品久久久画质超高清| 色哟哟一区二区三区| 亚洲激情网站免费观看| 欧美偷拍一区二区| 亚洲人吸女人奶水| 欧美制服丝袜第一页| 亚洲韩国一区二区三区| 欧美精品高清视频| 精品一区二区影视| 国产欧美一区二区精品忘忧草| 国产成人免费视频网站高清观看视频| 国产丝袜在线精品| 一本一道综合狠狠老| 亚洲福利电影网| 欧美大度的电影原声| 懂色av中文字幕一区二区三区| 日韩美女视频一区二区| 欧美日韩一区二区三区在线看| 免费观看久久久4p| 日本一区二区三区在线不卡| 91偷拍与自偷拍精品| 亚洲成人av中文| 久久综合九色综合欧美98| 91小视频在线| 蜜桃视频一区二区| 亚洲欧洲另类国产综合| 欧美日韩另类国产亚洲欧美一级| 韩国欧美国产1区| 亚洲视频在线一区| 精品久久人人做人人爱| 一本色道久久综合狠狠躁的推荐| 日韩精品成人一区二区在线| 国产精品久久久久影院色老大| 欧美最猛性xxxxx直播| 免费高清成人在线| 亚洲精品乱码久久久久久| 日韩天堂在线观看| 91香蕉视频污在线| 国产呦精品一区二区三区网站| 亚洲精品乱码久久久久久日本蜜臀| 欧美一级二级在线观看| 一本久道中文字幕精品亚洲嫩 | 狠狠色综合日日| 亚洲午夜激情网页| 国产精品无遮挡| 91麻豆精品国产91久久久久久久久| 成人激情动漫在线观看| 精品一区二区在线观看| 亚洲资源中文字幕| 国产精品妹子av| 久久久久国产精品人| 色老头久久综合| 成人午夜看片网址| 国精品**一区二区三区在线蜜桃| 亚洲大片免费看| 一区二区三区成人| 成人欧美一区二区三区白人| 久久久久久久性| 久久综合色综合88| 欧美一级黄色大片| 欧美一区二区成人6969| 欧美日韩一区在线观看| 色一情一伦一子一伦一区| jlzzjlzz欧美大全| 国产99久久久精品| 国产91高潮流白浆在线麻豆| 国产一区999| 国内精品伊人久久久久影院对白| 奇米亚洲午夜久久精品| 午夜精品久久久久久久99水蜜桃 | 久久在线免费观看| 欧美成人a在线| 26uuu亚洲| 国产丝袜美腿一区二区三区| 久久久久久久久99精品| 国产欧美精品一区二区色综合| 久久久www成人免费毛片麻豆 | 欧美在线观看禁18| 欧美无乱码久久久免费午夜一区| 欧美三区在线视频| 欧美猛男超大videosgay| 欧美一级日韩免费不卡| 日韩一区二区精品| 久久久国产综合精品女国产盗摄| 国产精品色呦呦| 亚洲男女毛片无遮挡| 香蕉成人啪国产精品视频综合网| 日韩专区中文字幕一区二区| 免费成人av在线| 成人一区二区三区视频在线观看| 成人av免费在线观看| 在线观看日韩电影| 欧美mv和日韩mv的网站| 国产欧美一区在线| 亚洲国产色一区| 国产一区三区三区| 99视频精品在线| 91精品欧美一区二区三区综合在| 精品国产电影一区二区| 亚洲婷婷综合久久一本伊一区| 一区二区免费看| 精品综合免费视频观看| 91色综合久久久久婷婷| 6080国产精品一区二区| 国产午夜亚洲精品午夜鲁丝片| 亚洲视频电影在线| 美国毛片一区二区三区| 99久久精品情趣| 精品久久人人做人人爽| 亚洲精品国产一区二区三区四区在线| 天天操天天干天天综合网| 国产一区 二区 三区一级| 在线观看免费成人| 国产亚洲精久久久久久| 视频精品一区二区| 色综合视频在线观看|