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

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

ANSYS二次開發的一些體會

時間:2008-09-15 11:52:02 來源:
二次開發調試技術

在調試用戶子程序過程中,可以利用非《ANSYS命令參考手冊》某些命令和其它特性幫助

用戶提供許多有用的信息。但是,它們僅僅適合于極小問題并只包含較少迭代求解情況

;否則,它們將會輸出大量的數據。 下面將詳細介紹/TRACK 和 /DEBUG兩個命令;另外

有兩個ANSYS文檔沒有包含的命令:OUTEQ 與 /NERR。

? 命令OUTEQ,on 能夠用于控制所有平衡迭代計算的輸出結果。

? 命令/NERR,,,-1 使系統一直報錯,并保持程序繼續運行。這時,

正常的中斷方式有:1) 系統中斷; 2) 錯誤結果。

1、跟蹤程序運算邏輯順序

/TRACK命令:當程序按邏輯順序進入和離開某些更高級別的子程序時發送一條信息。子

程序的TrackBegin(開始)和TrackEnd(結束)(參看UPFs第六章)一起構成/TRACK命令

的程序跟蹤。 然后,按下列格式執行命令:

/TRACK,MonLevel,PrintLevel,SumLevel

其中:MonLevel是時間監視級別;

PrintLevel是進入/退出輸出狀態開關;

SumLevel是輸出累積時間狀態開關。

這三個參數可以是0到9之間的任何值(缺省為0)。用戶可以使用/TRACK命令查找出程序中

斷發生的代碼位置。例如,將所有子程序標識為八個級別,以便確定程序進入與退出它

們的時間, 此時用戶應當執行的命令為:

/TRACK,,8

2、調試單元與求解

/DEBUG命令能夠在輸出的許多位置點進行調試。/DEBUG命令具有下列三種調試格式:

? 求解(solution)調試格式

? 單元(element)調試格式

? 一般調試格式

(1)求解(solution)調試格式

執行命令:

/DEBUG,-1,F1,F2,F3,F4,F5,F6,F7,F8,F9

參數說明:

F1—1 (輸出基本求解結果控制調試結果)

F2—1 (輸出使用Newmark常數的瞬態計算調試結果)

2 (輸出使用速度與加速度的瞬態計算調試結果)

F3—1 (輸出單元矩陣調試結果,包括矩陣與載荷矢量)

2 (輸出單元矩陣調試結果,只包括載荷矢量)

3 (輸出單元矩陣調試結果,包括矩陣對角元素和載荷矢量)

F4—1 (輸出自動時間步長(auto time stepping)調試結果)

F5—1 (輸出多物理場調試結果)

F6—1 (輸出弧長(arc-length)調試結果)

F7—1 (輸出基本Newton-Raphson調試結果)

2 (輸出Newton-Raphson調試結果,包括非平衡力或增量位移或每個DOF)

3 (輸出Newton-Raphson調試結果,包括施加載荷與每個DOF 上的n-r恢復力)

F8—1,2 (輸出位移矢量以及位移指針調試結果)

2 (輸出位移矢量以及增量位移調試結果)

3 (輸出位移矢量以及接觸數據庫調試結果)

F9—1 (輸出臨時程序員調試結果)

(2)單元(element)調試格式

執行命令:

/DEBUG,-3,G1,G2,G3,G4,G5,G6,G7,G8,G9

參數說明:

G1—1 (輸出基本單元通過(pass)調試結果)

G2—1 (輸出單元位移和坐標調試結果)

G3—1 (輸出單元矩陣調試結果,包括矩陣與載荷矢量)

2 (輸出單元矩陣調試結果,只包括載荷矢量)

3 (輸出單元矩陣調試結果,包括矩陣對角元素和載荷矢量)

G4—1 (輸出單元載荷調試結果) #p#分頁標題#e#

G5—1 (輸出單元實常數(real constant)調試結果)

G6—1 (輸出單元存儲變量(saved variable)調試結果)

G7—1 (輸出線性材料特性單元材料特性調試結果)

2 (輸出非線性材料特性單元材料特性調試結果)

G8—1,2 (輸出塑性單元非線性調試結果)

2 (輸出大變形單元非線性調試結果)

3 (輸出接觸數據庫單元非線性調試結果)

G9—1 (輸出臨時程序員調試結果)

(3)一般調試格式

執行命令:

/DEBUG,H1,H2,,H4,H5

參數說明:

H1—1 (輸出文件頭紀錄(file header record)信息)

