Re: [問題] 請問Ansys迴圈之問題?

看板Cad_Cae作者 (過路費)時間16年前 (2008/03/07 04:23), 編輯推噓4(4016)
留言20則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《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)

03/07 07:22, , 1F
不需要用*VWRITE作輸出,*GET存入ARRAY後,PARSAV即可
03/07 07:22, 1F

03/07 14:38, , 2F
PARSAV怎麼選擇欲輸出的ARRAY??
03/07 14:38, 2F

03/07 17:15, , 3F
PARSAV會輸出所有參數包含ARRAY, *VWRITE再輸出時間與
03/07 17:15, 3F

03/07 17:16, , 4F
必要性?!...VM都有範例可以參照,以*LIST輸出
03/07 17:16, 4F

03/09 22:43, , 5F
*VWRITE的好處在於控制輸出格式與可以選擇ARRAY 我想原po需
03/09 22:43, 5F

03/09 22:44, , 6F
要的是得到施力與位移的數據而不是所有的ARRAY DATA
03/09 22:44, 6F

03/09 22:45, , 7F
再說用*LIST和使用GUI介面下的list有什麼不同?
03/09 22:45, 7F

03/09 22:47, , 8F
不知道q大有沒有使用fortran之經驗 其實*VWRITE就是fortran
03/09 22:47, 8F

03/09 22:48, , 9F
中的WRITE指令 對於需要自訂輸出文件而言 有強而有力的工具
03/09 22:48, 9F

03/10 01:36, , 10F
G大建議沒錯,我知道*VWRITE就是FORTRAN FORMAT,F是基
03/10 01:36, 10F

03/10 01:39, , 11F
本常用的.但原原PO的問題似乎,對程式語言是不熟悉的
03/10 01:39, 11F

03/10 01:40, , 12F
PARSAV非常容易得到數據,要繪圖或列表其他軟體可勝任
03/10 01:40, 12F

03/10 01:42, , 13F
如果還要懂*VWRITE,雖然也容易了解,但是似乎不是分析
03/10 01:42, 13F

03/10 01:43, , 14F
的重點.要的是力量與位移的關係,不是花些時間要怎麼
03/10 01:43, 14F

03/10 01:44, , 15F
輸出,即使只是(1X,A8,' ',F10.3,' ',F10.3,' ',1
03/10 01:44, 15F

03/10 01:44, , 16F
要了解這些FORMAT的格式對初學者而言,也是要花點精神
03/10 01:44, 16F

03/10 01:46, , 17F
這是我的本意,但要朝正確踏實的方向學習也是沒有錯的
03/10 01:46, 17F

03/14 00:07, , 18F
想一個偷吃步的方法, 把要輸出的矩陣名稱開頭用數字
03/14 00:07, 18F

03/14 00:08, , 19F
再用parsav輸出 這樣要的東西會在上面檔案一開始的地方
03/14 00:08, 19F

03/14 00:09, , 20F
就不用搞vwrite了 不知是否可行
03/14 00:09, 20F
文章代碼(AID): #17q5BNDs (Cad_Cae)
文章代碼(AID): #17q5BNDs (Cad_Cae)