ANSYS APDL命令進行數據文件讀寫的實例
2017-05-26 by:CAE仿真在線 來源:互聯網
本文介紹ANSYS APDL命令進行數據文件讀寫的實例
一 FORTRAN數據格式
I格式(又叫整數格式)
一般形式:Iw 或:Iw.m
其中:w 一個數據占的位數寬度(又稱“字段寬度”),m 需要輸出的最少數字位數。例1:
(1)數字在指定的區域內向右端靠齊,如果數字位數比指定的字段寬度w小,則左邊補以空格。負數的符號也包含在字段寬度內。
(2)如果數字的位數超過了規定的字段寬度w,則不輸出有效數據,而在該字段寬度范圍內充滿“*”符號。
(3)如果數字的位數超過了m,則按實際應輸出的位數輸出(但條件是不能超過w)。m不包括負號所占的一列。
F格式(又叫小數型格式)
一般形式:Fw.d
w 各數值占的總位數 d 輸出數據的小數位數(小數點后的位數)。 例1:
(1)數字在指定的區域內向右端靠齊,如果數字位數(含小數點和符號位)比指定的字段寬度w小,則左邊補以空格;如果數字的位數超過了規定的字段寬度w,則不輸出有效數據,而在該字段寬度范圍內充滿“*”符號。
(2)如果數據的小數位數比指定的小數位數d小,則在小數右邊補0以湊足d位;如果小數位數大于d位,則輸出時多于的小數位數按“四舍五入”規則舍去。
(3)假設b為數據整數部分的位數,則應使w≥b+d+1(小數點占一列),如果輸出負數,則應保證w≥b+d+2(小數點和負號各占一列)。
(4)用F格式輸出時應注意,由于難以事先確切估計出數據的大小,輸出大的數時容易產生“寬度不夠”的錯誤(由于w不夠大),輸出小的數時會出現丟掉有用數字的情況(由于d不夠大而將后面的數字截去),這就是“大數印錯,小數印丟”。
E格式(又叫指數型格式)
一般形式:w.d
w 各數值占的總位數,d 輸出數據的小數位數(小數點后的位數)。例1:
(1)采取標準化的指數形式輸出一個實數,d為以指數形式出現的數據的數字部分的小數位數。
(2)指數部分一般占4列,其中字母“E”和指數的符號各占一列,指數2列。 小數部分d列,再加上一個小數點和小數點前的一個“0”,因此要保證w≥d+6,輸出負數時,w≥d+7。
(3)有的計算機系統允許有較大的實數范圍,FORTRAN77提供了一種擴充的編輯符, 可以輸出三位或四位指數。這種編輯符的形式為:Ew.dEe,用e指定指數的位數。有的計算機系統的FORTRAN編譯系統已根據其允許的實數范圍,自動將指數的位數改為3位或4位,不必在RORMAT語句中用Ew.dEe編輯符單獨為某些數據指定所需的指數位數,只需寫Ew.d形式即可,輸出時系統會給出三位(或四位)指數。
G格式
G格式可以根據輸出的實數大小決定用小數形式(F格式)輸出或指數形式(E格式)輸出。當輸出大數值或小數值時自動按E格式,當輸出的數不大不小時用F格式。其一般形式為:Gw.d
(1)凡絕對值小于0.1的數或絕對值大于10d的數用E格式輸出;其余的數用F格式輸出。
(2)用E格式輸出時,最后4列為指數部分,而用F格式輸出時最后4列留空。
(3)用指數形式輸出時,格式同Ew.d;用F格式輸出時,不是按Fw.d形式輸出,d規定的不是小數位數而是打印出來的全部數字的位數,小數位數根據數值大小和d的大小而定,這樣做的目的是使數的整數部分能全部保留,而適當截去小數部分,以保證輸出數值的正確性。因為小于10d的數,其整數部分最多為d位,因此,可以全部輸出這d位整數,小數的位數為:d-(數值整數位數)。
D格式
一般形式:Dw.a
用于雙精度數據的輸出,使用方法與E格式相仿,只是把字母“E”換成“D”。
L格式
一般形式:Lw
用于邏輯型數據的輸出,w 輸出數據的字段寬度。邏輯值“.TRUE.",在輸出時打印一個字母T;邏輯值".FLASE.",在輸出時打印一個字母F。T和F打印在字段范圍內的最右端。
A格式
一般形式:Aw 或:A
用于字符型數據的輸出,w為字段寬度,不指定w時(即形式:A),按字符變量的實際長度(即程序定義該變量時的長度)輸出。
字符串在指定的區域內向右端靠齊,如果字符串的位數比指定的字段寬度w小,則左邊補以空格;如果字符串的位數超過了規定的字段寬度w,則只輸出最左面的w個字符。
‘(撇號)格式
用來插入所需的字符串, 如果需要輸出的字符包括撇號,則用兩個連續的撇號代表一個被輸出的撇號字符。
H格式
一般形式:nH <字符串>
用來輸出字符常量,與撇號格式相似。n為字符串中字符的個數。 可以單獨用撇號格式或H格式輸出字符串而不必要求WRITE語句中有相應的輸出項。 用H格式必須準確地數出字符串中的字符個數,數錯了就會造成錯誤。所以最好不用H編輯符而用撇號編輯符,后者不必數字符,使用方便,字符串界線清楚無誤。FORTRAN 77之所以保留H編輯符主要是為了與FORTRAN 66兼容(FORTRAN 66只能用H編輯符輸出字符串而沒有撇號編輯符)。
X格式
一般形式:nX
用于輸出空格,n 輸出的空格數目。即插入n個空格,或者說,使打印的“當前位置”向右移動n列。如果不用X格式插入空格,數據將連成一片,難以區分開。
注意:不要把2X作為與A對應的格式符,WRITE語句中的I,A,B分別與FORMAT語句中的I3,F6.2和E11.5格式符對應。X格式符不能用來提供整數、實數、以及其它類型數據的輸出格式,它只能插入若干個空格。
FORTRAN 77還允許n是負整數,表示從當前位置向左移動n的絕對值列。微機上使用的FORTRAN子集不能使用n為負值的格式符。
/(斜杠)格式
斜杠(/)編輯符的作用是:結束本記錄的輸出并開始下一個記錄的輸出。例如:
二 關鍵命令
2.1 *VREAD 按指定格式將數據讀入數組中
*VREAD, ParR, Fname, Ext, --, Label, n1, n2, n3, NSKIP
ParR 定義好的數組名稱 ,且指出開始寫入的位置,即下標(i,j)
Fname 數據文件名稱
Ext 數據文件的擴展名
-- 沒有啟用的保留域
Label
可為IJK, IKJ, JIK, JKI, KIJ, KJI, or blank (IJK),表示你對ParR寫入的順序,下標變化依次變慢,如IJK表示先寫列再寫行(列下標J變化最快),JIK表示先寫行再寫列。
n1, n2, n3
表示按上面的順序要寫入的數據個數,如JIK,5,6表示對ParR按行寫入,共寫5列6行。
NSKIP 讀入數據時需要跳過的行數。
特別注意:
*VREAD后面要緊跟帶括號的指定格式,描述對數據文件每行的讀法,如(F3.0,F11.0)每行讀兩個數,分別占3,11個字符寬度。
2.2 *VWRITE 用來輸出數組、數值參數、字符參數或常量到文件里。它一次最多可以寫入19個參數,使用該命令時,緊跟著該命令的下一行必須是FORTRAN77的格式規定。數組矢量要指定起始元素位置。可以用表達式來計算數據文件中每一行的位置。
*vwrite命令的使用格式如下:
*VWRITE, Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9, Par10, Par11, Par12, Par13, Par14, Par15, Par16, Par17, Par18, Par19
其中par1~par19是依次寫出的19個參數或者常數,某個空值表示忽略,所有都忽略則輸出一空行。允許寫出的數據包括常數,變量與數組,包括數值型和字符型數據。
2.3 *cfopen在*vwrite之前需利用*cfopen打開的一個數據文件,表示其后的并將*cfopen和*cfclos之間所有的*vwrite寫出的數據都輸入到該數據文件中。
*cfopen,fname,ext,--,loc
fname是帶路徑的文件名(兩者允許至多250字符長度),缺省路徑為工作目錄,文件名缺省為jobnmae。
ext是文件的擴展名(至多是8個字符長度)。如果fname為空,那么擴展名缺省為cmd。
--表示該域是不需要使用的值域。
loc用于確定打開的文件已經存在時,缺省表示采用覆蓋方式寫數據到文件中,設置成append表示采用追加方式寫數據到文件中。
與*cfopen成對使用的另外一個命令時*cfclos命令,總是在*cfopen命令與一序列數據*vwrite命令之后,用于關閉用*cfopen命令打開的文件。
*cfclos命令的使用格式如下:*cfclos
2.4 /OUTPUT
/OUTPUT
/OUTPUT, Fname, Ext, --, Loc
輸出txt數據到文件或窗口
Fname 文件名和路徑。如果為空,則輸出到默認系統輸出文件中。
Ext 文件擴展名
-- 保留的未使用域。
Loc
blank — 覆蓋式輸出
APPEND — 追加式輸出
三 實例解析
3.1 首先創建一個數據文件
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
運行該文件后,生成的數據格式如下:
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 將數據讀入數組
*DIM,mememama,,4,2
*VREAD,mememama(1,1),mememama,dat,,JIK,2,4,,6
(f3.0,f10.4)
運行該文件后,點擊[Parameters]->Array Parameters,就可以看到得到的數組了。
相關標簽搜索:ANSYS APDL命令進行數據文件讀寫的實例 Ansys有限元培訓 Ansys workbench培訓 ansys視頻教程 ansys workbench教程 ansys APDL經典教程 ansys資料下載 ansys技術咨詢 ansys基礎知識 ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