
發(fā)布
注冊
/
登錄fortran77的案例
fortran77運算符
.ge. —— 英文全稱: Greater or Equal ; 意思: 大于等于
.gt. ——英文全稱: Greater Than; 意思: 大于
.le. ——英文全稱: Less or Equal; 意思: 小于等于
.lt. ——英文全稱: Less Than; 意思: 小于
.eq. ——英文全稱: Equal ; 意思: 等于
.nq. ——英文全稱:Not Equal ; 意思: 不等于
各向同性,橫觀各向同性,正交各向異性三種線彈性umat程序 ¥25
3 正交各向異性
正交各向異性線彈性材料的彈性矩陣為:
并有關(guān)系式:
因此對于正交各向異性材料,其彈性矩陣需要9個工程常數(shù)來確定:
4 程序
使用Fortran90編寫umat程序。由于Abaqus默認的umat子程序為Fortran77,因此為了使用f90程序,使用命令:
abaqus make library=xxx.f90
該命令可以生成相應(yīng)的后綴為obj的文件,之后使用該文件即可。使用上述方法可以避免使用Fortran77進行umat的編寫。
建模生成job的inp文件之后,可以使用命令行運行該job:
abaqus job=xxx user=xxx.obj
5 單元測試
對一個實體單元進行單軸拉伸測試:
5.1 各向同性
設(shè)置材料參數(shù)為:
E=210000, v=0.3
Abaqus計算的結(jié)果為:
利用子程序計算的結(jié)果為:
5.2 橫觀各向同性
設(shè)置材料參數(shù)為:
Abaqus計算的結(jié)果為:
子程序計算的結(jié)果為:
5.3 正交各向異性
設(shè)置材料參數(shù)為:
Abaqus計算的結(jié)果為:
子程序計算的結(jié)果為:
展開 初識Abaqus UMAT 二次開發(fā)
在Abaqus軟件中UMAT需要使用Fortran語言(一般都采用Fortran77語法、格式)進行編寫。在WIN10操作系統(tǒng)下需要配置好Abaqus、intel Fortran、Visual Studio的連接,在B站、技術(shù)鄰上有很多免費的教程,在此不再累述。
abaqus用fortran寫子程序的語法規(guī)則
abaqus用fortran寫子程序的語法規(guī)則
abaqus用fortran寫子程序時個人覺得語法上偏FORTRAN77,因此,收集了下的FORTRAN 77 語法概述。
以下為轉(zhuǎn)載內(nèi)容:http://blog.sina.com.cn/s/blog_6e0aa6420100pu9p.html

