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

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

?? p610.f90

?? 有限元編程第三版附帶源代碼。實用程序多
?? F90
字號:
   program p610      
!-----------------------------------------------------------------------
!      program 6.10 plane strain of an elastic-plastic(Mohr-Coulomb) solid
!      using 8-node quadrilateral elements; viscoplastic strain method
!      construction of an excavation in stages introducing air elements
!------------------------------------------------------------------------
 use new_library      ; use geometry_lib   ;     implicit none
 integer::nels,nxe,nye,neq,nband,nn,nr,nip,nodof=2,nod=8,nst=4,ndof,          &
          i,k,iel,iters,limit,incs,iy,ndim=2,layers,ii,iq,nofix,noexe
 logical::converged          ; character (len=15) :: element='quadrilateral'
 real::es,ea,det,phi,psi,c,gama,                                              &
       dt,f,dsbar,dq1,dq2,dq3,lode_theta,sigm,pi,snph,e,v,epk0,tol             
!------------------------------ dynamic arrays---------------------------------
 real    ,allocatable :: kb(:,:),loads(:),points(:,:),bdylds(:),disps(:,:),   &
                         evpt(:,:,:),oldis(:),width(:),depth(:),dloads(:),    &
                         dee(:,:),coord(:,:),fun(:),jac(:,:),weights(:),      &
                         der(:,:),deriv(:,:),bee(:,:),km(:,:),eld(:),eps(:),  &
                         sigma(:),bload(:),eload(:),erate(:),g_coord(:,:),    &
                         evp(:),devp(:),m1(:,:),m2(:,:),m3(:,:),flow(:,:),    &
                         totd(:),tensor(:,:,:),gc(:),s(:),lod(:,:)   
 integer, allocatable :: nf(:,:) , g(:),  num(:), g_num(:,:) ,                &
                         prop(:) , lnf(:,:) , fixnod(:) , exele(:)             
!------------------------input and initialisation------------------------------
  open (10,file='p610.dat',status=    'old',action='read')
  open (11,file='p610.res',status='replace',action='write')                  
  read (10,*) nxe,nye,nn,nip,incs,limit,tol,layers,epk0,                      &
              ea,es,v,c,phi,psi,gama 
  ndof=nod*nodof   ; pi = acos( -1. )    ; snph = sin(phi*pi/180.)  
 ! calculate the total number of elements
   nels = nxe*nye;   write(11,'(a,i5)')"The total number of elements is ",nels
  allocate (nf(nodof,nn), points(nip,ndim),weights(nip),g_coord(ndim,nn),     &
            depth(nye+1),num(nod),dee(nst,nst),evpt(nst,nip,nels),            &
            width(nxe+1),coord(nod,ndim),fun(nod),prop(nels),                 &
            jac(ndim,ndim),der(ndim,nod),deriv(ndim,nod),g_num(nod,nels),     &
            bee(nst,ndof),km(ndof,ndof),eld(ndof),eps(nst),sigma(nst),        &
            bload(ndof),eload(ndof),erate(nst),evp(nst),devp(nst),g(ndof),    &
            m1(nst,nst),m2(nst,nst),m3(nst,nst),flow(nst,nst),s(nst),         &
            disps(nodof,nn),gc(ndim),tensor(nst,nip,nels),lnf(nodof,nn))
!------ nf is an index array of 1s and 0s : lnf is the local nf  --------------
            nf=1; read(10,*) nr; if(nr>0) read(10,*)(k,nf(:,k),i=1,nr)
            lnf = nf;   call formnf(lnf); neq=maxval(lnf)
            write(11,'(a,i5)')"The total possible number of equations is:",neq
  allocate(totd(0:neq))         ;  read(10,*)  width , depth    
!--------------------- set the element type -----------------------------------
   prop = 1  
!-------- set up the global node numbers and global nodal coordinates ---------
   call fmglob(nxe,nye,g_num)
   call fmcoco(g_num,g_coord,width,depth,nxe,nye)
    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       
    disps = .0;     call sample(element,points,weights)
!--------------- loop the elements to set starting stresses -------------------
        elements_1:   do iel = 1 , nels     
                       num = g_num(:,iel); coord=transpose(g_coord(:,num))
                gauss_points_1: do i=1,nip
                       call shape_fun(fun,points,i); gc = matmul(fun,coord)  
                       tensor(2,i,iel)=gc(2)*gama
                       tensor(1,i,iel)=epk0*tensor(2,i,iel)
                       tensor(4,i,iel)=tensor(1,i,iel) ;  tensor(3,i,iel)=.0
               end do gauss_points_1        
        end do elements_1        
