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

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

?? microsim.cpp

?? Finite element program for mechanical problem. It can solve various problem in solid problem
?? CPP
字號:
#include "microSIM.h"#include "global.h"#include <math.h>#include <stdlib.h>microSIM::microSIM (void){  c1 = 6.20e-1;  c2 = 2.76;  c4 = 70.;  c5 = 2.50;  c6 = 1.30;  c7 = 50.;  c8 = 8.0;  c9 = 1.30;  c10 = 0.73;  c11 = 0.2;  c12 = 7000.;  c13 = 0.23;  c14 = 0.8;  c15 = 1.0;  c16 = 0.02;  c17 = 0.01;  c18 = 1.0;  c19 = 0.4;   mu = 1.0;    kronecker.a = new double [6];  kronecker.n = 6;  // kronecker delta  kronecker [0]= 1.;  kronecker [1]= 1.;  kronecker [2]= 1.;  kronecker [3]= 0.;  kronecker [4]= 0.;  kronecker [5]= 0.;}microSIM::~microSIM (void){}void microSIM::read(XFILE *in){  xfscanf(in,"%ld %lf %lf %lf %lf %lf %lf %lf %lf",	 &numberOfMicroplanes,&k1,&k2,&k3,&k4,&c3,&c20,&e,&nu);    ev = e/(1-2*nu);  ed = 5*e/(2+3*mu)/(1+nu);  et = mu*ed;  //compute microplaneweights and projection tensors  initializeData (numberOfMicroplanes);}void microSIM::initializeData (long numberOfMicroplanes ){  //computes microplane normals, weights and projection tensors  long i,i4,mPlane;  long ij[6][2] = {{1,1},{2,2},{3,3},{2,3},{3,1},{1,2}};  matrix microplaneNormals(numberOfMicroplanes,3);    projN.a = new double [numberOfMicroplanes*6];  projN.m = numberOfMicroplanes;  projN.n = 6;    microplaneWeights.a = new double [numberOfMicroplanes];  microplaneWeights.n = numberOfMicroplanes;    // definition of intergation points and weights    if (numberOfMicroplanes == 28) {    for (i=0; i<4; i++) {      microplaneWeights[i]    = 0.0160714276E0;      microplaneWeights[i+4]  = 0.0204744730E0;      microplaneWeights[i+8]  = 0.0204744730E0;      microplaneWeights[i+12] = 0.0204744730E0;      microplaneWeights[i+16] = 0.0158350505E0;      microplaneWeights[i+20] = 0.0158350505E0;      microplaneWeights[i+24] = 0.0158350505E0;    }    double help[7][3]={{0.577350259E0, 0.577350259E0, 0.577350259E0},		       {0.935113132E0, 0.250562787E0, 0.250562787E0},		       {0.250562787E0, 0.935113132E0, 0.250562787E0},		       {0.250562787E0, 0.250562787E0, 0.935113132E0},		       {0.186156720E0, 0.694746614E0, 0.694746614E0},		       {0.694746614E0, 0.186156720E0, 0.694746614E0},		       {0.694746614E0, 0.694746614E0, 0.186156720E0}};    for (i=0; i< 7; i++) {      i4 = i * 4;      microplaneNormals[i4  ][0] = help[i][0];      microplaneNormals[i4  ][1] = help[i][1];      microplaneNormals[i4  ][2] = help[i][2];      microplaneNormals[i4+1][0] = help[i][0];      microplaneNormals[i4+1][1] = help[i][1];      microplaneNormals[i4+1][2] =-help[i][2];      microplaneNormals[i4+2][0] = help[i][0];      microplaneNormals[i4+2][1] =-help[i][1];      microplaneNormals[i4+2][2] = help[i][2];      microplaneNormals[i4+3][0] = help[i][0];      microplaneNormals[i4+3][1] =-help[i][1];      microplaneNormals[i4+3][2] =-help[i][2];    }  }   else if (numberOfMicroplanes == 21){    for (i=0; i<3; i++) microplaneWeights[i]    = 0.02652141274;    for (i=3; i<9; i++) microplaneWeights[i]    = 0.01993014153;    for (i=9; i<21; i++) microplaneWeights[i]    = 0.02507124272;        microplaneNormals[0][0] =  microplaneNormals[1][1] =  microplaneNormals[2][2] = 1. ;    microplaneNormals[0][1] =  microplaneNormals[0][2] =  microplaneNormals[1][0] =       microplaneNormals[1][2] = microplaneNormals[2][0] = microplaneNormals[2][1] = 0.;    microplaneNormals[3][0] =  microplaneNormals[3][1] =  microplaneNormals[4][0] =       microplaneNormals[5][0] = microplaneNormals[5][2] = microplaneNormals[6][0] =      microplaneNormals[7][1] = microplaneNormals[7][2] = microplaneNormals[8][1] =      0.7071067812;    microplaneNormals[4][1] =  microplaneNormals[6][2] =  microplaneNormals[8][2] =       -0.7071067812;    microplaneNormals[3][2] =  microplaneNormals[4][2] =  microplaneNormals[5][1] =      microplaneNormals[6][1] =  microplaneNormals[7][0] =  microplaneNormals[8][0] = 0.;            double help [3][3] = {{0.3879072746, 0.3879072746, 0.8360956240},			    {0.3879072746, 0.8360956240, 0.3879072746},			    {0.8360956240, 0.3879072746, 0.3879072746}};        for(i=0; i<3;i++){      i4 = i * 4;      microplaneNormals[9+i4][0] = help [i][0];      microplaneNormals[9+i4][1] = help [i][1];      microplaneNormals[9+i4][2] = help [i][2];            microplaneNormals[10+i4][0] = help [i][0];      microplaneNormals[10+i4][1] = help [i][1];      microplaneNormals[10+i4][2] = -help [i][2];            microplaneNormals[11+i4][0] = help [i][0];      microplaneNormals[11+i4][1] = -help [i][1];      microplaneNormals[11+i4][2] = help [i][2];            microplaneNormals[12+i4][0] = help [i][0];      microplaneNormals[12+i4][1] = -help [i][1];      microplaneNormals[12+i4][2] = -help [i][2];    }  }  else  if(numberOfMicroplanes == 61){        double help [61][4]={      {1.000000000000, 0.000000000000, 0.000000000000, 0.00795844204678},      {0.745355992500, 0.0           , 0.666666666667, 0.00795844204678},      {0.745355992500,-0.577350269190,-0.333333333333, 0.00795844204678},      {0.745355992500, 0.577350269190,-0.333333333333, 0.00795844204678},      {0.333333333333, 0.577350269190, 0.745355992500, 0.00795844204678},      {0.333333333333,-0.577350269190, 0.745355992500, 0.00795844204678},      {0.333333333333,-0.934172358963, 0.127322003750, 0.00795844204678},      {0.333333333333,-0.356822089773,-0.872677996250, 0.00795844204678},      {0.333333333333, 0.356822089773,-0.872677996250, 0.00795844204678},      {0.333333333333, 0.934172358963, 0.127322003750, 0.00795844204678},      {0.794654472292,-0.525731112119, 0.303530999103, 0.0105155242892},      {0.794654472292, 0.0           ,-0.607061998207, 0.0105155242892},      {0.794654472292, 0.525731112119, 0.303530999103, 0.0105155242892},      {0.187592474085, 0.0           , 0.982246946377, 0.0105155242892},      {0.187592474085,-0.850650808352,-0.491123473188, 0.0105155242892},      {0.187592474085, 0.850650808352,-0.491123473188, 0.0105155242892},      {0.934172358963, 0.0           , 0.356822089773, 0.0100119364272},      {0.934172358963,-0.309016994375,-0.178411044887, 0.0100119364272},      {0.934172358963, 0.309016994375,-0.178411044887, 0.0100119364272},      {0.577350269190, 0.309016994375, 0.755761314076, 0.0100119364272},      {0.577350269190,-0.309016994375, 0.755761314076, 0.0100119364272},      {0.577350269190,-0.809016994375,-0.110264089708, 0.0100119364272},      {0.577350269190,-0.5           ,-0.645497224368, 0.0100119364272},      {0.577350269190, 0.5           ,-0.645497224368, 0.0100119364272},      {0.577350269190, 0.809016994375,-0.110264089708, 0.0100119364272},      {0.356822089773,-0.809016994375, 0.467086179481, 0.0100119364272},      {0.356822089773, 0.0           ,-0.934172358963, 0.0100119364272},      {0.356822089773, 0.809016994375, 0.467086179481, 0.0100119364272},      {0.0           , 0.5           , 0.866025403784, 0.0100119364272},      {0.0           ,-1.0           , 0.0           , 0.0100119364272},      {0.0           , 0.5           ,-0.866025403784, 0.0100119364272},      {0.947273580412,-0.277496978165, 0.160212955043, 0.00690477957966},      {0.812864676392,-0.277496978165, 0.512100034157, 0.00690477957966},      {0.595386501297,-0.582240127941, 0.553634669695, 0.00690477957966},      {0.595386501297,-0.770581752342, 0.227417407053, 0.00690477957966},      {0.812864676392,-0.582240127941,-0.015730584514, 0.00690477957966},      {0.492438766306,-0.753742692223,-0.435173546254, 0.00690477957966},      {0.274960591212,-0.942084316623,-0.192025554687, 0.00690477957966},      {-0.076926487903,-0.942084316623,-0.326434458707, 0.00690477957966},      {-0.076926487903,-0.753742692223,-0.652651721349, 0.00690477957966},      {0.274960591212,-0.637341166847,-0.719856173359, 0.00690477957966},      {0.947273580412, 0.0           ,-0.320425910085, 0.00690477957966},      {0.812864676392,-0.304743149777,-0.496369449643, 0.00690477957966},      {0.595386501297,-0.188341624401,-0.781052076747, 0.00690477957966},      {0.595386501297, 0.188341624401,-0.781052076747, 0.00690477957966},      {0.812864676392, 0.304743149777,-0.496369449643, 0.00690477957966},      {0.492438766306, 0.753742692223,-0.435173546254, 0.00690477957966},      {0.274960591212, 0.637341166847,-0.719856173359, 0.00690477957966},      {-0.076926487903, 0.753742692223,-0.652651721349, 0.00690477957966},      {-0.076926487903, 0.942084316623,-0.326434458707, 0.00690477957966},      {0.274960591212, 0.942084316623,-0.192025554687, 0.00690477957966},      {0.947273580412, 0.277496978165, 0.160212955043, 0.00690477957966},      {0.812864676392, 0.582240127941,-0.015730584514, 0.00690477957966},      {0.595386501297, 0.770581752342, 0.227417407053, 0.00690477957966},      {0.595386501297, 0.582240127941, 0.553634669695, 0.00690477957966},      {0.812864676392, 0.277496978165, 0.512100034157, 0.00690477957966},      {0.492438766306, 0.0           , 0.870347092509, 0.00690477957966},      {0.274960591212, 0.304743149777, 0.911881728046, 0.00690477957966},      {-0.076926487903, 0.188341624401, 0.979086180056, 0.00690477957966},      {-0.076926487903,-0.188341624401, 0.979086180056, 0.00690477957966},      {0.274960591212,-0.304743149777, 0.911881728046, 0.00690477957966}};        for(i=0; i<numberOfMicroplanes; i++){      microplaneNormals[i][0]= help[i][0];      microplaneNormals[i][1]= help[i][1];      microplaneNormals[i][2]= help[i][2];      microplaneWeights[i]   = help[i][3];    }  }else{    fprintf (stderr,"microSIM::initializeData   Unsupported number of microplanes");  }// compute projection tensors for each microplane  long ii,jj;  vector n(3), m(3), l(3);  for (mPlane=0; mPlane < numberOfMicroplanes; mPlane++) {    n[0] = microplaneNormals[mPlane][0];    n[1] = microplaneNormals[mPlane][1];    n[2] = microplaneNormals[mPlane][2];    for (i=0; i<6; i++) {      ii = ij[i][0]-1;      jj = ij[i][1]-1;      projN[mPlane][i] = n(ii)*n(jj);    }  }  return;}void microSIM::matstiff (matrix &d,long ipp,long ido)  //  function returns elastic stiffness matrix  //  d - elastic stiffness matrix{  Mm->elmatstiff (d,ipp);}void microSIM::nlstresses (long ipp,long ido){  long i, i_other,mPlaneIndex;  double previousSigmaV,previousSigmaN,previousSigmaD;  double sev,sed;  double cv,cd,meanN=0.;  double sigmaN,sigmaV,sigmaD;  double epsV,depsV, epsD, epsN, depsD,depsN;  vector macroStrain(6), macroStrainIncrement(6), macroSigma(6);    //  initial values of strain vector and strain increment  for (i=0;i<6;i++){    macroStrain[i] = Mm->ip[ipp].strain[i];    macroStrainIncrement[i] = Mm->ip[ipp].strain[i] - Mm->ip[ipp].eqother[ido+i+numberOfMicroplanes+1];    //UPDATE history variables= store total macroStrain    Mm->ip[ipp].other[ido+i+numberOfMicroplanes+1]=Mm->ip[ipp].strain[i];  }  //volumetric microstrain and microstrain increment  epsV = (macroStrain[0]+macroStrain[1]+macroStrain[2])/3.0;  depsV= (macroStrainIncrement[0]+macroStrainIncrement[1]+macroStrainIncrement[2])/3.0;  //ask for previous volumetric stress  previousSigmaV=Mm->ip[ipp].eqother[ido+0];    //loop over all microplanes  for (mPlaneIndex=0; mPlaneIndex < numberOfMicroplanes; mPlaneIndex++) {        //compute total microstrains on microplane and its increments    epsN=0., depsN=0.;    for (i=0; i<6; i++) {      epsN += projN [mPlaneIndex][i]*macroStrain[i];      depsN += projN [mPlaneIndex][i]*macroStrainIncrement[i];    }    epsD = epsN - epsV;    depsD = depsN - depsV;        //ask for previous stress components on microplane    i_other=ido+mPlaneIndex+1;//poradi komponenty v poli history parametru L,M,N    previousSigmaN=Mm->ip[ipp].eqother[i_other];    previousSigmaD=previousSigmaN-previousSigmaV;        //evaluation of new microplane stresses    //secant moduli    cv = ev;    cd = ed;        //volumetric microstress    sev=previousSigmaV + cv*depsV;    sigmaV=minim( maxim(sev,FVminus(epsV)), FVplus(epsV));    //deviatoric microstress    sed=previousSigmaD + cd*depsD;     sigmaD=minim(maxim(sed,FDminus(epsD)),FDplus(epsD));    //normal microstress    sigmaN=minim( (sigmaV+sigmaD) ,FN(epsN,previousSigmaV));         //mean normal microstress (computed after sweeping throgh all microplanes)    meanN += sigmaN* microplaneWeights[mPlaneIndex]*6.0;    //UPDATE history variables, i.e. store microstresses    Mm->ip[ipp].other[i_other]=sigmaN;      }//end 1st loop over nmp      //volumetric stress is the same for all  mplanes  //and does not need to be homogenized .  //Only updating accordinging to mean normal stress must be done.     if (sigmaV > (meanN/3.))  {sigmaV = meanN/3.;}  //UPDATE history variables= store posibly new sigmaV  Mm->ip[ipp].other[ido+0]=sigmaV;    fillv(0,macroSigma);//zero macroSigma  //compute macrostresstensor  for (mPlaneIndex=0; mPlaneIndex < numberOfMicroplanes; mPlaneIndex++) {    i_other=ido+mPlaneIndex+1;//poradi komponenty v poli history parametru L,M,N    sigmaN=Mm->ip[ipp].other[i_other];    //recalculation of sigmaD according to possibly new sigmaV     sigmaD = sigmaN - sigmaV;            for (i=0; i<6; i++) {      macroSigma[i]+=(projN[mPlaneIndex][i]-kronecker[i]/3.)*sigmaD*microplaneWeights[mPlaneIndex]*6.0;      }      }//end 2nd loop over nmp    //2nd constraint, addition of volumetric part  macroSigma[0]+=sigmaV;  macroSigma[1]+=sigmaV;  macroSigma[2]+=sigmaV;    //send new macrostress vector to the solver  Mm->storestress(0,ipp,macroSigma);}void microSIM::updateval(long ipp,long im,long ido){  long i,n = Mm->givencompother(ipp, im);  for (i=0;i<n;i++){    Mm->ip[ipp].eqother[ido+i]=Mm->ip[ipp].other[ido+i];  }}inline doublemicroSIM  :: macbra(double x) /* Macauley bracket = positive part of x */{  return(maxim(x,0.0));}inline doublemicroSIM :: FVplus (double epsV)/*positive volumetric boundary */{  return(ev*k1*c13/(1+(c14/k1)*macbra(epsV-c13*c15*k1)));}inline doublemicroSIM :: FVminus (double epsV)/*negative volumetric boundary */{return(-e*k1*k3*exp(-epsV/(k1*k4)));}inline doublemicroSIM :: FDminus(double epsD) /*negative deviatoric boundary */ {   double a;   a=macbra(-epsD-c8*c9*k1)/(k1*c7);   return(-e*k1*c8/(1+a*a)); }inline doublemicroSIM  :: FDplus(double epsD)/*positive deviatoric bondary */{  double a;  a=(macbra(epsD-c5*c6*k1)/(k1*c20*c7));  return (e*k1*c5/(1+a*a));}inline doublemicroSIM :: FN(double epsN,double sigmaV) /*normal boundary */{  return(e*k1*c1*exp(-macbra(epsN-c1*c2*k1)/(k1*c3+macbra(-c4*(sigmaV/ev)))));}inline doublemicroSIM :: maxim (double a,double b){  return(a>b ? a:b);}inline doublemicroSIM :: minim (double a,double b){  return(a<b ? a:b);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www激情久久| 日韩精品在线看片z| www.欧美日韩| 色综合久久久久网| 欧美三级中文字幕| 日本高清不卡aⅴ免费网站| 91网上在线视频| 欧美军同video69gay| 欧美日韩国产美| 久久久综合视频| 亚洲另类春色国产| 婷婷久久综合九色综合伊人色| 日韩中文字幕不卡| 国产综合成人久久大片91| 高清不卡一区二区| 色偷偷久久一区二区三区| 91精品国产综合久久精品性色| 日韩欧美国产1| 亚洲乱码国产乱码精品精小说 | 亚洲人妖av一区二区| 性做久久久久久久久| 国产一区二区不卡| 欧美日韩三级视频| 国产精品嫩草影院com| 奇米色777欧美一区二区| 粉嫩aⅴ一区二区三区四区五区| 26uuu色噜噜精品一区| 亚洲一区二区在线播放相泽| 激情六月婷婷综合| 91精品国产免费| 婷婷成人综合网| 在线欧美小视频| 亚洲欧美乱综合| 国产精品99久| 久久精品欧美一区二区三区麻豆| 亚洲国产精品久久久久婷婷884 | 国产精品理论片在线观看| 九九视频精品免费| 欧美一级黄色大片| 日韩不卡在线观看日韩不卡视频| 欧美日韩一区二区三区在线| 亚洲精品成人精品456| 日本精品免费观看高清观看| 亚洲精品欧美专区| 久久久久久久久伊人| 狠狠色丁香九九婷婷综合五月| 日韩一级黄色片| 国产一区二区三区免费看| 久久精品一区二区三区不卡| 国产精品亚洲а∨天堂免在线| 国产目拍亚洲精品99久久精品| 国内精品视频666| 日韩伦理免费电影| 欧美男生操女生| 久久国产精品色婷婷| 久久精品免费在线观看| 99国产精品99久久久久久| 亚洲精品国产精华液| 日韩美女在线视频| av一区二区不卡| 人人精品人人爱| 国产精品欧美经典| 91精品福利在线一区二区三区 | 国产精品日日摸夜夜摸av| 91首页免费视频| 国产精品亚洲一区二区三区妖精| 亚洲人成网站色在线观看| 日韩午夜精品视频| 欧美午夜精品电影| 成人黄色小视频| 久久精品国产99国产精品| 亚洲图片欧美视频| 亚洲女女做受ⅹxx高潮| 久久亚洲春色中文字幕久久久| 欧美日韩mp4| 欧美视频三区在线播放| 99久久精品免费看| 成人av电影免费观看| 久久精品免费观看| 日韩av午夜在线观看| 亚洲va欧美va人人爽| 亚洲 欧美综合在线网络| 亚洲精品自拍动漫在线| 亚洲欧洲一区二区在线播放| 久久久久成人黄色影片| 久久亚洲一区二区三区四区| 欧美电影免费提供在线观看| 精品国产免费久久| 亚洲精品在线免费观看视频| 欧美电影免费观看高清完整版在线| 7777精品伊人久久久大香线蕉的| 欧美视频完全免费看| 日韩女优av电影| 国产视频一区在线播放| 国产情人综合久久777777| 日韩毛片精品高清免费| 亚洲成av人**亚洲成av**| 一本色道亚洲精品aⅴ| 在线观看av一区二区| 欧美一级在线视频| 亚洲国产精品黑人久久久| 亚洲精品菠萝久久久久久久| 日韩精品每日更新| 国产精品白丝jk黑袜喷水| 欧美伊人久久久久久久久影院 | 国产一区二区三区在线观看精品| 高清在线观看日韩| 欧美精品成人一区二区三区四区| 精品国产乱码91久久久久久网站| 国产精品色在线| 免费视频最近日韩| 在线这里只有精品| 国产欧美综合在线观看第十页| 日韩精品成人一区二区三区| 91亚洲精品乱码久久久久久蜜桃| 日韩欧美在线网站| 亚洲男人天堂av| caoporn国产精品| 国产亚洲成年网址在线观看| 日本aⅴ精品一区二区三区| 日本道色综合久久| 亚洲三级久久久| 91麻豆精品秘密| 国产精品福利在线播放| 国产aⅴ综合色| 久久久99久久| 成人精品高清在线| 中文字幕精品在线不卡| 国产在线视频一区二区| 久久九九久久九九| 国产精品香蕉一区二区三区| 国产午夜久久久久| 粉嫩aⅴ一区二区三区四区| 国产精品久久久久四虎| 成人aaaa免费全部观看| 亚洲精品久久7777| 欧美日韩1234| 色噜噜狠狠色综合中国| 一区二区三区加勒比av| 欧美精品三级日韩久久| 美女在线一区二区| 欧美激情一二三区| 在线一区二区视频| 日本成人在线网站| 久久噜噜亚洲综合| 欧美性一二三区| 激情欧美一区二区三区在线观看| 亚洲国产精品99久久久久久久久| 不卡一区二区在线| 亚洲国产精品天堂| 国产色爱av资源综合区| 91官网在线观看| 国产一区二区网址| 亚洲网友自拍偷拍| 国产精品久久久久9999吃药| 欧美日韩精品高清| 国产91清纯白嫩初高中在线观看| 一区二区在线观看不卡| 久久精品一区四区| 91麻豆精品91久久久久久清纯| 成人妖精视频yjsp地址| 美腿丝袜亚洲三区| 香蕉加勒比综合久久| 自拍偷拍国产精品| 中文字幕高清不卡| 久久亚洲免费视频| 欧美mv和日韩mv的网站| 欧美日韩视频在线一区二区| 91丨porny丨最新| 99久久婷婷国产精品综合| 国产成人精品免费在线| 国产91精品欧美| 国产精品一区久久久久| 国产乱子伦视频一区二区三区| 久久福利视频一区二区| 麻豆一区二区99久久久久| 日本亚洲免费观看| 免费高清不卡av| 国产一区二区三区在线看麻豆| 免费在线看成人av| 精品一区二区三区的国产在线播放| 视频精品一区二区| 日本成人中文字幕在线视频| 久久精品免费观看| 国产精品99久久久久久有的能看 | 丝袜美腿一区二区三区| 一级精品视频在线观看宜春院| 一区二区三区在线看| 香蕉成人伊视频在线观看| 免费成人av资源网| 风流少妇一区二区| 一本色道久久综合亚洲91| 7878成人国产在线观看| 国产91清纯白嫩初高中在线观看| 国产精品一线二线三线精华| 色婷婷一区二区| 91精品国产综合久久精品| 国产日韩欧美在线一区| 一区二区三区在线观看视频| 青青草成人在线观看|