我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

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

輸出ANSYS單元節點文件和讀入C語言的方法

時間:2011-01-27 09:12:45 來源:未知

 ANSYS中使用EWRITE來輸出當前選擇的單元到文件。他的參數為EWRITE, Fname, Ext, --, KAPPND, Format

  其中前兩個分別是文件名和后綴,KAPPND表明是否清空單元文件來進行輸出(用0和1 表示),Format則是說明輸出文件的位寬,其中SHORT是默認選項,表示用六位位寬輸出,而LONG是表示8為位寬輸出。

  同樣的,ANSYS使用NWRITE來輸出當前選擇的節點到文件。其輸入參數與EWRITE的輸入參數的含義相同,只不過沒有位寬的選項。但是節點的輸出文件的中第一列為節點號位寬是8位,而第二到第四列為節點坐標,各20為位寬,各列之間沒有空格。

  在使用C語言讀入網格數據的時候,可以使用上述的文件來讀入.通常比較方便的做法是知道節點個數,和單元個數然后在依次讀入C程序中。但是上述輸出的單元和節點的文件并沒有提供這個信息。

  不過可已通過一下方式來產生這種文件:在APDL中先讀取單元數和節點數,分別寫入對應的單元和節點文件,然后以追加方式寫節點和單元文件。

  下面是一個簡單的用C語言讀取二維的三角網格的例子(沒有寫入單元和節點的個數,而是通過計算行數來得到的)

  1 #include

  2 #include

  3 //ANSYS 's element output format

  4

  5 char NodeFormat[]="%*8c%20s%20s"; //節點的行格式

  6 char ELongFormat[]="%8d%8d%8d%*40c%8d";//單元文件三角網格的長格式

  7 char EShortFormat[]="%6d%6d%6d%*30c%6d";//單元文件三角網格的短格式

  8

  9

  10

  11

  12 int main(int argc, const char *argv[])

  13 {

  14 FILE* fp;

  15 char buffer[200];

  16 char xx[21];

  17 char yy[21];

  18 int ch;

  19 int mat,num;

  20 int linenum=0;

  21 int a[3]={0};

  22 char NodeFile[]="nodelist1.n";//節點文件

  23 char ElemFile[]="elemlist1.e";//單元文件

  24

  25 fp=fopen(NodeFile,"r");

  26

  27 //計算節點數目

  28 while((ch=fgetc(fp))!=EOF)

  29 {

  30 if(ch==' ')linenum++;

  31 }

  32 rewind(fp);

  33 printf("節點數是%d ",linenum);

  34 //讀入節點的坐標

  35 while(fgets(buffer,200,fp)!=NULL)

  36 {

  37 xx[0]='