亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? trussky.c

?? 工程中有限元程序,采用C語言編制,包括所有經典的有限元問題!
?? C
字號:
/***************************************/
/*         program  truss2             */
/* t.r.chandrupatla and a.d.belegundu  */
/***************************************/
#include <stdio.h>
#include <math.h>
main()
{
   FILE *fptr1;
   int n,i,j,k,m,i1,i2,ii,jj,m1,nmin,nmax,nrt,nct,it,jt;
   int nr,nc,j1,j2,k1,k2,nsum,ii1,nij,ndg,nht,il;
   char dummy[81], title[81], file1[81], file2[81];
   int ne,nn,nq,nm,nd,nl,nen,ndn,ndim,npr,nch,nmpc,iid,nloc;
   int *noc, *nu, *mat, *mpc, *id;
   float *x, *area, *pm, *u, *tempr, *a, *f, *beta;
   float c, al, e, tld, cnst, reaction, stress, x21, y21;
   float se[4][4], tl[4], sn, cs, ee0, el, eal;
/*-------------------------------------------------------*/
   printf("\n");
   puts("Input file name < dr:fn.ext >: ");
   gets(file1);
   puts("Output file name < dr:fn.ext >: ");
   gets(file2);
   fptr1 = fopen(file1, "r");
   fgets(dummy,80,fptr1);
   fgets(title,80,fptr1);
   fgets(dummy,80,fptr1);
   fscanf(fptr1,"%d %d %d %d %d %d\n", &nn, &ne, &nm, &ndim, &nen, &ndn);
   fgets(dummy, 80, fptr1);
   fscanf(fptr1,"%d %d %d %d %d\n", &nd, &nl, &nmpc);
   npr = 2;    /* Material Properties E, Alpha */
/* ----- memory allocation ----- */
   x = (float *) calloc(nn*ndim, sizeof(float));
   noc = (int *) calloc(ne*nen, sizeof(int));
   u = (float *) calloc(nd, sizeof(float));
   nu = (int *) calloc(nd, sizeof(int));
   mat = (int *) calloc(ne,sizeof(int));
   area = (float *) calloc(ne, sizeof(float));
   f = (float *) calloc(nn*ndn, sizeof(float));
   id = (int *) calloc(nn*ndn, sizeof(int));
   tempr = (float *) calloc(ne, sizeof(float));
   pm = (float *) calloc(nm*npr, sizeof(float));
   mpc = (int *) calloc(2*nmpc, sizeof(int));
   beta = (float *) calloc(3*nmpc, sizeof(float));
/* ----- total dof is  nq ----- */
     nq = ndn * nn;
/* ===============  read data  ==================== */
/* ----- coordinates ----- */
     fgets(dummy,80,fptr1);
     for (i = 0; i < nn; i++){
        fscanf(fptr1, "%d", &n);
        for (j = 0; j < ndim; j++){
                fscanf(fptr1, "%f\n", &c);
                x[ndim*(n-1)+j] = c;
            }
         }
/* ----- connectivity, material, thickness, temp-change ----- */
   fgets(dummy,80,fptr1);
   for (i = 0; i < ne; i++) {
       fscanf(fptr1,"%d", &n);
       for (j = 0; j < nen; j++) {
           fscanf(fptr1,"%d", &k);
           noc[(n-1)*nen+j]=k;
       }
       fscanf(fptr1,"%d", &k);
       mat[n-1] = k;
       fscanf(fptr1,"%f\n",&c);
       area[n-1] = c;
       fscanf(fptr1,"%f\n",&c);
       tempr[n-1] = c;
   }
/* ----- displacement bc  ----- */
   fgets(dummy,80,fptr1);
   for (i = 0; i < nd; i++) {
      fscanf(fptr1, "%d %f\n", &k, &c);
      nu[i] = k;
      u[i] = c;
   }
/* ----- component loads ----- */
   fgets(dummy,80,fptr1);
   for (i = 0; i < nl; i++) {
      fscanf(fptr1, "%d %f\n", &k, &c);
      f[k-1] = c;
   }
/* ----- material properties ----- */
   fgets(dummy,80,fptr1);
   for (i = 0; i < nm; i++){
      fscanf(fptr1, "%d", &k);
      for (j = 0; j < npr; j++) {
         fscanf(fptr1, "%f\n", &c);
         pm[(k-1)*npr+j] = c;
      }
   }
/* ----- multipoint constraints ----- */
   if (nmpc > 0)
      { fgets(dummy,80,fptr1);
        for(j=0;j<nmpc;j++){
           fscanf(fptr1,"%f",&c);
           beta[3*j]=c;
           fscanf(fptr1,"%d",&k);
           mpc[2*j]=k;
           fscanf(fptr1,"%f",&c);
           beta[3*j+1]=c;
           fscanf(fptr1,"%d",&k);
           mpc[2*j+1]=k;
           fscanf(fptr1,"%f",&c);
           beta[3*j+2]=c;
           }
        }
   fclose (fptr1);
      fptr1 = fopen(file2, "w");
   /* ----- preparation for skyline storage ----- */
     for (i = 0; i < ne; i++) {
        ii = noc[nen*i];
        if (ii > noc[nen*i+1])
           ii = noc[nen*i+1];
        ii1 = ndn * (ii - 1) + 1;
        for (j = 0; j < nen; j++) {
           nij = ndn * (noc[nen*i+j] - 1);
           for( jj = 1; jj <= ndn; jj++) {
              ndg = nij + jj;
              nht = ndg - ii1 + 1;
              if (nht > id[ndg-1])
                 id[ndg-1] = nht;
              }
           }
        }
     /* ----- skyline height adjustment for mpc ----- */
     for (i = 0; i < nmpc; i++) {
        i1 = mpc[2*i];
        i2 = mpc[2*i+1];
        ndg = i1;
        if (ndg < i2)
           ndg = i2;
        nht = abs(i2 - i1) + 1;
        if (nht > id[ndg-1])
           id[ndg-1] = nht;
        }
     for (i = 1; i < nq; i++) {
        id[i] = id[i] + id[i - 1];
        }
     nsum = id[nq-1];
/* ----- allocate memory for stiffness ----- */
     a = (float *) calloc(nsum, sizeof(float));
/* ----- global stiffness matrix -----*/
   for (n = 0; n < ne; n++) {
        printf("forming stiffness matrix of element %d\n", n+1);
    /* --- element stiffness --- */
    i1 = noc[nen*n] - 1;
    i2 = noc[nen*n+1] - 1;
    m = mat[n] - 1;
    x21 = x[ndim*i2] - x[ndim*i1];
    y21 = x[ndim*i2+1] - x[ndim*i1+1];
    el = sqrt((double) (x21 * x21 + y21 * y21));
    eal = pm[npr*m] * area[n] / el;
    cs = x21 / el;
    sn = y21 / el;
    /* ----------- element stiffness matrix se() ----------- */
    se[0][0] = cs * cs * eal;
    se[0][1] = cs * sn * eal;
        se[0][2] = -cs * cs * eal;
        se[0][3] = -cs * sn * eal;
        se[1][0] = se[0][1];
        se[1][1] = sn * sn * eal;
        se[1][2] = -cs * sn * eal;
        se[1][3] = -sn * sn * eal;
        se[2][0] = se[0][2];
        se[2][1] = se[1][2];
        se[2][2] = cs * cs * eal;
        se[2][3] = cs * sn * eal;
        se[3][0] = se[0][3];
        se[3][1] = se[1][3];
        se[3][2] = se[2][3];
        se[3][3] = sn * sn * eal;
    /* --- temperature load vector --- */
    ee0 = pm[npr*m+1] * tempr[n] * pm[npr*m] * area[n];
    tl[0] = -ee0 * cs;
    tl[1] = -ee0 * sn;
    tl[2] = ee0 * cs;
    tl[3] = ee0 * sn;
        printf (".... placing in global locations\n"); 
    for (ii = 1; ii <= nen; ii++) {
         nct = ndn * (noc[nen*n+ii-1] - 1);
           for (it = 1; it <= ndn; it++) {
              nc = nct + it;
              iid = id[nc-1];
              i = ndn * (ii - 1) + it;
              for (jj = 1; jj <= nen; jj++) {
                  nrt = ndn * (noc[nen*n+jj-1] - 1);
                  for (jt = 1; jt <= 2; jt++) {
                      j = ndn * (jj - 1) + jt;
                      nr = nrt + jt;
                      if (nr <= nc) {
                         nloc = iid - (nc - nr);
                         a[nloc-1] = a[nloc-1] + se[i-1][j-1];
                      }
                  }
               }
               f[nc-1] = f[nc-1] + tl[i-1];
            }
         }
  }
/* ----- decide penalty parameter cnst ----- */
     cnst = 0.;
     for (i = 0; i < nq; i++) {
        ii = id[i];
            if (cnst < a[ii-1])
            cnst = a[ii-1];
         }
     cnst = cnst * 10000.;
/* ----- modify for displacement boundary conditions ----- */
   for (i = 0; i < nd; i++) {
      k = nu[i];
      ii = id[k-1];
      a[ii-1] = a[ii-1] + cnst;
      f[k-1] = f[k-1] + cnst * u[i];
   }
/* ----- modify for multipoint constraints ----- */
   for (i = 0; i < nmpc; i++){
       i1 = mpc[2*i]-1;
       i2 = mpc[2*i+1]-1;
       a[id[i1]-1] = a[id[i1]-1] + cnst * beta[3*i] * beta[3*i];
       a[id[i2]-1] = a[id[i2]-1] + cnst * beta[3*i+1] * beta[3*i+1];
       ii = i1;
       if (ii < i2)
          ii = i2;
       il = id[ii-1] - abs(i2 - i1);
       a[il-1] = a[il-1] + cnst * beta[3*i] * beta[3*i+1];
       f[i1-1] = f[i1-1] + cnst * beta[3*i] * beta[3*i+2];
       f[i2-1] = f[i2-1] + cnst * beta[3*i+1] * beta[3*i+2];
      }
/* ----- solution of equations using skyline solver ----- */
   skysol(a,f,id,nq);
/* ----- printing displacements ----- */

   printf("\n%s\n", title);
   fprintf(fptr1, "\n%s\n", title);
   fprintf(fptr1, "node#     x-displ      y-displ\n");
   printf ("node#     x-displ      y-displ\n");
   for (i = 0; i < nn; i++) {
         printf(" %4d  %11.4e  %11.4e\n",i+1,f[2*i],f[2*i+1]);
         fprintf(fptr1," %4d  %11.4e  %11.4e\n",i+1,f[2*i],f[2*i+1]);
         }
/* ----- reaction calculation ----- */
   printf("node#    reaction\n");
   fprintf(fptr1, "node#     reaction\n");
   for (i = 0; i < nd; i++) {
      k = nu[i];
      reaction = cnst * (u[i] - f[k-1]);
      printf(" %4d  %11.4e\n", k, reaction);
      fprintf(fptr1, " %4d  %11.4e\n", k, reaction);
   }
/* -----  stress calculations ----- */
     printf("elem#    stress\n");
     fprintf(fptr1, "elem#    stress\n");
     for (i = 0; i < ne; i++) {
        i1 = noc[nen*i] - 1;
        i2 = noc[nen*i+1] - 1;
        m = mat[i] - 1;
        x21 = x[ndim*i2] - x[ndim*i1];
        y21 = x[ndim*i2+1] - x[ndim*i1+1];
        el = sqrt((double) (x21 * x21 + y21 * y21));
        cs = x21 / el;
        sn = y21 / el;
        j1 = 2 * i1;
        j2 = j1 + 1;
        k1 = 2 * i2;
        k2 = k1 + 1;
        c = (f[k1] - f[j1]) * cs + (f[k2] - f[j2]) * sn;
        stress = pm[npr*m] * (c / el - pm[npr*m+1] * tempr[i]);
        printf(" %4d  %11.4e\n", i+1, stress);
        fprintf(fptr1, " %4d  %11.4e\n", i, stress);
        }
     fclose(fptr1);
     printf( "complete results are in file %s\n", file2);
     return(0);
}
skysol(a,f,id,nq)
  int nq, *id;
  float *a,*f;
  { 
   int i,j,i1,j1,ni,nj,ns,k1,k,ki,kj,kk,ii,ij;
   float c;
  /* ----  skyline solver ----- */
     /* --- forward elimination --- */
     for (j = 2; j <= nq; j++) {
        nj = id[j-1] - id[j - 2];
        if (nj != 1) {
           k1 = 0;
           nj = j - nj + 1;
           for (k = nj; k < j; k++) {
              k1 = k1 + 1;
              kj = id[j - 2] + k1;
              kk = id[k-1];
              c = a[kj-1] / a[kk-1];
              for (i = k + 1; i <= j; i++) {
                 ni = id[i-1] - id[i - 2];
                 if ((i - k + 1) <= ni) {
                           ij = id[j-1] - j + i;
                           ki = id[i-1] - i + k;
                           a[ij-1] = a[ij-1] - c * a[ki-1];
                   }
               }
            }
         }
      }
     for (k = 1; k < nq; k++) {
        kk = id[k-1];
        c = f[k-1] / a[kk-1];
        for (i = k + 1; i <= nq; i++) {
           ni = id[i-1] - id[i - 2];
           if ((i - k + 1) <= ni) {
              ki = id[i-1] - i + k;
              f[i-1] = f[i-1] - c * a[ki-1];
             }
        }
      }
     /* --- back-substitution --- */
     ns = id[nq-1];
     f[nq-1] = f[nq-1] / a[ns-1];
     for (i1 = 1; i1 < nq; i1++) {
        i = nq - i1;
            ii = id[i-1];
            c = 1 / a[ii-1];
        f[i-1] = c * f[i-1];
        for (j = i + 1; j <= nq; j++) {
           j1 = j - i + 1;
           nj = id[j-1] - id[j - 2];
           if (j1 <= nj) {
              ij = id[j-1] - j + i;
              f[i-1] = f[i-1] - c * a[ij-1] * f[j-1];
            }
         }
      }
     return(0);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品福利av导航| 亚洲一线二线三线久久久| 亚洲欧洲一区二区在线播放| 亚洲一线二线三线视频| 国产v日产∨综合v精品视频| 欧美精品日韩一区| 亚洲欧洲成人自拍| 国产一区二区精品久久| 欧美麻豆精品久久久久久| 国产精品白丝在线| 国产在线精品一区在线观看麻豆| 欧美在线不卡一区| 国产精品麻豆一区二区| 精品一区二区三区的国产在线播放| av男人天堂一区| 久久久噜噜噜久久人人看 | 国产亚洲视频系列| 亚洲一二三级电影| 97se亚洲国产综合自在线 | 中文字幕亚洲视频| 国产麻豆精品在线| 精品久久人人做人人爽| 麻豆国产精品777777在线| 欧美日韩国产色站一区二区三区| 国产精品家庭影院| 成人av小说网| 亚洲欧洲精品一区二区三区不卡| 国产精品77777竹菊影视小说| 欧美成人vps| 伦理电影国产精品| 2021久久国产精品不只是精品| 人人狠狠综合久久亚洲| 制服丝袜成人动漫| 五月婷婷激情综合网| 精品视频在线免费看| 亚洲综合色噜噜狠狠| 97超碰欧美中文字幕| 亚洲精品欧美专区| 在线观看免费亚洲| 视频在线观看91| 精品美女在线观看| 国产不卡高清在线观看视频| 国产精品视频在线看| 成人一二三区视频| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲欧美一区二区三区国产精品 | 国产精品久久看| av在线播放不卡| 亚洲欧美日韩精品久久久久| 欧美性生活久久| 日精品一区二区| 精品国产91洋老外米糕| 国产精品综合av一区二区国产馆| 国产精品网站导航| 色域天天综合网| 日韩精品五月天| 久久久国产精品不卡| 91在线云播放| 午夜精品福利久久久| 久久综合色天天久久综合图片| 成人性生交大片免费看视频在线 | 国产精品国产精品国产专区不片| 97久久精品人人做人人爽50路| 亚洲国产视频一区二区| 亚洲精品在线免费播放| 99精品1区2区| 免费在线观看一区| 国产欧美日本一区二区三区| 欧美艳星brazzers| 韩国精品免费视频| 一区二区三区日韩| 精品免费一区二区三区| 99久久久免费精品国产一区二区 | 亚洲大片在线观看| www日韩大片| 欧美综合亚洲图片综合区| 精品写真视频在线观看| 亚洲最色的网站| 久久久精品综合| 欧美美女直播网站| 粉嫩av一区二区三区| 麻豆精品在线播放| 亚洲精品第1页| 国产亚洲欧美中文| 欧美一级高清片| 91蜜桃在线观看| 国产乱色国产精品免费视频| 五月婷婷激情综合| 伊人夜夜躁av伊人久久| 中文字幕成人网| 精品欧美乱码久久久久久1区2区| 欧美午夜一区二区三区| 不卡av在线免费观看| 久久99精品一区二区三区| 一区二区三区成人在线视频| 国产农村妇女精品| 精品国产制服丝袜高跟| 欧美日韩日日骚| 99国产精品久久久久久久久久| 国产综合色精品一区二区三区| 天堂va蜜桃一区二区三区漫画版| 亚洲日本中文字幕区| 国产精品素人一区二区| 国产性天天综合网| 久久一夜天堂av一区二区三区 | 久久精品欧美日韩精品| 日韩欧美一区二区不卡| 欧美剧在线免费观看网站| 91福利小视频| 在线观看欧美黄色| 欧美日韩一区久久| 欧美三级日本三级少妇99| 欧美午夜精品一区二区蜜桃| 在线精品观看国产| 在线观看亚洲精品视频| 91黄色在线观看| 欧美日韩久久不卡| 91精品国产aⅴ一区二区| 欧美日韩国产美| 日韩一区二区影院| 日韩精品综合一本久道在线视频| 91精品国产91热久久久做人人| 欧美男男青年gay1069videost| 555夜色666亚洲国产免| 欧美一区二区三区免费视频| 欧美日韩久久一区二区| 日韩一区国产二区欧美三区| 精品福利在线导航| 久久久久久久电影| 中文字幕亚洲精品在线观看| 亚洲一二三区视频在线观看| 日本vs亚洲vs韩国一区三区二区| 免费精品视频最新在线| 国产一区二区视频在线| 成人性色生活片| 欧美在线你懂的| 欧美一区二区免费视频| 欧美一区二区三区四区高清| 久久精品一区二区三区四区| 国产精品成人一区二区三区夜夜夜| 中文字幕日韩精品一区| 一个色在线综合| 国产专区综合网| 色综合久久99| 精品日产卡一卡二卡麻豆| 欧美精品一区二区三区在线| 亚洲欧洲成人自拍| 日韩av中文在线观看| 国产精品一区一区三区| 91福利在线看| 精品成人一区二区| 亚洲日本va午夜在线影院| 丝袜美腿亚洲一区| 成人动漫在线一区| 51精品久久久久久久蜜臀| 亚洲国产精品黑人久久久| 亚洲高清免费一级二级三级| 国产高清不卡一区二区| 欧美三级日韩三级| 国产精品福利一区| 日韩电影免费一区| 99国产欧美久久久精品| 精品成人一区二区| 午夜精品一区二区三区免费视频 | 色88888久久久久久影院野外| 日韩一区二区免费在线电影| 中文欧美字幕免费| 青青草视频一区| 91在线观看高清| 亚洲精品在线免费观看视频| 亚洲成人av在线电影| 成人黄色一级视频| 日韩精品一区二| 亚洲成国产人片在线观看| kk眼镜猥琐国模调教系列一区二区| 91精品在线免费| 亚洲一区二区三区四区的| 成人免费视频一区| 精品粉嫩aⅴ一区二区三区四区| 亚洲一二三四区不卡| 99久久夜色精品国产网站| 久久综合久久99| 免费观看91视频大全| 欧美亚洲精品一区| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品18久久久久久久久| 日韩欧美一卡二卡| 热久久一区二区| 538在线一区二区精品国产| 亚洲午夜精品一区二区三区他趣| 99re免费视频精品全部| 国产精品久久久久婷婷| 国产成人啪免费观看软件| 精品国产伦理网| 久久精品久久综合| 欧美不卡在线视频| 国内不卡的二区三区中文字幕| 337p粉嫩大胆噜噜噜噜噜91av | 97久久超碰精品国产| 亚洲欧美综合在线精品|