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

Fortran子程序開發的案例

VS環境下Abaqus Fortran程序的高級調試
Abaqus中Fortran子程序的高級調試方法
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焊接模擬-空間三維多路徑串行焊接(Fortran程序二次開發
本文通過ABAQUS熱傳導方式講解空間三維多路徑順序焊接建模過程,多路徑焊接重點在于子程序編寫上面。 詳細操作視頻講解請查看:http://www.yqgqt.org.cn/college/video/c10113?nagivator=training 本文使用的是熱傳導分析步,只獲得溫度場,溫度結果如圖所示: 如需應力場或變形,可將分析步改成熱力耦合分析步,如下圖所示,單元類型也得改成熱力耦合。 多路徑的實現可以通過多個分析步,然后子程序里面在對應的分析步里面編寫路徑,也可以使用一個分析步,通過時間控制,這些都用條件語句就可以實現。 路徑的運動可以用參數方程來表示,將參數方程寫入子程序里對應的坐標中。實現起來還是挺簡單的。 本例僅供參考,如若有錯誤,歡迎指正。本人QQ:289328659,歡迎交流。 版權所有,轉載請注明出處!!!
展開
Abaqus中Fortran程序的調試方法 附ABAQUS2020關聯Fortran下載
近兩年,收到許多同學關于Abaqus軟件使用過程中Fortran子程序調試的問題,在的錯誤面前許多初學者無從下手,不知如何去查找問題所在。本文將對Abaqus中子程序的調試方法以及如何對錯誤進行預警做一個簡單的介紹。 通過總結各類錯誤問題,大致可以把子程序編寫過程中的常見錯誤歸為三類:模型錯誤、語法錯誤和邏輯錯誤。 (一)模型錯誤: 有限元模型中自身材料、截面屬性、網格類型、網格劃分方式、接觸設置、邊界/載荷設置、輸出設置、軟件子程序配置等引起的錯誤,非子程序本身的錯誤。此類錯誤一般會在任務監控界面下的Error或Warning欄中有具體提示。 模型錯誤屬于有限元模型常規建模錯誤,可以先使用非子程序模型予以測試,排除建模錯誤之后,再改為子程序計算模型。該類錯誤屬于最容易解決的一類。 (二)語法錯誤: 在使用FORTRAN編寫子程序時,使用了非法的語句或者非法的格式,而引起的錯誤。該類錯誤會直接在任務監控界面提示Error:Problem during compilation編譯出錯。如下圖所示。 具體的語法錯誤內容將會顯示在與任務名同名的XXX.log文件中,該文件位于Abaqus當前的工作目錄,語法錯誤點及所在行數都有明確的提示。 例如,將以下代碼中第29行注釋掉,第28行的語句被打斷,變得不完整,將會有哪些提示信息呢?提示信息又將在哪里顯示呢? 使用文本編輯軟件(notepad++或UE等)將log文件打開,可以考單提示信息如下,具體的錯誤類型和錯誤位置都有明確的提示: 語法錯誤是許多子程序初學者經常會犯的錯誤,按照上述方式就可以快速定位錯誤位置了,至于基本的Fortran語言語法,可以參照響應的語法書。
展開
Fortran子程序開發圖1
如何在沒有fortran的機器上運行程序02(附程序與插件) ¥80
image_process=/format,webp" data-initial-src="https://img.jishulink.com/202509/attachment/741fcf85706146d8b43b750abde1d03b.png"> </figure> </figure><p><br></p><p>這里只需要提供想要預編譯的已經寫好的程序,選擇導出的位置點擊apply即可。</p><p><br></p><p>該應用無需安裝,下載雙擊即可運行。</p><p>系統要求為windows,并且abaqus已經關聯好fortran、vs,對abaqus的版本不限。</p><p><br></p><p>該編譯器可以用于子程序的加密操作,也可以通過所生成的二進制文件與共享庫在沒有關聯的機器上運行子程序。</p><p><br></p><p>2.<span style="color: rgb(25, 27, 31);">如何在未關聯Fortran的機器上運行子程序
展開
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。
展開
如何在沒有fortran的機器上運行程序
<p>(此貼只針對abaqus用戶)</p><p>對于需要使用子程序進行分析計算的用戶來說,配置子程序環境較為繁瑣,并且有時要在一臺沒有fortran運行環境的機器上運行子程序(例如云計算等等),這時要怎么做?</p><p>abaqus官方為我們提供了make的方法:</p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><pre class="ql-syntax ql-align-center" spellcheck="false">abaqus make library=usd.for/.f90/.cpp/... </pre><p>該方法將會把子程序進行預編譯并生成相應的共享庫(share library)文件。</p><p>.obj文件就是我們子程序經過預編譯得到的二進制文件。</p><p>.dll文件就是相應的共享庫文件,其中包含了我們所用子程序中所用的全部執行信息(像算法信息,+,-,*,/之類的)</p><p><em><u>2025.10.3添加:</u></em><em style="color: rgb(25, 27, 31);">.obj文件可以在已關聯的設備Job頁面子程序位置上直接提供,.dll文件中包含已經編寫過的子程序中全部內容,可以使用環境變量進行索引在沒關聯的設備上運行,不用在提供obj文件,兩個文件是獨立的。
展開
umat程序編寫常用的fortran函數分享(四)
四階張量雙點乘: subroutine aaaa_dot_dot_bbbb(n,a,b,c) include 'ABA_PARAM.INC' dimension a(n,n,n,n), b(n,n,n,n), c(n,n,n,n) do i = 1,n do j = 1,n do k = 1,n do l = 1,n c(i,j,k,l) = 0 do m1 = 1,n do m2 = 1,n c(i,j,k,l) = c(i,j,k,l) + a(i,j,m1,m2) * b(m1,m2,k,l) end do !m2 end do !m1 end do !l end do !k end do !j end do !i return end 四階張量與二階張量雙點乘:
展開
umat程序編寫常用的fortran函數分享(一)
計算2*2矩陣的跡: subroutine trace2x2(a,aii) implicit none real(8), intent(in) :: a(2,2) real(8), intent(out) :: aii aii = a(1,1)+a(2,2) return end subroutine trace2x2 計算3*3矩陣的跡: subroutine trace3x3(a,aii) implicit none real(8), intent(in) :: a(3,3) real(8), intent(out) :: aii aii = a(1,1)+a(2,2)+a(3,3) return end subroutine trace3x3 將向量(9*1:變形梯度)轉化為3*3矩陣存儲 subroutine vecmat9(dvin,dmout) implicit none real(8), intent(in) :: dvin(9) real(8), intent(out) :: dmout(3,3) integer :: i dmout(1,1) = dvin(1) dmout(1,2) = dvin(2) dmout(1,3) = dvin(3) dmout(2,1) = dvin(4) dmout(2,2) = dvin(5) dmout(2,3
展開
ABAQUS中Fortran程序問題咨詢
有沒有子程序呢?求一份子程序并且請教在模型中參數如何設置
umat程序編寫常用的fortran函數分享(三)
計算3*3矩陣的逆矩陣 subroutine inv3x3(A,invA,det) implicit none real(8), intent(in) :: A(3,3) real(8), intent(out) :: invA(3,3), det integer :: i,j call deter3x3(A,det) if (abs(det) < 1e-6) then invA=0.0d+0 else invA(1,1)=((A(2,2)*A(3,3))-(A(2,3)*A(3,2)))/det invA(2,1)=-((A(2,1)*A(3,3))-(A(2,3)*A(3,1)))/det invA(3,1)=((A(2,1)*A(3,2))-(A(2,2)*A(3,1)))/det invA(1,2)=-((A(1,2)*A(3,3))-(A(1,3)*A(3,2)))/det invA(2,2)=((A(1,1)*A(3,3))-(A(1,3)*A(3,1)))/det invA(3,2)=-((A(1,1)*A(3,2))-(A(1,2)*A(3,1)))/det invA(1,3)=((A(1,2)*A(2,3))-(A(1,3)*A(2,2)))/det invA(2,3)=-((A(1,1)*A(2,3))-(A(2,1)*A(1,3)))/det invA(3,3)=((A(1,1)*A(2,2))-(A(1,2)*A(2,1)))/det endif return end subroutine inv3x3 計算2*2矩陣的逆: subroutine inv2x2(A
展開
Fortran子程序開發圖2
避坑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,下載安裝很方便。
展開
umat程序編寫常用的fortran函數分享(二)
3*1向量叉乘: subroutine vecprod(dvin1,dvin2,dvout) implicit none real(8), intent(in) :: dvin1(3), dvin2(3) real(8), intent(out) :: dvout(3) dvout(1)=dvin1(2)*dvin2(3)-dvin1(3)*dvin2(2) dvout(2)=dvin1(3)*dvin2(1)-dvin1(1)*dvin2(3) dvout(3)=dvin1(1)*dvin2(2)-dvin1(2)*dvin2(1) return end subroutine vecprod 3*1向量點乘: subroutine dotprod(dvin1,dvin2,dvout) implicit none real(8), intent(in) :: dvin1(3), dvin2(3) real(8), intent(out) :: dvout(3) dvout = dvin1(1)*dvin2(1)+dvin1(2)*dvin2(2)+dvin1(3)*dvin2(3) dvout = abs(dvout) return end subroutine dotprod 3*3矩陣的行列式的值: subroutine deter3x3(dmin,d) implicit none real(8), intent(in) :: dmin(3,3
展開
Abaqus-UEXPAN 熱膨脹程序Fortran代碼) ¥300
關于Abaqus uexpan 熱膨脹子程序,供學習者學習。文件中有四個子程序可供學習,源代碼。 包含.for文件和INP文件 如需下載,可點如下鏈接。
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)將子程序修改為自由格式,需要修改的內容主要包括 續航符,注釋等。
展開