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

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

?? frame2d.c

?? 工程中有限元程序,采用C語言編制,包括所有經典的有限元問題!
?? C
字號:
/*==============================*/
/*          frame2d.c           */
/*  2-d  frame analysis by fem  */
/*   chandrupatla & belegundu   */
/* =============================*/
#include <stdio.h>
#include <math.h>
main()
{
   FILE *fptr;
   int n,nq,i,j,k,m,i1,i2,ii,nrt,it,nr,jj,nct,jt,nc;
   char dummy[81], title[81], file1[81], file2[81];
   int ne,nn,nm,nd,nl,nen,ndn,ndim,npr,nbw,nmpc,nch;
   int *noc,*nu,*mat,*mpc;
   float *x,*arin,*pm,*u,*s,*f,*beta,*udl,se[6][6],ed[6];
   float edp[6],alambda[6][6],sep[6][6],ef[6];
   float c,el,eil,cnst,reaction;
   printf("\n");
   puts("Input file name < dr:fn.ext >: ");
   gets(file1);
   puts("Output file name < dr:fn.ext >: ");
   gets(file2);
   fptr = fopen(file1, "r");
   fgets(dummy,80,fptr);
   fgets(title,80,fptr);
   fgets(dummy,80,fptr);
   fscanf(fptr,"%d %d %d %d %d %d\n", &nn, &ne, &nm, &ndim, &nen, &ndn);
   fgets(dummy, 80, fptr);
   fscanf(fptr,"%d %d %d %d %d\n", &nd, &nl, &nmpc);
   npr = 1;  /* Material property E */
   nch = 2;  /* Area, Inertia of Element */
   /* ----- total dof is nq ----- */
   nq = ndn*nn;
/* --------------- 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));
   arin = (float *) calloc(nch*ne, sizeof(float));
   f = (float *) calloc(nn*ndn, sizeof(float));
   pm = (float *) calloc(nm*npr, sizeof(float));
   mpc = (int *) calloc(2*nmpc, sizeof(int));
   beta = (float *) calloc(3*nmpc, sizeof(float));
   udl = (float *) calloc(ne, sizeof(float));
/* ------------------ read data --------------------- */
/* ----- coordinates ----- */
   fgets(dummy,80,fptr);
   for (i = 0; i < nn; i++) {
      fscanf(fptr, "%d", &n);
      for (j = 0; j < ndim; j++) {
	  fscanf(fptr, "%f\n",&c);
          x[ndim*(n-1)+j] = c;
          }
      }
/* --- connectivity, material, area, mom_inertia, distr_load --- */
   fgets(dummy,80,fptr);
   for (i = 0; i < ne; i++) {
      fscanf(fptr,"%d", &n);
      for (j = 0; j < nen; j++) {
         fscanf(fptr,"%d", &k);
         noc[(n-1)*nen+j]=k;
          }
         fscanf(fptr,"%d", &k);
         mat[n-1] = k;
	     fscanf(fptr,"%f\n",&c);
         arin[2*(n-1)] = c;
         fscanf(fptr,"%f\n",&c);
         arin[2*(n-1)+1] = c;
	     fscanf(fptr,"%f\n",&c);
         udl[n-1] = c;
      }
/* ----- boundary conditions ----- */
   fgets(dummy,80,fptr);
   for (i = 0; i < nd; i++) {
      fscanf(fptr, "%d %f\n", &k, &c);
      nu[i] = k;
      u[i] = c;
   }
/* ----- component loads ----- */
   fgets(dummy,80,fptr);
   for (i = 0; i < nl; i++) {
      fscanf(fptr, "%d %f\n", &k, &c);
      f[k-1] = c;
   }
/* ----- material properties ----- */
   fgets(dummy,80,fptr);
   for (i = 0; i < nm; i++){
      fscanf(fptr, "%d", &k);
      for (j = 0; j < npr; j++) {
         fscanf(fptr, "%f\n", &c);
	 pm[(k-1)*npr+j] = c;
      }
   }
/* ----- multipoint constraints ----- */
   if (nmpc > 0) 
      { fgets(dummy,80,fptr);
        for(j=0;j<nmpc;j++){
           fscanf(fptr,"%f",&c);
	   beta[3*j]=c;
	   fscanf(fptr,"%d",&k);
	   mpc[2*j]=k;
           fscanf(fptr,"%f",&c);
	   beta[3*j+1]=c;
           fscanf(fptr,"%d",&k);
           mpc[2*j+1]=k;
           fscanf(fptr,"%f",&c);
	   beta[3*j+2]=c;
	   }
	}
   fclose (fptr);
/* ----- bandwidth evaluation ----- */
   nbw = 0;
   for (i = 0; i < ne; i++) {
      n = ndn * (abs(noc[nen*i] - noc[nen*i+1])+1);
      if (nbw < n)
         nbw = n;
   }
   for (i = 0; i < nmpc; i++) {
      n = abs(mpc[2*i] - mpc[2*i+1])+1;
      if (nbw < n)
         nbw = n;
   }
   fptr = fopen(file2, "w");
   printf("\n%s\n", title);
   fprintf(fptr, "\n%s\n", title);
   printf("bandwidth = %d\n",nbw);
   fprintf(fptr, "bandwidth = %d\n",nbw);
/* ----- allocate memory for stiffness ----- */
   s = (float *) calloc(nq*nbw, sizeof(float));
/* ----- global stiffness matrix ----- */
   for (n = 0; n < ne; n++) {
      printf("forming stiffness matrix of element... %d\n", n+1);
    elstif(2,se,alambda,sep,&el,x,noc,mat,pm,arin,nch,n);
	printf (".... placing in global locations\n");
	for (ii = 0; ii < nen; ii++) {
	   nrt = ndn * (noc[nen*n + ii] - 1);
	   for (it = 0; it < ndn; it++) {
	      nr = nrt + it;
	      i = ndn * ii + it;
	      for (jj = 0; jj < nen; jj++) {
		 nct = ndn * (noc[nen*n+jj] - 1);
		 for (jt = 0; jt < ndn; jt++) {
		    j = ndn * jj + jt;
		    nc = nct + jt - nr;
		    if (nc >= 0)
		       s[nbw*nr+nc] = s[nbw*nr+nc] + se[i][j];
		    }
		  }
	     }
	  }
   }
/* ----- decide penalty parameter cnst ----- */
   cnst = 0;
   for (i = 0;i < nq; i++){
       if (cnst < s[i*nbw])
          cnst = s[i*nbw];
       }
   cnst = 10000 * cnst;
   /* ----- loads due to uniformly distributed load on element ----- */
     for (n = 0; n < ne; n++) {
	if (fabs(udl[n]) > 0) {
	   elstif(1,se,alambda,sep,&el,x,noc,mat,pm,arin,nch,n);
	   ed[0] = 0;
	   ed[3] = 0;
	   ed[1] = udl[n] * el / 2;
	   ed[4] = ed[1];
	   ed[2] = udl[n] * el * el / 12;
	   ed[5] = -ed[2];
	   for (i = 0; i < 6; i++) {
	      edp[i] = 0;
	      for (k = 0; k < 6; k++) {
		 edp[i] = edp[i] + alambda[k][i] * ed[k];
		 }
	       }
	   i1 = 3*(noc[2*n]-1);
	   i2 = 3*(noc[2*n+1]-1);
	    for (i = 0; i < 3; i++) {
	      f[i1 + i] = f[i1 + i] + edp[i];
	      f[i2 + i] = f[i2 + i] + edp[i + 3];
	      }
           }
	}
 /* ----- modify for displacement boundary conditions ----- */

   for (i = 0; i < nd; i++) {
      k = nu[i];
      s[(k-1)*nbw] = s[(k-1)*nbw] + cnst;
      f[k-1] = f[k-1] + cnst * u[i];
   }
/* ----- modify for multipoint constraints ----- */
   for (i = 0; i < nmpc; i++){
       i1 = mpc[2*i];
       i2 = mpc[2*i+1];
       s[(i1-1)*nbw] = s[(i1-1)*nbw] + cnst*beta[3*i]*beta[3*i];
       s[(i2-1)*nbw] = s[(i2-1)*nbw] + cnst*beta[3*i+1]*beta[3*i+1];
       n=i1;
       if (n > i2)
	  n = i2;
       m = abs(i2-i1);
       s[(n-1)*nbw+m] = s[(n-1)*nbw+m]+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 band solver ----- */
   bansol(s,f,nq,nbw);
/* ----- printing displacements ----- */
   printf("node#    x-displ.     y-displ.     rotation\n");
   fprintf(fptr, "node#    x-displ.     y-displ.     rotation\n");
   for (i = 0; i < nn; i++) {
    i1 = 3*i;
    printf(" %3d  %11.4e  %11.4e  %11.4e\n",i+1,f[i1],f[i1+1],f[i1+2]);
    fprintf(fptr," %3d  %11.4e  %11.4e  %11.4e\n",i+1,f[i1],f[i1+1],f[i1+2]);
   }
/* ----- reaction calculation ----- */
   printf(" dof#   reaction\n");
   fprintf(fptr, "dof#    reaction\n");
   for (i = 0; i < nd; i++) {
      k = nu[i];
      reaction = cnst * (u[i] - f[k-1]);
      printf(" %3d   %11.4e\n", k, reaction);
      fprintf(fptr, " %3d   %11.4e\n", k, reaction);
   }
/* ---- member end-actions ----- */
     fprintf(fptr, " member end-forces\n");
     for (n = 0; n < ne; n++) {
       elstif(1,se,alambda,sep,&el,x,noc,mat,pm,arin,nch,n);
       i1 = 3*(noc[2*n]-1);
	   i2 = 3*(noc[2*n+1]-1);
       for (i = 0; i < 3; i++) {
	   ed[i] = f[i1 + i];
	       ed[i + 3] = f[i2 + i];
           }
       for (i = 0; i < 6; i++) {
           edp[i] = 0;
           for (k = 0; k < 6; k++) {
              edp[i] = edp[i] + alambda[i][k] * ed[k];
              }
           }
    /* --- end forces due to distributed loads --- */
       if (fabs(udl[n]) > 0) {
           ed[0] = 0;
	   ed[3] = 0;
	   ed[1] = -udl[n] * el / 2;
	   ed[4] = ed[1];
	   ed[2] = -udl[n] * el * el / 12;
	   ed[5] = -ed[2];
	   }
	else {
	   for (k = 0; k < 6; k++) {
		  ed[k] = 0;
		  }
	   }
       for (i = 0; i < 6; i++) {
	   ef[i] = ed[i];
	   for (k = 0; k < 6; k++) {
              ef[i] = ef[i] + sep[i][k] * edp[k];
              }
           }
	fprintf(fptr, " member # %d\n", n+1);
        for (i = 0; i < 2; i++) {
         ii = 3*i;
	 fprintf(fptr, "%11.4e %11.4e %11.4e\n",ef[ii],ef[ii+1],ef[ii+2]);
	 }
     }
   fclose (fptr);
   printf("\n output is in file %s \n",file2);
   return(0);
}
/* ----- element stiffness ----- */
elstif(istf,se,alambda,sep,el1,x,noc,mat,pm,arin,nch,n)
int *noc,*mat,istf,nch,n;
float *pm,*x,*arin,se[][6],sep[][6],alambda[][6],*el1;
{
  int i1,i2,m,i,j,k,ik;
  float x21,y21,eal,eizl,el,dcos[3][3];
     i1 = 2*(noc[2*n]-1);
     i2 = 2*(noc[2*n+1]-1);
     m = mat[n]-1;
     x21 = x[i2] - x[i1];
     y21 = x[i2+1] - x[i1+1];
     el = sqrt((double) (x21 * x21 + y21 * y21));
     *el1 = el;
     eal = pm[m] * arin[nch*n] / el;
     eizl = pm[m] * arin[nch*n+1] / el;
     for (i = 0; i < 6; i++) {
         for (j = 0; j < 6; j++) {
            sep[i][j] = 0;
            }
	}
     sep[0][0] = eal;
     sep[0][3] = -eal;
     sep[3][3] = eal;
     sep[1][1] = 12 * eizl / el / el;
     sep[1][2] = 6 * eizl / el;
     sep[1][4] = -sep[1][1];
     sep[1][5] = sep[1][2];
     sep[2][2] = 4 * eizl;
     sep[2][4] = -6 * eizl / el;
     sep[2][5] = 2 * eizl;
     sep[4][4] = 12 * eizl / el / el;
     sep[4][5] = -6 * eizl / el;
     sep[5][5] = 4 * eizl;
     for (i = 0; i < 6; i++) {
	for (j = i; j < 6; j++) {
           sep[j][i] = sep[i][j];
           }
	    }
   /* --- convert element stiffness matrix to global system --- */
     dcos[0][0] = x21 / el;
     dcos[0][1] = y21 / el;
     dcos[0][2] = 0;
     dcos[1][0] = -dcos[0][1];
     dcos[1][1] = dcos[0][0];
     dcos[1][2] = 0;
     dcos[2][0] = 0;
     dcos[2][1] = 0;
     dcos[2][2] = 1;
     for (i = 0; i < 6; i++) {
        for (j = 0; j < 6; j++) {
           alambda[i][j] = 0;
           }
	 }
     for (k = 0; k < 2; k++) {
	ik = 3 * k;
	for (i = 0; i < 3; i++) {
	   for (j = 0; j < 3; j++) {
	      alambda[i + ik][j + ik] = dcos[i][j];
	      }
	       }
        }
     if (istf == 1)
        return(0);
     for (i = 0; i < 6; i++) {
        for (j = 0; j < 6; j++) {
           se[i][j] = 0;
           for (k = 0; k < 6; k++) {
              se[i][j] = se[i][j] + sep[i][k] * alambda[k][j];
              }
           }
	    }
     for (i = 0; i < 6; i++) {
	    for (j = 0; j < 6; j++) {
	       sep[i][j] = se[i][j];
	       }
	    }
     for (i = 0; i < 6; i++) {
        for (j = 0; j < 6; j++) {
           se[i][j] = 0;
           for (k = 0; k < 6; k++) {
              se[i][j] = se[i][j] + alambda[k][i] * sep[k][j];
              }
           }
	    }
     return(0);
}
/* ----- band solver ----- */
bansol(s,f,nq,nbw)
  int nq, nbw;
  float *s, *f;
{
 int n1,k,nk,i,i1,j,j1,kk;
  float c1;
  /* ----- band solver ----- */
  n1 = nq - 1;
  /* --- forward elimination --- */
  for (k = 1; k <= n1; k++) {
     nk = nq - k + 1;
     if (nk > nbw)
	nk = nbw;
     for (i = 2; i <= nk; i++) {
       c1 = s[nbw*(k-1)+i-1] / s[nbw*(k-1)];
       i1 = k + i - 1;
       for (j = i; j <= nk; j++) {
	j1 = j - i + 1;
	s[nbw*(i1-1)+j1-1] = s[nbw*(i1-1)+j1-1] - c1 * s[nbw*(k-1)+j-1];
	}
       f[i1-1] = f[i1-1] - c1 * f[k-1];
       }
     }
  /* --- back-substitution --- */
  f[nq-1] = f[nq-1] / s[nbw*(nq-1)];
  for (kk = 1; kk <= n1;kk++) {
     k = nq - kk;
     c1 = 1 / s[nbw*(k-1)];
     f[k-1] = c1 * f[k-1];
     nk = nq - k + 1;
     if (nk > nbw)
       nk = nbw;
       for (j = 2; j <= nk; j++) {
	 f[k-1] = f[k-1] - c1 * s[nbw*(k-1)+j-1] * f[k + j - 2];
	}
     }
    return(0);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级日韩不卡播放免费| 一本久道中文字幕精品亚洲嫩| 亚洲欧美另类图片小说| 国产日韩精品视频一区| 久久久久久黄色| 国产精品网站在线| 亚洲天堂2016| 一区二区三区色| 亚洲成人精品在线观看| 日本伊人午夜精品| 激情五月婷婷综合网| 国产精品自拍一区| 99精品久久只有精品| 欧美午夜不卡视频| 欧美一区二区三区四区五区 | 精品一区二区免费| 另类专区欧美蜜桃臀第一页| 国产在线播精品第三| 成人手机在线视频| 91黄色免费版| 精品裸体舞一区二区三区| 久久精品亚洲一区二区三区浴池| 欧美激情在线一区二区| 亚洲午夜视频在线观看| 麻豆精品视频在线观看视频| 粉嫩av亚洲一区二区图片| 91浏览器在线视频| 欧美电视剧免费观看| 国产精品污www在线观看| 亚洲午夜激情网页| 国产成+人+日韩+欧美+亚洲| 色婷婷亚洲婷婷| 欧美变态口味重另类| 亚洲人精品一区| 久草在线在线精品观看| 91麻豆产精品久久久久久 | 成人精品一区二区三区四区| 色综合色综合色综合| 日韩三级免费观看| 亚洲欧美另类在线| 国产一区二区主播在线| 欧美性色黄大片手机版| 国产午夜精品久久久久久久 | 欧美日韩国产综合草草| 欧美国产视频在线| 日本色综合中文字幕| eeuss鲁一区二区三区| 日韩欧美高清在线| 五月综合激情网| 色综合久久久久| 中文天堂在线一区| 麻豆中文一区二区| 欧美三级三级三级| 国产精品不卡视频| 国产在线精品一区二区夜色| 91精品久久久久久久91蜜桃| 亚洲免费毛片网站| 不卡一卡二卡三乱码免费网站| 日韩手机在线导航| 日韩在线一区二区| 91成人免费电影| 一区二区在线观看免费| a美女胸又www黄视频久久| 欧美激情在线免费观看| 国产suv精品一区二区三区| 欧美成人激情免费网| 亚洲成av人片在线观看| 在线观看亚洲精品| 一区二区三区久久久| 94色蜜桃网一区二区三区| 国产精品欧美极品| www.日韩在线| 亚洲丝袜美腿综合| 91在线国内视频| ㊣最新国产の精品bt伙计久久| 国产精品91一区二区| 久久亚洲春色中文字幕久久久| 卡一卡二国产精品| 精品国产乱码久久久久久免费| 蜜臀av性久久久久蜜臀aⅴ四虎| 91精品午夜视频| 肉丝袜脚交视频一区二区| 欧美久久久一区| 天天射综合影视| 欧美一级黄色片| 国产成人超碰人人澡人人澡| 欧美激情一区三区| 色哦色哦哦色天天综合| 亚洲成年人网站在线观看| 91精品国产综合久久蜜臀| 麻豆精品久久久| 国产片一区二区三区| 99精品欧美一区二区三区综合在线| 自拍偷拍国产精品| 这里只有精品99re| 国产精品资源在线看| 国产精品家庭影院| 欧美日韩视频第一区| 另类成人小视频在线| 国产精品天美传媒| 欧美伦理视频网站| 国产乱人伦偷精品视频不卡 | 精品伦理精品一区| 99久久精品一区二区| 午夜欧美视频在线观看| 精品粉嫩超白一线天av| 91丨九色丨尤物| 久久99日本精品| 国产精品国产精品国产专区不片| 欧洲精品在线观看| 国产精品18久久久久久久网站| 一区二区三区自拍| 精品va天堂亚洲国产| 色婷婷国产精品久久包臀| 日本最新不卡在线| 亚洲欧美日韩一区二区 | 成人欧美一区二区三区在线播放| 欧美精品v国产精品v日韩精品 | 日本一区二区综合亚洲| 欧美综合天天夜夜久久| 精品一区二区免费在线观看| 伊人色综合久久天天人手人婷| 精品国产欧美一区二区| 欧美午夜精品一区| 国产91丝袜在线播放九色| 婷婷综合另类小说色区| 亚洲品质自拍视频| 欧美极品aⅴ影院| 欧美一区二区三区婷婷月色| 在线观看成人小视频| 国产99精品国产| 久久精品国产免费看久久精品| 亚洲午夜久久久久久久久电影网| 亚洲国产精品国自产拍av| 日韩欧美国产一区二区在线播放| 欧美自拍偷拍一区| 91色乱码一区二区三区| 国产黄色成人av| 狠狠网亚洲精品| 麻豆国产精品一区二区三区| 一个色妞综合视频在线观看| 国产精品免费久久久久| 欧美激情一区二区在线| 久久精品一区八戒影视| 欧美一级片免费看| 91精品欧美久久久久久动漫 | 成人激情图片网| 国产福利一区在线| 国产精品一区二区三区乱码| 久久99国产精品成人| 奇米影视一区二区三区小说| 日韩精品91亚洲二区在线观看| 亚洲福利国产精品| 亚洲午夜电影在线观看| 丝袜美腿成人在线| 日韩黄色一级片| 秋霞av亚洲一区二区三| 六月丁香综合在线视频| 黄色资源网久久资源365| 国内不卡的二区三区中文字幕| 国产最新精品免费| 成人av午夜电影| 99久久精品久久久久久清纯| 91丨porny丨中文| 欧美最新大片在线看| 欧美精品在线一区二区| 日韩精品专区在线影院重磅| 精品欧美一区二区三区精品久久| 亚洲精品在线三区| 亚洲欧美综合另类在线卡通| 亚洲毛片av在线| 婷婷综合久久一区二区三区| 美脚の诱脚舐め脚责91 | 国产精品久久三区| 一区二区三区在线视频观看| 一区二区三区**美女毛片| 日本中文一区二区三区| 国产精品一级黄| 91成人免费在线视频| 欧美xfplay| 亚洲人快播电影网| 麻豆精品视频在线观看免费| 99在线热播精品免费| 91精品国产综合久久久久久漫画| 2023国产精品自拍| 亚洲精品视频一区| 麻豆一区二区三区| 色88888久久久久久影院野外| 日韩亚洲欧美在线| 亚洲欧洲国产日本综合| 日本午夜一本久久久综合| 风间由美一区二区av101 | 99re这里只有精品首页| 在线播放视频一区| 国产精品国产三级国产普通话蜜臀| 亚洲一二三区在线观看| 国产成人在线视频免费播放| 欧美日韩国产片| 亚洲欧美一区二区在线观看| 蜜桃久久精品一区二区|