
發布
注冊
/
登錄用戶自定義子程序的案例
LMS Virtual.Lab Motion_視頻教程10之如何使用用戶自定義子程序
這次帶來的是自定義子程序的使用,主要通過一個例子來說明用戶自定義子程序的使用,希望對你有幫助。
LMS Virtual.Lab Motion之用戶自定義子程序教程.pdf
models.rar
finished.rar
視頻教程下載地址:http://www.kuaipan.cn/file/id_75510756333846549.htm
尋求合作(復合材料LaRC03~05)umat的用戶自定義子程序
我目前想開展,復合材料損傷準則LaRC03~05,umat的用戶自定義子程序編程工作
本人在umat和uel方面有多年的經驗,但是沒有時間去編寫,目前基本理論和文獻調研工作已經完成,尋求對此感興趣的合作者!
代碼共享,我負責解決umat的執行過程中的框架和關鍵技術問題
有意向者站內ps給我
LS-DYNA用戶子程序(UMAT)開發案例
最近在International Journal of Impact Engineering(中科院一區)上看到一篇文章,題目是”Plasticity based material model for concrete subjected to dynamic loadings(https://doi.org/10.1016/j.ijimpeng.2020.103581)“,作者開發了一個適用于描述動態荷載作用下混凝土力學響應的塑性模型,并在LS-DYNA中通過用戶自定義子程序(UMAT)二次開發的方式實現了模型。論文中展示的模擬效果圖如下:
模擬鋼筋混凝土板的爆炸響應
我和這個作者要到了他開發的UMAT源代碼,在這里給大家共享一下,對于想學習LS-DYNA子程序開發的絕對是不可多得的資料(免費共享,不負責答疑哦)
(希望大家下載了關注我一下就行,有空可以看看我發的各種教學視頻和資料貼,985高校在讀博士,長期穩定更新各種內容)
UMAT.f
展開 ABAQUS用戶自定義子程序UMESHMOTION仿真案例講解
[圖片]

Abaqus用戶自定義幅值UAMP子程序案例講解
[圖片]
平板焊接仿真分析-基于Abaqus的用戶自定義子程序(DFLUX) ¥5
Load模塊
定義體熱源和預定義溫度場
6. Mesh模塊
選擇單元類型為Coupled Temperature-Displacement(C3D8T)
7. 編輯模型屬性(Model-->Edit Attributes)
設置絕對零度(-273.15)和波爾茨曼常數(5.67E-8)。
8. Job模塊
建立Job,在General選項卡添加User subroutine file(Fortran文件),并提交。
有限元理論基礎及Abaqus內部實現方式研究系列8:UMAT用戶子程序開發步驟(原創)
(原創,轉載請注明出處)
==概述==
在CAE領域,從學校、實驗室的自研算法到實現真正的商業化軟件是一條無比漫長的道路。我們不研究有限元的新方法、新理論,只是研究商用有限元軟件的實現方式。有限元的理論發展了幾十年已經相當成熟,商用有限元軟件同樣也是采用這些成熟的有限元理論,只是在實際應用過程中,商用軟件在這些傳統的理論基礎上會做相應的修正以解決工程中遇到的不同問題,且各家軟件的修正方法都不一樣,每個主流商用軟件手冊中都會注明各個單元的理論采用了哪種理論公式,但都只是提一下用什么方法修正,很多沒有具體的實現公式。
一方面我們查閱Abaqus軟件手冊得到修正方法的說明,另一方面我們自己編程實現簡單的結構有限元求解器,通過自研求解器和Abaqus的結果比較結合理論手冊如同管中窺豹一般來研究Abaqus的修正方法,從而猜測商用有限元軟件的內部計算方法。在研究的同時,準備將自己的研究成果記錄下來寫成一個系列文章,希望對那些不僅僅滿足使用軟件,而想了解軟件內部實現方法和想要突破商軟接口限制的朋友有些幫助。由于水平有限,里面可能有許多錯誤,歡迎交流討論。
==第八篇:UMAT用戶子程序開發步驟==
用戶子程序主要是將用戶特定的材料本構模型和單元算法等公式編寫為計算機語言表示的公式,并實現和商軟求解器之間的交互迭代,UMAT用戶自定義材料是其中比較重要的一類子程序。常用的商業有限元軟件都提供了用戶自定義子程序的功能,且一般都是Fortran語言開發,Fortran是上世紀70年代的語言,相對現代化的流行語言編寫,格式要求非常嚴格,編譯調試都比較繁瑣,使得開發效率低下,而且接口限制較多,除了商軟提供的功能外用戶基本沒法改動,靈活性較差。
展開 abaqus自定義載荷子程序------Dload使用
abaqus子程序Dload的主要作用:
(1)可用于定義作為位置、時間、單元編號、被加載積分點數量等的函數分布載荷大小的變化。
(2)在應力分析期間,將在每個基于單元或基于表面的非均勻分布載荷定義的載荷積分點處調用;
(3)將在每個積分點調用,以計算承受不均勻荷載類型PENU和PINU的管道元件的有效軸向力ESF1;
(4)不能在基于模態的程序中用于描述負載的時間變化;并且忽略可能與相關聯的階躍定義或非均勻分布負載定義一起出現的任何幅度參考。
子程序接口界面
SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
1 COORDS,JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TIME(2), COORDS (3)
CHARACTER*80 SNAME
user coding to define F
RETURN
END
待定義變量
F:分布載荷的大小。表面載荷的單位為FL?2,體力的單位為FL?3。F將作為基于單元或基于表面的分布式載荷定義的一部分指定的載荷大小傳遞到例程中。如果未定義大小,F將作為零傳入。對于使用修正Riks法(靜態應力分析)的靜態分析,F必須定義為荷載比例系數λ的函數。分布式負載大小不可用于輸出目的。
用于傳遞信息的變量
KSTEP:Step 編號
KINC:增量數
TIME(1):當前分析步對應的當前時間
TIME(2):所有分析步對應的當前時間
NOEL:單元編號
NPT:根據荷載類型,構件內或構件表面上的荷載積分點編號。
展開 解鎖RecurDyn高級功能:用戶子程序USUB
USUB(User-Defined Subroutine)是RecurDyn提供的一個強大工具,允許用戶通過自定義子程序擴展仿真功能。USUB提供了在RecurDyn環境中實現復雜仿真任務的靈活性,使用戶能夠編寫自定義代碼來模擬特定的物理現象或控制策略。USUB主要采用C++語言編寫,并通過RecurDyn的API與仿真系統進行交互。
USUB的使用場景有哪些:
復雜力學模型的實現:在標準的RecurDyn庫中,有些復雜的力學現象可能無法直接模擬。通過USUB,用戶可以編寫自己的子程序,定義特殊的力學關系和行為。例如,模擬非線性彈簧阻尼系統、特定材料的應力應變關系等。
控制系統的集成:對于包含控制系統的機械系統仿真,通過USUB,用戶可以將自己的控制算法嵌入到仿真模型中。這對于研究控制策略對系統動態行為的影響非常有用。
自定義約束和力:在多體動力學仿真中,某些特定的約束條件或作用力可能無法通過標準工具實現。USUB允許用戶定義這些自定義的約束和力,使得仿真更加貼近實際情況。
USUB向導及安裝注意事項:
本文將介紹如何在Microsoft? Developer Studio中使用用戶子程序向導,輕松創建并集成RecurDyn用戶子程序,幫助用戶實現復雜的仿真任務。
用戶子程序向導可在 MicrosoftTM Developer Studio 中使用,可輕松創建用戶子程序。向導首先創建類似模板的源文件,然后創建 RecurDyn 用戶子程序的動態鏈接庫 (dll),在執行過程中與 Solver.dll 鏈接。
注:
-建議安裝Visual Studio 和RecurDyn,否則需要手動安裝向導。
展開 abaqus自定義載荷子程序------Dload使用 ¥29.9
abaqus子程序Dload的主要作用:
(1)可用于定義作為位置、時間、單元編號、被加載積分點數量等的函數分布載荷大小的變化。
(2)在應力分析期間,將在每個基于單元或基于表面的非均勻分布載荷定義的載荷積分點處調用;
(3)將在每個積分點調用,以計算承受不均勻荷載類型PENU和PINU的管道元件的有效軸向力ESF1;
(4)不能在基于模態的程序中用于描述負載的時間變化;并且忽略可能與相關聯的階躍定義或非均勻分布負載定義一起出現的任何幅度參考。
子程序接口界面
SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
1 COORDS,JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TIME(2), COORDS (3)
CHARACTER*80 SNAME
user coding to define F
RETURN
END
待定義變量
F:分布載荷的大小。表面載荷的單位為FL?2,體力的單位為FL?3。F將作為基于單元或基于表面的分布式載荷定義的一部分指定的載荷大小傳遞到例程中。如果未定義大小,F將作為零傳入。對于使用修正Riks法(靜態應力分析)的靜態分析,F必須定義為荷載比例系數λ的函數。分布式負載大小不可用于輸出目的。
用于傳遞信息的變量
KSTEP:Step 編號
KINC:增量數
TIME(1):當前分析步對應的當前時間
TIME(2):所有分析步對應的當前時間
NOEL:單元編號
NPT:根據荷載類型,構件內或構件表面上的荷載積分點編號。
展開 abaqus最簡單的uel子程序自定義單元例子 ¥3
通過abaqus的uel子程序定義了2節點單元的剛度矩陣,直接運行分析可以得到節點應力、位移等參數,可以快速了解uel的組織架構。
運行方法:abaqus創建job——來源——點擊輸入文件——加載inp文件——編輯作業——通用模塊——加載用戶子程序for文件——運行

LS-DYNA自定義本構子程序基本流程
流程以32位smp,ls971_s_R5.1.1_win32_p_lib為例;
所用的源代碼以及K文件來自趙海歐先生所編《LS-DYNA動力分析指南》一書第15章“用戶自定義材料文件”
m3rate-user-so.k
m3rate-user-so.f
幾個先決條件
1、必須擁有對應版本的ls-dyna lib文件包。需要根據不同的系統平臺(32位/64位、SMP/MPP)、版本(971r4.2/r5/r5.1.1……)下載對應的lib包。
2、裝IFC之前需要先裝MVS。
對于ls971r5.1.1,
Compiler and version
1.Intel Fortran: P:
Intel(R) Fortran Compiler for 32-bit applications, Version 10.1
2.Microsoft Visual C++:
MS Visual C++ 2008 Standard or Professional Edition
Install Microsoft Visual C++ before Intel Fortran compiler.
3、有lstc授權文件,即ls-dyna求解器可求解。
LS-DYNA自定義本構子程序基本流程(by df_af_aq).pdf
第十五章 用戶自定義材料文件.rar
展開 LS-DYNA自定義本構子程序基本流程
LS-DYNA材料的二次開發.pdf
LS-DYNA自定義本構子程序基本流程(by df_af_aq).pdf
ls-dyna材料專題.pdf
有限元理論基礎及Abaqus內部實現方式研究系列20: UEL用戶子程序開發步驟
而現在市面上還沒有采用Matlab來開發商軟子程序的案例。iSolver是市面上第一款基于Matlab來開發商軟用戶子程序的軟件工具,支持用Matlab編寫和調試用戶子程序。iSolver子程序的接口完全按照Abaqus的標準實現,而Abaqus的子程序接口在近幾年內已經基本不再變化了,同樣的,雖然iSolver在不斷發展,但iSolver子程序接口將維持不變,所有在iSolver上編寫的算法子程序都只要維護自己的算法部分就行,而不是維護整個有限元求解的整個過程。
前面第八、九篇介紹了UMAT用戶自定義材料的開發,這里將介紹UEL用戶自定義單元的開發,本文首先簡單的討論了UEL的一般含義,并詳細的介紹了基于Fortran和Matlab兩種方式的UEL的開發步驟,對比發現開發步驟基本相同,同時采用Matlab更加高效和靈活。
展開 ABAQUS DLOAD (子程序3) 自定義荷載 (附Fortran和input) ¥10
該例子可用于校核 ABAQUS關聯Visual Studio和Fortran compiler時 該關聯是否成功;通過簡單的Fortran代碼理解用Fortran自定義荷載時,Fortran代碼與ABAQUS主程序的接口問題;該例子適合新手入門,如何用Fortran自定義荷載
所編DLOAD子程序
對應用于校核該DLOAD子程序的Abaqus inp文件