(完整)在Abaqus中使用.f90格式的子程序的方法
一、前言
Fortran語言發(fā)展至今已經(jīng)推出了若干版本,那么究竟采用哪個版本來編寫Abaqus子程序呢?這是困擾很多同學的問題,因為我們能買的Fortran教材基本都是講解的Fortran90/95以上的版本。但是直接采用90或者95以上的版本編寫子程序,Abaqus卻又不能識別。
這里需要說明一點,Abaqus原生支持的FORTRAN77的語法形式,因此采用77寫子程序肯定是沒有問題的,但是實際上更高級的比如90也是能夠支持的,需要對.env文件進行修改,加入支持90的語句即可。
二、方法
Abaqus默認支持的是固定(FORTRAN77)格式的Fortran子程序。編譯或者調(diào)用子程序時會自動搜索文件后綴為:*.for, *.f, *.C, *.c, *.cc, *.CPP, *.cpp, *.CXX, *.cxx 的源代碼文件。
如果想使用.f90自由格式的Fortran子程序,需要修改Abaqus的環(huán)境配置文件。
展開 ?ABAQUS日常小知識
參考別人代碼時,有時候會看見別人使用“do與continue”的組合,這是Fortran77的普遍用法,是一種老的處理方式。現(xiàn)在常用“do和end do”的組合。
各向同性硬化彈塑性umat開發(fā)
1 說明
該本構(gòu)完全從文檔《Writing User Subroutines with Abaqus》中摘抄而來,采用Fortran77格式編寫。
2 本構(gòu)理論
3 與Abaqus自帶本構(gòu)的對比
4 源代碼
iso_hardening_plasticity.f
非等溫各向同性線彈性umat開發(fā)
1 說明
該本構(gòu)完全從文檔《Writing User Subroutines with Abaqus》中摘抄而來,采用Fortran77格式編寫
2 理論文檔
需要考慮熱膨脹(熱應(yīng)變)和材料參數(shù)隨溫度變化。
3 與Abaqus自帶本構(gòu)的對比
4 源代碼
isotropic_non_isothermal_elasticity.f
本人用C++寫了一版,見https://www.yqgqt.org.cn/post/1942074
PGI Fortran 編譯器
PGI Visual Fortran包括最新版的PGI本機OpenMP,以及支持FORTRAN77和Fortran95編程語言的自動并行化編譯器,主要特性包括一整套:
由面向Fortran的文本編輯器、Fortran本征函數(shù)提示和選擇關(guān)鍵字組成的Visual Studio Fortran項目系統(tǒng); Fortran 應(yīng)用程序自定義創(chuàng)建引擎;
自定義調(diào)試引擎,提供Fortran所需的語言專用調(diào)試功能;
支持單線程、多線程及OpenMP并行應(yīng)用程序調(diào)試;
兼容Microsoft Visual C++ 2008;
支持調(diào)試PGI Fortran和Visual C++ 2005的混合應(yīng)用程序
PGI的編譯器及開發(fā)工具都具有如下特性:完全本機支持OpenMP并行編程擴展、在多核心處理器上的自動并行化、完全支持64位尋址、本機集成標量和矢量SSE/SSE2/SSE3代碼生成,以及PGI 世界領(lǐng)先的優(yōu)化基礎(chǔ)設(shè)施。
PGI Visual Fortran是為64位的AMD64和英特爾的EM64T及32位的x86處理器高度優(yōu)化的,其創(chuàng)建PGI Unified Binary?的功能是業(yè)內(nèi)獨一無二的。PGI Unified Binary?是一個能夠在兩個處理器平臺上運行的可執(zhí)行文件,內(nèi)含針對AMD64和EM64T處理器優(yōu)化的代碼序列。PGI Unified Binary使獨立軟件開發(fā)商(ISV)和自定義應(yīng)用程序開發(fā)人員認識到一個64位平臺的優(yōu)點,同時還能充分利用英特爾和AMD公司開帶來的最新創(chuàng)新技術(shù)
展開 隨動硬化彈塑性umat開發(fā)
<h2>1 說明</h2><p>該本構(gòu)完全從文檔《Writing User Subroutines with Abaqus》中摘抄而來,采用Fortran77格式編寫。
非等溫各向同性線彈性umat開發(fā) ¥20
1 說明
該本構(gòu)完全從文檔《Writing User Subroutines with Abaqus》中摘抄而來,采用Fortran77格式編寫
2 理論文檔
需要考慮熱膨脹(熱應(yīng)變)和材料參數(shù)隨溫度變化。
3 與Abaqus自帶本構(gòu)的對比
4 改進
在Abaqus中,在設(shè)置材料與溫度相關(guān)的數(shù)據(jù)時,可以設(shè)置多組,如圖所示:
該子程序只處理了兩組數(shù)據(jù)點的情況。將其擴展至多個數(shù)據(jù)點的情況(改進后的代碼采用Fortran90編寫):
! 插值函數(shù), 用于插值計算特定溫度下的材料參數(shù)值
! 文檔 "Writing User Subroutines with Abaqus" 只考慮了兩個數(shù)據(jù)點的情況
! 將其擴展至多個數(shù)據(jù)點的情況
! 輸入:
! * npt: 數(shù)據(jù)點個數(shù)
! * xp: 溫度列表
! * yp: 材料參數(shù)列表
! * x: 待求點溫度值
!
展開 
ABAQUS中的python語言入門
它與ANSYS的APDL的區(qū)別:APDL可以理解為fortran77式的舊式計算機語言,PYTHON是面向?qū)ο蟮腛OP語言。python是開放的,ABAQUS用它做了一堆類庫,你只有調(diào)入這些類庫才可以使用這些類的函數(shù)。想想C++語言吧,你要建立一個節(jié)點,你得先建立一個節(jié)點對象object,再使用此對象的method。你要對你的體作操作,你要知道你在操作哪個對象才行。
(2) .py文件的操作
在ABAQUS-CAE里的所有操作都會記錄在.RPY文件中,有了.rpy文件我們可以對其進行修改,得到需要的.py文件,我們的最終目的就是得到.py文件,附帶說一句,修改rpy文件只是其中的一種方法。
下面我們通過一個簡單例子來對.py文件進行操作。我們所要演示的是一個懸臂梁的簡單靜力分析。
下面我截取一部分rpy文件中的內(nèi)容進行說明,如下:
這兩行是導入abaqus的包,每個rpy文件都要導入類似的包。
這一塊是建立,如下圖所示的三維懸臂梁模型,其中有些語句僅僅是對當前對話框的操作,對純建立模型來說是多余的,這也是rpy文件的一個弊端,會產(chǎn)生不必要的代碼,要是認為這個繁瑣的話,后期我們可以自己寫,但是一開始還是要好好學習rpy。
.rpy文件中還有其它代碼,就不在這里一一詳述,有興趣的可以自己建立一個模型進行分析。
下面我們簡單演示用命令來打開我們剛剛建立的模型的計算ODB文件。
在命令行接口中,輸入以下命令:
關(guān)于python的命令操作,我們只是開個頭,后續(xù)會講更多python在abaqus中的使用。
展開 ANSYS APDL參數(shù)化有限元分析技術(shù) 附有限元分析ANSYS理論與應(yīng)用下載
ANSYS的APDL實質(zhì)上是由類似于FORTRAN77的程序設(shè)計語言部分和1000多條ANSYS命令組成的。
圖1 ANSYS命令使用
圖2 ANSYS命令說明
APDL允許復雜的數(shù)據(jù)輸入,使用戶對任何設(shè)計或分析屬性有控制權(quán)(例如:幾何尺寸、材料、邊界條件和網(wǎng)格密度等),擴展了傳統(tǒng)有限元分析范圍以外的能力,并擴充了更高級運算(包括零件參數(shù)化建模、設(shè)計優(yōu)化等),為用戶控制復雜計算的過程提供了極大的方便。
從ANSYS命令的功能上講,它們分別對應(yīng)ANSYS分析過程中的建立幾何模型、劃分單元網(wǎng)格、材料定義、施加載荷、定義邊界條件、分析控制、執(zhí)行求解以及后處理計算結(jié)果等指令。利用APDL的程序語言與宏技術(shù)組織管理ANSYS的有限元分析命令,就可以實現(xiàn)參數(shù)化建模、參數(shù)化的網(wǎng)格劃分與控制、參數(shù)化的材料定義、參數(shù)化載荷和邊界條件定義、參數(shù)化的分析控制和求解以及參數(shù)化后處理結(jié)果的顯示,從而實現(xiàn)參數(shù)化有限元分析的全過程。
/post1
*get,sx25,node,25,s,x
!節(jié)點25處X方向應(yīng)力
*get,uz44,node,44,u,z
!節(jié)點44處的Z方向位移
nsort,s,eqv
!通過米塞斯應(yīng)力排序節(jié)點數(shù)據(jù)
*get,smax,sort,,max
!獲取最大值
etable,vol,volu
!將單元體積存儲為vol
ssum
!
展開 ANSYS APDL參數(shù)化有限元分析技術(shù) 附Ansys APDL 命令流手冊下載
ANSYS的APDL實質(zhì)上是由類似于FORTRAN77的程序設(shè)計語言部分和1000多條ANSYS命令組成的。
圖1 ANSYS命令使用
圖2 ANSYS命令說明
APDL允許復雜的數(shù)據(jù)輸入,使用戶對任何設(shè)計或分析屬性有控制權(quán)(例如:幾何尺寸、材料、邊界條件和網(wǎng)格密度等),擴展了傳統(tǒng)有限元分析范圍以外的能力,并擴充了更高級運算(包括零件參數(shù)化建模、設(shè)計優(yōu)化等),為用戶控制復雜計算的過程提供了極大的方便。
從ANSYS命令的功能上講,它們分別對應(yīng)ANSYS分析過程中的建立幾何模型、劃分單元網(wǎng)格、材料定義、施加載荷、定義邊界條件、分析控制、執(zhí)行求解以及后處理計算結(jié)果等指令。利用APDL的程序語言與宏技術(shù)組織管理ANSYS的有限元分析命令,就可以實現(xiàn)參數(shù)化建模、參數(shù)化的網(wǎng)格劃分與控制、參數(shù)化的材料定義、參數(shù)化載荷和邊界條件定義、參數(shù)化的分析控制和求解以及參數(shù)化后處理結(jié)果的顯示,從而實現(xiàn)參數(shù)化有限元分析的全過程。
/post1
*get,sx25,node,25,s,x
!節(jié)點25處X方向應(yīng)力
*get,uz44,node,44,u,z
!節(jié)點44處的Z方向位移
nsort,s,eqv
!通過米塞斯應(yīng)力排序節(jié)點數(shù)據(jù)
*get,smax,sort,,max
!獲取最大值
etable,vol,volu
!將單元體積存儲為vol
ssum
!
展開 關(guān)于abaqus-umat的一些資料整理
關(guān)于Fortran77的一些有用的簡介
Fortran77的基本結(jié)構(gòu):
1.一個Fortran源程序由一個或者多個程序單位組成,每個獨立的程序單位以'end'語句結(jié)束
2.每個程序單位包括若干行[不能一行寫多條語句,但是可以一個語句寫成行];分為語句行[執(zhí)行語句行和非執(zhí)行語句]和非語句行[注釋行]
源程序的書寫格式:
1.不區(qū)分大小寫:每行只能80列以內(nèi),并把80列分為四個區(qū)
2.1-5列:標號區(qū)[1-5位整數(shù);第一列為'*'或者'C'時,為注釋行]
3.第6列,續(xù)行標志區(qū)[非空格或非0;最多19個續(xù)行]
4.7-72列:語句區(qū)[書寫語句:一行只能寫一個語句]
5.73-80列:語句注釋區(qū)[一般做編號注釋]
程序的編輯與運行:
1.創(chuàng)建源程序文件并編寫源程序
2.編譯并連接源文件
3.運行程序編譯生成的可執(zhí)行文件
六種常量:
1.整型常量[Integer]4位:正\負整數(shù)和0
2.實型常量[Real]4位:小數(shù)和指數(shù)形式
3.雙精度常量[Double precision]8位
4.復型常量[Complex]8位
5.邏輯性常量[Logical]4位
6.字符型常量[Character]1位
變量
·變量名
1.第一個字符是字母第一個字符后可跟1-5個字母或者數(shù)字
2.不區(qū)分大小寫
3.空格不起作用
4.允許變量名與語言中具有特定含義的字同名,但盡量不適用
5.盡量"見名知義"
·變量類型
不同的變量類型用來存放不同類型的常量數(shù)據(jù).變量相應(yīng)的也有六種;變量在使用前必須首先對其進行類型說明,三種說明方法:
按優(yōu)先級別排列
1.
展開