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