殺死單元后如何選擇表面的單元? 50
瀏覽:1462 回答:17
各位專家老師,我想用ANSYS APDL生死單元模擬激光打孔,將溫度超過一個定值的單元殺死,采用熱流密度模擬激光輸入。仿真采用瞬態仿真,想在每一步求解后,將熱流密度重新施加到新的邊界上,即施加到下一層“未被殺死”的單元上。想了一些辦法,但編程都相當繁鎖。
感覺這個應該是個常見問題,是不是有更好的方法?還請大家給點思路,謝謝


各位專家老師,我想用ANSYS APDL生死單元模擬激光打孔,將溫度超過一個定值的單元殺死,采用熱流密度模擬激光輸入。仿真采用瞬態仿真,想在每一步求解后,將熱流密度重新施加到新的邊界上,即施加到下一層“未被殺死”的單元上。想了一些辦法,但編程都相當繁鎖。
感覺這個應該是個常見問題,是不是有更好的方法?還請大家給點思路,謝謝


孫冬 @htbbzzg
您好,我嘗試用節點來定義,但遇到一些問題想請教一下,最下面是相關程序,
1是不知道最下程序這種思路可不可行?
2是關于SF這個命令,我開始只對一個節點用SF命令會報錯,看了一下help文檔還是不太明白SF對所選節點的要求是什么?
3是這段程序在運行時會報錯,我不太明白為什么為報這個錯?ENEXTN應該是ANSYS自帶函數啊
Error:*DOWHILE parameter:ENEXTN is not defined.
4是關于ENEXTN(N,LOC)這個函數,help中說N代表節點號,LOC代表該節點所在單元的列表位置。假設有8個單元共享這個節點,那我ENEXTN(N,8)是不是就是取共享該節點的第8個單元的單元號?ENEXTN(N,9)=0?不知道我這樣理解對嗎?
*DO,I,1,NMAX,1 XCENTER = CutSpeed*(K-1)*TTinc !光斑X位置 ZCENTER = StartPosition + CutSpace*(CutNuming-1) !光斑Z位置 DISTANCE= SQRT((NX(I)-XCENTER)**2+(NZ(I)-ZCENTER)**2) *IF,DISTANCE,LT,RLaser,THEN *IF,NY(I),EQ,ly,THEN !如果節點在最上表面,直接給HFLUX nsel,a,node,,I *ELSE !如果沒在最上表面,需要判斷一下是不是在生死邊界處 ElemList = 1 FlagBirthElem = 0 FlagDeathElem = 0 *DOWHILE,ENEXTN(I,ElemList) *GET,EState,ELEM,ENEXTN(I,ElemList),ATTR,LIVE !依次得到每個單元的選中及生死狀態 *IF,EState,EQ,1,THEN !表示該單元選擇中且激活 FlagBirthElem = 1 !表示存在激活單元 *ELSE FlagDeathElem = 1 !表示存在殺死單元 *ENDIF ElemList = ElemList+1 *ENDDO *IF,FlagDeathElem+FlagBirthElem,EQ,2,THEN !即該節點周圍既存在活單元,也存在死單元 nsel,a,node,,I *ENDIF *ENDIF *ENDIF *ENDDO SF,all,HFLUX,Pavr !所有節點選擇完后,一起賦熱流密度
孫冬 @htbbzzg
您好,謝謝您的回復,節點的方法我會再試一下。
我現在使用上次您說的單元的方法,我選出了所有上表面的單元,用SFE對單元進行加載,循環語句給每個單元分別加載,單元用SOLID70,用下面的語句依次加載熱通量:
SFE,EnumCoorArray(I,J,1),6,HFLUX,0,Pavr

加載還是成功的,問題是我用下面的方法把之前的加載刪除時,卻沒有刪除掉,不知道是不是我的這個刪除方法有問題?應該怎么一次性把熱通量全刪除掉
esel,s,live sfedele,all,all,HFLUX
鄒正剛
TOP
@htbbzzg
您好,我又發現了一個新問題,就是在我使用選節點的方法選中我需要加載熱流密度的節點后,使用下面的語句進行加載
我將加載的熱流密度顯示出來發現加載情況如下圖所示,可以看到所選節點是沒有問題的,但加載時我只需要豎直向下方向的加載,可實際上出現了橫向方向的加載,這是我不需要的。SF這個命令好像沒有辦法決定加載方向,不知道我在選出節點后,應該如何加載才能只有豎直方向載荷