📄 elemswitch.cpp
字号:
@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 + -