module MConcrete !混凝土模板

发布日期:[08-12-04 15:24:26] 浏览人次:[]

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.0
|<< << < 1 2 3 > >> >>|
www.mapeng.net 马棚网
www.mapeng.net
文章作者:未知 | 文章来源:网络 | 责任编辑:admin | 发送至邮箱: | 加入收藏:
本文关键字:module  MConcrete  混凝土  模板
本文所属专题:ANSYS技术 
相关资讯
热点资讯
推荐资讯

关于我们 | 站点导航 | 使用帮助 | 友情链接 | 广告服务 | 免责声明 | 新手上路
设为首页 | 加入收藏 | 在线留言 | 马棚网QQ群:{92562572}{102901272}{333259257} | 交流QQ: 客户服务 客户服务 客户服务