! -----------------------  excavate another layer -----------------------------
  layer_number : do ii = 1 , layers ;write(11,'(a,i5)') "Layer no",ii
!--------- recalculate the number of freedoms neq and half-bandwidth nband ----
          read(10,*)nofix ;   allocate(fixnod(nofix))   
             read(10,*)fixnod ; nf(:,fixnod) = 0 ; lnf = nf 
             call formnf(lnf) ;   neq = maxval(lnf)
             nband = 0
             elements_1a : do iel = 1 , nels
                          num = g_num(:,iel);call num_to_g(num,lnf,g)
                          if(nband<bandwidth(g))nband = bandwidth(g)
             end do elements_1a
      write(11,'(/,3(a,i5))')                                                  &
              "There are ",neq, " freedoms and nband is",nband," in step",ii
allocate(kb(neq,nband+1),loads(0:neq),bdylds(0:neq),oldis(0:neq),dloads(0:neq)) 
           kb=0.0;   loads = .0
!-------------------  specify the elements to be removed ----------------------
    read(10,*)noexe  ; allocate(exele(noexe),lod(ndof,noexe))  
    read(10,*)exele; prop(exele)=0                                             
!----------------------  calculate excavation load ----------------------------
    s = .0;  lod = .0
    elements_2 : do iel = 1 , noexe
       iq = exele(iel) ; bload = .0; eld = .0 ;  num = g_num(:,iq)
       call num_to_g(num,lnf,g);coord = transpose(g_coord(:,num))
       gauss_points_2 : do i = 1 , nip 
          call shape_fun(fun,points,i) 
          call shape_der (der,points,i);  jac = matmul(der,coord) 
          det = determinant(jac)  ;   call invert(jac)
          deriv = matmul(jac,der) ;   call beemat (bee,deriv)           
          s = tensor(:,i,iq) ; eload = matmul(s,bee)
          bload = bload + eload * det * weights(i)
          do k=2,ndof,2;eld(k)=eld(k)+fun(k/2)*det*weights(i)*gama;end do
       end do gauss_points_2
          lod(:,iel) = eld + bload; loads(g)=loads(g)+lod(:,iel);loads(0)=.0
    end do elements_2
!------------------ element stiffness integration and assembly-----------------
 elements_3: do iel = 1 , nels
              if(prop(iel)==0) e = ea
              if(prop(iel)==1) e = es
              km = .0; eld = .0; call deemat(dee,e,v)
              num=g_num(:,iel);call num_to_g(num,lnf,g)
              coord = transpose(g_coord(: , num))
              gauss_points_3: 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)           
               km = km + matmul(matmul(transpose(bee),dee),bee) *det* weights(i)
              end do gauss_points_3   
   call formkb (kb,km,g)
 end do elements_3 
!--------------- factorise l.h.s.  ------------------------------------------- 
          call cholin(kb)                                                  
!------------------ factor excavation load by incs----------------------------
     write(11,'(a,i5,a,e12.4)')                                                &
             "The total gravity load in lift", ii, " is" , sum(loads)
       loads = loads / incs
!------------ apply excavation loads incrementally ----------------------------
    load_increments: do iy=1,incs
              iters=0; oldis =.0; bdylds=.0; evpt=.0
!--------------------------   iteration loop ----------------------------------
   iterations: do
    iters=iters+1;  dloads = .0; dloads= loads+bdylds ;  call chobac(kb,dloads)
!--------------------------   check convergence -------------------------------
      call checon(dloads,oldis,tol,converged)
      if(iters==1)converged=.false. 
      if(converged.or.iters==limit) then
        bdylds=.0  
          do iq=1,nn;do i=1,nodof     
           if(lnf(i,iq)/=0)disps(i,iq) = disps(i,iq) + dloads(lnf(i,iq))
          end do;end do
      end if
!------------------------ go round the Gauss Points ---------------------------
 elements_4: do iel = 1 , nels
              if(prop(iel)==0) then;e = ea;dt=1.e10; end if
              if(prop(iel)==1) then
                e = es;dt=(4.*(1.+v)*(1.-2.*v))/(e*(1.-2.*v+snph*snph))
              end if
              bload = .0; call deemat(dee,e,v)
              num=g_num(:,iel);call num_to_g(num,lnf,g)
              coord = transpose(g_coord(: , num)) ;   eld = dloads(g)
              gauss_points_4: 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)
               s = tensor(:,i,iel) + matmul(dee,eps)
!---------------------- air element stresses are zero -------------------------
               if(prop(iel)==0) s = .0
               call invar(s,sigm,dsbar,lode_theta)
!--------------------  check whether yield is violated ------------------------
         call mocouf (phi, c , sigm, dsbar , lode_theta , f )
         if(converged.or.iters==limit) then
         devp=s 
           else
           if(f>=.0) then
           call mocouq(psi,dsbar,lode_theta,dq1,dq2,dq3);call formm(s,m1,m2,m3)
           flow=f*(m1*dq1+m2*dq2+m3*dq3)     ;   erate=matmul(flow,s)
           evp=erate*dt; evpt(:,i,iel)=evpt(:,i,iel)+evp; devp=matmul(dee,evp) 
         end if; end if
      if(f>=.0) then
        eload=matmul(devp,bee)   ; bload=bload+eload*det*weights(i)
      end if
!--------------- if appropriate update the Gauss point stresses ---------------
      if(converged.or.iters==limit) tensor(:,i,iel) = s
    end do gauss_points_4
!-------------------   compute the total bodyloads vector ---------------------
    bdylds( g ) = bdylds( g ) + bload      ; bdylds(0) = .0
  end do elements_4             
  if(converged.or.iters==limit)exit
 end do iterations
 write(11,'(2(a,i5))') "Lift number",ii," gravity load increment",iy
 write(11,'(a,i5,a)') "It took ",iters, "  iterations to converge"
 if(iy==incs.or.iters==limit)then
     write(11,'(a)') "The displacements are :"
     write(11,'(5e12.4)')disps(1,61),disps(2,61),disps(1,37),disps(2,37) 
 end if
 if(iters==limit)stop
