📄 hscclt.cpp
字号:
double fthdivt;
double ftrdivt;
double fcrdivt;
double xxyytemp1,xxyytemp2;
if(isub==1) //按过镇海建议
{
ccstress=fc/(1.0+18.0*pow(T/1000,5.1)); //混凝土高温受压峰值应力;
ctstress=0.0-ccstress*0.1; //混凝土的高温受拉峰值应力;
cpt=cp*(1.0+5.0*pow(T/1000,1.7)); //混凝土高温峰值应力所对应的应变;
E0tt=ccstress/cpt*2.2; //过镇海的书,p25式(2-9);
ceptt=ctstress/E0tt; //混凝土的受拉峰值应变;
if(Estrain<=ceutt) //混凝土拉裂;
N=0.0;
if(Estrain>=ceutt && Estrain<=ceptt)
{
if(T<=650.0)
{
N=-ctstress/(ceutt-ceptt)*56.0*T/1000.0/1000.0/1000.0;
N=N+ctstress/(ceutt-ceptt)/(ceutt-ceptt)*((-1.0)*Estrain/cpt*cp*5.0*1.7*pow(T/1000.0,0.7)/1000.0*(ceutt-ceptt)-1.0*(ceutt-Estrain)*(-1.0)*(-0.1)/2.2*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7));
N=N+(-0.1)*(ceutt-Estrain)/(ceutt-ceptt)*fc*(-5.1*18.0*pow(T/1000.0,4.1)/1000.0)/(1.0+18.0*pow(T/1000.0,5.1))/(1.0+18.0*pow(T/1000.0,5.1));
}
if(T>650.0)
{
N=ctstress/(ceutt-ceptt)/(ceutt-ceptt)*((-1.0)*Estrain/cpt*cp*5.0*1.7*pow(T/1000.0,0.7)/1000.0*(ceutt-ceptt)-1.0*(ceutt-Estrain)*(-1.0)*(-0.1)/2.2*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7));
N=N+(-0.1)*(ceutt-Estrain)/(ceutt-ceptt)*fc*(-5.1*18.0*pow(T/1000.0,4.1)/1000.0)/(1.0+18.0*pow(T/1000.0,5.1))/(1.0+18.0*pow(T/1000.0,5.1));
}
if(fabs(ceutt-ceptt)<0.00003)
N=0.0;
}
if(Estrain>=ceptt && Estrain<=0.0)
{
N=2.2*Estrain/cpt/cpt*(-fc*18.0*5.1/1000.0*pow(T/1000.0,4.1)/(1.0+18.0*pow(T/1000.0,5.1))/(1.0+18.0*pow(T/1000.0,5.1))*cpt-ccstress*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7));
N=N+E0tt*Estrain/cpt*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7);
if(T<=650.0)
{
N=N+E0tt*56.0*T/1000.0/1000.0/1000.0;
}
}
if(Estrain<=ceutt) //混凝土拉裂;
{
N=0;
}
if(Estrain>=0 && Estrain<=cpt) //混凝土受压
{
fsdives=ccstress*(2.2/cpt-2.8*Estrain/cpt/cpt+0.6*Estrain*Estrain/cpt/cpt/cpt);
Hstress=1.0/(1.0+fsdives*((72.0*T*T/1000/1000.0-T/1000.0)/1000.0/fc+60.0*sqrt(time0/60.0/120.0)*(exp(6.0*T/1000.0)-1.0)/ccstress/1000000.0));
fsdivt=fc/(1.0+18.0*pow(T/1000.0,5.1))/(1.0+18.0*pow(T/1000.0,5.1))*(0.0-18.0*5.1/1000.0*pow(T/1000.0,4.1))*(2.2*Estrain/cpt-1.4*Estrain*Estrain/cpt/cpt+0.2*Estrain*Estrain*Estrain/cpt/cpt/cpt);
fsdivt=fsdivt+ccstress*(-2.2*Estrain/cpt/cpt-1.4*Estrain*Estrain*(-2.0)/cpt/cpt/cpt-0.6*Estrain*Estrain*Estrain/cpt/cpt/cpt/cpt)*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7);
if(T<=650.0)
{
fthdivt=56.0*T/1000.0/1000.0/1000.0;
}
if(T>=650.0)
{
fthdivt=0.0;
}
//混凝土瞬态热应变对温度的导数;
ftrdivt=Estress/fc*(72.0*2.0*T/1000.0/1000.0-1.0/1000.0)/1000.0;
//混凝土高温蠕变对温度的导数;
fcrdivt=18.0*5.1*pow(T/1000.0,4.1)/1000.0/fc*Estress*sqrt(time0/60.0/120.0)*(exp(6.0*T/1000.0)-1.0)*60.0/1000000.0;
fcrdivt=fcrdivt+Estress/ccstress*sqrt(time0/60.0/120.0)*exp(6.0*T/1000.0)*6.0/1000.0*60.0/1000000.0;
N=(fsdivt+fsdives*(fthdivt-ftrdivt-fcrdivt))*Hstress;
}
if(Estrain>=cpt)
{
fsdives=ccstress*((0.8*(Estrain/cpt-1.0)*(Estrain/cpt-1.0)+Estrain/cpt)/cpt-Estrain/cpt*(1.6*(Estrain/cpt-1.0)/cpt+1.0/cpt))/((0.8*(Estrain/cpt-1.0)*(Estrain/cpt-1.0)+Estrain/cpt)*(0.8*(Estrain/cpt-1.0)*(Estrain/cpt-1.0)+Estrain/cpt));
Hstress=1.0/(1.0+fsdives*((72.0*T*T/1000/1000.0-T/1000.0)/1000.0/fc+60.0*sqrt(time0/60.0/120.0)*(exp(6.0*T/1000.0)-1.0)/ccstress/1000000.0));
fsdivt=fc*(-18.0)*5.1*pow(T/1000.0,4.1)/1000.0/(1.0+18.0*pow(T/1000.0,5.1))/(1.0+18.0*pow(T/1000.0,5.1))*Estrain*cpt/(0.8*(Estrain-cpt)*(Estrain-cpt)+Estrain*cpt);
fsdivt=fsdivt+ccstress*(Estrain*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7)*(0.8*(Estrain-cpt)*(Estrain-cpt)+Estrain*cpt)-Estrain*cpt*(0.8*2.0*(Estrain-cpt)*(-1.0)*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7)+Estrain*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7)))/(0.8*(Estrain-cpt)*(Estrain-cpt)+Estrain*cpt)/(0.8*(Estrain-cpt)*(Estrain-cpt)+Estrain*cpt);
if(T<=650.0) //(2-1)
{
fthdivt=56.0*T/1000.0/1000.0/1000.0;
}
if(T>=650.0)
{
fthdivt=0.0;
}
//混凝土瞬态热应变对温度的导数;
ftrdivt=Estress/fc*(72.0*2.0*T/1000.0/1000.0-1.0/1000.0)/1000.0;
//混凝土高温蠕变对温度的导数;
fcrdivt=18.0*5.1*pow(T/1000.0,4.1)/1000.0/fc*Estress*sqrt(time0/60.0/120.0)*(exp(6.0*T/1000.0)-1.0)*60.0/1000000.0;
fcrdivt=fcrdivt+Estress/ccstress*sqrt(time0/60.0/120.0)*exp(6.0*T/1000.0)*6.0/1000.0*60.0/1000000.0;
N=(fsdivt+fsdives*(fthdivt-ftrdivt-fcrdivt))*Hstress;
}
}
if(isub==2) //按Lie建议公式
{
if(T<=450.0)
{
ccstress=fc;
}
if(T>=450.0 && T<=874.0)
{
ccstress=fc*(2.011-2.353*(T-20.0)/1000.0);
}
if(T>=874.0)
{
ccstress=0.0;
}
ctstress=0.0-ccstress*0.1; //混凝土的高温受拉峰值应力;
cpt=0.0025+(6.0*T+0.04*T*T)/1000000.0; //混凝土高温峰值应力所对应的应变;
E0tt=ccstress/cpt*2.0; //过镇海的书,p25式(2-9),原点切线模量;
if(T<874.0)
{
ceptt=-0.1/2.0*cpt; //混凝土的受拉峰值应变;
if(Estrain<=ceutt) //混凝土拉裂;
{
N=0.0;
}
if(Estrain>=ceutt && Estrain<=ceptt)
{
if(T<=450.0)
{
N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
N=N+ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(-1.0)*(ceutt-Estrain)*(-1.0)*(-0.1)/2.0*(6.0+0.08*T)/1000000.0;
}
if(T>450.0 && T<=650.0)
{
N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
N=N+ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(-1.0)*(ceutt-Estrain)*(-1.0)*(-0.1)/2.0*(6.0+0.08*T)/1000000.0;
N=N-fc*0.1*(-2.353/1000.0)*(ceutt-Estrain)/(ceutt-ceptt);
}
if(T>650.0 && T<=874.0)
{
N=ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(-1.0)*(ceutt-Estrain)*(-1.0)*(-0.1)/2.0*(6.0+0.08*T)/1000000.0;
N=N-0.1*fc*(-2.353/1000.0)*(ceutt-Estrain)/(ceutt-ceptt);
}
if(fabs(ceutt-ceptt)<0.00003)
{
N=0.0;
}
}
if(Estrain>=ceptt && Estrain<=0.0)
{
if(T<=450.0)
{
N=E0tt*(0.008*2.0*T+6.0)/1000000.0+2.0*Estrain*fc/cpt/cpt*(-1.0)*(6.0+0.04*2.0*T)/1000000.0;
}
if(T>450.0 && T<=650.0)
{
N=E0tt*(0.008*2.0*T+6.0)/1000000.0;
N=N+2.0*Estrain/cpt/cpt*(fc*(-2.353/1000.0)*cpt-ccstress*(6.0+0.04*2.0*T)/1000000.0);
}
if(T>650.0 && T<=874.0)
{
N=2.0*Estrain/cpt/cpt*(fc*(-2.353/1000.0)*cpt-ccstress*(6.0+0.04*2.0*T)/1000000.0);
}
if(T>=874.0)
{
N=0.0;
}
}
if(Estrain>=0 && Estrain<=cpt) //混凝土受压
{
Hstress=1.0;
if(T<=650.0)
{
N=-ccstress*2.0*(cpt-Estrain)/cpt*(-1.0)/cpt*(0.008*2.0*T+6.0)/1000000.0; //fdives*fthdivT
}
if(T>650.0)
{
N=0.0; //fdives*fthdivT
}
xxyytemp2=N;
if(T<=450.0)//应力对温度求导;
{
N=xxyytemp2-ccstress/cpt/cpt/cpt/cpt*(cpt*cpt*2.0*(cpt-Estrain)*(6.0+0.04*2.0*T)/1000000.0-(cpt-Estrain)*(cpt-Estrain)*2.0*cpt*(6.0+0.04*2.0*T)/1000000.0);//fdivT
}
if(T>450.0 && T<=874.0)
{
N=xxyytemp2-ccstress/cpt/cpt/cpt/cpt*(cpt*cpt*2.0*(cpt-Estrain)*(6.0+0.04*2.0*T)/1000000.0-(cpt-Estrain)*(cpt-Estrain)*2.0*cpt*(6.0+0.04*2.0*T)/1000000.0);//fdivT
N=xxyytemp2+(1.0-(cpt-Estrain)*(cpt-Estrain)/cpt/cpt)*fc*(-2.353/1000.0);// fdivT
}
if(T>=874.0)
{
N=0.0;
}
}
if(Estrain>=cpt)
{
Hstress=1.0;
if(T<=650.0)
{
N=-ccstress*2.0/9.0/cpt/cpt*(Estrain-cpt)*Hstress*(0.008*2.0*T+6.0)/1000000.0;
}
if(T>650.0)
{
N=0.0;
}
xxyytemp2=N;
if(T<=450.0)
{
N=xxyytemp2-ccstress/3.0/3.0/3.0/3.0/cpt/cpt/cpt/cpt*(2.0*(Estrain-cpt)*(-1.0)*3.0*3.0*cpt*cpt*(6.0+0.04*2.0*T)/1000000.0-(Estrain-cpt)*(Estrain-cpt)*2.0*3.0*cpt*3.0*(6.0+0.04*2.0*T)/1000000.0);
}
if(T>450.0 && T<=874.0)
{
N=xxyytemp2-ccstress/3.0/3.0/3.0/3.0/cpt/cpt/cpt/cpt*(2.0*(Estrain-cpt)*(-1.0)*3.0*3.0*cpt*cpt*(6.0+0.04*2.0*T)/1000000.0-(Estrain-cpt)*(Estrain-cpt)*2.0*3.0*cpt*3.0*(6.0+0.04*2.0*T)/1000000.0);
N=N+fc*(-2.353/1000.0)*(1.0-(Estrain-cpt)*(Estrain-cpt)/3.0/3.0/cpt/cpt);
}
if(T>=874.0)
{
N=0.0;
}
}
}
if(T>=874.0)
{
N=0.0;
}
}
if(isub==3) //按Kodur建议HSC公式
{
if(T<20.0)
ccstress=fc;
else if(T>=20.0 && T<100.0)
ccstress=fc*(1.0-0.003125*(T-20.0));
else if(T>=100.0 && T<400.0)
ccstress=0.75*fc;
else if(T>=400 && T<=917.24)
ccstress=fc*(1.33-0.00145*T);
else
ccstress=0.0;
if(T<917.24)
{
ctstress=0.0-ccstress*0.1; //混凝土的高温受拉峰值应力
//混凝土高温峰值应力所对应的应变
cpt=0.0018+(6.7*fc/1E6+6*T+0.03*T*T)/1000000.0;
//过镇海的书,p25式(2-9),原点切线模量
E0tt=ccstress/cpt*(2.28-0.012*fc/1000000.0);
ceptt=ctstress/E0tt; //混凝土的受拉峰值应变
xxyytemp1=2.28-0.012*fc/1000000.0;
ceptt=(-0.1)*cpt/xxyytemp1; //混凝土的受拉峰值应变
if(Estrain<=ceutt) //混凝土拉裂
{
N=0.0;
}
if(Estrain>ceutt && Estrain<=ceptt)
{
if(T<20.0)
{
N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
N=N-ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(-1.0)*(ceutt-Estrain)*(-0.1)/xxyytemp1*(6.0+0.03*2*T)/1000000.0;
}
if(T>=20.0 && T<100.0)
{
N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
N=N-ctstress*(-1.0)/(ceutt-ceptt)/(ceutt-ceptt)*(ceutt-Estrain)*(-0.1)/xxyytemp1*(6.0+0.03*2*T)/1000000.0;
N=N+fc*(-0.1)*(-0.003125)*(ceutt-Estrain)/(ceutt-ceptt);
}
if(T>=100.0 && T<400.0)
{
N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
N=N-ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(-1.0)*(ceutt-Estrain)*(-0.1)/xxyytemp1*(6.0+0.03*2*T)/1000000.0;
}
if(T>=400.0 && T<650.0)
{
N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
N=N-ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(ceutt-Estrain)*(-0.1)/xxyytemp1*(6.0+0.06*T)/1000000.0;
N=N+fc*(-0.1)*(-0.00145)*(ceutt-Estrain)/(ceutt-ceptt);
}
if(T>=650.0 && T<=917.24)
{
N=N-ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(ceutt-Estrain)*(-0.1)/xxyytemp1*(6.0+0.06*T)/1000000.0;
N=N+fc*(-0.1)*(-0.00145)*(ceutt-Estrain)/(ceutt-ceptt);
}
if(fabs(ceutt-ceptt)<0.00003)
{
N=0.0;
}
}
if(Estrain>=ceptt && Estrain<=0.0)
{
if(T<20.0)
{
N=E0tt*(0.008*2.0*T+6.0)/1000000.0;
N=N+Estrain*xxyytemp1*(-ccstress*(6.0+0.03*2*T)/1000000.0)/cpt/cpt;
}
if(T>=20.0 && T<100.0)
{
N=E0tt*(0.008*2.0*T+6.0)/1000000.0;
N=N+Estrain*xxyytemp1*(fc*(-0.003125)*cpt-ccstress*(6.0+0.03*2*T)/1000000.0)/cpt/cpt;
}
if(T>=100.0 && T<400.0)
{
N=E0tt*(0.008*2.0*T+6.0)/1000000.0;
N=Estrain*xxyytemp1*ccstress*(-1.0)*(6.0+0.03*2.0*T)/1000000.0/cpt/cpt;
}
if(T>=400.0 && T<650.0)
{
N=E0tt*(0.008*2.0*T+6.0)/1000000.0;
N=N+Estrain*xxyytemp1/cpt/cpt*(fc*(-0.00145)*cpt-ccstress*(6.0+0.03*2.0*T)/1000000.0);
}
if(T>=650.0 && T<=917.24)
{
N=Estrain*xxyytemp1/cpt/cpt*(fc*(-0.00145)*cpt-ccstress*(6.0+0.03*2.0*T)/1000000.0);
}
if(T>=917.24)
{
N=0.0;
}
}
if(Estrain>=0 && Estrain<=cpt) //混凝土受压
{
Hstress=1.0;
if(T<=650.0)
{ //fdives*fthdivT
N=-ccstress*xxyytemp1*pow((cpt-Estrain)/cpt,xxyytemp1-1.0)*(-1.0)/cpt*(0.008*2.0*T+6.0)/1000000.0;
}
if(T>650.0)
{
N=0.0; //fdives*fthdivT
}
xxyytemp2=N;
if(T<20.0)//应力对温度求导
{ //fdivT
N=xxyytemp2+ccstress*(-1.0)*xxyytemp1*pow((cpt-Estrain)/cpt,xxyytemp1-1.0)/cpt/cpt*(cpt*(6.0+0.03*2.0*T)/1000000.0-(cpt-Estrain)*(6.0+0.03*2.0*T)/1000000.0);
}
if(T>=20.0 && T<100.0) //应力对温度求导
{ //fdivT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -