免费黄网站在线观看_成人午夜剧场免费观看完整版_多野结衣av一区_亚洲激情在线视频_国产乱码精品一区二区三区亚洲人 _国产成人精品三级_视频一区视频二区视频三区高_一区福利视频_国产成人精品午夜_蜜桃成人365av_国产精品美女久久久久久久_国产伦精品一区二区三区视频免费

您的位置:網站首頁 > Ansys教程

使用ANSYS APDL和C語言實現混合編程

時間:2011-01-30 12:07:50 來源:未知

本文探討了使用ANSYS APDL和C語言實現混合編程的相關內容。

  本文討論的不是利用C語言為ANSYS寫擴展(或者說是用戶子程序),而是討論結合APDL對ANSYS的現有的計算程序進行復用,例如對ANSYS強大的前后處理程序,包括網格剖分,計算結果顯示等,或者利用有限元計算部分的模塊,使用ANSYS方便的邊界條件加載,方程組求解等。

  0. 為什么進行混合編程

  既然ANSYS已經提供了APDL這么強大的編程語言,為什么還要用C語言來與APDL混合編程呢?下面的幾個原因,首先是前處理建模的要求,APDL并不能應對實際中非常復雜的模型的構建,本文的出發點之一就是復合材料分析中的幾何模型構建問題,由于材料中的增強體為隨機的顆粒,每一次模擬中,顆粒都是隨機生成的,使用APDL并不方便;其次就是利用ANSYS的計算資源的考慮,比如上述問題,就可以利用C語言來生成模型的數據,利用APDL來構建幾何模型,以及剖分有限元網格,用于自己的計算程序;還有在一些問題中,其邊界條件,載荷等也是通過程序算出來的話,也可以通過混合編程對問題求解;另外,可以發揮C語言的優勢,比如說計算效率,現有的庫等,總而言之,混合編程能更充分利用ANSYS的計算程序以及C語言的優勢,并且可以實現計算機上的自動化計算。

  1. 混合編程的原理

  ANSYS與C語言混合編程的原理很簡單,實際上就是用C語言生成ANSYS的apdl命令流文件,然后通過命令行調用ANSYS進行計算。這個過程同樣可以使用其他的編程語言(比如FORTRAN,Python等)來進行,可以發揮各種語言的優勢以及對現有的程序庫的使用。

  2. 如何使用C語言的實現

  知道了混合編程的原理,那么就很簡單了,其過程無非就是利用C語言打開一個文件,寫入命令流,關閉文件,調用ANSYS進行計算。

  文件操作需要使用的函數有

  1 fp=fopen("mac.inp","r"); //打開文件

  2 fprintf(fp, "APDL_Commands,%f",SomeData); //寫入文件

  3 fclose(fp); //關閉文件

  調用ANSYS的命令行計算則使用

  system("D:\Progra~1\AnsysI~1\v100\ANSYS\bin\intel\ansys100 -b -i temp.inp -o mesh.log");

  3. 實例

  下面給幾個APDL和C語言混合編程的實例

  3.1 復合材料中的圓性顆粒網格剖分

  圖中的顆粒是隨機C語言中隨機生成的圓形,結果如圖所示:

