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

📄 fe_print.c

📁 有限元分析源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
                                                                               nforces->fn[1].dimen->units_name,                                                                               nforces->fn[2].dimen->units_name);                   printf("-----------------------------------------------\n");                   for(i = 1;i <= frame->no_node_loads; i++) {                       nforces = &frame->nforces[i-1];                       for( j=1 ; j<=frame->no_dof ; j++ )                            UnitsSimplify( nforces->fn[j-1].dimen );                       printf("%5d ",(int) nforces->node_f);                        printf(" %12.2f ",   nforces->fn[0].value/nforces->fn[0].dimen->scale_factor);                       printf(" %12.2f ",   nforces->fn[1].value/nforces->fn[1].dimen->scale_factor);                       printf(" %12.2f\n",   nforces->fn[2].value/nforces->fn[2].dimen->scale_factor);                   }                   break;                case OFF:                   printf("Node#        Fx         Fy       Mz \n");                   printf("---------------------------------------\n");                   for(i = 1;i <= frame->no_node_loads; i++) {                       nforces = &frame->nforces[i-1];                       printf("%5d ",(int) nforces->node_f);                        printf(" %12.2f ",   nforces->fn[0].value);                       printf(" %12.2f ",   nforces->fn[1].value);                       printf(" %12.2f\n ",   nforces->fn[2].value);                   }                   break;                default:                   break;              }          }          if(frame->no_dof == 2){             switch(UNITS_SWITCH) {                case ON:                   for( i=1 ; i<=frame->no_dof ; i++ )                        UnitsSimplify( nforces->fn[i-1].dimen );                   printf("Node#        Fx (%s)        Fy (%s)\n",                                     nforces->fn[0].dimen->units_name,                                     nforces->fn[1].dimen->units_name);                  printf("-----------------------------------------------\n");                  for(i = 1;i <= frame->no_node_loads; i++) {                      nforces = &frame->nforces[i-1];                      for( j=1 ; j<=frame->no_dof ; j++ )                           UnitsSimplify( nforces->fn[j-1].dimen );                      printf("%5d ",(int) nforces->node_f);                      printf(" %12.2f ",   nforces->fn[0].value/nforces->fn[0].dimen->scale_factor);                      printf(" %12.2f ",   nforces->fn[1].value/nforces->fn[1].dimen->scale_factor);                  }                  break;                  case OFF:                      printf("Node#        Fx            Fy  \n");                      printf("-----------------------------------------------\n");                      for(i = 1;i <= frame->no_node_loads; i++) {                      nforces = &frame->nforces[i-1];                      printf("%5d ",(int) nforces->node_f);                       printf(" %12.2f ",   nforces->fn[0].value);                      printf(" %12.2f ",   nforces->fn[1].value);                 }                 break;                 default:                 break;             }          }       }       if(frame->no_node_loads >= 1 && (frame->no_dimen == 3)) {          printf("                        \n");          printf("EXTERNAL NODAL LOADINGS \n");          nforces = &frame->nforces[0];          if(frame->no_dof == 6){            printf("--------------------------------------------------------------------------------------------\n");            switch( UNITS_SWITCH ) {              case ON:                for( i=1 ; i<=frame->no_dof ; i++ )                     UnitsSimplify( nforces->fn[i-1].dimen );                printf("Node#       Fx (%s)      Fy (%s)     Fz (%s)     Mx (%s)    My (%s)     Mz (%s)\n",                        nforces->fn[0].dimen->units_name,                        nforces->fn[1].dimen->units_name,                        nforces->fn[2].dimen->units_name,                        nforces->fn[3].dimen->units_name,                        nforces->fn[4].dimen->units_name,                        nforces->fn[5].dimen->units_name);                printf("--------------------------------------------------------------------------------------------\n");                break;              case OFF:                printf("Node#       Fx       Fy      Fz      Mx     My      Mz \n");                break;              default:                break;            }          }          if(frame->no_dof == 5){            printf("-----------------------------------------------------------------------------------\n");            switch( UNITS_SWITCH ) {              case ON:                  for( i=1 ; i<=frame->no_dof ; i++ )                       UnitsSimplify( nforces->fn[i-1].dimen );                  printf("Node#       Fx (%s)     Fy (%s)    Fz (%s)    Mx (%s)   My (%s)\n",                          nforces->fn[0].dimen->units_name,                          nforces->fn[1].dimen->units_name,                          nforces->fn[2].dimen->units_name,                          nforces->fn[3].dimen->units_name,                          nforces->fn[4].dimen->units_name);                  printf("-----------------------------------------------------------------------------------\n");                 break;              case OFF:                  printf("Node#       Fx      Fy     Fz     Mx    My \n");                 break;              default:                 break;            }          }          switch( UNITS_SWITCH ) {            case ON:                for(i = 1;i <= frame->no_node_loads; i++) {                    nforces = &frame->nforces[i-1];                    for( j=1 ; j<=frame->no_dof ; j++ )                         UnitsSimplify( nforces->fn[j-1].dimen );                    printf("%5d ",(int) nforces->node_f);                     printf("%12.3f ",   nforces->fn[0].value/nforces->fn[0].dimen->scale_factor);                    printf("%12.3f ",   nforces->fn[1].value/nforces->fn[1].dimen->scale_factor);                    printf("%12.3f ",   nforces->fn[2].value/nforces->fn[2].dimen->scale_factor);                    printf("%12.3f ",   nforces->fn[3].value/nforces->fn[3].dimen->scale_factor);                    printf("%12.3f ",   nforces->fn[4].value/nforces->fn[4].dimen->scale_factor);                    if(frame->no_dof == 6)                    printf("%12.3f",  nforces->fn[5].value/nforces->fn[5].dimen->scale_factor);                     printf("\n");                 }               break;            case OFF:                for(i = 1;i <= frame->no_node_loads; i++) {                    nforces = &frame->nforces[i-1];                    printf("%5d ",(int) nforces->node_f);                     printf("%12.3f ",   nforces->fn[0].value);                    printf("%12.3f ",   nforces->fn[1].value);                    printf("%12.3f ",   nforces->fn[2].value);                    printf("%12.3f ",   nforces->fn[3].value);                    printf("%12.3f ",   nforces->fn[4].value);                    if(frame->no_dof == 6)                    printf("%12.3f",  nforces->fn[5].value);                    printf("\n");                 }               break;            default:               break;          }       }    /* [e] : Print Element Forces */       if(frame->no_element_loads >= 1) {          printf("\n");          printf("------------------------------------------------\n");          printf("Element Loads : a,b = (in), Px,Py,Pz = (kips/in)\n");          printf("------------------------------------------------\n");          printf("\n");          printf("Elmt#\n");          printf("-----\n\n");          for(i=1; i <= frame->no_element_loads; i++) {              elsp = &frame->eforces[i-1];              elmt = &frame->element[elsp->elmt_no -1];              elp    = elsp->elib_ptr;              if(iel_no == 1) {                 for(j=1;j<=elsp->no_loads_faces;j++) {                     printf("%5d %4d %5d %12.5f %12.5f %5d %13.5f %13.5f\n", elsp->elmt_no,                     elp->face_no,elp->nopl[1],elp->pr->uMatrix.daa[1][1],                        elp->pr->uMatrix.daa[1][2],elp->nopl[2],elp->pr->uMatrix.daa[2][1],elp->pr->uMatrix.daa[2][2]);                 }              }              if(iel_no == 5) {                 if(elp->type == -1) { /* dist loading */                    printf("%5d :  a = %13.5f  b = %13.5f\n",elsp->elmt_no, elp->a.value, elp->b.value);                    printf("      : Px = %13.5f Py = %13.5f Pz = %13.5f\n", elp->bx.value,elp->by.value,elp->bz.value);                 }                 else { /* point load  & moments*/                    printf("%5d :  a = %13.5f  b = %13.5f\n",elsp->elmt_no, elp->a.value, elp->b.value);                    printf("      : Px = %13.5f Py = %13.5f Pz = %13.5f\n", elp->bx.value,elp->by.value,elp->bz.value);                    printf("      : Mx = %13.5f My = %13.5f Mz = %13.5f\n", elp->mx.value,elp->my.value,elp->mz.value);                 }              }              if(iel_no == 7 || iel_no == 2) {                 if(elp->type == -1) { /* distributed loading */                    printf("%5d : a = %13.5f b = %13.5f Py = %13.5f\n",elsp->elmt_no, elp->a.value, elp->b.value, elp->by.value);                 }                 else                    printf("%5d : a = %13.5f b = %13.5f P  = %13.5f\n",elsp->elmt_no, elp->a.value, elp->b.value, elp->P.value);              }          }        }    /* [f] : End Message */       printf("\n");       printf("============= End of Finite Element Mesh Description ==============\n");       printf("\n\n");}/* *  ----------------------------- *  Print Displacements, Stresses  *  ----------------------------- */#ifdef  __STDC__MATRIX *Print_Stress( MATRIX *m1, ... )#elseMATRIX *Print_Stress(va_alist)va_dcl#endif{#ifdef __STDC__va_list        arg_ptr;#elseva_list        arg_ptr;MATRIX             *m1;#endifELEMENT            *ep;ELEMENT_ATTR      *eap;double       *elvector;double       mzc,   mz; int            node_no;int            elmt_no;int       elmt_attr_no;int    i, j, k, jj, ii;int             length;int       UNITS_SWITCH;DIMENSIONS      *dp_length_temp;DIMENSIONS       *dp_force_temp;double    xi[17],eta[17],wg[17];double              *gamma, *wt;int                     l, lint;SYMBOL                     *slp;int            iInPlaneIntegPts;int          iThicknessIntegPts;int               iNO_INTEG_pts;#ifdef DEBUG       printf("*** Enter Print_Stress()\n");#endif#ifdef __STDC__       va_start(arg_ptr, m1);#else       va_start(arg_ptr);       m1 = va_arg(arg_ptr, MATRIX *)#endif       va_end(arg_ptr);/*---------------------------------------*/    UNITS_SWITCH = CheckUnits();    /* [a] : Print Header */    printf("\n\n");    printf("MEMBER FORCES \n");    printf("------------------------------------------------------------------------------\n");    /* [b] :Calculate and Print Element Stresses */    if(m1 != (MATRIX *) NULL) /* stress corresponding to linear response */       for(elmt_no = 1; elmt_no <= frame->no_elements; elmt_no++) {#ifdef DEBUG        printf(" elmt No = %d \n", elmt_no);#endif           array = Assign_p_Array(frame, elmt_no, array, STRESS);           array = elmlib(array, PROPTY);           /* Transfer Fixed Displacements */           ep           = &frame->element[elmt_no-1];           elmt_attr_no = ep->elmt_attr_no;             eap          = &frame->eattr[elmt_attr_no-1];           for(i=1; i <= array->nodes_per_elmt; i++) {               k = 1;                node_no = ep->node_connect[i-1];               for(j = 1; j <= array->dof_per_node; j++) {                   switch((int) array->nodes_per_elmt) {                     case 2:                     case 3:                        ii = eap->map_ldof_to_gdof[j-1];                        jj = frame->node[node_no - 1].bound_id[ii-1];                        if(jj > 0) {                           array->displ->uMatrix.daa[j-1][i-1] = m1->uMatrix.daa[jj-1][0];                           if( UNITS_SWITCH == ON ) {                              UnitsCopy(&(array->displ->spRowUnits[j-1]), &(m1->spRowUnits[jj-1]));                              ZeroUnits(&(array->displ->spColUnits[i-1]));                           }                        }                        else {                           array->displ->uMatrix.daa[j-1][i-1]                           = frame->node[node_no -1].disp[ii-1].value;                           if( UNITS_SWITCH == ON ) {                              UnitsCopy(&(array->displ->spRowUnits[j-1]),                                frame->node[node_no -1].disp[ii-1].dimen);

⌨️ 快捷键说明

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