
發布
注冊
/
登錄abaqus fortran的案例
VS環境下Abaqus Fortran子程序的高級調試
在之前的文章里,已經介紹過Abaqus Fortran子程序開發過程中常見的幾種錯誤類型及相應的基本調試方法。詳見以下鏈接:
Abaqus中Fortran子程序的調試方法
上述方法雖然能實現對程序語法錯誤和邏輯錯誤的調試,但方法笨拙,調試效率低,那么有沒有更快捷的調試方法呢?能不能像VC/VB那樣直接在Visual studio環境中直接調試呢?
答案是肯定的,那么該如何實現呢?
01
—
VS環境下的Fortran子程序調試
先看看效果圖,就是下面醬紫,在VS環境下打開子程序,并設置斷點,當提交abaqus任務后,子程序被調用,將光標停留在變量名上時,即可實時查看變量數值,異常數據一目了然。
02
—
如何設置軟件
找到Abaqus安裝目錄下的環境變量文件abaqus_v6.env或win86_64.env,將其中“compile_fortran”參數、“link_sl” 參數及“link_exe”參數中的注釋符號去掉。就這么簡單。
展開 abaqus用fortran寫子程序的語法規則
abaqus用fortran寫子程序的語法規則
abaqus用fortran寫子程序時個人覺得語法上偏FORTRAN77,因此,收集了下的FORTRAN 77 語法概述。
以下為轉載內容:http://blog.sina.com.cn/s/blog_6e0aa6420100pu9p.html
abaqus的Fortran子程序中使用自由格式與固定格式
帖子Fortran語言的自由格式與固定格式指出Abaqus的Fortran子程序在默認狀態下只能使用固定格式,而實際上自由格式更為靈活好用,其一行不受72個字符的限制,并且可以將多個語句寫在同一行,同時續行符相對于固定格式也更為好用。同時自由格式能夠采用很多現代Fortran的語法來編寫程序,簡化程序編寫,有相當大的優勢。另外一方面,目前現存很多代碼,課題組祖傳程序大多是固定格式編寫,這些代碼量多,質量久經考驗,我們在新編代碼中又希望能使用他們,那么有沒有方法在一個文件中同時使用兩種風格的代碼呢。答案是可以的,本文主要描述下如何實現在abaqus中采用Fortran自由格式編程以及自由格式和固定格式混編。
以for文件默認是固定格式,可以通過!DIR$ FREEFORM 和 !DIR$ NOFREEFORM 分別控制代碼個編譯格式。以下兩個例子詳細描述。
1. 文檔中自由格式和固定格式混合。
計算結果:
2. 一個子程序中自由格式和固定格式混寫。
這種情況基本很少遇到,這是個騷操作,我也不過多介紹,直接搬運IVF官方例子:
總結:Abaqus的for文件可以采用自由格式編寫,或者自由格式和固定格式混編。只需要在文件中加上!DIR$ FREEFORM 和 !DIR$ NOFREEFORM 進行格式控制就行,不用修改環境文件和使用格式轉換鵝毛筆,這種方法簡單實用,希望對大家有所幫助。
展開 ABAQUS配置Fortran子程序
ABAQUS配置Fortran子程序
在完成ABAQUS安裝的基礎上,先安裝VS2019,后安裝Fortran。
一、安裝VS
1.下載VS2019和Fortran2020(VS,fortran和ABAQUS版本相差不是太大即可)
2.打開安裝包
3.打開VS2019安裝包,解壓VS2019_0.zip。
4.點擊進入解壓后VS2019_0文件夾
5.隨便選一個版本進行安裝,這里選Setup_Professional0(其他也可嘗試。)點擊右鍵以管理員身份運行。
6.等待后,點擊繼續
7.繼續等待
8.等待后進入如下界面,選擇需要安裝的內容(選擇C++開發即可,下圖紅框內容)
9.等待安裝
10。可以重啟或以后再說,表明安裝完成。
11.在開始界面找到VS,右鍵點擊以管理員身份運行,看是否可用。
12.選擇not now,maybe later
13.選擇喜歡的點開始
14.可點開紅框,并創建一個程序進行嘗試。如正常運行,說明VS安裝成功。
二、安裝Fortran
1.找到fortran安裝包。
2.點擊右鍵裝載(或解壓)。
3.進入文件夾,找到install右鍵以管理員身份運行。
4.等待進入安裝界面
5.選擇需要安裝的位置和內容,這里均選默認(可根據需要修改)。
6.按照圖示選擇,并點擊Next
7.選擇Choose alternative activation。
展開 
abaqus的Fortran子程序中使用自由格式
在上一篇文章Fortran語言的自由格式與固定格式中,曾經討論過Abaqus的Fortran子程序在默認狀態下只能使用固定格式,而實際上自由格式更為靈活好用,其一行不受72個字符的限制,并且可以將多個語句寫在同一行,同時續行符相對于固定格式也更為好用。本文主要描述下如何實現在abaqus中采用Fortran自由格式編程。
以幫助文檔中的經典塑性UMAT子程序為例:
(1)打開Abaqus documentation,點擊Abaqus Verification Guide,并進入UMAT AND UHYPER下的input files;
(2)下載inp文件及f子程序,用文本編輯器打開umatmst3.f,可以看出其采用的是固定格式編寫;
(3)修改abaqus的運行環境,加入支持自由格式的設置:找到abaqus環境的配置文件,對于abaqus2020和abaqus2021版本,該文件為以下路徑的win86_64.env文件:
對于比較早的abaqus版本如abaqus6.14,該文件可能叫abaqus_v6.env。總之通過搜索等方式找到該文件并打開即可。
(4)在.env文件中加入使用自由格式的命令:
(5)將子程序修改為自由格式,需要修改的內容主要包括 續航符,注釋等。
展開 鏈接 ABAQUS 和 FORTRAN ¥2
鏈接 ABAQUS 和 FORTRAN
ABAQUS 和 FORTRAN 鏈接以執行用戶子例程,例如 VUMAT、UMAT、USDFLD 等。
您可以找到各種版本的 ABAQUS 和 FORTRAN Available。以下是兼容性列表:
ABAQUS 2017 - Intel Composer XE 2013 或更高版本,
- Visual Studio 2010 或更高版本
v6.14 - Intel Visual Fortran 12.0 或更高版本
- Visual Studio 2010 或更高版本
可以從這里免費下載 FORTRAN 的學生版:
https://software.intel.com/en-us/qualify-for-free-software/student
第 1 步:安裝
安裝 SIMULIA ABAQUS 的副本,然后安裝 Visual Studio 和 Visual Fortran。確保你也安裝了 Visual Studio 的 C++ 組件。
第 2 步:Fortran 編譯器
在 FORTRAN 的安裝目錄中找到 ifort.exe 和 ifortvars.bat。
復制剪輯板上的地址。
展開 Abaqus中Fortran子程序的調試方法 附ABAQUS2020關聯Fortran下載
近兩年,收到許多同學關于Abaqus軟件使用過程中Fortran子程序調試的問題,在的錯誤面前許多初學者無從下手,不知如何去查找問題所在。本文將對Abaqus中子程序的調試方法以及如何對錯誤進行預警做一個簡單的介紹。
通過總結各類錯誤問題,大致可以把子程序編寫過程中的常見錯誤歸為三類:模型錯誤、語法錯誤和邏輯錯誤。
(一)模型錯誤:
有限元模型中自身材料、截面屬性、網格類型、網格劃分方式、接觸設置、邊界/載荷設置、輸出設置、軟件子程序配置等引起的錯誤,非子程序本身的錯誤。此類錯誤一般會在任務監控界面下的Error或Warning欄中有具體提示。
模型錯誤屬于有限元模型常規建模錯誤,可以先使用非子程序模型予以測試,排除建模錯誤之后,再改為子程序計算模型。該類錯誤屬于最容易解決的一類。
(二)語法錯誤:
在使用FORTRAN編寫子程序時,使用了非法的語句或者非法的格式,而引起的錯誤。該類錯誤會直接在任務監控界面提示Error:Problem during compilation編譯出錯。如下圖所示。
具體的語法錯誤內容將會顯示在與任務名同名的XXX.log文件中,該文件位于Abaqus當前的工作目錄,語法錯誤點及所在行數都有明確的提示。
例如,將以下代碼中第29行注釋掉,第28行的語句被打斷,變得不完整,將會有哪些提示信息呢?提示信息又將在哪里顯示呢?
使用文本編輯軟件(notepad++或UE等)將log文件打開,可以考單提示信息如下,具體的錯誤類型和錯誤位置都有明確的提示:
語法錯誤是許多子程序初學者經常會犯的錯誤,按照上述方式就可以快速定位錯誤位置了,至于基本的Fortran語言語法,可以參照響應的語法書。
展開 abaqus關聯Fortran子程序教程(包含安裝包) ¥3
對于abaqus玩家來說,有時候需要用到一些子程序,常見的如焊接模擬的熱源子程序、荷載子程序、材料子程序和單元子程序等等,但是調用子程序需要將abaqus和Fortran關聯起來,雖然網上有不少教程,但卻將安裝包和關聯教程分離開,這就影響我們安裝/關聯的效率,有時候甚至會浪費時間和金錢去xxx尋求幫助(約30元),這是不值得的。為了廣大學生的方便,本人分享一下經驗和安裝包,若有不當之處,請指正,謝謝。意思意思收到辛苦費,但是若關注微信公眾號:土木學子,即可免費獲得(往期文章)。
首先,安裝Visual Studio2012,安裝過程中直接點點點就行,唯一需要注意的是建議安裝在非系統盤,并無破解license/文件。安裝包鏈接在后方。
接著,安裝IVF2013,安裝過程中,激活方式選擇使用license,其余安裝過程也只是點點點,無特別之處。我分享的鏈接中包含許可證文件,這一點請放心。安裝包鏈接在后方。
然后,右鍵點擊abaqus圖標,屬性,打開文件所在的位置,點擊找到launcher.bat文件,操作下圖。
最后,以文本打開方式打開launcher.bat文件,在最上方添加兩行內容,即將Visual Studio 2012及Fortran與abaqus關聯起來。
展開 避坑abaqus+VS+Fortran子程序關聯問題
image_process=/format,webp" data-initial-src="https://img.jishulink.com/202602/attachment/cf9098b561244a699652bd86f64b523e.png">
</figure>
</figure><p><br></p><p>只是運行abaqus子程序,只需要安裝Fortran編譯器就行了,但是Intel Fortran編譯器需要集成VS開發環境,所以需要先裝Visual studio。筆者就只安裝了上圖中Fortran Compiler,同樣可以關聯VS和abaqus,并成功運行子程序。Intel官方也提供了Fortran Compiler單獨的安裝包。如下圖,只有335M,下載安裝很方便。
展開 ABAQUS2020關聯Fortran2020&VS2019
ABAQUS2020關聯Fortran2020&VS2019
Abaqus2020關聯子程序方法.pdf
abaqus子程序開發:fortran-c-python混合編程開發
abaqus子程序開發語言不局限fortran和c了,還能支持python!
這是一套自研的開發框架,源于客戶需要獲取分析過程的中間數據作為python機器學習程序的輸入這樣的需求。這種需求乍一聽確實非主流、非常規。
后來仔細做了一些了解,這種需求有其合理性。第一,python在數據分析、機器學習方面有豐富的資源;第二,python程序嵌入abaqus求解器一起運行,那開發就會很方便高效;第三,借助python的pdb可以隨心所欲的設置斷點,調試程序。在此之前,python一般作為獨立程序,依賴數據文件的順序傳遞,實現與abaqus的協同。直白的講,abaqus算完了,形成數據文件再導入python。
于是火力全開研究解決方案,結果可謂“大快人心”:實現了abaqus的子程序對python的支持,而且還實現了fortran、c、python三種語言的混合編程,真正讓不同的編程語言在它最擅長的領域發揮作用。
以上介紹了abaqus子程序fortran-c-python混合編程,如有這方面的需求,歡迎私信聯系開展合作。
展開 
Abaqus子程序配置Visual Studio及Fortran版本大全
出現這些錯誤的時候,首先要檢查VS 、FORTRAN、Abaqus三者版本是否匹配,一般來說,要選擇與Abaqus版本發行時間相近的VS以及IVF發行版本。比如Abaqus2018匹配VS2012就會出錯。如果版本匹配沒問題再檢查Abaqus子程序關聯設置是否有問題。這兩個問題都解決了,子程序驗證基本都能通過。
常用的VS與Fortran版本匹配
該圖是流傳比較廣的一張版本匹配圖配置子程序時,可以參照這張圖進行VS和IVF版本的選擇。
【超詳細攻略】SIMULIA2024 + VS2022 +oneAPI 2025子程序配置(從本質上解決安裝失敗問題)
最新版oneAPI中Fortran的編譯器名稱為ifx.exe,而abaqus中win86_64.env配置中還是為ifort,導致不能正常識別。
所以可在:
在C:\Program Files (x86)\Intel\oneAPI\compiler\2025.0\bin 中,將所有 ifx.exe 和 ifx.cfg 更改為 ifort.exe 和 ifort.cfg
或者另一種辦法就是打開C:\SIMULIA\EstProducts\2024\win_b64\SMA\site\win86_64.env 這個文件,將complie_fortran中ifort更改為ifx。
完成后,啟動Abaqus Verfication
Abaqus子程序中,出現PASS即代表成功。
Abaqus 使用自由格式ForTran95語言(.f90)
Abaqsu默認使用的子程序都是.f固定格式,書寫使用起來比較麻煩。同樣的可在win86_64.env文件中,加入free,即可使用自由格式編寫。注意保存文件的后綴還是為.f或.for;abaqus還是不能使用.f90的格式。
若想使用固定格式的,刪除free這個選項即可。
更多其他詳細教程,可上公眾號《ANSA與CAE分享》查看
展開 fortran 調用 abaqus
matlab和python都可以方便的調用<a href="/major/abaqus,為算法優化帶來了極大的便利。我在優化過程中需要用到Fortran調用abaqus,更準確的說是在abaqus的子程序中調用abaqus,目前遇到的一個問題是log中會有一個warning,暫不清楚會有什么影響,下面開始寫如何做到的。
我的warning:*Warning: it took 18 seconds to delete C:\Users\Bidong\AppData\Local\Temp\Bidong_Job-4_13268
1.Fortran調用abaqus代碼:
program XXX
use dflib
implicit none
logical(4) cmdout
cmdout=system('abaqus job=Job9_A2M inp=D:\abaqus\software\temp\Job9_A2M.inp')
end program XXX
這段代碼可以運行指定文件夾的inp,最后的結果文件在F文件項目所在的文件夾中。
2.在abaqus job1的子程序中運行新的job2,將上述代碼寫成一個子程序,用call的形式調用。生成的job2結果文件會在job1運行結束后在內存中釋放,job2的結果可以在job2的程序或子程序中進行提取。
3.在遇到已經存在的任務時,abaqus會詢問是否覆蓋先前的 job,如果不想被詢問直接覆蓋先前的任務,可以在上述命令結尾加上 ask=off
展開 各種CAE軟件的二次開發語言集錦&收集
ANSYS用c,tcl/tk,fortran<BR><SPAN class=javascript id=text686216>ABAQUS用FORTRAN,C<BR>大家有知道其他的,跟上</SPAN>