圖1

 

  相應的生成上述網格的函數為

  1 /*調用ANSYS生成網格*/

  2 void GenMesh(struct circle0 *circle,double xmax,double xmin,double ymax,double ymin)

  3 {

  4

  5 FILE* ansysfile;

  6 ansysfile=fopen("temp.inp","w");

  7

  8 fprintf(ansysfile,"/CLEAR,NOSTART");

  9 fprintf(ansysfile,"/PREP7");

  10

  11 //創建基體

  12 fprintf(ansysfile,"RECTNG,%f,%f,%f,%f,",xmin,xmax,ymin,ymax);

  13

  14 //創建顆粒

  15 for (int i=0; i

  16 {

  17 if (circle[i].r<0.00000001)

  18 {

  19 continue;

  20 }

  21 fprintf(ansysfile,"K,%d,%f,%f",i+1000,

  22 circle[i].centre_x,circle[i].centre_y);

  23 fprintf(ansysfile,"CIRCLE,%d,%f",i+1000,circle[i].r);

  24 }

  25 fprintf(ansysfile,"ASBL,1,ALL");

  26 fprintf(ansysfile,"AGLUE,All");

  27

  28 //創建單元類型

  29 fprintf(ansysfile,"ET,1,PLANE42");

  30 //創建材料

  31 fprintf(ansysfile,"MP,DENS,1,0.1");//材料一

  32 fprintf(ansysfile,"MP,DENS,2,10");//材料二

  33 //為基體賦一號材料值

  34 fprintf(ansysfile,"ASEL,S,AREA,,ARINQR(0,14)");

  35 fprintf(ansysfile,"AATT,1");

  36

  37 //為顆粒賦二號材料值

  38 fprintf(ansysfile,"ASEL,ALL");

  39 fprintf(ansysfile,"ASEL,U,AREA,,ARINQR(0,14)");

  40 fprintf(ansysfile,"AATT,2");

  41 fprintf(ansysfile,"ALLSEL,ALL");

  42

  43 //生成網格

  44 //網格尺寸

  45 fprintf(ansysfile,"SMRT,3");

  46 //fprintf(ansysfile,"AESIZE,ALL,0.6,

  ");

  47

  48 fprintf(ansysfile,"MSHAPE,1,2D");

  49 fprintf(ansysfile,"MSHKEY,0");

  50 //開始劃分網格

  51 fprintf(ansysfile,"AMESH,ALL");

  52

  53 //輸出網格

  54 // fprintf(ansysfile,"/INPUT,ExportMesh,inp

  ");

  55

  56 fclose(ansysfile);

  57 //---------------調用ANSYS生成網格

  58 system("D:\Progra~1\AnsysI~1\v100\ANSYS\bin\intel\ansys100 -b -i temp.inp -o mesh.log");

  59 // system("tec360 tecplot.plt");

  60 }

  3.2 復合材料中的圓性顆粒網格剖分

  對于橢圓形顆粒,網格剖分結果如圖所示

圖2

 

  生成上述網格的代碼為

  1

  2 //生成顆粒是橢圓時的網格

  3 //橢圓的數據結構是下面的struct

  4 //Genmesh函數是調用ANSYS生成網格的函數

  5 void GenMesh(struct elliptic0 *ellipse,int ellipsenum,double xmax,double xmin,double ymax,double ymin)

  6 {

  7

  8 FILE* ansysfile;

  9 ansysfile=fopen("temp.inp","w");

  10 fprintf(ansysfile,"FINISH");

  11 fprintf(ansysfile,"/CLEAR,NOSTART");

  12 fprintf(ansysfile,"/PREP7");

  13

  14 //創建基體

  15 fprintf(ansysfile,"RECTNG,%f,%f,%f,%f,",xmin,xmax,ymin,ymax);

  16

  17 //創建橢圓顆粒

  18 for (int i=0; i

  19 {

  20 //把工作平面移到橢圓圓心。

  21 fprintf(ansysfile,"wpave,%f,%f",ellipse[i].center_x,ellipse[i].center_y);

  22 //旋轉工作平面

  23 fprintf(ansysfile,"wprota,%f",180.0/pi*ellipse[i].theta);

  24 //激活當前活動坐標系為工作平面

  25 fprintf(ansysfile,"csys,4");

  26 //生成上半個橢圓

  27 fprintf(ansysfile,"k,%d,%f",2*i+1000,ellipse[i].a);

  28 fprintf(ansysfile,"k,%d,%f",2*i+1001,-ellipse[i].a);

  29 fprintf(ansysfile,"cswpla,%d,2,%f",2000+2*i,(ellipse[i].b/ellipse[i].a));

  30 fprintf(ansysfile,"l,%d,%d",2*i+1000,2*i+1001);

  31 fprintf(ansysfile,"reflect_line=_return");//記錄線的編號

  32 fprintf(ansysfile,"csys,4"); //切換活動坐標系為工作平面

  33 fprintf(ansysfile,"lsymm,y,reflect_line");//反射生成橢圓

  34 //調整工作平面使其與整體坐標系重合

  35 fprintf(ansysfile,"wprota,%f",-180.0/pi*ellipse[i].theta);

  36 fprintf(ansysfile,"CSYS,0");

  37 fprintf(ansysfile,"WPAVE,0,0,0");

  38 }

  39

  40 fprintf(ansysfile,"ASBL,1,ALL");

  41 fprintf(ansysfile,"AGLUE,All");

  42

  43 //創建單元類型

  44 fprintf(ansysfile,"ET,1,PLANE42");

  45 //創建材料

  46 fprintf(ansysfile,"MP,DENS,1,0.1");//材料一

  47 fprintf(ansysfile,"MP,DENS,2,10");//材料二

  48 //為基體賦一號材料值

  49 fprintf(ansysfile,"ASEL,S,AREA,,ARINQR(0,14)");

  50 fprintf(ansysfile,"AATT,1");

  51 //為顆粒賦二號材料值

  52 fprintf(ansysfile,"ASEL,ALL");

  53 fprintf(ansysfile,"ASEL,U,AREA,,ARINQR(0,14)");

  54 fprintf(ansysfile,"AATT,2");

  55 fprintf(ansysfile,"ALLSEL,ALL");

  56 //生成網格

  57 //網格尺寸

  58 fprintf(ansysfile,"SMRT,3");

  59 //fprintf(ansysfile,"AESIZE,ALL,0.6,

  ");

  60

  61 fprintf(ansysfile,"MSHAPE,1,2D");

  62 fprintf(ansysfile,"MSHKEY,0");

  63 //劃分網格

  64 fprintf(ansysfile,"AMESH,ALL");

  65

  66 //輸出網格

  67 fprintf(ansysfile,"/INPUT,ExportMesh,inp");//輸出網格到Tecplot

  68 fprintf(ansysfile,"EWRITE,elemlist1,txt");//輸出單元

  69 fprintf(ansysfile,"NWRITE,nodelist1,txt");//輸出節點

  70

  71 fclose(ansysfile);

  72 //---------------調用ANSYS生成網格

  73 system("D:\Progra~1\AnsysI~1\v100\ANSYS\bin\intel\ansys100 -b -i temp.inp -o mesh.log");

  74 system("tec360 tecplot.plt");

  75 }


亚洲天天做日日做天天谢日日欢 | 日韩精品三区| 亚洲欧洲精品一区二区精品久久久| 中文字幕一区二区三区乱码| 国产一区美女| 91免费看国产| 精品国产中文字幕第一页| 欧美激情按摩在线| 欧美一区二区三区婷婷| 亚洲精品成a人在线观看| 欧美在线性爱视频| 97人人澡人人爽91综合色| 国产一区二区三区日韩欧美| 午夜不卡影院| 亚洲另类欧美自拍| 国产成人精品综合久久久| 免费cad大片在线观看| 久久久亚洲人| 久久久久久欧美精品色一二三四| 三级电影一区| 亚洲伊人第一页| 99久久九九| 91久久精品视频| 亚洲乱码电影| 成人综合av网| 久久精品日韩欧美| 四虎4hu永久免费入口| 成人avav影音| 国产精品区在线| 亚洲风情在线资源站| 久青青在线观看视频国产| 在线国产亚洲欧美| 亚洲七七久久综合桃花剧情介绍| 亚洲精品一区二区三区香蕉| 依依综合在线| 伦理中文字幕亚洲| 欧美激情影院| 国产日韩综合一区二区性色av| 欧美在线日韩| 日韩偷拍一区二区| 99久久国产综合精品麻豆| 天天干天天草天天| 精品久久久在线观看| 91精品久久久| 视频直播国产精品| 自拍亚洲一区| 国产一区不卡在线观看| 免费观看成人av| 欧美极品欧美精品欧美| 国产精品久久久久久妇女6080| 一级片免费在线观看| 欧美成人一级视频| 欧美视频二区欧美影视| 国产色综合天天综合网| 免费视频一区| 精品视频免费在线播放| 亚洲欧洲制服丝袜| 青青青青在线| 久久在线精品视频| 亚洲色图国产| 欧美性猛交内射兽交老熟妇| 亚洲人成精品久久久久久| 日本美女在线中文版| 日韩一二三在线视频播| 日韩.com| 日韩不卡视频一区二区| 亚洲午夜日本在线观看| 2021中文字幕在线| 欧美一区二区三区四区在线| 一区二区精品| 日本在线一二三区| 欧美一卡二卡在线| 国产精品男女| 天天爽天天狠久久久| 亚洲色图欧洲色图| 美女露胸视频在线观看| 国产精品视频一区二区高潮| 国产麻豆日韩欧美久久| 夜色资源站国产www在线视频| 国产一区二区三区欧美| 欧美天堂亚洲电影院在线观看| 欧美,日韩,国产在线| 色综合久久久久网| 亚洲精品视频一二三区| 欧美精品一区二区三区四区五区| 日本一区二区三区四区| 国产人成网在线播放va免费| 孩xxxx性bbbb欧美| 加勒比av一区二区| 欧洲视频在线免费观看| 欧美日本在线视频中文字字幕| 久久激情网站| 色视频免费在线观看| 久久久久久久久久av| 国产一区二区在线观看视频| 一不卡在线视频| 97精品国产97久久久久久| 国产乱码精品一区二区三区五月婷| 免费在线观看一级毛片| 午夜精品久久久久久久久久久久久 | 精品麻豆一区二区三区| 一区二区91美女张开腿让人桶| 91精品婷婷国产综合久久性色| 狠狠色综合网| 羞羞的视频在线观看| 丁香婷婷综合激情| 日本福利视频在线观看| 蜜臀久久99精品久久久久宅男| 日韩精品一区国产| 亚洲啪啪aⅴ一区二区三区9色| 91看片在线免费观看| 亚州国产精品久久久| 国产中文字幕在线视频| 亚洲人精品午夜在线观看| 国产91丝袜在线播放| 久久亚洲风情| 九一成人免费视频| 国精产品一区一区三区四川| 男人揉女人奶房视频60分| 国产美女扒开尿口久久久| 亚洲精品电影久久久| 中文字幕国产一区| 三级小说欧洲区亚洲区| 四虎国产精品永远| 久久国产精品国产精品| 亚洲精品无码久久久久久| youjizz.com在线观看| 国产精品国产三级国产aⅴ浪潮| 日韩资源在线观看| 丝袜一区二区三区| 麻豆成全视频免费观看在线看| 国产区av在线| 91精选在线| 国产三级电影在线播放| 男人的天堂免费在线视频| 婷婷成人av| 蜜桃视频在线观看免费视频网站www| 精品国偷自产一区二区三区| 成人欧美一区二区三区在线| 国产精品久久久久久超碰| 91夜夜揉人人捏人人添红杏| 亚洲欧美精品伊人久久| 亚洲精品福利视频网站| 国产毛片一区| 伊人久久大香线蕉无限次| 一区二区美女| 影院欧美亚洲| 亚洲无线一线二线三线区别av| 欧美久久久网站| 51av在线| 99久久er| 第一区第二区在线| 亚洲一区二区三区中文字幕在线观看| 97成人超碰| 欧美电影在线观看免费| 亚洲色图插插| 国产精品综合一区二区三区| 理论视频在线| 男人日女人逼逼| 丝袜制服一区二区三区| 国产一级性片| www.99re.av| 成人高清一区| 亚洲自拍偷拍一区| 国产三级精品网站| 一区二区三区不卡在线视频 | 中文字幕在线免费观看| 永久免费的av网站| 瑟瑟在线观看| 成人性免费视频| 免费影视亚洲| 偷拍欧美精品| 国产精品亚洲午夜一区二区三区 | 中文字幕中文字幕在线十八区 | 色一情一乱一伦一区二区三区日本| 97国产在线视频| 激情成人在线视频| 日韩有码一区二区三区| 韩国精品视频在线观看| 啦啦啦在线视频免费观看高清中文| 成人三级在线| 国产亚洲激情在线| 亚洲黄色性网站| 日本成人在线一区| 波多野结衣欧美| 毛片av在线| 日韩福利视频在线| 国内外成人免费视频| www.亚洲天堂| 91福利社在线观看| 99精品偷自拍| 精品动漫3d一区二区三区免费版| 欧美视频免费看| 欧美12一14sex性hd| 日韩视频在线观看视频| 国产精品白丝jk喷水视频一区| 精品国产露脸精彩对白| 一区二区三区免费| 国产丶欧美丶日本不卡视频| 欧美一区综合|