⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 creepbbeam.cpp

📁 Finite element program for mechanical problem. It can solve various problem in solid problem
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	delYi=pow((pomt/retTime[i]),qq)-pow((pomt1/retTime[i]),qq);	bpom[i]=bpom[i]+(1.-exp(delYi))*jt;	for (j=0;j<nRetTime;j++){	  delYj= pow((pomt/retTime[j]),qq)-pow((pomt1/retTime[j]),qq);	  apom[i][j]=apom[i][j]+(1.-exp(delYi))*(1.-exp(delYj));	}      }      //	      pomt1=pomt1+10**(k)      k=k+1;      pomt1=pomt1+20*(k);    }        inv_sym(apom);    for (i=0;i<nRetTime;i++){      //	      ert[i][imat]=0.;      ert[i]=0.;      for (j=0;j<nRetTime;j++){	//	       ert[i][imat]=ert[i][imat]+apom[i][j]*bpom[j];	ert[i]=ert[i]+apom[i][j]*bpom[j];      }      //	      ert[i][imat]=1./ert[i][imat];      ert[i]=1./ert[i];      if(ccTime<0.0001){	delYi=pow((0.0001+ddTime)/retTime[i],qq)-pow(0.0001/retTime[i],qq);}      else {	delYi=pow((ccTime+ddTime)/retTime[i],qq)-pow(ccTime/retTime[i],qq);}      //          lam[i]=1-(1.-(exp(-delYi)))/delYi;      //          ert[(nRetTime+1][imat]=ert[nRetTime+1][imat]+(delYi-1.+exp(-delYi))/delYi/ert[i][imat];      et=et+(delYi-1.+exp(-delYi))/delYi/ert[i];    }    //	    ert[nRetTime+1][imat]=1./ert[nRetTime+1][imat];    et=1./et;    //         call Jkontrola(imat)            //      shrink v time    ccTime+ddTime/2.    pomt1=pomt+0.0001;       b3_law(jt,esht, pomt, pomt1);  }    else {    //        ert[nRetTime+1][imat]=e0/100000.;    et=e0/100000.;    for (i=0;i<nRetTime;i++){ ert[i]=0.;}  }  //}    //		fprintf (Out,"\n\n eh v case t   od t0 prirustek dt");  //		fprintf (Out," %e\t%e\t%e\t%e",et, pomt, ccTime, ddTime);    //  New material modulus in Time  qq=et/e0;    cmulm( qq, d);}/**   function returns history      @param screep - vector of history   @param sig - vector od add stress      10.10.2002*/void creepbbeam::seps_time (matrix &screep,vector &sig){  int i;  double qq,dj,pomt;    qq=2./3.;  if((ccTime+ddTime)==ddTime) {  }  else{    pomt=ccTime+ddTime;	if(sig.n==4){	 for (i=0;i<nRetTime;i++){		dj=pow(pomt/retTime[i],qq)-pow(ccTime/retTime[i],qq);		screep[0][i]=exp(-dj)*screep[0][i]+(sig[0]-mi*sig[1])*(1.-exp(-dj))/dj/ert[i];		screep[1][i]=exp(-dj)*screep[1][i]+(sig[1]-mi*sig[0])*(1.-exp(-dj))/dj/ert[i];		screep[2][i]=exp(-dj)*screep[2][i]+ sig[2]*(1.+mi)   *(1.-exp(-dj))/dj/ert[i];		screep[3][i]=0.0;	 }	}	else if(sig.n==6){	 for (i=0;i<nRetTime;i++){		dj=pow(pomt/retTime[i],qq)-pow(ccTime/retTime[i],qq);		screep[0][i]=exp(-dj)*screep[0][i]+(sig[0]-mi*sig[1]-mi*sig[2])*(1.-exp(-dj))/dj/ert[i];		screep[1][i]=exp(-dj)*screep[1][i]+(sig[1]-mi*sig[0]-mi*sig[2])*(1.-exp(-dj))/dj/ert[i];		screep[2][i]=exp(-dj)*screep[2][i]+(sig[2]-mi*sig[0]-mi*sig[1])*(1.-exp(-dj))/dj/ert[i];		screep[3][i]=exp(-dj)*screep[3][i]+ sig[3]*(1.+mi)   *(1.-exp(-dj))/dj/ert[i];		screep[4][i]=exp(-dj)*screep[4][i]+ sig[4]*(1.+mi)   *(1.-exp(-dj))/dj/ert[i];		screep[5][i]=exp(-dj)*screep[5][i]+ sig[5]*(1.+mi)   *(1.-exp(-dj))/dj/ert[i];	 }	}  }}/**   function computes J(t,t') DOUBLE POWER LAW by Prof. Bazant      @param jt - function of creep   10.10.2002*/void creepbbeam::b2_law (double &jt,double &des_hn, double t0, double t ){  double n, c, c0,cd,  ac,ag,m,x,fi,esn,esn1,tau,sd,st,st0, kt,kh,et1,et2;  //  K_s shape factor slab=1.0, cylinder=1.15, sguare prism.=1.25, sphere=1.3, cube=1.55    //  stiffness matrix of material//  Mm->matstiff (d,ipp);/*  from t0  to t   from concrete starts   tb   t_w  age when drying begins   (fc') is 28 day average cilinder strenght fc' [ksi] ksi=1000psi=6.895 MPa(f.e.6.454=44.5MPa)***6.381  (w/c) is water-cement ratio of the mix by weight   ***0.43  (s/c) is send-cement ratio of the mix by weight    ***3.4  (g/c) is gravel-cement ratio of the mix by weight g/c=a/c-s/c     ***1.98  (a/c) is aggregate-cement ratio of the mix by weight a/c=g/c+s/c     (a1)  is coef. for cements of type I,II a1=1.00, III a1=0.93, IV a1=1.05   ***1.05  (ro)  is mass of concrete in [lb/ft3] =16.03 kg/m3 ***156  (tl)  effective cross section thickness       D=2*vs_s  cs  cement content in m3  .. kg/m3     E0=(0.09+1/(1.7*(0.5*ro*ro*fc*1e-4)*(0.5*ro*ro*fc*1e-4)))     Et=E0*sqrt(t/(4+0.85*t))          podle ACI Commite 209/II*/      if (tb<t0){    if (t_w<tb) t_w = tb;    if (t_w<=0.0) t_w = 1.0;    ac=sc+gc; ag=ac/gc; m=-0.28-47.541025/fc/fc;        x=(2.1*ac/pow(sc,1.4)+0.1*pow((fc/6895.),1.5)*pow(wc,(1./3.))*pow(ag,2.2))*a1-4.;    if (x<=4){n=0.12;}    else {n=0.12+(0.07*pow(x,6.0)/(5130.0+pow(x,6.0)));}      fi=0.5*pow(10.,(3.*n))/(pow(28.,m)+0.025/wc);    c0=fi*(pow((t0-tb),m)+0.025/wc)*pow((t-t0),n);    //  shrink and drying    x=( (1.25*sqrt(ac)+0.5*pow((gc/sc),2))*pow(((1.+sc)/wc),(1/3.))*sqrt(fc/6895.) )-12;    if (x>=0.0){esn=0.0121;}    else {esn=0.0121-0.0088/(390./pow(x,4)+1.);}    c=(0.000000125*wc*c_s-0.000012);    if (c<0.000007) c=0.000007;    if (c>0.000021) c=0.000021;    kt=(temp_s+273.)/296*exp(5000/296.-5000./(temp_s+273.));   //for temperature 23C, 296K    c=c*kt*(0.05+sqrt(6.3/t_w));    tau=0.267*(k_s*k_d)*(k_s*k_d)/c;    if (5<=2){//    if ( (t0>t_w) && (t<=(t_w+tau)) ){  //  shrink      et1=e0/(1.+pow(0.1,(3.*n))*fi*( pow(607.,m)    +0.025/wc));      et2=e0/(1.+pow(0.1,(3.*n))*fi*(pow((t_w+tau),m)+0.025/wc));      kh=1-pow(h_s,3.)+pow((1-h_s),5.);      st= 1./(1.+pow(pow(tau/(t-t_w),r_s),0.5*r_s) );      st0= 1./(1.+pow(pow(tau/(t0-t_w),r_s),0.5*r_s) );      esn1=esn*et1/et2*st*kh/1000000.0;  //  drying      x=56000*pow((ac*fc/6895.),0.3)*pow(gc,1.3)*pow((wc/esn),1.5)-0.85;      if (x>=0.0){fi=0.008+0.027*(1./(1.+0.7/pow(x,1.4)));  }      else fi=0.008;      fi = 1./sqrt(1.+(t-t0)/10./tau)*fi;      sd = 1./pow((1.+10.*tau/(t-t_w)),(2.6*n - 6.*n*n));      //cd = fi*pow(t_w,(m/2.))*(pow(h_0,1.5) - pow(h_s,1.5))*esn1*sd;      cd = fi*pow(t_w,(m/2.))*(1.0 - pow(h_s,1.5))*esn1*sd;	  des_hn=-esn*et1/et2*(st0-st)*kh/1000000.0;	}    else {	  cd = 0.0;      des_hn=0.0;	}  }  else {    cd = 0.0;    des_hn=0.0;  }  //  measure static modulus - creep modulus  1/Ec=2/(3 Es)  //  1/E=e-6/psi =e-6/6.895kPa  jt=(1+c0+cd)/(1.5*e0);//    fprintf (Out,"\n t0, t,  c0");//    fprintf (Out," %e %e\t%e",t0,t,c0);}void creepbbeam::b3_law (double &jt,double &des_hn, double t0, double t){  double n,c0,cd,  ac,ag,m,x,y,q,q1,q2,q3,q4,q5,esn,kh,tau,ht,ht0,dh_s,dtemp;  short experiment=0;//  call only from matstiff //  shape factor slab=1.0, cylinder=1.15, sguare prism.=1.25, sphere=1.3, cube=1.55  /*  from t0  to t   from concrete starts   tb   t_w  age when drying begins   (fc') is 28 day average cilinder strenght fc' [ksi] ksi=1000psi=6.895 MPa(f.e.6.454=44.5MPa)***6.381  (w/c) is water-cement ratio of the mix by weight   ***0.43  (s/c) is send-cement ratio of the mix by weight    ***3.4  (g/c) is gravel-cement ratio of the mix by weight g/c=a/c-s/c     ***1.98  (a/c) is aggregate-cement ratio of the mix by weight a/c=g/c+s/c     (a1)  is coef. for cements of type I,II a1=1.00, III a1=0.93, IV a1=1.05   ***1.05  (ro)  is mass of concrete in [lb/ft3] =16.03 kg/m3 ***156  (k_d)  effective cross section thickness       D=2*V/S  cs  cement content in m3  .. kg/m3     E0=(0.09+1/(1.7*(0.5*ro*ro*fc*1e-4)*(0.5*ro*ro*fc*1e-4)))     Et=E0*sqrt(t/(4+0.85*t))          podle ACI Commite 209/II*/    if (tb<t0){   if (t_w<tb) t_w = tb;   if (t_w<=0.0) t_w = 1.0;   ac=sc+gc;   ag=ac/gc;   m=0.5; //m=0.28+47541025/fc/fc;       x=(2.1*ac/pow(sc,1.4)+0.1*pow((fc/6895),1.5)*pow(wc,(1.0/3.0))*pow(ag,2.2))*a1-4;   if (x<=4){n=0.12;}   else {n=0.12+(0.07*pow(x,6.0)/(5130.0+pow(x,6.0)));}   q1=600000.0/4734.0/sqrt(fc);   x=1.7*pow(t0,0.12)+8.0;   y=(0.086*pow(t0,(2.0/9.0))+1.21*pow(t0,(4.0/9.0)));   q=1.0/y/pow( ( 1.0+ pow( (pow(t0,m)/log(1.+pow((t-t0),n))/y),x ) ),(1./x));   q2=185.4*sqrt(c_s)/pow(fc,0.9);   q3=0.29*pow(wc,4.0)*q2;   q4=20.3/pow(ac,0.7);     c0=q2*q+q3*log(1.0+pow((t-t0),n))+q4*log(t/t0);   //  shrink and drying   if ( type_h ==1){      if ( (t0>=t_w) ){        //   if ( (t0>t_w) && (t<=(t_w+600.)) ){  //  shrink from humidity=1 to h_s        tau=k_s*k_s*k_d*k_d*85000./pow(t,0.08)/pow(fc,0.25);        esn=-a1*1.2*(0.019*pow((wc*c_s),2.1)/pow(fc,0.28)+270.);	    ht0 =tanh(sqrt((t0-t_w)/tau));	    ht  =tanh(sqrt((t -t_w)/tau));		if(h_s<=0.98){kh=(1.0-pow(h_s,3.0));}		else {kh=-10*(1.-h_s);}        des_hn = esn*kh/1000000.0*(ht-ht0); //increment of eps  //  drying from humidity=1 to h_s         q5 = 0.757/fc/pow(fabs(esn),0.6);        cd = q5*sqrt( -exp(-8+8.*(1.0-h_s)*ht)+exp(-8.+8.*(1.0-h_s)*ht0) );	  }	  else {		cd = 0.0;		des_hn=0.0;	  }   }   else {  //  shrink and drying from computing     dh_s = h_s-h_slast;   // humidity     esn = -a1*1.2*(0.019*pow((wc*c_s),2.1)/pow(fc,0.28)+270.);	 if(h_s<=0.98){kh=pow(h_s,3.0)-pow(h_slast,3.0);}	 else {kh=-10.0*dh_s;}  //  shrink     des_hn = esn*kh/1000000.0; //increment of eps  //  drying     q5 = 0.757/fc/pow(fabs(esn),0.6);     cd = -q5*dh_s;   }   if ( type_temp ==1 ){  //  temperature constant   }   else {  //  temperature     dtemp = temp_s-templast;        esn=alfa;  //  shrink     des_hn=des_hn+esn*dtemp;  //  drying	 q5= 1.5/fc;     cd = cd+q5*esn*dtemp;   }  }  else {    q1 = 0.0;    c0 = 0.0;    cd = 0.0;    des_hn=0.0;  }  //  measure static modulus - creep modulus  1/Ec=2/(3 Es)  //  1/E=e-6/psi =e-6/6.895kPa  jt=(q1+c0+cd)*1.e-6;//    fprintf (Out,"\n t0, t,  q1,q2,q3,q4");//    fprintf (Out," %e %e\t%e\t%e\t%e\t%e",t0,t,q1,q2*q,q3*log(1+pow((t-t0),n)),q4*log((t-tb)/(t0-tb)));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -