免费黄网站在线观看_成人午夜剧场免费观看完整版_多野结衣av一区_亚洲激情在线视频_国产乱码精品一区二区三区亚洲人 _国产成人精品三级_视频一区视频二区视频三区高_一区福利视频_国产成人精品午夜_蜜桃成人365av_国产精品美女久久久久久久_国产伦精品一区二区三区视频免费

您的位置:網站首頁 > Ansys教程

一個混凝土本構的程序

時間:2010-01-29 05:31:44 來源:
module MConcrete !混凝土模板
implicit none
type::typ_Concrete
!混凝土抗拉強度,抗壓強度,初始彈性模量,初始泊松比
   !最終泊松比,初始剪切模量
   real*8 Ft,Fc,E0,MU0,MUU,G0
   !抗拉下降段參數,裂面剪力折減系數
real*8 A1,A2
   !Crack=1,一條裂縫,=2兩條裂縫,AddLoad=1加載,=0,卸載
   integer*4 Crack, AddLoad
   !裂縫角度
   real*8 ANGLE
!t時的應力,主應力,應力增量,t+dt時的應力
real*8 SIG(3),SIGP(3),dSIG(3),Stress(3)
real*8 EPS(3),EPSP(3),dEPS(3),Strain(3)
!非線性指標, 破壞面,最大非線性指標
real*8 Beta,J2f,BetaMax
!彈性本構矩陣,割線本構矩陣,本構矩陣
real*8 De(3,3), Ds(3,3), D(3,3)
!坐標轉換矩陣
real*8 N(3,3)
integer(4) INC, NCycle
end type typ_Concrete
contains

subroutine Con_Initial(C) !初始化混凝土參數
   type(typ_Concrete) :: C
C%Fc=30d6; C%Ft=3d6; C%E0=30d9; C%MU0=0.2d0; C%MUU=0.2d0
C%A1=3000; C%A2=0.5;
C%G0=C%E0/(2.d0*(1.d0+C%MU0))
C%Crack=0; C%Angle=0.d0; C%AddLoad=1
call Con_Get_De(C)
return
end subroutine Con_Initial
  subroutine Con_Get_D(C)
type(typ_Concrete) :: C
   call Con_Get_De(C)
   if(C%Crack<1) then
    call MAXMIN(C%SIG,C%SIGP,C%ANGLE)
   end if
! RCM程序
! if(C%Crack>1) then
! call MAXMIN(C%EPS,C%EPSP,C%ANGLE)
! end if
   call Con_Get_N(C)
   Call Con_Add_Load(C) !判斷是否為加載

    if(C%AddLoad==0) then !如果是卸載
    call Con_UnLoad(C)
    !return
   end if
if(C%AddLoad==1) then
call Con_Get_Beta(C)
if(C%Beta<=C%BetaMax) then
     call Con_UnLoad(C)
else
     call Con_Get_Ds(C)
C%BetaMax=C%Beta
end if
    if(C%Crack<1) then
call MAXMIN(C%Stress,C%SIGP,C%ANGLE)
end if
! RCM程序
! if(C%Crack>1) then
! call MAXMIN(C%EPS,C%EPSP,C%ANGLE)
! end if
call Con_Get_N(C)
call Con_Crack(C)
end if
return
end subroutine Con_Get_D
subroutine Con_Crack(C) !處理裂縫
   type(typ_Concrete) :: C
real*8 EPSC,EPST
   integer(4) :: CrackState(3)
   real*8 :: E1,E2,E12,G
   EPSC=-C%Fc/C%E0*2.d0 !峰值壓應變
   EPST=C%Ft/C%E0 !峰值拉應變
   CrackState=0

C%SIGP=matmul(transpose(C%N),C%Stress)
if(C%SIGP(1)>C%Ft.and.C%Crack<1) then
C%Crack=1
end if
   if(C%SIGP(2)>C%Ft.and.C%Crack<2) then
C%Crack=2
end if
if(C%Crack>0) then
    C%EPSP=matmul(transpose(C%N),(C%EPS+C%dEPS))
    if(C%EPSP(1)<=0.d0) then
     if(abs(C%EPSP(1))<abs(EPSC)) then
      C%SIGP(1)=2.d0*(C%EPSP(1)/EPSC)