end do load_increments
deallocate(kb,loads,bdylds,oldis,dloads,fixnod,exele,lod)
end do layer_number
end program p610

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线不卡一卡二卡三卡四卡| 一区二区三区四区在线| 在线观看亚洲精品| 99热这里都是精品| 成人a区在线观看| 97久久精品人人做人人爽50路| 国产伦精品一区二区三区免费迷 | 美女一区二区在线观看| 婷婷成人激情在线网| 日韩1区2区日韩1区2区| 日本欧美一区二区| 美女视频黄频大全不卡视频在线播放 | 在线精品视频免费观看| 91麻豆蜜桃一区二区三区| 在线亚洲免费视频| 欧美日免费三级在线| 欧美剧情电影在线观看完整版免费励志电影 | 久久久天堂av| 国产日韩欧美精品综合| 日韩一区日韩二区| 亚洲中国最大av网站| 亚洲电影你懂得| 老司机精品视频线观看86| 国产一区二区三区四| 丁香激情综合五月| 91成人在线精品| 日韩一级在线观看| 国产精品你懂的在线欣赏| 亚洲激情自拍视频| 日韩精品电影在线| 成人av在线一区二区三区| 一本久久a久久精品亚洲| 91精品视频网| 欧美激情一区三区| 亚洲第一搞黄网站| 国产一区二区三区蝌蚪| 91看片淫黄大片一级在线观看| 欧美久久免费观看| 欧美高清在线一区| 天天综合网天天综合色| 福利一区二区在线观看| 在线不卡免费欧美| 中文字幕一区二区三区精华液| 午夜视频在线观看一区二区三区 | 国产日韩欧美精品电影三级在线| 国产精品国产三级国产aⅴ中文| 亚洲综合男人的天堂| 黑人巨大精品欧美黑白配亚洲| av欧美精品.com| 欧美成人猛片aaaaaaa| 亚洲精品欧美综合四区| 国产精品资源在线| 欧美日产在线观看| 中文字幕永久在线不卡| 卡一卡二国产精品| 欧美久久一区二区| 一区二区三区中文在线| 成人精品国产免费网站| 26uuu国产日韩综合| 午夜国产不卡在线观看视频| av在线播放不卡| 国产色产综合色产在线视频| 亚洲午夜av在线| 色中色一区二区| 国产精品―色哟哟| 国产黑丝在线一区二区三区| 91精品国产综合久久久久久 | 秋霞影院一区二区| 日本韩国欧美国产| 亚洲欧洲制服丝袜| 99re视频精品| 亚洲日本一区二区| 成人av午夜电影| 日本一区二区高清| 成人美女视频在线观看| 国产片一区二区| 国产精品一二三四区| 精品成a人在线观看| 经典三级视频一区| 精品国产乱子伦一区| 精品一区二区久久久| 2019国产精品| 国产精品综合久久| 国产亚洲精品aa| 成人免费视频国产在线观看| 中文一区二区在线观看| 成人18视频在线播放| 亚洲精品久久7777| 在线观看国产精品网站| 亚洲一区二区三区中文字幕在线| 欧美色综合网站| 日日夜夜一区二区| 欧美r级在线观看| 粉嫩久久99精品久久久久久夜| 久久久国产一区二区三区四区小说 | 色综合婷婷久久| 一区二区久久久| 91精品国产入口在线| 国产最新精品精品你懂的| 国产清纯白嫩初高生在线观看91| 99久久精品国产一区二区三区 | 蜜臀av在线播放一区二区三区| 欧美精品在线观看一区二区| 老汉av免费一区二区三区| 国产亚洲短视频| 色偷偷88欧美精品久久久| 日韩电影在线一区| 久久精品日韩一区二区三区| 91碰在线视频| 免费成人你懂的| 欧美国产欧美综合| 欧美手机在线视频| 国产一区二区三区免费看 | 午夜在线电影亚洲一区| 日韩视频免费观看高清完整版在线观看| 国产精品综合二区| 亚洲最大成人网4388xx| 国产午夜精品理论片a级大结局| 色偷偷成人一区二区三区91| 韩国av一区二区三区| 一区二区三区在线免费视频 | 国产日韩欧美一区二区三区综合| 色94色欧美sute亚洲13| 老司机午夜精品99久久| 一区二区在线观看视频| 久久综合久色欧美综合狠狠| 91精品办公室少妇高潮对白| 极品美女销魂一区二区三区| 亚洲综合精品久久| 亚洲欧洲日产国产综合网| 日韩免费性生活视频播放| 在线日韩一区二区| 国产一区二区看久久| 日韩精品免费专区| 亚洲在线免费播放| 日韩一区有码在线| 久久精品一区八戒影视| 欧美一级片免费看| 欧美日韩免费不卡视频一区二区三区| 成人午夜精品一区二区三区| 全部av―极品视觉盛宴亚洲| 一区二区三区免费| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久久久九九视频| 欧美成人乱码一区二区三区| 欧美欧美午夜aⅴ在线观看| 91浏览器打开| 色先锋资源久久综合| 91丨九色丨蝌蚪富婆spa| 成人av午夜影院| caoporm超碰国产精品| 国产69精品一区二区亚洲孕妇| 国产在线精品一区二区三区不卡| 日本中文字幕一区二区有限公司| 亚洲成人手机在线| 亚洲www啪成人一区二区麻豆 | 欧美精品日韩综合在线| 欧美综合欧美视频| 欧美日韩成人综合在线一区二区| 97国产一区二区| 在线欧美日韩精品| 欧美日韩一区小说| 9191成人精品久久| 日韩欧美在线观看一区二区三区| 日韩午夜精品电影| 精品少妇一区二区| 日本一区二区视频在线| 国产精品免费丝袜| 综合久久久久综合| 亚洲一区二区美女| 肉色丝袜一区二区| 国产精品1024| 99精品久久只有精品| 91捆绑美女网站| 欧美日本精品一区二区三区| 日韩视频免费观看高清完整版 | 日韩精品资源二区在线| 精品国产乱码久久久久久牛牛 | 在线观看日韩av先锋影音电影院| 欧美日韩夫妻久久| 久久婷婷一区二区三区| 亚洲同性同志一二三专区| 亚洲电影中文字幕在线观看| 久久国产视频网| 成人av影院在线| 制服丝袜一区二区三区| 国产日韩av一区二区| 亚洲自拍偷拍图区| 黑人巨大精品欧美黑白配亚洲| 白白色 亚洲乱淫| 欧美一区二区三区在线看| 国产嫩草影院久久久久| 午夜精品影院在线观看| 国产成人精品午夜视频免费| 欧美三区在线视频| 久久久另类综合| 亚洲成人免费观看| 国产福利视频一区二区三区| 欧美日韩久久久| 国产精品国产三级国产aⅴ入口 |