不知火舞的被虐|伊人天伊人天天综合网|博洛尼亚天气|任你懆这里只有精品4|久久美日韩精品久久|掌中之物漫画免费阅读观看|0丨d老妇

程序調試的案例

Abaqus GUI程序開發過程中的一般調試方法
接下來介紹一下內核執行程序及圖形界面程序調試方法。 一般方法:內核腳本的調試 插件程序開發時切勿直接將圖形界面文件和內核執行文件直接關聯,而是將內核執行文件單獨進行調試。在內核執行文件中,將相關自定義關鍵字預留并賦予初值。然后在Abaqus/CAE界面下方命令交互行復制粘貼代碼即可。 這樣執行的好處是,可以從前到后逐塊執行,所有的變量都可以較快速地通過print進行查詢,同時還可以通過members和methods方法查詢每個對象的屬性和方法,方便后續程序開發。 待內核執行代碼調試無誤之后,再去集成圖形界面文件和注冊文件。 但通常情況下,當我們將內核執行代碼與圖形界面以及注冊文件關聯后,仍然需要局部對插件程序進行完善,此時想要提高程序調試效率就得用更高效的方法。 Abaqus PDE調試方法:圖形界面及內核調試 Abaqus/PDE中除了可以調試內核指令之外,也是可以調試復雜插件程序或者應用程序的。 具體步驟如下: (1)啟動Abaqus/CAE (2)在File菜單中啟動Abaqus PDE (3) 在PDE中打開要調試的插件代碼,在代碼中右鍵單擊對關注的行設置斷點,也可以選中變量名右鍵單擊添加監控。 (4) 切換回Abaqus/CAE,在插件菜單中調用插件并執行,此時插件程序會自動暫停在PDE中設置的斷點處,切換回PDE界面即可查看相應斷點位置以及監控的變量數值。
展開
Abaqus用戶子程序調試插件DUS ¥1
=======背景======= 前段時間學習Abaqus的用戶子程序,本以為按照算法實現Fortran編碼應該是比較快的,但沒想到在找用戶子程序的編譯和調試時浪費了不少時間,而且按照網上方法在命令行調試太麻煩,正好要做基于python的Abaqus二次開發培訓,所以就在Abaqus/CAE用python做了一個簡單的調試插件,希望能減少初學者自己摸索調試方法的時間,也為現在還在用命令行調試的人提供一種更加便捷的方式。 =======概述======= DUS(Debug User Subroutine)是集成在ABAQUS/CAE中的一個插件,能夠一鍵啟動用戶配置的用戶子程序開發平臺(如Visual Studio 2008等),并進入對用戶定義子程序的單步調試模式。 Abaqus用戶子程序是用戶進行求解器二次開發的手段,如果想要加入自己的算法,就必須使用Abaqus用戶子程序,Abaqus/CAE中可以編譯并運行用戶子程序,但沒有提供對用戶子程序調試功能,用戶在編寫用戶子程序時,如果通過打印數據信息輸出log信息來查看程序運行情況,查錯過程極其繁瑣。而用戶如果在dos窗口下調試,由于用戶子程序本身的復雜性,在得到最終正確結果前,需要反復編程->調試->再編程這個過程,來回切換也是極其不方便的。 本工具可在Abaqus/CAE中調試用戶子程序,實現以下功能: (1) 讀取用戶在ABAQUS/CAE的計算任務中定義的用戶子程序信息; (2) 自動啟動配置的用戶子程序開發平臺,進入調試模式; (3) 對用戶子程序進行單步調試
展開
VS環境下Abaqus Fortran子程序的高級調試
Abaqus中Fortran子程序的高級調試方法
ABAQUS子程序調試 ¥1
ABAQUS簡單的子程序調試用法如下: 在需要輸出的變量后加上 write(*,*),M 程序語句, 其中,M為輸出變量名稱 輸出到工作目錄下的.log文件夾下。通過在一個循環輸出同時輸出幾個關鍵變量的值即可判斷程序是否滿足要求。 在M_max下直接 應用write(*,*),M 程序語句 若不采用雙精度,則在log文件下輸出5.0000000000000 若采用如下定義的雙精度 "double precision "定義,則會輸出5.90000009536743
程序調試圖1
ABAQUS子程序——Fortran語言調試過程
面對一些大型程序,其內部有很多子程序,若采用ABAQUS運行仿真,從LOG文件中進行調試會有所不便。因為有時會莫名出現錯誤,卻沒有給出具體的提示。為了節省時間成本,幫助大家快速找到程序問題,現向各位普及一種通用的Fortran程序調試方法。用于測試我們的程序的變量定義、輸出、子程序內部的計算數據是否正常。調試成功后在將此段功能程序打包成子程序的形式,嵌入到ABAQUS的子程序模塊中,大家對這一后續過程應熟練掌握。 上述過程展示了兩種調試方法,一種及將所需要的矩陣按照行列式的形式打印出來,方便我們快速識別計算準確與否,另一種為將光標浮于變量上方,系統也會給出當前程序運行到此狀態的數值。與C語言等調試過程完全相同。
展開
Abaqus中Fortran子程序調試方法 附ABAQUS2020關聯Fortran下載
近兩年,收到許多同學關于Abaqus軟件使用過程中Fortran子程序調試的問題,在的錯誤面前許多初學者無從下手,不知如何去查找問題所在。本文將對Abaqus中子程序調試方法以及如何對錯誤進行預警做一個簡單的介紹。 通過總結各類錯誤問題,大致可以把子程序編寫過程中的常見錯誤歸為三類:模型錯誤、語法錯誤和邏輯錯誤。 (一)模型錯誤: 有限元模型中自身材料、截面屬性、網格類型、網格劃分方式、接觸設置、邊界/載荷設置、輸出設置、軟件子程序配置等引起的錯誤,非子程序本身的錯誤。此類錯誤一般會在任務監控界面下的Error或Warning欄中有具體提示。 模型錯誤屬于有限元模型常規建模錯誤,可以先使用非子程序模型予以測試,排除建模錯誤之后,再改為子程序計算模型。該類錯誤屬于最容易解決的一類。 (二)語法錯誤: 在使用FORTRAN編寫子程序時,使用了非法的語句或者非法的格式,而引起的錯誤。該類錯誤會直接在任務監控界面提示Error:Problem during compilation編譯出錯。如下圖所示。 具體的語法錯誤內容將會顯示在與任務名同名的XXX.log文件中,該文件位于Abaqus當前的工作目錄,語法錯誤點及所在行數都有明確的提示。 例如,將以下代碼中第29行注釋掉,第28行的語句被打斷,變得不完整,將會有哪些提示信息呢?提示信息又將在哪里顯示呢? 使用文本編輯軟件(notepad++或UE等)將log文件打開,可以考單提示信息如下,具體的錯誤類型和錯誤位置都有明確的提示: 語法錯誤是許多子程序初學者經常會犯的錯誤,按照上述方式就可以快速定位錯誤位置了,至于基本的Fortran語言語法,可以參照響應的語法書。
展開
Abaqus用戶子程序安裝、開發、調試
二、用戶子程序調試方法 在編寫完成子程序后,難免會出現語法、邏輯、算法等方面的錯誤,從而需要進行調試,一般調試時間遠遠會大于開發時間。Abaqus將子程序接口開放給我們,同樣也開放了調試的接口,但是一般情況下是不被允許的,需要進行環境文件修改才能達到此目的。下面對交互界面下調試子程序進行簡要介紹: 編輯環境文件“abaqus_v6.env”. 找到參數“compile_fortran”,將“/Od”和“/Zi”前面的“#”去掉,即將注釋去除,使得Intel Visual Fortran Compiler在編譯期間生成調試符號信息。 找到參數“link_sl”,將“/debug”前面的“#”去掉,即將注釋去除,使得Intel Visual Fortran Compiler在鏈接期鏈接調試符號信息到“.obj”文件。 找到參數“link_exe”,將“/debug”前面的“#”去掉,即將注釋去除,使得Intel Visual Fortran Compiler在鏈接期鏈接相關信息。 需要修改的環境文件為: 將修改的“*.inp”文件,和“*.for”文件放置在同一目錄下,采用Abaqus命令行窗口進行命令行提交: Abaqus job= JobName user = SubroutineName int 此外,為使得Abaqus在執行過程中能在子程序中停下來,我們需要在子程序中添加可以使程序暫停的語句,例如: Integer itempvar Logical DebugFlag DebugFlag = .true.
展開
15經驗模態分解及其改進程序,EMD,EEMD, CEEMDAN,三合一程序,已調試完成 ¥39.9
經驗模態分解及其改進程序,EMD,EEMD, CEEMDAN,三合一程序,已調試完成,替換自己數據可直接跑。
37基于MATLAB平臺的圖像去噪,銳化,邊緣檢測,程序調試通過,可直接運行。 ¥8.9
基于MATLAB平臺的圖像去噪,銳化,邊緣檢測,程序調試通過,可直接運行。
分享matlab在調試部分程序時的一個小技巧
調試程序時,經常要屏蔽掉一整段程序進行,也就是將其標示注釋符%。有兩個辦法:一種是選定后 ctrl+r和ctrl+t一種是在段首加if0,段尾加 end,中間都不執行,也就相當于注釋掉了。
完全基于VS的Abaqus UMAT等用戶子程序編譯、運行和調試 ¥1
Abaqus用戶子程序提供了很多接口幫助用戶實現自定義單元、材料等重要功能,但是功能強大,卻不友好,一般來說,存在以下四個問題: 1、 環境配置相對比較復雜,很多用戶在配置VS、Fortran和Abaqus的鏈接時就選擇了放棄; 2、 用戶子程序代碼的編譯問題不容易發現,用戶一般都需要在對應Job的日志里去查看,然后再去修改代碼,重新提交Job,如此反復,工作效率極低; 3、 調試不易,Abaqus自帶了調試Job的功能,但往往由于環境配置的問題,用戶不能正確地進入調試狀態,對用戶子程序代碼進行調試; 4、 由于Abaqus的用戶子程序編譯是每次提交任務后都會 重新執行的,即使用戶已經調試好用戶子程序代碼,也仍然需要重新編譯。同時給在共享用戶子程序時,就需要在多臺機器配置好用戶子程序的開發環境,實在是麻煩。 筆者通過一段時間的摸索和研究,找到了一種無需鏈接VS、Fortran和Abaqus,完全在VS中配置用戶子程序編譯環境的方法。編譯生成的文件可直接用于Abaqus,別的機器使用無需再配置開發環境。同時,筆者也根據調試代碼的需要,給出了一個實現單步調試的技巧,且無需再擔心由于環境配置問題無法進入調試狀態。詳細內容,見文檔。 方法指南.pdf 筆者也提供了配置好的vs工程。
展開
程序調試圖2
VS環境下ABAQUS子程序調試
(建議將原版本和Debug版本同時留存備份,方便之后直接替換使用) 運行VS并附加到進程 創建Empty Project,并導入.for文件與.inp文件 在.for文件中變量聲明后,程序主體之前,添加如下語句,并設置斷點 通過命令行提交job,如“ abaqus job=umat-1 user=umat int” 輸出提示“please input a integer”后,在VS中將standard.exe附加到進程 附加到進程以后,在cmd窗口隨便輸入一個整數,即可在VS中單步調試程序
展開
線性強化彈塑性umat子程序-umat在abaqus計算流程中的意義及調試方法
abaqus子程序用fortran語言編寫,且子程序又通過abaqus調用,因而涉及到很多的力學及有限元理論知識,使得調試難度陡然增加。那么abaqus子程序常用的調試方法是什么呢?其實說出來也很簡單,就是打印變量法,即把程序中的變量打印出來(一般打印結果在當前工作目錄下的job-name.log的文件里),然后考察其合理性。 如在上述umat子程序中定義了一個save在內存的變量,用來記錄進入umat的次數。 直接打印變量的方法很有用,但是當單元數增加后,眾多的打印信息形成很多的干擾因素,這時候我們需要控制打印的頻率,常用的方法為針對某個單元的某個積分點打印,如下面的一段程序所示,紅色圓圈里內容的含義是當單元編號為1且積分點編號為1時才打印相關信息,這樣調試更具針對性。 我們通過打印信息發現,一次迭代二次進入umat,第一次進入umat僅是給abaqus返回雅可比矩陣,第二次進入umat的目的是為了更新應力等信息。 視頻教程有這個帖子的更詳細解釋,感興趣的點擊下面的鏈接觀看 http://www.yqgqt.org.cn/college/video/c14014
展開
Grasshopper二次開發秘技-在vs中調試ghpython程序
rhino官方提供了基于Rhino WIP的ghpython調試方法,苦逼作者還是win7系統,裝不上Rhino WIP,經過一番探索,總算是在rhino6上走通了vs調試ghpython這條路。因此本文的所有操作是基于Rhino6,如果Rhino6都會了,Rhino WIP應該更加不成問題。 眾所周知,在grasshopper中用ghpython做開發可以說是極其方便,python的各種優勢與rhino gh強強聯合,對rhino來說可以說是如虎添翼。然而grasshopper中一個小小的ghpython電池能提供的調試,代碼縮進等功能那是相當有限,真正用過的人都知道在這里調整縮進、print定位錯誤有多么痛苦。 好在經過作者一番英勇探索,終于解決了這個難題,下面逐步說明: 開始之前,首先要裝好visual studio,且要包含python模塊,作者是直接裝了一個vs2019,直接自帶python。 1首先打開vs,創建一個新的Iron Python項目,將其命名為GHPythonDebug。 2然后選擇:調試-選項-Python-調試,勾選“使用舊版調試程序”。 3回到正文,將以下代碼輸入文檔內并保存 importsys # This is the path where the Visual Studio Python modules are locate.
展開
各位PLC高手們,這9個編程都能看明白嗎?
星三角降壓啟動的電路圖與控制圖 流程框架圖 I/O分配表 梯形圖程序 PLC接線圖 程序調試及結果分析 把編寫好的程序下載都西門子S7-200的PLC中進行調試,下載好后我們打開在線控制面板進行調試,看運行結果是否符合要求。首先把控制面板上的i0.2f置位為按鈕按下去,即i0.2 接通,表示斷路器QF合上。按下啟動按鈕i0.0f(SB2)即i0.0接通此時電動機星形啟動,Q0.0和Q0.1有輸出,實驗接線圖中表示這兩個的燈L1和L2都亮同時驅動時間計數器,當計時器計到10S時切換為三角型啟動,此時Q0.1無輸出,Q0.2有輸出,則此時Q0.0和Q0.2 有輸出,電機三角星運行。接線面板上的L 1和L3燈亮。按下在線面板上的i0.1f后(i0.1接通)此時電動機停止運行。所以的輸出點都無輸出。 4.彩燈控制 利用PLC的Q0.0到Q0.7八個輸出端控制八個彩燈,使其每隔一秒亮一個并循環。當接通I0.0后所有的燈都熄滅。當接通I0.1后又重新從Q0.0開始循環。 I/O分配表 梯形圖程序 PLC接線圖 程序調試及結果分析 把編寫好的程序下載都PLC中進行調試,下載好后我們打開在線控制面板進行調試,看運行結果是否符合要求。 PLC一上電后sm0.0一直保持接通。所以t37進行延時計時,延時到后啟動t38計時,t38計時到后t38常閉觸點斷開所以t37斷開計時,t37常開觸點恢復為常開所以t38也斷開計時。此時t38的常閉觸點恢復為常閉所以t37又重新計時,同時計數器C0開始計數一次。如此的反復計數。當計數為1時,Q0.0接通。計數器計數為2時Q0.1接通……如此下去當計數器計數到8時Q0.7接通。當計數器計到9時計數器C0清零。
展開