1 -(C%EPSP(1)/EPSC)**2
      C%SIGP(1)=-C%SIGP(1)*C%Fc
   else
   C%SIGP(1)=-C%Fc
     end if
    else
     if(C%EPSP(1)<=EPSt) then
     C%SIGP(1)=C%EPSP(1)*C%E0
     else
      C%SIGP(1)=C%Ft*exp(-C%A1*(C%EPSP(1)-EPSt))
      CrackState(1)=1
     end if
    end if
    if(C%EPSP(2)<=0.d0) then
     if(abs(C%EPSP(2))<abs(EPSC)) then
      C%SIGP(2)=2.d0*(C%EPSP(2)/EPSC)
1 -(C%EPSP(2)/EPSC)**2
      C%SIGP(2)=-C%SIGP(2)*C%Fc
      else
       C%SIGP(2)=-C%Fc
      end if
    else
     if(C%EPSP(2)<=EPSt) then
      C%SIGP(2)=C%EPSP(2)*C%E0
      else
      C%SIGP(2)=C%Ft*exp(-C%A1*(C%EPSP(2)-EPSt))
       CrackState(2)=1
      end if
    end if
    C%SIGP(3)=C%G0*C%EPSP(3)*C%A2
    C%Stress=matmul(matinv(transpose(C%N)),C%SIGP)
    C%Strain=C%EPS+C%dEPS
    if(CrackState(1)==1) then
     E1=-0.01*C%E0
    else
     E1=C%E0
    end if

     if(CrackState(2)==1) then
     E2=-0.01*C%E0
    else
     E2=C%E0
     end if
    E12=0;
    G=C%G0*C%A2
    C%D(1,=(/E1,E12,0.d0/)
    C%D(2,=(/E12,E2,0.d0/)
    C%D(3,=(/0.0d0,0.0d0,G/)
    C%D=matmul(C%N,matmul(C%D,transpose(C%N)))
   end if
    return
  end subroutine Con_Crack
   subroutine Con_Get_Ds(C) !得到割線模量
    type(typ_Concrete) :: C
    real*8 Es, MUs
    if(C%Beta<=1.d0) then
    Es=C%E0*(1.d0+sqrt(1.d0-C%Beta))/2.d0
    MUs=C%MU0
     if(C%Beta>0.8d0) then
      MUs=C%MUU-(C%MUU-C%MU0)*
 1 sqrt(1.d0-((C%Beta-0.8d0)/0.2d0)**2)
     end if
     C%Ds(1,=(/1.d0,MUs,0.0d0/)
     C%Ds(2,=(/MUs,1.d0,0.0d0/)
     C%Ds(3,=(/0.d0,0.d0,(1.d0-MUs)/2.d0/)
     C%Ds=C%Ds*Es/(1.d0-MUs**2)
     C%Stress=matmul(C%Ds,(C%EPS+C%dEPS))
     C%Strain=C%EPS+C%dEPS
     C%D=C%De
   else
     C%D=0.d0
     C%Stress=C%SIG
    C%Strain=C%EPS+C%dEPS
    end if
   return
  end subroutine Con_Get_Ds
  subroutine Con_Get_Beta(C) !得到非線性指標,
   !過程參見<<鋼筋混凝土結構非線性有限元分析>>P56
   type(Typ_Concrete) :: C
   real*8 SIGMA(6),S(6)
   real*8 I1,J2,J3,r,sita
   real*8 S_P(3)
   real*8 PI
   real*8 A,B,C1
   PI=atan(1.d0)*4.d0
   SIGMA=0.d0
   SIGMA(1:2)=C%SIG(1:2)+C%dSIG(1:2)/2.d0
   SIGMA(4)=C%SIG(3)+C%dSIG(3)/2.d0
   I1=SIGMA(1)+SIGMA(2)+SIGMA(3)
   S=SIGMA
   S(1)=S(1)-I1/3.d0
   S(2)=S(2)-I1/3.d0
   S(3)=S(3)-I1/3.d0
   J2=-S(1)*S(2)-S(2)*S(3)-S(3)*S(1)+S(4)**2+S(5)**2+S(6)**2
   J3=S(1)*S(2)*S(3)+2.d0*S(4)*S(5)*S(6)-S(1)*S(5)**2-S(2)
 1 *S(6)**2-S(3)*S(4)**2
   r=sqrt(4.d0*J2/3.d0)
   if(r.ne.0.d0) then
     sita=acos(4.d0*J3/r**3)/3.d0
    else
     sita=0.d0
    end if
    S_P(1)=2.d0*sqrt(J2)/sqrt(3.d0)*cos(sita)+I1/3.d0
    S_P(2)=2.d0*sqrt(J2)/sqrt(3.d0)*cos(sita-2.0d0*PI/3.d0)
1 +I1/3.d0
    S_P(3)=2.d0*sqrt(J2)/sqrt(3.d0)*cos(sita+2.0d0*PI/3.d0)
1 +I1/3.d0
    A=1.8148d0/C%Fc**2
    B=(1.180d0+13.2566d0*Cos(sita))/C%Fc
    C1=4.1145d0*I1/C%Fc-1.d0
    C%J2f=((-B+sqrt(B**2-4.d0*A*C1))/(2.d0*A))**2
   C%Beta=sqrt(J2)/sqrt(C%J2f)
   return
  end subroutine Con_Get_Beta
 
   subroutine Con_UnLoad(C) !卸載
   type(typ_Concrete) :: C
    C%D=C%De
    C%Stress=C%SIG+matmul(C%De,C%dEPS)
    C%Strain=C%EPS+C%dEPS
    return
  end subroutine Con_UnLoad
   subroutine Con_Add_Load(C) !判斷加卸載
    type(typ_Concrete) :: C
    real*8 X(3),XP(3),J0,J1
    C%dSIG=matmul(C%De,C%dEPS)
    C%SIGP=matmul(transpose(C%N),C%SIG)
    X=C%SIG+C%dSIG
    XP=matmul(transpose(C%N),X)
    J0=(C%SIGP(1)-C%SIGP(2))**2+C%SIGP(2)**2+C%SIGP(1)**2
    J1=(XP(1)-XP(2))**2+XP(1)**2+XP(2)**2
    if(J0<=J1) then
    C%AddLoad=1
    else
    C%AddLoad=0
    end if
    return
   end subroutine Con_Add_Load
   subroutine Con_Get_N(C) !得到坐標轉換矩陣
   type(typ_Concrete) :: C
   real*8 :: SinA,COSA
   COSA=cos(C%Angle); SINA=sin(C%Angle)
   C%N(1,=(/COSA**2,SINA**2,SINA*COSA/);
    C%N(2,=(/SINA**2,COSA**2,-SINA*COSA/);
   C%N(3,=(/-2d0*COSA*SINA,2.0d0*SINA*COSA,
 1 COSA**2-SINA**2/);
    return
   end subroutine Con_Get_N
   subroutine Con_Get_De(C) !得到彈性本構矩陣
    type(typ_Concrete) :: C
    C%G0=C%E0/(2.d0*(1.d0+C%MU0))
    C%De(1,=(/1.d0,C%MU0,0.d0/)
    C%De(2,=(/C%MU0,1.d0,0.d0/)
    C%De(3,=(/0.d0,0.d0,(1.d0-C%MU0)/2.d0/)
    C%De=C%De*C%E0/(1.d0-2.d0*C%MU0**2)
    return
  end subroutine Con_Get_De
   SUBROUTINE MAXMIN (STRESS,P,AG) !得到主應力(應變方向)
   implicit real*8 (A-H,O-Z)
   real*8 STRESS(3),P(3) !標量, 主方向
   real*8 T(3,3) !轉換矩陣
   PI=atan(1.0d0)*4.0d0 !得到PI
   CC = (STRESS(1)+STRESS(2)) * 0.5
   BB = (STRESS(1)-STRESS(2)) * 0.5
   CR = SQRT(BB**2 + STRESS(3)**2)
   AG=PI/4.d0
   IF(BB.NE.0.0d0) Then
    AG = 0.5d0* ATAN2(-STRESS(3),B
   end if
   SINA=SIN(AG); COSA=COS(AG)
   T(1,=(/COSA**2,SINA**2,SINA*COSA/);
   T(2,=(/SINA**2,COSA**2,-SINA*COSA/);
   T(3,=(/-2d0*COSA*SINA,2.0d0*SINA*COSA,COSA**2-SINA**2/);
   P=matmul(transpose(T),STRESS)
   if(P(1)<P(2)) then
    R=P1; P1=P2; P2=CR;
    AG=PI/2+AG;
    end if
   if(P(1)==0.0.and.P(2)==0.0) then
     AG=0;
   end if
       RETURN
  end subroutine MAXMIN
  function matinv(A) result (
  real(8) ,intent (in)::A(:,
  !real(8) , allocatable::B(:,
  real(8) , pointer::B(:,
  integer(4):: N,I,J,K
  real(8):,T
  real(8), allocatable:S(,JS(
  N=size(A,dim=2)
  allocate(B(N,N))
  allocate(IS(N));allocate(JS(N))
  B=A
  do K=1,N
   D=0.0D0
    do I=K,N
    do J=K,N
      if(abs(B(I,J))>D) then
      D=abs(B(I,J))
      IS(K)=I
      JS(K)=J
     end if
    end do
   end do
   do J=1,N
    T=B(K,J)
    B(K,J)=B(int(IS(K)),J)
    B(int(IS(K)),J)=T
   end do
   do I=1,N
    T=B(I,K)
    B(I,K)=B(I,int(JS(K)))
    B(I,JS(K))=T
    end do
   B(K,K)=1/B(K,K)
   do J=1,N
    if(J.NE.K) then
    B(K,J)=B(K,J)*B(K,K)
    end if
   end do
    do I=1,N
     if(I.NE.K) then
     do J=1,N
      if(J.NE.K) then
       B(I,J)=B(I,J)-B(I,K)*B(K,J)
       end if
      end do
    end if
    end do
    do I=1,N
    if(I.NE.K) then
     B(I,K)=-B(I,K)*B(K,K)
    end if
    end do
  end do
  do K=N,1,-1
    do J=1,N
    T=B(K,J)
    B(K,J)=B(int(JS(K)),J)
    B(int(JS(K)),J)=T
   end do
    do I=1,N
    T=B(I,K)
    B(I,K)=B(I,int(IS(K)))
    B(I,int(IS(K)))=T
    end do
   end do
   return
 end function matinv
end module MConcrete


eeuss一区| 污黄色在线观看| 欧美精品色网| 国自产精品手机在线观看视频| 麻豆影视国产在线观看| 亚洲综合精品久久| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 美国十次了思思久久精品导航| 91在线色戒在线| 精品国产一级毛片| 欧美亚洲免费电影| 九九热播视频在线精品6| 久久精品国产久精国产一老狼| 黄色在线免费观看网站| 精品久久人人做人人爰| 成人日韩欧美| 日韩视频不卡中文| 久久亚洲资源| 日韩风俗一区 二区| 俄罗斯一级**毛片在线播放 | av黄色在线| 欧美日韩一二区| 免费在线观看av| 日韩免费观看高清完整版在线观看| 国产色在线观看| 亚洲国产精品999| 91看片一区| 久久久久北条麻妃免费看| 中文字幕亚洲在线观看| 日本在线精品视频| 围产精品久久久久久久| 国产精品日韩一区二区| 奇米影视在线99精品| 免费一级淫片aaa片毛片a级| 国产亚洲一区二区在线观看| 老司机很黄的视频免费| 精品久久久久久中文字幕| 第三区美女视频在线| 欧美一区二区三区日韩视频| 日韩免费福利视频| 欧美二区乱c黑人| 日韩夫妻性生活xx| 精品一区2区三区| 黑人精品欧美一区二区蜜桃| 国产无套粉嫩白浆内谢的出处| 亚洲精选在线视频| 9色在线视频| 最近2019免费中文字幕视频三| 亚洲国产合集| 国产综合18久久久久久| 成人一二三区视频| 一级免费视频| 91精品国产综合久久精品| 亚洲十八**毛片| 日韩免费观看网站| 久久久久国产精品一区三寸| 国产高清av在线播放| 日韩理论在线观看| 国产原创视频在线观看| 免费不卡欧美自拍视频| 欧美日韩1区| 欧美视频在线播放一区| 色综合久久久久网| 欧美亚洲综合视频| 97人人做人人人难人人做| 成人夜色视频网站在线观看| 中文字幕在线看| 亚洲人成毛片在线播放| 色综合天天综合网中文字幕| av日韩在线看| 日韩欧美在线免费| 欧美电影在线观看网站| 国产精品成人一区二区三区| 91蜜桃在线免费视频| av在线1区2区| 69影院欧美专区视频| 性娇小13――14欧美| 第四色亚洲色图| 337p日本欧洲亚洲大胆色噜噜| 欧美电影在线观看免费| 日本一区高清在线视频| 国产精品视频免费| 成人黄色动漫| 91网站在线看| 日本一区二区成人在线| 色在线视频观看| 成人在线视频电影| 中文字幕一区在线观看视频| 美女18一级毛片一品久道久久综合| 国产日韩在线观看av| 97成人超碰视| 99热99re6国产在线播放| 成人黄色av网站| 欧美激情在线一区二区| 亚洲性受xxx喷奶水| 精品视频高清无人区区二区三区| 国产精品乱码人人做人人爱| 日本不卡网站| 九九九九精品| 日韩欧美中文字幕在线观看| 天堂网av成人| 欧美两根一起进3p做受视频| 亚洲欧美综合图区| 欧美aa在线视频| 成人18在线| 91免费国产视频| 综合久久给合久久狠狠狠97色| 日韩第二十一页| 高清无码一区二区在线观看吞精| 日韩精品专区在线影院重磅| 国户精品久久久久久久久久久不卡| 国产福利在线播放| 欧美高清视频在线播放| av在线不卡免费看| 中国色在线日|韩| 一区二区三区四区国产| 欧美大片免费久久精品三p| 亚洲激情精品| av播放在线观看| 国产精品国产精品国产专区蜜臀ah| 亚洲午夜免费视频| 国产探花一区二区| 成人h动漫在线| 国外成人在线视频| 91麻豆swag| 国产精品蜜月aⅴ在线| 亚洲一区美女| 亚洲精品美女久久| 国产一区二区美女| 小黄鸭精品aⅴ导航网站入口| 亚洲av综合色区| 亚洲网站在线播放| 国产v综合v亚洲欧| 婷婷精品久久久久久久久久不卡| 少妇无码av无码专区在线观看 | 成人av片在线观看| 蜜桃在线视频| 欧美 国产 精品| 亚洲理论在线a中文字幕| 男女视频一区二区| 在线免费av资源| 日本福利视频一区| 久久久国产影院| 综合色天天鬼久久鬼色| 操欧美老女人| 国产视频福利在线| 久久日韩精品| 精品视频中文字幕| 91麻豆蜜桃一区二区三区| 999久久久久久久久6666| 日本在线免费观看视频| 97久久天天综合色天天综合色hd | 日韩高清欧美激情| 亚洲天堂一区二区| 久久久久久久久久久久91| 日韩av片免费在线观看| 黑人巨大精品欧美一区二区免费| 欧美一区免费| 成年网站在线视频网站| 日本日本19xxxⅹhd乱影响| 欧美中在线观看| 欧美中文一区二区三区| 精品无人区卡一卡二卡三乱码免费卡| 日韩一级视频| 欧美h版电影| 久久人人97超碰人人澡爱香蕉| 亚洲欧美综合区自拍另类| 国产精品污污网站在线观看| 伊人久久大香线蕉精品组织观看| 欧美黑人猛交的在线视频| 国产日韩一区二区在线| 成人精品视频99在线观看免费| 欧美tickling网站挠脚心| 91在线porny国产在线看| 日韩欧美中字| 男女视频在线| 成人黄色免费电影| 韩国成人一区| 久久精品成人欧美大片| 午夜久久久久久久久久一区二区| 视频一区二区国产| 久久综合另类图片小说| 超碰porn在线| 国产嫩草在线观看| 久久久久久国产精品免费免费| 按摩亚洲人久久| 欧洲色大大久久| 99re热视频精品| 日韩一级免费| 国产精品丝袜在线播放| 久久综合之合合综合久久| 99精品视频播放| 国产精品一区二区三区四区五区| 中文在线资源观看视频网站免费不卡| 午夜精品国产更新| 国产.欧美.日韩| 欧美国产日本| 欧美jizz19性欧美| 欧美中文字幕精在线不卡| 亚洲mv在线|