我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > Ansys教程

ANSYS各種時間步求解方法比較

時間:2010-11-14 11:43:35 來源:未知

下面以一個彈塑性立方塊求解為例.
基本建模
/prep7
Et,1,solid45
Mp,ex,1,3e4
Mp,nuxy,1,0.3
TB,BKIN,1,1,2,1
TBDATA,,20,10,,,,  
Block,,10,,10,,10
Esize,1
Vmesh,1
Asel,s,loc,y,0
Da,all,all


!求解部分共三種方法比較

方法1:采用do循環批處理
*DO,I,1,2                
/SOLU
TIME,I
nsel,s,loc,y,10
D,all,uy,-1*I  
allsel,all
Solve
*ENDDO

I=1時: 時間TIME從0 算到1
I=2時: 時間TIME從0算到2 ,都是基于初始構型計算的,不具有對前一步計算結果的繼承性,相當于時間函數只有一個點(1,2)
最終循環計算的結果是number step= 1 ; time=2


方法2:step by step求解步
ALLSEL,ALL
/SOLU
TIME,1                      !一個時間對應一個荷載步,后一步是在前一步繼承計算的
NSEL,S,LOC,Y,10
D,all,uy,-1
allsel,all
Solve
               
TIME,2
NSEL,S,LOC,Y,10
D,all,uy,-2
allsel,all
Solve
該方法是在前一步計算結果的基礎上繼承計算的,時間函數上有兩個點(1,1),(2,2)
最終計算的結果是NUMBER STEP=2, TIME=2
!如果TIME=1計算順利完畢,采用重啟動是多余的,如果中途結束,需要重啟動把TIME=1算完

方法3:
用lswire文件的方法,設置荷載步(在線性計算時相當于荷載工況)和時間,此方法對前一步結果有
繼承性,計算結果同方法2

方法4:
對第一種方法,要具有繼承性,采取重啟動的方法:
/solu
RESCONTRL,DEFINE,ALL,1,1 !保存每一子步計算結果,用于重啟動
*DO,I,1,2
   *IF,I,GT,1,THEN
     ANTYPE,,REST !重啟動以后,變量I恢復到上一步了,新的荷載步需要I=I+1,重啟動文件將變量也保存了
     !I=I+1
   *ENDIF             
   TIME,I
   nsel,s,loc,y,10
   D,all,uy,-1*I
   allsel,all
   Solve
   SAVE
*ENDDO
計算結果同方法2

方法5:是對方法4的一點補充,如果不明示TIME
/solu
RESCONTRL,DEFINE,ALL,1,1 !保存每一子步計算結果,用于重啟動
*DO,I,1,2
   *IF,I,GT,1,THEN
     ANTYPE,,REST,I-1,LAST,0   !重啟動以后,變量I恢復到上一步了,新的荷載步需要I=I+1,重啟動文件將變量也保存了
     I=I+1
   *ENDIF             
   nsel,s,loc,y,10
   D,all,uy,-1*I
   allsel,all
   Solve
*ENDDO
計算結果,time的值自動+1,計算結果同上

注意:1. 每個時間輸入的荷載,是荷載-時間曲線上的點,也就是荷載水平,不是荷載增量,這一點與ADINA相同
      2. 后繼時間點一定1,3要大于前面的時間點,如果小于,則系統在前面時間自動+1
      3. NUMBER STEP(在線性分析中相當于荷載工況)的數目,是通過solve來確定的,每執行solve一次,就會有一個記錄,與時間沒什么關系
      4. 關于*do循環與Fortran語法的區別
      *do,i,1,3
        i=i-1 !這里的變量不參與循環,開始就把循環次數算完了,沒有遞歸
      *enddo

     !即當:i=1, i=i-1=0,此時i=0沒有返回循環結構*DO中
     !      i=2, i=i-1=1
     !      i=3, i=i-1=2
     但在FORTRAN中,這種寫法會出現錯誤Error: An assignment to a DO variable within a DO body is invalid.   [I],循環體中不能出現