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

📄 elemswitch.cpp

📁 Finite element program for mechanical problem. It can solve various problem in solid problem
💻 CPP
📖 第 1 页 / 共 3 页
字号:
      @param lcid - load case id      JK, 28.11.2006*/void compute_ipstresses (long lcid){  long i,ne,te;    //  number of elements  ne=Mt->ne;  for (i=0;i<ne;i++){    if (Gtm->leso[i]==1){            //  type of element      te = Mt->give_elem_type (i);            switch (te){	      case bar2d:{	Bar2d->res_ip_stresses (lcid,i);	break;      }      case bar3d:{	Bar3d->res_ip_stresses (lcid,i);	break;      }      case barq2d:{	Barq2d->res_mainip_stresses (lcid,i);	break;      }      case barq3d:{	Barq3d->res_mainip_stresses (lcid,i);	break;      }	      case beam2d:{	Beam2d->nodal_forces (lcid,i);	break;      }	      case beam2dsp:{	Spbeam2d->res_mainip_stresses (lcid,i);	break;      }	      case beam3d:{	Beam3d->nodal_forces (lcid,i);	break;      }      case beamg3d:{	Beam3dg->nodal_forces (lcid,i);	break;      }		/*	  case subsoilbeam:{	  Sbeam->strains (lcid, i, 0, 0);	  break;	  }	*/	      case spring_1:{	Spring->stresses(i, lcid);	break;      }      case spring_2:{	Spring->stresses(i, lcid);	break;      }      case spring_3:{	Spring->stresses(i, lcid);	break;      }      case spring_4:{	Spring->stresses(i, lcid);	break;      }      case spring_5:{	Spring->stresses(i, lcid);	break;      }      case spring_6:{	Spring->stresses(i, lcid);	break;      }	      case planeelementlt:{	break;      }		/*	  case planeelementlt:{	  Pelt->res_mainip_strains (lcid,i);	  break;	  }	  case planeelementqt:{	  Peqt->res_mainip_strains (lcid,i);	  break;	  }	  	  case planeelementrotlt:{	  Perlt->res_mainip_strains (lcid,i);	  break;	  }	*/      case planeelementlq:{	Pelq->res_ip_stresses (lcid,i);	break;      }	      case planeelementqq:{	Peqq->res_ip_stresses (lcid,i);	break;      }	/*	  case planeelementrotlq:{	  Perlq->res_mainip_strains (lcid,i);	  break;	  }	  	  case planeelementsubqt:{	  Pesqt->res_mainip_strains (lcid,i);	  break;	  }	*/	      case cctel:{	//Cct->res_mainip_strains (lcid,i);	break;      }	      case dktel:{	//Dkt->res_mainip_strains (lcid,i);	break;      }      case dstel:{	//Dst->res_mainip_strains (lcid,i);	break;      }      case q4plateel:{	Q4pl->res_ip_stresses (lcid,i);	break;      }	      case subsoilplatetr:{	break;      }	      case subsoilplateq:{	//Splq->res_mainip_strains (lcid,i);	break;      }		/*	  case shelltrelem:{	  Shtr->res_mainip_strains (lcid,i);	  break;	  }	  	*/	      case axisymmlt:{	Asymlt->res_mainip_stresses (lcid,i);	break;      }      case axisymmlq:{	Asymlq->res_allip_stresses (lcid,i);	break;      }      case axisymmqq:{	Asymqq->res_allip_stresses (lcid,i);	break;      }	      case lineartet:{	Ltet->mainip_stresses (lcid,i,0,0);	break;      }	      case linearhex:{	Lhex->res_ip_stresses (lcid,i);	break;      }	      case quadrhex:{	Qhex->res_ip_stresses (lcid,i);	break;      }		      case particleelem:{	break;      }	      default:{	fprintf (stderr,"\n\n unknown element type is required in function compute_ipstresses (file %s, line %d).\n",__FILE__,__LINE__);      }      }    }  }  }/**   function computes stresses at element nodes   nodal stresses are averaged   in case of bar and beam elements be carefull if averaging is reasonable      @param lcid - load case id      JK, 28.11.2006*/void compute_nodestresses (long lcid){  long i;  elemtype te;    for (i=0;i<Mt->nn;i++){    //Mt->nodes[i].ncontr_strain[lcid]=0;    //Mt->nodes[i].nullstrain (lcid);    Mt->nodes[i].ncontr_stress[lcid]=0;    Mt->nodes[i].nullstress (lcid);  }    for (i=0;i<Mt->ne;i++){    if (Gtm->leso[i]==1){            te = Mt->give_elem_type (i);            switch (te){	      case bar2d:{	//Bar2d->nod_stresses_ip (lcid, i, 0, 0);	break;      }      case barq2d:{	Barq2d->nod_stresses_ip (lcid,i,0,0);	break;      }      case bar3d:{	Bar3d->nod_stresses_ip (lcid, i, 0, 0);	break;      }      case barq3d:{	Barq3d->nod_stresses_ip (lcid,i,0,0);	break;      }      case beam2d:{	Beam2d->nodal_forces (lcid,i);	break;      }      case beam3d:{	Beam3d->nodal_forces (lcid,i);	break;      }      case beamg3d:{	Beam3dg->nodal_forces (lcid,i);	break;      }		      case spring_1 :      case spring_2 :      case spring_3 :      case spring_4 :      case spring_5 :      case spring_6 :	break;      case planeelementlt:{	Pelt->nod_stresses (lcid,i,0,0);	break;      }      case planeelementqt:{	Peqt->nod_stresses (lcid,i,0,0);	break;      }      case planeelementrotlt:{	Perlt->nod_stresses (lcid,i,0,0);	break;      }	      case planeelementlq:{	Pelq->nod_stresses_ip (lcid,i,0,0);	break;      }      case planeelementqq:{	Peqq->nod_stresses_ip (lcid,i,0,0);	break;      }      case planeelementrotlq:{	//Perlq->nod_stresses (lcid,i,0,0);	break;      }	      case planeelementsubqt:{	Pesqt->nod_stresses (lcid,i,0,0);	break;      }	      case cctel:{	//Cct->nod_stresses (lcid,i,0,0);	break;      }      case dktel:{	//Dkt->nod_stresses (lcid,i,0,0);	break;      }      case dstel:{	//Dst->nod_stresses (lcid,i,0,0);	break;      }      case q4plateel:{	//Q4pl->nod_stresses (lcid,i,0,0);	break;      }	      case subsoilplatetr:{	break;      }      case subsoilplateq:{	break;      }	      case axisymmlt:{	Asymlt->nod_stresses_ip (lcid,i);	break;      }      case axisymmlq:{	Asymlq->nod_stresses_ip (lcid,i,0,0);	break;      }      case axisymmqq:{	Asymqq->nod_stresses_ip (lcid,i);	break;      }	      case shelltrelem:{	Shtr->nod_stresses (lcid,i);	break;      }	      case lineartet:{	Ltet->nod_stresses (lcid,i,0,0);	break;      }      case linearhex:{	Lhex->nod_stresses_ip (lcid,i,0,0);	break;      }      case quadrhex:{	Qhex->nod_stresses_ip (lcid,i,0,0);	break;      }	      case particleelem:{	break;      }	      default:{	fprintf (stderr,"\n\n unknown element type is required in function compute_nodestresses (file %s, line %d).\n",__FILE__,__LINE__);      }      }          }  }    for (i=0;i<Mt->nn;i++){    //Mt->nodes[i].strain_averageval (lcid);    Mt->nodes[i].stress_averageval (lcid);  }  }/**   function computes stresses at stress points      @param lcid - load case id      JK*/void computestresses (long lcid){  long i,ne,te;  //  all stress components at all integration points  compute_ipstresses (lcid);  //  number of elements  ne=Mt->ne;  for (i=0;i<ne;i++){    if (Gtm->leso[i]==1){            te = Mt->give_elem_type (i);            switch (te){	      case bar2d:{	Bar2d->stresses (lcid,i,0,0);	break;      }      case bar3d:{	Bar3d->stresses (lcid,i,0,0);	break;      }      case barq2d:{	Barq2d->stresses (lcid,i,0,0);	break;      }      case barq3d:{	Barq3d->stresses (lcid,i,0,0);	break;      }	      case beam2d:{	Beam2d->nodal_forces (lcid,i);	break;      }	      case beam3d:{	Beam3d->nodal_forces (lcid,i);	break;      }	      case beam2dsp:{	Spbeam2d->stresses (i,lcid);	break;      }	      case spring_1 :      case spring_2 :      case spring_3 :      case spring_4 :      case spring_5 :      case spring_6 :	Spring->stresses(i, lcid);	break;      case planeelementlt:{	Pelt->stresses (lcid,i,0,0);	break;      }      case planeelementqt:{	Peqt->stresses (lcid,i,0,0);	break;      }      case planeelementrotlt:{	Perlt->stresses (lcid,i,0,0);	break;      }	      case planeelementlq:{	Pelq->stresses (lcid,i,0,0);	break;      }      case planeelementqq:{	Peqq->stresses (lcid,i,0,0);	break;      }      case planeelementrotlq:{	Perlq->stresses (lcid,i,0,0);	break;      }	      case planeelementsubqt:{	Pesqt->stresses (lcid,i,0,0);	break;      }	      case cctel:{	Cct->stresses (lcid,i,0,0);	break;      }      case dktel:{	Dkt->stresses (lcid,i,0,0);	break;      }	      case dstel:{	Dst->stresses (lcid,i,0,0);	break;      }	      case q4plateel:{	Q4pl->stresses (lcid,i,0,0);	break;      }	      case axisymmlt:{	Asymlt->stresses (lcid,i,0,0);	break;      }      case axisymmlq:{	Asymlq->stresses (lcid,i,0,0);	break;      }      case axisymmqq:{	Asymqq->stresses (lcid,i,0,0);	break;      }	      case shelltrelem:{	Shtr->stresses (lcid,i);	break;      }	      case lineartet:{	Ltet->stresses (lcid,i,0,0);	break;      }      case linearhex:{	Lhex->stresses (lcid,i,0,0);	break;      }      case quadrhex:{	Qhex->stresses (lcid,i,0,0);	break;      }	      case particleelem:{	break;      }      default:{	fprintf (stderr,"\n\n unknown element type is required in function computestresses (file %s, line %d).\n",__FILE__,__LINE__);      }      }    }  }}/**   function computes other values in nodes      @param lcid - load case id*/void compute_nodeothers (long lcid){  long i;  elemtype te;    for (i=0;i<Mt->nn;i++){    Mt->nodes[i].ncontr_other[lcid]=0;    Mt->nodes[i].nullother (lcid);  }    for (i=0;i<Mt->ne;i++){    if (Gtm->leso[i]==1){            te = Mt->give_elem_type (i);            switch (te){	      case bar2d:{	//Bar2d->nod_eqother_ip (lcid,i, 0, 0);	break;      }      case barq2d:{	Barq2d->nod_eqother_ip (lcid,i, 0, 0);	break;      }	/*    case beam2d:{	      Beam2d->stresses (i,lcid);	      break;	      }	      case beam3d:{	      Beam3d->stresses (i,lcid);	      break;	      }	      case beam2d:{	      break;	      }	*/	      case spring_1 :      case spring_2 :      case spring_3 :

⌨️ 快捷键说明

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