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

📄 mechtop.cpp

📁 Finite element program for mechanical problem. It can solve various problem in solid problem
💻 CPP
📖 第 1 页 / 共 5 页
字号:
  case planeelementlt:{     nned=Pelt->nned;    break;  }  case planeelementqt:{     nned=Peqt->nned;    break;  }  case planeelementrotlt:{  nned=Perlt->nned;   break;  }  case planeelementlq:{     nned=Pelq->nned;    break;  }  case planeelementqq:{     nned=Peqq->nned;    break;  }  case planeelementrotlq:{  nned=Perlq->nned;   break;  }  case planeelementsubqt:{  nned=Pesqt->nned;   break;  }  case cctel:{              nned=Cct->nned;     break;  }  case dktel:{              nned=Dkt->nned;     break;  }  case dstel:{              nned=Dst->nned;     break;  }  case q4plateel:{          nned=Q4pl->nned;    break;  }  case subsoilplatetr:{     nned=Spltr->nned;   break;  }  case subsoilplateq:{      nned=Splq->nned;    break;  }  case axisymmlt:{          nned=Asymlt->nned;  break;  }  case axisymmlq:{          nned=Asymlq->nned;  break;  }  case axisymmqq:{          nned=Asymqq->nned;  break;  }  case shelltrelem:{        nned=Shtr->nned;    break;  }  case shellqelem:{         nned=Shq->nned;     break;  }  case lineartet:{          nned=Ltet->nned;    break;  }  case linearhex:{          nned=Lhex->nned;    break;  }  case quadrhex:{           nned=Qhex->nned;    break;  }  case linearwed:{          nned=Lwed->nned;    break;  }  case quadrwed:{           nned=Qwed->nned;    break;  }  case particleelem:{                           break;  }  default:{    fprintf (stderr,"\n\n unknown element type is required in function give_nned (file %s, line %d).\n",__FILE__,__LINE__);  }  }  return nned;}/**   function returns number of surfaces of the element      @param eid - element id      29.4.2004*/long mechtop::give_nsurf (long eid){  long nsurf;  elemtype te;    te = give_elem_type (eid);    switch (te){  case lineartet:{          nsurf=Ltet->nsurf;    break;  }  case linearhex:{          nsurf=Lhex->nsurf;    break;  }  case quadrhex:{           nsurf=Qhex->nsurf;    break;  }  case linearwed:{          nsurf=Lwed->nsurf;    break;  }  case quadrwed:{           nsurf=Qwed->nsurf;    break;  }  default:{    fprintf (stderr,"\n\n unknown element type is required in function give_nsurf (file %s, line %d).\n",__FILE__,__LINE__);  }  }  return nsurf;}/**   function returns number of surfaces of the element      @param eid - element id      29.4.2004*/long mechtop::give_nnsurf (long eid){  long nnsurf;  elemtype te;    te = give_elem_type (eid);    switch (te){  case lineartet:{          nnsurf=Ltet->nnsurf;    break;  }  case linearhex:{          nnsurf=Lhex->nnsurf;    break;  }  case quadrhex:{           nnsurf=Qhex->nnsurf;    break;  }  case linearwed:{          nnsurf=Lwed->nnsurf;    break;  }  case quadrwed:{           nnsurf=Qwed->nnsurf;    break;  }  default:{    fprintf (stderr,"\n\n unknown element type is required in function give_nnsurf (file %s, line %d).\n",__FILE__,__LINE__);  }  }  return nnsurf;}/**   function returns number of approximated functions      @param eid - number of element      30.12.2001*/long mechtop::give_napfun (long eid){  long napfun=0;  elemtype te;    te = give_elem_type (eid);    switch (te){  case bar2d:{              napfun=Bar2d->napfun;      break;  }  case bar3d:{              napfun=Bar3d->napfun;      break;  }  case barq2d:{             napfun=Barq2d->napfun;     break;  }  case barq3d:{             napfun=Barq3d->napfun;     break;  }  case beam2d:{             napfun=Beam2d->napfun;     break;  }  case beam3d:{             napfun=Beam3d->napfun;     break;  }  case beamg3d:{            napfun=Beam3dg->napfun;    break;  }  case subsoilbeam:{        napfun=Sbeam->napfun;      break;  }  case beam2dsp:{           napfun=Spbeam2d->napfun;   break;  }  case spring_1:{           napfun=Spring->napfun;     break;  }  case spring_2:{           napfun=Spring->napfun;     break;  }  case spring_3:{           napfun=Spring->napfun;     break;  }  case spring_4:{           napfun=Spring->napfun;     break;  }  case spring_5:{           napfun=Spring->napfun;     break;  }  case spring_6:{           napfun=Spring->napfun;     break;  }  case planeelementlt:{     napfun=Pelt->napfun;       break;  }  case planeelementqt:{     napfun=Peqt->napfun;       break;  }  case planeelementrotlt:{  napfun=Perlt->napfun;      break;  }  case planeelementlq:{     napfun=Pelq->napfun;       break;  }  case planeelementqq:{     napfun=Peqq->napfun;       break;  }  case planeelementrotlq:{  napfun=Perlq->napfun;      break;  }  case planeelementsubqt:{  napfun=Pesqt->napfun;      break;  }  case cctel:{              napfun=Cct->napfun;        break;  }  case dktel:{              napfun=Dkt->napfun;        break;  }  case dstel:{              napfun=Dst->napfun;        break;  }  case q4plateel:{          napfun=Q4pl->napfun;       break;  }  case subsoilplatetr:{     napfun=Spltr->napfun;      break;  }  case subsoilplateq:{      napfun=Splq->napfun;       break;  }  case axisymmlt:{          napfun=Asymlt->napfun;     break;  }  case axisymmlq:{          napfun=Asymlq->napfun;     break;  }  case axisymmqq:{          napfun=Asymqq->napfun;     break;  }  case shelltrelem:{        napfun=Shtr->napfun;       break;  }  case shellqelem:{         napfun=Shq->napfun;        break;  }  case lineartet:{          napfun=Ltet->napfun;       break;  }  case linearhex:{          napfun=Lhex->napfun;       break;  }  case quadrhex:{           napfun=Qhex->napfun;       break;  }  case linearwed:{          napfun=Lwed->napfun;       break;  }  case quadrwed:{           napfun=Qwed->napfun;       break;  }  case particleelem:{                                  break;  }  default:{    fprintf (stderr,"\n\n unknown element type is required in function give_napfun (file %s, line %d).\n",__FILE__,__LINE__);  }  }  return napfun;}/**   function returns dimension of problem      @param eid - number of element      JK, 23.2.2002*/long mechtop::give_dimension (long eid){  long dim=0;  elemtype te;    te = give_elem_type (eid);    switch (te){  case bar2d:{              dim=1;  break;  }  case bar3d:{              dim=1;  break;  }  case barq2d:{             dim=1;  break;  }  case barq3d:{             dim=1;  break;  }  case beam2d:{             dim=1;  break;  }  case beam3d:{             dim=1;  break;  }  case beamg3d:{            dim=1;  break;  }  case subsoilbeam:{        dim=1;  break;  }  case beam2dsp:{           dim=1;  break;  }  case spring_1:{           dim=1;  break;  }  case spring_2:{           dim=1;  break;  }  case spring_3:{           dim=1;  break;  }  case spring_4:{           dim=1;  break;  }  case spring_5:{           dim=1;  break;  }  case spring_6:{           dim=1;  break;  }  case planeelementlt:{     dim=2;  break;  }  case planeelementqt:{     dim=2;  break;  }  case planeelementrotlt:{  dim=2;  break;  }  case planeelementlq:{     dim=2;  break;  }  case planeelementqq:{     dim=2;  break;  }  case planeelementrotlq:{  dim=2;  break;  }  case planeelementsubqt:{  dim=2;  break;  }  case cctel:{              dim=2;  break;  }  case dktel:{              dim=2;  break;  }  case dstel:{              dim=2;  break;  }  case q4plateel:{          dim=2;  break;  }  case axisymmlt:{          dim=2;  break;  }  case axisymmlq:{          dim=2;  break;  }  case axisymmqq:{          dim=2;  break;  }  case subsoilplatetr:{     dim=2;  break;  }  case subsoilplateq:{      dim=2;  break;  }  case shelltrelem:{        dim=2;  break;  }  case shellqelem:{         dim=2;  break;  }  case lineartet:{          dim=3;  break;  }  case linearhex:{          dim=3;  break;  }  case quadrhex:{           dim=3;  break;  }  case linearwed:{          dim=3;  break;  }  case quadrwed:{           dim=3;  break;  }  case particleelem:{               break;  }  default:{    fprintf (stderr,"\n\n unknown element type is required in function give_dimension (file %s, line %d).\n",__FILE__,__LINE__);  }  }  return dim;}/**   function returns number of blocks in characteristic matrices      @param eid - element id      8.5.2002*/long mechtop::give_nb (long eid){  long nb=0;  elemtype te;    te = give_elem_type (eid);    switch (te){  case bar2d:{              nb=Bar2d->nb;      break;  }  case bar3d:{              nb=Bar3d->nb;      break;  }  case barq2d:{             nb=Barq2d->nb;     break;  }  case barq3d:{             nb=Barq3d->nb;     break;  }  case beam2d:{             nb=Beam2d->nb;     break;  }  case beam3d:{             nb=Beam3d->nb;     break;  }  case beamg3d:{            nb=Beam3dg->nb;    break;  }  case subsoilbeam:{        nb=Sbeam->nb;      break;  }  case beam2dsp:{           nb=Spbeam2d->nb;   break;  }  case spring_1:{           nb=Spring->nb;     break;  }  case spring_2:{           nb=Spring->nb;     break;  }  case spring_3:{           nb=Spring->nb;     break;  }  case spring_4:{           nb=Spring->nb;     break;  }  case spring_5:{           nb=Spring->nb;     break;  }  case spring_6:{           nb=Spring->nb;     break;  }  case planeelementlt:{     nb=Pelt->nb;       break;  }  case planeelementqt:{     nb=Peqt->nb;       break;  }  case planeelementrotlt:{  nb=Perlt->nb;      break;  }  case planeelementlq:{     nb=Pelq->nb;       break;  }  case planeelementqq:{     nb=Peqq->nb;       break;  }  case planeelementrotlq:{  nb=Perlq->nb;      break;  }  case planeelementsubqt:{  nb=Pesqt->nb;      break;  }  case planequadcontact:{   nb=Pqcon->nb;      break;  }  case cctel:{              nb=Cct->nb;        break;  }  case dktel:{              nb=Dkt->nb;        break;  }  case dstel:{              nb=Dst->nb;        break;  }  case q4plateel:{          nb=Q4pl->nb;       break;  }  case subsoilplatetr:{     nb=Spltr->nb;      break;  }  case subsoilplateq:{      nb=Splq->nb;       break;  }  case axisymmlt:{          nb=Asymlt->nb;     break;  }  case axisymmlq:{          nb=Asymlq->nb;     break;  }  case axisymmqq:{          nb=Asymqq->nb;     break;  }  case shelltrelem:{        nb=Shtr->nb;       break;  }  case shellqelem:{         nb=Shq->nb;        break;  }  case lineartet:{          nb=Ltet->nb;       break;  }  case linearhex:{          nb=Lhex->nb;       break;  }  case quadrhex:{           nb=Qhex->nb;       break;  }  case linearwed:{          nb=Lwed->nb;       break;  }  case quadrwed:{           nb=Qwed->nb;       break;  }  case particleelem:{       nb=Pelem->nb;      break;  }  default:{    fprintf (stderr,"\n\n unknown element type is required in function give_nb (file %s, line %d).\n",__FILE__,__LINE__);  }  }  return nb;}/**   function returns number of layeres of layered element      @param eid - element id      7.12.2002*//*long mechtop::give_nl (long eid){  return Gtm->give_nl (eid);}*/strastrestate mechtop::give_ssst (long eid,long bi){  strastrestate ssst;  elemtype te;    te = give_elem_type (eid);  switch (te){  case bar2d:{              ssst = Bar2d->ssst;         break;  }  case bar3d:{              ssst = Bar3d->ssst;         break;  }  case barq2d:{             ssst = Barq2d->ssst;        break;  }  case barq3d:{             ssst = Barq3d->ssst;        break;  }  case beam2d:{             ssst = Beam2d->ssst;        break;  }  case beam3d:{             ssst = Beam3d->ssst;        break;  }  case beamg3d:{            ssst = Beam3dg->ssst;       break;  }  case subsoilbeam:{        ssst = Sbeam->ssst;         break;  }  case beam2dsp:{           ssst = Spbeam2d->ssst;      break;  }  case spring_1:{           ssst = Spring->ssst;        break;  }  case spring_2:{           ssst = Spring->ssst;        break;  }  case spring_3:{           ssst = Spring->ssst;        break;  }  case spring_4:{           ssst = Spring->ssst;        break;  }  case spring_5:{           ssst = Spring->ssst;        break;  }  case spring_6:{           ssst = Spring->ssst;        break;  }  case planeelementlt:{     ssst = elements[eid].ssst;  break;  }  case planeelementqt:{     ssst = elements[eid].ssst;  break;  }  case planeelementrotlt:{  ssst = elements[eid].ssst;  break;  }  case planeelementlq:{     ssst = elements[eid].ssst;  break;  }  case planeelementqq:{     ssst = elements[eid].ssst;  break;  }  case planeelementrotlq:{  ssst = elements[eid].ssst;  break;  }  case planeelementsubqt:{  ssst = elements[eid].ssst;  break;  }  case cctel:{              ssst = Cct->ssst;           break;  }  case dktel:{              ssst = Dkt->ssst;           break;  }  case dstel:{              ssst = Dst->ssst;           break;  }  case q4plateel:{          ssst = Q4pl->ssst;          break;  }  case subsoilplatetr:{     ssst = Spltr->ssst;         break;  }  case subsoilplateq:{      ssst = Splq->ssst;          break;  }  case axisymmlt:{          ssst = Asymlt->ssst;        break;  }  case axisymmlq:{          ssst = Asymlq->ssst;        break;  }  case axisymmqq:{          ssst = Asymqq->ssst;        break;  }  case shelltrelem:{    if (bi==0 || bi==1)  ssst = (strastrestate) planestress;    if (bi==2)           ssst = (strastrestate) plate;    break;  }  case shellqelem:{    if (bi==0 || bi==1)  ssst = (strastrestate) planestress;    if (bi==2 || bi==3)  ssst = (strastrestate) plate;    break;  }  case lineartet:{          ssst = Ltet->ssst;          break;  }  case linearhex:{          ssst = Lhex->ssst;          break;  }  case quadrhex:{           ssst = Qhex->ssst;          break;  }  case linearwed:{          ssst = Lwed->ssst;          break;  }  case quadrwed:{           ssst = Qwed->ssst;          break;  }  case particleelem:{                                   break;  }  default:{    fprintf (stderr,"\n\n unknown element type is required in function give_ssst (file %s, line %d).\n",__FILE__,__LINE__);  }  }  return ssst;}/**   function returns degree of polynomial expansion      @param eid - number of element      */long mechtop::give_degree (long eid){  long deg=0;  elemtype te;    te = give_elem_type (eid);    switch (te){  case bar2d:{                deg=1;  break;  }  case bar3d:{                deg=1;  break;  }  case barq2d:{               deg=2;  break;  }  case barq3d:{               deg=2;  break;  }  case beam2d:{               deg=1;  break;  }  case beam3d:{               deg=1;  break;  }  case beamg3d:{              deg=3;  break;  }  case spring_1:{             deg=1;  break;  }  case spring_2:{             deg=1;  break;  }  case spring_3:{             deg=1;  break;  }  case spring_4:{             deg=1;  break;  }  case spring_5:{             deg=1;  break;  }  case spring_6:{             deg=1;  break;  }  case subsoilbeam:{          deg=1;  break;  }  case beam2dsp:{             deg=1;  break;  }  case planeelementlt:{       deg=1;  break;  }  case planeelementqt:{       deg=2;  break;  }  case planeelementrotlt:{    deg=1;  break;  }  case planeelementlq:{       deg=1;  break;  }  case planeelementqq:{       deg=2;  break;  }  case planeelementrotlq:{    deg=1;  break;  }  case planeelementsubqt:{    deg=2;  break;  }  case cctel:{                deg=1;  break;  }  case dktel:{                deg=1;  break;  }  case dstel:{                deg=1;  break;  }  case q4plateel:{            deg=1;  break;  }  case subsoilplatetr:{       deg=1;  break;  }  case subsoilplateq:{        deg=1;  break;  }  case axisymmlt:{            deg=1;  break;  }  case axisymmlq:{            deg=1;  break;  }  case axisymmqq:{            deg=1;  break;  }  case shelltrelem:{          deg=1;  break;  }  case shellqelem:{           deg=1;  break;  }  case lineartet:{            deg=1;  break;  }  case linearhex:{            deg=1;  break;  }  case quadrhex:{             deg=2;  break;  }  case linearwed:{            deg=1;  break;  }  case quadrwed:{             deg=2;  break;  }  case particleelem:{                 break;  }  default:{    fprintf (stderr,"\n\n unknown element type is required in function give_degree (file %s, line %d).\n",__FILE__,__LINE__);  }  }  return deg;}

⌨️ 快捷键说明

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