ANSYS APDL命令進行數(shù)據(jù)文件讀寫的實例

2017-05-26  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

  本文介紹ANSYS APDL命令進行數(shù)據(jù)文件讀寫的實例


  一 FORTRAN數(shù)據(jù)格式

  I格式(又叫整數(shù)格式)

  一般形式:Iw 或:Iw.m

  其中:w 一個數(shù)據(jù)占的位數(shù)寬度(又稱“字段寬度”),m 需要輸出的最少數(shù)字位數(shù)。例1:

  (1)數(shù)字在指定的區(qū)域內(nèi)向右端靠齊,如果數(shù)字位數(shù)比指定的字段寬度w小,則左邊補以空格。負數(shù)的符號也包含在字段寬度內(nèi)。

  (2)如果數(shù)字的位數(shù)超過了規(guī)定的字段寬度w,則不輸出有效數(shù)據(jù),而在該字段寬度范圍內(nèi)充滿“*”符號。

  (3)如果數(shù)字的位數(shù)超過了m,則按實際應(yīng)輸出的位數(shù)輸出(但條件是不能超過w)。m不包括負號所占的一列。

  F格式(又叫小數(shù)型格式)

  一般形式:Fw.d

  w 各數(shù)值占的總位數(shù) d 輸出數(shù)據(jù)的小數(shù)位數(shù)(小數(shù)點后的位數(shù))。 例1:

  (1)數(shù)字在指定的區(qū)域內(nèi)向右端靠齊,如果數(shù)字位數(shù)(含小數(shù)點和符號位)比指定的字段寬度w小,則左邊補以空格;如果數(shù)字的位數(shù)超過了規(guī)定的字段寬度w,則不輸出有效數(shù)據(jù),而在該字段寬度范圍內(nèi)充滿“*”符號。

  (2)如果數(shù)據(jù)的小數(shù)位數(shù)比指定的小數(shù)位數(shù)d小,則在小數(shù)右邊補0以湊足d位;如果小數(shù)位數(shù)大于d位,則輸出時多于的小數(shù)位數(shù)按“四舍五入”規(guī)則舍去。

  (3)假設(shè)b為數(shù)據(jù)整數(shù)部分的位數(shù),則應(yīng)使w≥b+d+1(小數(shù)點占一列),如果輸出負數(shù),則應(yīng)保證w≥b+d+2(小數(shù)點和負號各占一列)。

  (4)用F格式輸出時應(yīng)注意,由于難以事先確切估計出數(shù)據(jù)的大小,輸出大的數(shù)時容易產(chǎn)生“寬度不夠”的錯誤(由于w不夠大),輸出小的數(shù)時會出現(xiàn)丟掉有用數(shù)字的情況(由于d不夠大而將后面的數(shù)字截去),這就是“大數(shù)印錯,小數(shù)印丟”。

  E格式(又叫指數(shù)型格式)

  一般形式:w.d

  w 各數(shù)值占的總位數(shù),d 輸出數(shù)據(jù)的小數(shù)位數(shù)(小數(shù)點后的位數(shù))。例1:

  (1)采取標準化的指數(shù)形式輸出一個實數(shù),d為以指數(shù)形式出現(xiàn)的數(shù)據(jù)的數(shù)字部分的小數(shù)位數(shù)。

  (2)指數(shù)部分一般占4列,其中字母“E”和指數(shù)的符號各占一列,指數(shù)2列。 小數(shù)部分d列,再加上一個小數(shù)點和小數(shù)點前的一個“0”,因此要保證w≥d+6,輸出負數(shù)時,w≥d+7。

  (3)有的計算機系統(tǒng)允許有較大的實數(shù)范圍,FORTRAN77提供了一種擴充的編輯符, 可以輸出三位或四位指數(shù)。這種編輯符的形式為:Ew.dEe,用e指定指數(shù)的位數(shù)。有的計算機系統(tǒng)的FORTRAN編譯系統(tǒng)已根據(jù)其允許的實數(shù)范圍,自動將指數(shù)的位數(shù)改為3位或4位,不必在RORMAT語句中用Ew.dEe編輯符單獨為某些數(shù)據(jù)指定所需的指數(shù)位數(shù),只需寫Ew.d形式即可,輸出時系統(tǒng)會給出三位(或四位)指數(shù)。

  G格式

  G格式可以根據(jù)輸出的實數(shù)大小決定用小數(shù)形式(F格式)輸出或指數(shù)形式(E格式)輸出。當輸出大數(shù)值或小數(shù)值時自動按E格式,當輸出的數(shù)不大不小時用F格式。其一般形式為:Gw.d

  (1)凡絕對值小于0.1的數(shù)或絕對值大于10d的數(shù)用E格式輸出;其余的數(shù)用F格式輸出。

  (2)用E格式輸出時,最后4列為指數(shù)部分,而用F格式輸出時最后4列留空。

  (3)用指數(shù)形式輸出時,格式同Ew.d;用F格式輸出時,不是按Fw.d形式輸出,d規(guī)定的不是小數(shù)位數(shù)而是打印出來的全部數(shù)字的位數(shù),小數(shù)位數(shù)根據(jù)數(shù)值大小和d的大小而定,這樣做的目的是使數(shù)的整數(shù)部分能全部保留,而適當截去小數(shù)部分,以保證輸出數(shù)值的正確性。因為小于10d的數(shù),其整數(shù)部分最多為d位,因此,可以全部輸出這d位整數(shù),小數(shù)的位數(shù)為:d-(數(shù)值整數(shù)位數(shù))。

  D格式

  一般形式:Dw.a

  用于雙精度數(shù)據(jù)的輸出,使用方法與E格式相仿,只是把字母“E”換成“D”。

  L格式

  一般形式:Lw

  用于邏輯型數(shù)據(jù)的輸出,w 輸出數(shù)據(jù)的字段寬度。邏輯值“.TRUE.",在輸出時打印一個字母T;邏輯值".FLASE.",在輸出時打印一個字母F。T和F打印在字段范圍內(nèi)的最右端。

  A格式

  一般形式:Aw 或:A

  用于字符型數(shù)據(jù)的輸出,w為字段寬度,不指定w時(即形式:A),按字符變量的實際長度(即程序定義該變量時的長度)輸出。

  字符串在指定的區(qū)域內(nèi)向右端靠齊,如果字符串的位數(shù)比指定的字段寬度w小,則左邊補以空格;如果字符串的位數(shù)超過了規(guī)定的字段寬度w,則只輸出最左面的w個字符。

  ‘(撇號)格式

  用來插入所需的字符串, 如果需要輸出的字符包括撇號,則用兩個連續(xù)的撇號代表一個被輸出的撇號字符。

  H格式

  一般形式:nH <字符串>

  用來輸出字符常量,與撇號格式相似。n為字符串中字符的個數(shù)。 可以單獨用撇號格式或H格式輸出字符串而不必要求WRITE語句中有相應(yīng)的輸出項。 用H格式必須準確地數(shù)出字符串中的字符個數(shù),數(shù)錯了就會造成錯誤。所以最好不用H編輯符而用撇號編輯符,后者不必數(shù)字符,使用方便,字符串界線清楚無誤。FORTRAN 77之所以保留H編輯符主要是為了與FORTRAN 66兼容(FORTRAN 66只能用H編輯符輸出字符串而沒有撇號編輯符)。

  X格式

  一般形式:nX

  用于輸出空格,n 輸出的空格數(shù)目。即插入n個空格,或者說,使打印的“當前位置”向右移動n列。如果不用X格式插入空格,數(shù)據(jù)將連成一片,難以區(qū)分開。

  注意:不要把2X作為與A對應(yīng)的格式符,WRITE語句中的I,A,B分別與FORMAT語句中的I3,F6.2和E11.5格式符對應(yīng)。X格式符不能用來提供整數(shù)、實數(shù)、以及其它類型數(shù)據(jù)的輸出格式,它只能插入若干個空格。

  FORTRAN 77還允許n是負整數(shù),表示從當前位置向左移動n的絕對值列。微機上使用的FORTRAN子集不能使用n為負值的格式符。

  /(斜杠)格式

  斜杠(/)編輯符的作用是:結(jié)束本記錄的輸出并開始下一個記錄的輸出。例如:

  二 關(guān)鍵命令

  2.1 *VREAD 按指定格式將數(shù)據(jù)讀入數(shù)組中

  *VREAD, ParR, Fname, Ext, --, Label, n1, n2, n3, NSKIP

  ParR 定義好的數(shù)組名稱 ,且指出開始寫入的位置,即下標(i,j)

  Fname 數(shù)據(jù)文件名稱

  Ext 數(shù)據(jù)文件的擴展名

  -- 沒有啟用的保留域

  Label

  可為IJK, IKJ, JIK, JKI, KIJ, KJI, or blank (IJK),表示你對ParR寫入的順序,下標變化依次變慢,如IJK表示先寫列再寫行(列下標J變化最快),JIK表示先寫行再寫列。

  n1, n2, n3

  表示按上面的順序要寫入的數(shù)據(jù)個數(shù),如JIK,5,6表示對ParR按行寫入,共寫5列6行。

  NSKIP 讀入數(shù)據(jù)時需要跳過的行數(shù)。

  特別注意:

  *VREAD后面要緊跟帶括號的指定格式,描述對數(shù)據(jù)文件每行的讀法,如(F3.0,F11.0)每行讀兩個數(shù),分別占3,11個字符寬度。

  2.2 *VWRITE 用來輸出數(shù)組、數(shù)值參數(shù)、字符參數(shù)或常量到文件里。它一次最多可以寫入19個參數(shù),使用該命令時,緊跟著該命令的下一行必須是FORTRAN77的格式規(guī)定。數(shù)組矢量要指定起始元素位置。可以用表達式來計算數(shù)據(jù)文件中每一行的位置。

  *vwrite命令的使用格式如下:

  *VWRITE, Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9, Par10, Par11, Par12, Par13, Par14, Par15, Par16, Par17, Par18, Par19

  其中par1~par19是依次寫出的19個參數(shù)或者常數(shù),某個空值表示忽略,所有都忽略則輸出一空行。允許寫出的數(shù)據(jù)包括常數(shù),變量與數(shù)組,包括數(shù)值型和字符型數(shù)據(jù)。

  2.3 *cfopen在*vwrite之前需利用*cfopen打開的一個數(shù)據(jù)文件,表示其后的并將*cfopen和*cfclos之間所有的*vwrite寫出的數(shù)據(jù)都輸入到該數(shù)據(jù)文件中。

  *cfopen,fname,ext,--,loc

  fname是帶路徑的文件名(兩者允許至多250字符長度),缺省路徑為工作目錄,文件名缺省為jobnmae。

  ext是文件的擴展名(至多是8個字符長度)。如果fname為空,那么擴展名缺省為cmd。

  --表示該域是不需要使用的值域。

  loc用于確定打開的文件已經(jīng)存在時,缺省表示采用覆蓋方式寫數(shù)據(jù)到文件中,設(shè)置成append表示采用追加方式寫數(shù)據(jù)到文件中。

  與*cfopen成對使用的另外一個命令時*cfclos命令,總是在*cfopen命令與一序列數(shù)據(jù)*vwrite命令之后,用于關(guān)閉用*cfopen命令打開的文件。

  *cfclos命令的使用格式如下:*cfclos

  2.4 /OUTPUT

  /OUTPUT

  /OUTPUT, Fname, Ext, --, Loc

  輸出txt數(shù)據(jù)到文件或窗口

  Fname 文件名和路徑。如果為空,則輸出到默認系統(tǒng)輸出文件中。

  Ext 文件擴展名

  -- 保留的未使用域。

  Loc

  blank — 覆蓋式輸出

  APPEND — 追加式輸出

  三 實例解析

  3.1 首先創(chuàng)建一個數(shù)據(jù)文件

  finish

  /clear

  item=’’weight:’’

  data=234.56

  unit=’’kg’’

  *dim,aa,array,4,1,1

  aa(1)=10.2,324.5,123.7,908

  *dim,bb,char,3,1,1

  bb(1)=’’i am’’,’’a good’’,’’man’’

  *cfopen,mememama,dat

  *vwrite,

  (5x,’*vwrite demo’)

  *vwrite,

  (’***********************’)

  *vwrite,item,data,unit

  (a8,f10.2,a8)

  *vwrite,

  (/’******array parameter output demo******’)

  *vwrite,

  (’’float format/sequ keyword:’’)

  *vwrite,sequ,aa(1)

  (f3.0,f10.4)

  *cfclos

  運行該文件后,生成的數(shù)據(jù)格式如下:

  vwrite demo

  ***********************

  'weight: 234.56'kg'

  ******array parameter output demo******

  float format/sequ keyword:

  1. 10.2000

  2. 324.5000

  3. 123.7000

  4. 908.0000

  3.2 將數(shù)據(jù)讀入數(shù)組

  *DIM,mememama,,4,2

  *VREAD,mememama(1,1),mememama,dat,,JIK,2,4,,6

  (f3.0,f10.4)

  運行該文件后,點擊[Parameters]->Array Parameters,就可以看到得到的數(shù)組了。


開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學成才

相關(guān)標簽搜索:ANSYS APDL命令進行數(shù)據(jù)文件讀寫的實例 Ansys有限元培訓 Ansys workbench培訓 ansys視頻教程 ansys workbench教程 ansys APDL經(jīng)典教程 ansys資料下載 ansys技術(shù)咨詢 ansys基礎(chǔ)知識 ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復(fù)電話,謝謝!
驗證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com