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

abaqus 子程序調(diào)試的案例

Abaqus用戶(hù)程序調(diào)試插件DUS ¥1
=======背景======= 前段時(shí)間學(xué)習(xí)Abaqus的用戶(hù)子程序,本以為按照算法實(shí)現(xiàn)Fortran編碼應(yīng)該是比較快的,但沒(méi)想到在找用戶(hù)子程序的編譯和調(diào)試時(shí)浪費(fèi)了不少時(shí)間,而且按照網(wǎng)上方法在命令行調(diào)試太麻煩,正好要做基于python的Abaqus二次開(kāi)發(fā)培訓(xùn),所以就在Abaqus/CAE用python做了一個(gè)簡(jiǎn)單的調(diào)試插件,希望能減少初學(xué)者自己摸索調(diào)試方法的時(shí)間,也為現(xiàn)在還在用命令行調(diào)試的人提供一種更加便捷的方式。 =======概述======= DUS(Debug User Subroutine)是集成在ABAQUS/CAE中的一個(gè)插件,能夠一鍵啟動(dòng)用戶(hù)配置的用戶(hù)子程序開(kāi)發(fā)平臺(tái)(如Visual Studio 2008等),并進(jìn)入對(duì)用戶(hù)定義子程序的單步調(diào)試模式。 Abaqus用戶(hù)子程序是用戶(hù)進(jìn)行求解器二次開(kāi)發(fā)的手段,如果想要加入自己的算法,就必須使用Abaqus用戶(hù)子程序Abaqus/CAE中可以編譯并運(yùn)行用戶(hù)子程序,但沒(méi)有提供對(duì)用戶(hù)子程序調(diào)試功能,用戶(hù)在編寫(xiě)用戶(hù)子程序時(shí),如果通過(guò)打印數(shù)據(jù)信息輸出log信息來(lái)查看程序運(yùn)行情況,查錯(cuò)過(guò)程極其繁瑣。而用戶(hù)如果在dos窗口下調(diào)試,由于用戶(hù)子程序本身的復(fù)雜性,在得到最終正確結(jié)果前,需要反復(fù)編程->調(diào)試->再編程這個(gè)過(guò)程,來(lái)回切換也是極其不方便的。 本工具可在Abaqus/CAE中調(diào)試用戶(hù)子程序,實(shí)現(xiàn)以下功能: (1) 讀取用戶(hù)在ABAQUS/CAE的計(jì)算任務(wù)中定義的用戶(hù)子程序信息; (2) 自動(dòng)啟動(dòng)配置的用戶(hù)子程序開(kāi)發(fā)平臺(tái),進(jìn)入調(diào)試模式; (3) 對(duì)用戶(hù)子程序進(jìn)行單步調(diào)試
展開(kāi)
ABAQUS程序調(diào)試 ¥1
ABAQUS簡(jiǎn)單的子程序調(diào)試用法如下: 在需要輸出的變量后加上 write(*,*),M 程序語(yǔ)句, 其中,M為輸出變量名稱(chēng) 輸出到工作目錄下的.log文件夾下。通過(guò)在一個(gè)循環(huán)輸出同時(shí)輸出幾個(gè)關(guān)鍵變量的值即可判斷程序是否滿(mǎn)足要求。 在M_max下直接 應(yīng)用write(*,*),M 程序語(yǔ)句 若不采用雙精度,則在log文件下輸出5.0000000000000 若采用如下定義的雙精度 "double precision "定義,則會(huì)輸出5.90000009536743
VS環(huán)境下Abaqus Fortran程序的高級(jí)調(diào)試
Abaqus中Fortran子程序的高級(jí)調(diào)試方法
線性強(qiáng)化彈塑性u(píng)mat程序-umat在abaqus計(jì)算流程中的意義及調(diào)試方法
abaqus子程序用fortran語(yǔ)言編寫(xiě),且子程序又通過(guò)abaqus調(diào)用,因而涉及到很多的力學(xué)及有限元理論知識(shí),使得調(diào)試難度陡然增加。那么abaqus子程序常用的調(diào)試方法是什么呢?其實(shí)說(shuō)出來(lái)也很簡(jiǎn)單,就是打印變量法,即把程序中的變量打印出來(lái)(一般打印結(jié)果在當(dāng)前工作目錄下的job-name.log的文件里),然后考察其合理性。 如在上述umat子程序中定義了一個(gè)save在內(nèi)存的變量,用來(lái)記錄進(jìn)入umat的次數(shù)。 直接打印變量的方法很有用,但是當(dāng)單元數(shù)增加后,眾多的打印信息形成很多的干擾因素,這時(shí)候我們需要控制打印的頻率,常用的方法為針對(duì)某個(gè)單元的某個(gè)積分點(diǎn)打印,如下面的一段程序所示,紅色圓圈里內(nèi)容的含義是當(dāng)單元編號(hào)為1且積分點(diǎn)編號(hào)為1時(shí)才打印相關(guān)信息,這樣調(diào)試更具針對(duì)性。 我們通過(guò)打印信息發(fā)現(xiàn),一次迭代二次進(jìn)入umat,第一次進(jìn)入umat僅是給abaqus返回雅可比矩陣,第二次進(jìn)入umat的目的是為了更新應(yīng)力等信息。 視頻教程有這個(gè)帖子的更詳細(xì)解釋?zhuān)信d趣的點(diǎn)擊下面的鏈接觀看 http://www.yqgqt.org.cn/college/video/c14014
展開(kāi)
abaqus 子程序調(diào)試圖1
【7月20-21日 上海】Abaqus UMAT用戶(hù)程序二次開(kāi)發(fā)技術(shù)培訓(xùn)
報(bào)名方式: 1、點(diǎn)擊鏈接立即報(bào)名(填寫(xiě)后會(huì)有工作人員主動(dòng)聯(lián)系):http://wwwwwwww.mikecrm.com/co15636 2、掃碼下方二維碼,聯(lián)系客服報(bào)名 未盡事宜請(qǐng)掃描上方二維碼,或咨詢(xún)微信客服,微信號(hào):jishulink888 附錄: [1] 視頻教程:Abaqus用戶(hù)子程序UMat詳解與開(kāi)發(fā)工具 http://www.yqgqt.org.cn/college/video/c13034 [2] Abaqus用戶(hù)子程序調(diào)試插件DUS http://www.yqgqt.org.cn/content/post/424513 [3]自研有限元程序開(kāi)發(fā)框架iSolver http://www.yqgqt.org.cn/content/post/337351
展開(kāi)
VS環(huán)境下調(diào)試abaqus程序 ¥300
無(wú)
Abaqus用戶(hù)程序安裝、開(kāi)發(fā)、調(diào)試
引言 Abaqus為用戶(hù)提供了大量的用戶(hù)子程序,用戶(hù)可以通過(guò)子程序接口開(kāi)發(fā)Abaqus原本不具備的單元、材料、載荷等。此外,利用子程序能幫助我們?nèi)ダ斫狻⑼茰y(cè)Abaqus的計(jì)算過(guò)程,這對(duì)國(guó)產(chǎn)自主軟件對(duì)標(biāo)Abaqus功能開(kāi)發(fā)具有一定的參考意義。
VS環(huán)境下ABAQUS程序調(diào)試
修改win86_64.env文件 在ABAQUS 安裝目錄中找到win86_64.env文件,將與debug有關(guān)的命令行的注釋取消。(建議將原版本和Debug版本同時(shí)留存?zhèn)浞荩奖阒笾苯犹鎿Q使用) 運(yùn)行VS并附加到進(jìn)程 創(chuàng)建Empty Project,并導(dǎo)入.for文件與.inp文件 在.for文件中變量聲明后,程序主體之前,添加如下語(yǔ)句,并設(shè)置斷點(diǎn) 通過(guò)命令行提交job,如“ abaqus job=umat-1 user=umat int” 輸出提示“please input a integer”后,在VS中將standard.exe附加到進(jìn)程 附加到進(jìn)程以后,在cmd窗口隨便輸入一個(gè)整數(shù),即可在VS中單步調(diào)試子程序
展開(kāi)
ABAQUS程序——Fortran語(yǔ)言調(diào)試過(guò)程
面對(duì)一些大型程序,其內(nèi)部有很多子程序,若采用ABAQUS運(yùn)行仿真,從LOG文件中進(jìn)行調(diào)試會(huì)有所不便。因?yàn)橛袝r(shí)會(huì)莫名出現(xiàn)錯(cuò)誤,卻沒(méi)有給出具體的提示。為了節(jié)省時(shí)間成本,幫助大家快速找到程序問(wèn)題,現(xiàn)向各位普及一種通用的Fortran程序調(diào)試方法。用于測(cè)試我們的程序的變量定義、輸出、子程序內(nèi)部的計(jì)算數(shù)據(jù)是否正常。調(diào)試成功后在將此段功能程序打包成子程序的形式,嵌入到ABAQUS子程序模塊中,大家對(duì)這一后續(xù)過(guò)程應(yīng)熟練掌握。 上述過(guò)程展示了兩種調(diào)試方法,一種及將所需要的矩陣按照行列式的形式打印出來(lái),方便我們快速識(shí)別計(jì)算準(zhǔn)確與否,另一種為將光標(biāo)浮于變量上方,系統(tǒng)也會(huì)給出當(dāng)前程序運(yùn)行到此狀態(tài)的數(shù)值。與C語(yǔ)言等調(diào)試過(guò)程完全相同。
展開(kāi)
[轉(zhuǎn)]通過(guò)Visual Studio調(diào)試ABAQUS程序
安裝、配置ABAQUS UserSubroutine 的開(kāi)發(fā)環(huán)境; 本人使用的開(kāi)發(fā)工具組合為 Windows 7 (x64)+ ABAQUS 6.12-1 (x64) +Visual Studio 2008 + Intel Visual Fortran 11.1.060 + IMSL Fortran Library 6.0(可選項(xiàng))。首先使用 ABAQUS官方所建議的方法編譯、運(yùn)行簡(jiǎn)單的示例子程序,確保開(kāi)發(fā)環(huán)境能正常工作。 2. 用文本編輯器打開(kāi)“C:\SIMULIA\Abaqus\6.12-1\SMA\site\abaqus_v6.env”。 3. 找到"compile_fortran"參數(shù),添加‘/Od’和‘/Zi’選項(xiàng)以使得Intel Visual Fortran compiler在編譯期生成調(diào)試符號(hào)信息。本人的修改結(jié)果為: 4. 找到"link_sl"參數(shù),添加‘/DEBUG’選項(xiàng)以使得IntelVisual Fortran linker在鏈接期鏈接調(diào)試符號(hào)信息到.obj文件。本人的修改結(jié)果為: 5. 找到 "link_exe"參數(shù), 添加 ‘/DEBUG’ 選項(xiàng)以使得 Intel Visual Fortran linker 在鏈接期鏈接調(diào)試符號(hào)信息。本人的修改結(jié)果為: 6. 準(zhǔn)備好 job 文件 (*.inp) 和子程序源代碼文件 (*.for); 7. 在子程序源代碼文件的變量聲明段和可執(zhí)行代碼段之間添加一些可以使ABAQUS暫停執(zhí)行的代碼,并在適當(dāng)?shù)奈恢迷O(shè)置斷點(diǎn)。有多種方案,如用Sleep函數(shù)、或read語(yǔ)句。本人所使用的方案如下所示: 8.
展開(kāi)
Abaqus中Fortran程序調(diào)試方法 附ABAQUS2020關(guān)聯(lián)Fortran下載
近兩年,收到許多同學(xué)關(guān)于Abaqus軟件使用過(guò)程中Fortran子程序調(diào)試的問(wèn)題,在的錯(cuò)誤面前許多初學(xué)者無(wú)從下手,不知如何去查找問(wèn)題所在。本文將對(duì)Abaqus中子程序調(diào)試方法以及如何對(duì)錯(cuò)誤進(jìn)行預(yù)警做一個(gè)簡(jiǎn)單的介紹。 通過(guò)總結(jié)各類(lèi)錯(cuò)誤問(wèn)題,大致可以把子程序編寫(xiě)過(guò)程中的常見(jiàn)錯(cuò)誤歸為三類(lèi):模型錯(cuò)誤、語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤。 (一)模型錯(cuò)誤: 有限元模型中自身材料、截面屬性、網(wǎng)格類(lèi)型、網(wǎng)格劃分方式、接觸設(shè)置、邊界/載荷設(shè)置、輸出設(shè)置、軟件子程序配置等引起的錯(cuò)誤,非子程序本身的錯(cuò)誤。此類(lèi)錯(cuò)誤一般會(huì)在任務(wù)監(jiān)控界面下的Error或Warning欄中有具體提示。 模型錯(cuò)誤屬于有限元模型常規(guī)建模錯(cuò)誤,可以先使用非子程序模型予以測(cè)試,排除建模錯(cuò)誤之后,再改為子程序計(jì)算模型。該類(lèi)錯(cuò)誤屬于最容易解決的一類(lèi)。 (二)語(yǔ)法錯(cuò)誤: 在使用FORTRAN編寫(xiě)子程序時(shí),使用了非法的語(yǔ)句或者非法的格式,而引起的錯(cuò)誤。該類(lèi)錯(cuò)誤會(huì)直接在任務(wù)監(jiān)控界面提示Error:Problem during compilation編譯出錯(cuò)。如下圖所示。 具體的語(yǔ)法錯(cuò)誤內(nèi)容將會(huì)顯示在與任務(wù)名同名的XXX.log文件中,該文件位于Abaqus當(dāng)前的工作目錄,語(yǔ)法錯(cuò)誤點(diǎn)及所在行數(shù)都有明確的提示。 例如,將以下代碼中第29行注釋掉,第28行的語(yǔ)句被打斷,變得不完整,將會(huì)有哪些提示信息呢?提示信息又將在哪里顯示呢? 使用文本編輯軟件(notepad++或UE等)將log文件打開(kāi),可以考單提示信息如下,具體的錯(cuò)誤類(lèi)型和錯(cuò)誤位置都有明確的提示: 語(yǔ)法錯(cuò)誤是許多子程序初學(xué)者經(jīng)常會(huì)犯的錯(cuò)誤,按照上述方式就可以快速定位錯(cuò)誤位置了,至于基本的Fortran語(yǔ)言語(yǔ)法,可以參照響應(yīng)的語(yǔ)法書(shū)。
展開(kāi)
abaqus 子程序調(diào)試圖2
VS環(huán)境下調(diào)試ABAQUS 2016程序的處理辦法
鼠標(biāo)右擊我的電腦\屬性\高級(jí)系統(tǒng)設(shè)置\高級(jí)\環(huán)境變量,在系統(tǒng)變量中找到Path,點(diǎn)編輯,添加以下語(yǔ)句“C:\SIMULA\Commands;C:\SIMULA\CAE\win_b64\resources\install\cae;C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\mkl;C:\Program Files (x86)\Intel\Composer XE 2013\redist\ia32\mkl;” 注意:要以分號(hào)隔開(kāi),并確保ABAQUS的安裝路徑和IVF2013的路徑正確。 4.用文本編輯器打開(kāi) “C:\SIMULA\Solver\win_b64\SMA\site\win86_64.env” 。 5.找到 "compile_fortran" 參數(shù), 將‘/Od’ 和 ‘/Zi’ 選項(xiàng)之前的注釋符號(hào)#刪除。本人的修改結(jié)果為: 6.找到 "link_sl" 參數(shù), 將‘/DEBUG’選項(xiàng)之前的注釋符號(hào)#刪除。本人的修改結(jié)果為: 7.找到 "link_exe" 參數(shù), 將‘/DEBUG’選項(xiàng)之前的注釋符號(hào)#刪除。本人的修改結(jié)果為: 8.準(zhǔn)備好job文件 (*.inp) 和子程序源代碼文件 (*.for); 9.在子程序源代碼文件的變量聲明段和可執(zhí)行代碼段之間添加一些可以使ABAQUS暫停執(zhí)行的代碼,并在想要開(kāi)始調(diào)試的位置設(shè)置好斷點(diǎn)。
展開(kāi)
完全基于VS的Abaqus UMAT等用戶(hù)程序編譯、運(yùn)行和調(diào)試 ¥1
Abaqus用戶(hù)子程序提供了很多接口幫助用戶(hù)實(shí)現(xiàn)自定義單元、材料等重要功能,但是功能強(qiáng)大,卻不友好,一般來(lái)說(shuō),存在以下四個(gè)問(wèn)題: 1、 環(huán)境配置相對(duì)比較復(fù)雜,很多用戶(hù)在配置VS、Fortran和Abaqus的鏈接時(shí)就選擇了放棄; 2、 用戶(hù)子程序代碼的編譯問(wèn)題不容易發(fā)現(xiàn),用戶(hù)一般都需要在對(duì)應(yīng)Job的日志里去查看,然后再去修改代碼,重新提交Job,如此反復(fù),工作效率極低; 3、 調(diào)試不易,Abaqus自帶了調(diào)試Job的功能,但往往由于環(huán)境配置的問(wèn)題,用戶(hù)不能正確地進(jìn)入調(diào)試狀態(tài),對(duì)用戶(hù)子程序代碼進(jìn)行調(diào)試; 4、 由于Abaqus的用戶(hù)子程序編譯是每次提交任務(wù)后都會(huì) 重新執(zhí)行的,即使用戶(hù)已經(jīng)調(diào)試好用戶(hù)子程序代碼,也仍然需要重新編譯。同時(shí)給在共享用戶(hù)子程序時(shí),就需要在多臺(tái)機(jī)器配置好用戶(hù)子程序的開(kāi)發(fā)環(huán)境,實(shí)在是麻煩。 筆者通過(guò)一段時(shí)間的摸索和研究,找到了一種無(wú)需鏈接VS、Fortran和Abaqus,完全在VS中配置用戶(hù)子程序編譯環(huán)境的方法。編譯生成的文件可直接用于Abaqus,別的機(jī)器使用無(wú)需再配置開(kāi)發(fā)環(huán)境。同時(shí),筆者也根據(jù)調(diào)試代碼的需要,給出了一個(gè)實(shí)現(xiàn)單步調(diào)試的技巧,且無(wú)需再擔(dān)心由于環(huán)境配置問(wèn)題無(wú)法進(jìn)入調(diào)試狀態(tài)。詳細(xì)內(nèi)容,見(jiàn)文檔。 方法指南.pdf 筆者也提供了配置好的vs工程。
展開(kāi)
Abaqus程序開(kāi)發(fā)過(guò)程中的那些坑(給初學(xué)者的建議)
(3)理論知識(shí)的困難:對(duì)于復(fù)雜子程序,這一點(diǎn)是避免不了的,也是必須要過(guò)的一關(guān),以復(fù)合材料漸進(jìn)損傷材料子程序為例,首先要知道應(yīng)應(yīng)變關(guān)系、損傷起始判據(jù),損傷起始以后的損傷演化、剛度的折減、單元?jiǎng)h除控制策略,UMAT子程序中還要推導(dǎo)雅可比矩陣以及粘性正則化對(duì)損傷變量以及彈性矩陣的影響等等。 (4)程序調(diào)試的困難:Abaqus子程序調(diào)試不像VS環(huán)境下調(diào)試那么容易,初學(xué)者會(huì)犯各種各樣的錯(cuò)誤,模型錯(cuò)誤、語(yǔ)法錯(cuò)誤、邏輯錯(cuò)誤,在程序調(diào)試方面,我們之前已經(jīng)寫(xiě)過(guò)兩篇詳細(xì)的文章了,可以點(diǎn)擊下方鏈接直接跳轉(zhuǎn)去閱讀一下。 Abaqus中Fortran子程序調(diào)試方法(一) VS環(huán)境下Abaqus Fortran子程序的高級(jí)調(diào)試(二) 總而言之: (1)初學(xué)者學(xué)習(xí)子程序開(kāi)發(fā)要戰(zhàn)略上藐視它,戰(zhàn)術(shù)上重視它 (2)多看幫助文檔,會(huì)看幫助文檔! 另外,有關(guān)復(fù)合材料子程序開(kāi)發(fā)方面的視頻課程可點(diǎn)擊以下鏈接: Abaqus UVARM子程序詳解——自定義輸出變量 Abaqus 復(fù)合材料VUMAT子程序詳解(更新完畢)
展開(kāi)
有限元理論基礎(chǔ)及Abaqus內(nèi)部實(shí)現(xiàn)方式研究系列36:DLOAD用戶(hù)程序開(kāi)發(fā)步驟
至此,基于Fortran的DLOAD開(kāi)發(fā)流程已經(jīng)完成,但結(jié)果的正確性還需要更加細(xì)致的驗(yàn)證,為更方便的查找問(wèn)題,建議先采用單個(gè)單元調(diào)試DLOAD,在確保單個(gè)單元正確后再將DLOAD用于實(shí)際問(wèn)題。 1.2.5 調(diào)試(可選) 如果想要知道代碼的運(yùn)行結(jié)果是否和預(yù)期的一致,一種笨辦法是用print打印到log文件中,高效的方法是采用斷點(diǎn)調(diào)試的方法進(jìn)行運(yùn)行中的調(diào)試Abaqus支持命令行調(diào)試,不過(guò)命令行反復(fù)運(yùn)行也比較繁瑣,用戶(hù)也可選擇用一鍵調(diào)試Abaqus的用戶(hù)子程序的DUS插件工具。DUS(Debug User Subroutine)是集成在ABAQUS/CAE中的一個(gè)插件,能夠一鍵啟動(dòng)用戶(hù)配置的用戶(hù)子程序開(kāi)發(fā)平臺(tái)(如Visual Studio 2008等),并進(jìn)入對(duì)用戶(hù)定義子程序的單步調(diào)試模式。 有興趣的可到下面網(wǎng)頁(yè)下載使用。 Abaqus用戶(hù)子程序調(diào)試插件: https://www.yqgqt.org.cn/content/post/424513 1.3 基于MATLAB 的iSolver的DLOAD開(kāi)發(fā)步驟 基于MATLAB 的Abaqus的DLOAD具體開(kāi)發(fā)步驟和Abaqus類(lèi)似,只不過(guò)某些步驟需要用到自研有限元求解器開(kāi)發(fā)平臺(tái)iSolver。 1.3.1 定義DLOAD 如果是通過(guò)Abaqus界面定義DLOAD,則與Abaqus相應(yīng)的操作一致(見(jiàn)2.2.1 節(jié)), 1.3.2 編寫(xiě) 在MATLAB 中創(chuàng)建并編寫(xiě)DLOAD.m的文件,放入Abaqus工作目錄下。該文件只包括一個(gè)DLOAD函數(shù),前面參數(shù)接口和Abaqus的接口參數(shù)完全一致,功能也是計(jì)算分布載荷的幅值,相對(duì)Fortran,利用MATLAB 可以更容易的編寫(xiě)計(jì)算公式,同時(shí)可以利用MATLAB 在矩陣計(jì)算中各種強(qiáng)大功能和算法庫(kù)。
展開(kāi)