2 (輸出字符輸入行(character))

3 (輸出解碼輸入行(decoded))

H2—1 (輸出波前重新排序(wavefront reordering)與單元檢查調試結果)

2 (輸出網格劃分調試結果)

H4—1 (輸出節點坐標系轉換格式調試結果)

2 (輸出位移更新調試結果)

H5—1 (輸出pre-單元、單元特性(characteristics)以及單元場載荷調試結果)

前面按照ansys5.5上的藍本描述了一下如何在2000下用upf進行ansys的二次開發。ansy

s本身提供了一個makefile文件,使用該文件會導致如下問題:

1. 找不到df lib中的三個庫函數,需要手工拷貝

2. 找不到ansysex.def文件,需要手工拷貝

3. 也是最重要的,每次修改完自己用戶單元程序,如uel101.f等時,執行 anscust,系

統不能生成新混編成的ansys.exe文件,而是告訴你ansys.exe 還是最新的,不需要進行

重編,最后只好把現有的ansys.exe等刪掉后才能重編 以上這些問題都是由于ansys本身

提供的這個makefile不完善造成的,小弟閑暇之余 重新寫了一個makefile.簡化了二次

開發的過程:(以user101單元為藍本)

1. 新建自己的目錄,把ansys57/customize/user/intel下的anscust.bat,uel101.f

uec101.f拷貝到這個目錄下,同時把下面我提供的makefile拷貝到該目錄下。

2. 直接執行anscust.bat文件,就混編成功。

3. 修改完uel101.f后,直接執行anscust.bat,將重編新的ansys.exe

注:1如果你想恢復最初狀態,在該目錄下簡單執行nmake clean即可

2我寫的這個makefile文件里有個DFLIB的宏定義,如果和你的DFLIB路徑不一, 請手工

改一下,否則還是無法找到DF LIB里面的三個文件.(其實你可以編輯一下 anscust.ba

t里面關于LIB宏的重定義,把DFLIB的路徑加進入,就沒有了這些煩惱, 呵呵,反正改

makefile或者anscust.bat都是一次性的工作:),我也是在環境變量里找不到DF根目錄的

表述才不得已寫了一個宏。)

下面就是我的makefile文件,因為不長,就不提供下載了,直接貼這里:)

#MakeFile used for upf under win2000,you should have installed

#Ansys57&&Visual Studio!

DFLIB=d:Microsoft Visual StudioDF98LIB

ALL : Ansys.exe

CLEAN:

-@erase "*.obj"

-@erase "Ansys.*"

LINK32=link.exe

LINK32_FLAGS=/out:Ansys.exe -map:Ansys.map -debug:none -opt:noref

-def:"$(ANSYS57_DIR)customuserintelansysex.def"

-machine:i386 -LARGEADDRESSAWARE -subsystem:windows #p#分頁標題#e#

-base:0x79000000 -stack:0x1000000 -delayload:ctl3d32.dll

-delayload:winmm.dll -delayload:ansysb.dll

-delayload:mnflib.dll

-nodefaultlib

"$(DFLIB)DFCONSOL.lib" "$(DFLIB)DFPORT.lib"

"$(DFLIB)DFORMD.lib" ansys1.lib ansys2.lib

kernel32.lib advapi32.lib netapi32.lib

user32.lib gdi32.lib anslibx.lib ansysb.lib

comdlg32.lib comctl32.lib winspool.lib vfw32.lib

winmm.lib ctl3d32.lib glu32.lib opengl32.lib

msvcrt.lib msvcprt.lib mnflib.lib oldnames.lib

mpr.lib wsock32.lib siappst.lib Delayimp.lib

htmlhelp.lib lmgr_md.lib lm_new_md.obj

lmappfil.obj nt_WinAnsys.obj nt_uiloop.obj

nt_WinGUI.obj nt_WinMain.obj INEXNT.obj

MATHLIBC.obj elshfn.obj pElData.obj WinAnsys.res

masscoeFtri.obj mscoef.obj nodf10.obj nodfTri.obj

nshpderv.obj stcoef.obj stcoefTri.obj thcoef.obj

thcoefTri.obj Trinshpderv.obj sstiff2d.obj

sstiff3d.obj amgsolver.obj amg_init.obj

elcjfill.obj tess_info.obj userlink.obj

LINK32_OBJS= *.obj

Ansys.exe: $(LINK32_OBJS)

$(LINK32) @<<

$(LINK32_FLAGS) $(LINK32_OBJS)