作者GameQ (過路費)
看板Cad_Cae
標題Re: [問題] 請問Ansys迴圈之問題?
時間Fri Mar 7 04:23:50 2008
※ 引述《smilelarry (幸福相隨...)》之銘言:
: 跑程式中由於需大量數值,因此以迴圈方式較佳。
: 但此方面經驗不足,所以懇請有經驗大大能夠提點。
: 簡單敘述一下問題:
: 現在必須不斷改變外力施加在物體上,得到此物體被壓陷之y方向之位移。
: 希望能以迴圈方式,假設當施力1時得一位移,施力2時又得另一位移。
: 最後再以文字檔方式將所有力量對應y位移輸出。
: 現今只知道可以利用*DO和*ENDDO作編寫,還有*GET可以得到輸出文字檔。
: 但*DO指令從何處執行,這是首先困擾。
: *GET指令需如何使用,才能將每次結果都放在同一文字檔中。
: 感謝熱心大大回應,謝謝!
我不清楚*GET可不可以得到輸出文字檔
我認為是*VWRITE啦,不過我個人沒用過這指令
不過依你的要求,你每改變一次施力,就必須進行一次solve動作
迴圈的寫法大致如下:
*DIM,ff,ARRAY,n
ff(1)=1,2,3,..............,n ! 視loading而定
*DOi,1,n
/SOLU
TIME,n
F,node編號,FY,ff(i) ! loading setting
SOLVE
SAVE
/POST1
*GET,result_f,NODE,node編號,RF,FY
result_d=UY(node編號)
*GET,xxxxxxxxxxxxxxxxxxxxxxxx ! 將result_f,result_d輸出至文件檔(這我不會)
*ENDDO
如果你的施力是線性的,且收歛性不錯,建議用一個load step固定substep求解
使用Loads are linearly interpolated(KBC,0)
然後在後處理時用DO迴圈,以*GET抓各sbustep的答案存入一個array中
最後將array以*VWRITE輸出
我覺得比較容易,且有可能達成你的要求
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.56.201
※ 編輯: GameQ 來自: 140.114.56.201 (03/07 04:25)
1F:推 quaintness:不需要用*VWRITE作輸出,*GET存入ARRAY後,PARSAV即可 03/07 07:22
2F:→ GameQ:PARSAV怎麼選擇欲輸出的ARRAY?? 03/07 14:38
3F:推 quaintness:PARSAV會輸出所有參數包含ARRAY, *VWRITE再輸出時間與 03/07 17:15
4F:→ quaintness:必要性?!...VM都有範例可以參照,以*LIST輸出 03/07 17:16
5F:→ GameQ:*VWRITE的好處在於控制輸出格式與可以選擇ARRAY 我想原po需 03/09 22:43
6F:→ GameQ:要的是得到施力與位移的數據而不是所有的ARRAY DATA 03/09 22:44
7F:→ GameQ:再說用*LIST和使用GUI介面下的list有什麼不同? 03/09 22:45
8F:→ GameQ:不知道q大有沒有使用fortran之經驗 其實*VWRITE就是fortran 03/09 22:47
9F:→ GameQ:中的WRITE指令 對於需要自訂輸出文件而言 有強而有力的工具 03/09 22:48
10F:推 quaintness:G大建議沒錯,我知道*VWRITE就是FORTRAN FORMAT,F是基 03/10 01:36
11F:→ quaintness:本常用的.但原原PO的問題似乎,對程式語言是不熟悉的 03/10 01:39
12F:→ quaintness:PARSAV非常容易得到數據,要繪圖或列表其他軟體可勝任 03/10 01:40
13F:推 quaintness:如果還要懂*VWRITE,雖然也容易了解,但是似乎不是分析 03/10 01:42
14F:→ quaintness:的重點.要的是力量與位移的關係,不是花些時間要怎麼 03/10 01:43
15F:→ quaintness:輸出,即使只是(1X,A8,' ',F10.3,' ',F10.3,' ',1 03/10 01:44
16F:→ quaintness:要了解這些FORMAT的格式對初學者而言,也是要花點精神 03/10 01:44
17F:→ quaintness:這是我的本意,但要朝正確踏實的方向學習也是沒有錯的 03/10 01:46
18F:→ hender:想一個偷吃步的方法, 把要輸出的矩陣名稱開頭用數字 03/14 00:07
19F:→ hender:再用parsav輸出 這樣要的東西會在上面檔案一開始的地方 03/14 00:08
20F:→ hender:就不用搞vwrite了 不知是否可行 03/14 00:09