
發布
注冊
/
登錄abaqus腳本概述的案例
Abaqus子程序:基礎知識概述1
如果需要,可以使用 Fortran 單元 7(這里單元是文件的unit,fortran中每個文件對應一個唯一的unit號)將調試輸出寫入Abaqus/Standard 信息 (.msg) 文件,或者使用 Fortran 單元 6 將調試輸出寫入 Abaqus/Standard 數據 (.dat) 文件或 Abaqus/Explicit 日志 (.log) 文件;這些單元不應由你的子程序打開,因為它們已由 Abaqus 打開。Fortran 單元 15 到 18 或大于 100 的單元可用于讀取或寫入其他用戶指定的信息。使用其他 Fortran 單元可能會干擾 Abaqus 文件操作;你必須打開這些 Fortran 單元;由于使用了臨時目錄,因此 OPEN 語句中必須使用文件的完整路徑名。
(7)終止分析
當從用戶子程序中終止分析時,應使用實用例程 XIT (Abaqus/Standard) 或 XPLB_EXIT (Abaqus/Explicit) 而不是 stop 。這將確保與分析相關的所有文件都正確關閉(終止分析)。
文章來源: 力學混子愛AI
展開 【JY】Abaqus殼單元概述與應用(一)
Abaqus 殼單元正是基于這一理論基礎,將三維問題簡化為二維分析,從而提高計算效率。
需要注意的是,Abaqus 殼單元并不要求殼的厚度必須小于其平面尺寸的 1/10。在高度細化的網格中,殼單元的厚度可能大于其平面尺寸,但這種情況并不推薦,此時連續體單元(實體單元)可能更適合。
1.2 殼單元分類與特性
Abaqus 提供了多種殼單元類型,主要分為以下幾類:
一般殼單元:如 S4R、S3R、SAX1、SAX2、SAX2T 等,對于薄殼和厚殼問題的應用均有效,且考慮了有限薄膜應變。
薄殼單元:如 STRI3、STRI35、STRI65、S4R5、S8R5、S9R5、SAXA 等,強化了基爾霍夫條件,即垂直于殼中截面的平面保持垂直于中截面。
厚殼單元:如 S8R、S8RT 等,二階四邊形單元,在小應變和載荷使計算結果沿殼的跨度方向上平緩變化的情況下,比普通單元產生的結果更精確。
連續殼單元:如 SC6R(6 節點線性單元)和 SC8R(8 節點縮減積分單元),用于復合材料層合板建模,能夠更準確地描述復合材料厚度方向的剪切變形。
1.3 殼單元自由度與坐標系統
殼單元的自由度包括三個平動自由度(沿三個坐標軸方向的位移)和三個轉動自由度(繞三個坐標軸的旋轉)。殼單元法線方向決定了單元的正和負表面,為了正確地定義接觸和解釋輸出數據,必須清楚其對應的是哪個面。殼法線還定義了施加在單元上正壓力載荷的方向,并可以在 Abaqus/Post 中顯示。
殼單元利用材料方向局部化到每個單元。在大位移分析中,局部材料軸隨單元而轉動。ORIENTATION 被用來定義非默認的局部坐標系統。單元的變量,如應力和應變,在局部方向輸出。
展開 Abaqus線性動力學概述
Abaqus線性動力學概述
通過Abaqus python腳本批量獲取節點的應力 ¥25
背景
有限單元法計算單元積分點的應力應變值,而對于節點的應力應變值是通過外插得到的,Abaqus中云圖顯示的就是經過插值和平均后的節點的值。通過工具欄的Query-Probe values可以查看單元或節點的應力應變等結果。
對于自動化的后處理場景,通常需要自動批量地獲取單元/節點的結果,通常都需要通過python腳本來實現。通過類似odb.steps['Step-1'].frames[-1].fieldOutputs['S']的場輸出可以比較方便地直接獲得單元的積分點應力,但沒有直接的API可以獲取節點的應力應變等結果。
如果需要獲取部件表面節點應力,可以通過創建路徑+XYData的方式實現,但想要獲得最大節點應力,則該方式不便實現。
2. 通過python腳本獲取節點應力結果
本文通過fieldOutput.getSub()函數獲取所有單元的節點結果,并對每一節點關聯的多個單元的節點值進行平均后得到節點的結果。以下以某個簡單的odb結果進行驗證。
(1)批量獲得節點的mises應力值
(2)批量獲得節點的X方向正應力值
(3)批量獲得節點的最大主應力值
(4)獲取節點的最大mises應力及編號
3. 獲取節點應變等結果
只需將腳本程序中的應力場改為應變成E等即可,此處不再演示。
以下為本文的python腳本代碼(代碼中作了必要的簡單注釋)。
展開 
Abaqus -Python 腳本開發有多難?
目錄
概述:從簡單到具有挑戰性的腳本
第 1 級:完全重復之前所做的事情
級別 2:修改參數
第 3 級:循環參數
第 4 級:更改位置
第 5 級:更改(導入的)幾何圖形
第 6 級:使腳本普遍適用
總結
在 Abaqus 中編寫腳本是減少工作時間并確保使用一致方法的有效方法。之前,我們已經給出了后處理的示例和入門技巧。現在我想通過使用示例來討論哪些類型的問題對于編寫腳本來說是容易的或更具挑戰性的。希望這將使您更容易找到合適的問題并開始編寫腳本。
概述:從簡單到具有挑戰性的腳本
在詳細介紹之前,讓我們先進行概述。我們將討論的問題類型(從簡單到具有挑戰性)是:
完全重復之前所做的事情
修改參數
循環參數
修改位置
更改(導入的)幾何圖形
使腳本普遍適用
作為一個例子,我將使用彎曲梁,因為它很簡單,而且機械工程師往往喜歡它??。該模型是在 Abaqus/CAE 中創建的。梁的一側受到限制,同時壓力施加到頂部。使用鋼材的特性。
圖 1:模型設置。
第 1 級:完全重復之前所做的事情
要創建的最簡單的腳本是那些完全重復之前完成的操作的腳本。這可以創建具有特定屬性的材料(對于特定模型名稱)、創建參考模型或進行后處理(當所有名稱都相同時)。在這些情況下,我們可以簡單地錄制一個宏。這可以通過文件 --> 宏管理器來完成。
圖 2:訪問宏管理器。
單擊“創建”創建一個新宏,為其命名并選擇是將其存儲在主目錄中還是當前工作目錄中。
展開 【JY】Abaqus“殼”單元概述與應用(二)——固體殼單元
Abaqus 作為主流的有限元分析軟件,提供了多種固體殼單元類型以滿足不同工程需求。連續實體殼單元 (CSS8)、非協調元 (C3D8I) 和連續殼單元 (SC8R) 是 Abaqus 中常用于復合材料和薄壁結構分析的三種單元類型,各自具有獨特的理論基礎和適用場景。
相關閱讀:
【JY】Abaqus殼單元概述與應用(一)
除了上述采用類實體單元的“殼”單元外,還有完全的殼單元,如S4R 單元,是 Abaqus 中最常用的常規殼單元之一,為 4 節點減縮積分殼單元,基于經典殼理論,適用于各類薄壁結構的線性與非線性分析,尤其在大變形和接觸問題中表現穩定,將該單元作為對比基準,對上述實體類“殼”單元進行對比分析。
本文旨在對這三種單元類型進行深入比較研究,從理論基礎、自由度、材料本構、積分方案、閉鎖敏感性、計算成本等多個維度展開分析,為工程實踐中的單元選擇提供參考。特別是針對復合材料分析、金屬薄壁結構模擬以及混合建模等應用場景,探討這三種單元的適用性差異,并分析它們在幾何非線性情況下的計算成本和精度表現。
單元類型基本原理與特點
2.1 連續實體殼單元 (CSS8)
連續實體殼單元 (CSS8) 是一種介于 C3D8I (非協調元) 和 SC8R (連續殼單元) 之間的特殊一階單元,由 Vu-Quoc 和 Tan 于 2003 年提出,后集成于 SIMULIA 2017 及以后的版本。它是一種三維單元,具有以下基本特點:
幾何與自由度:CSS8 為 8 節點六面體單元,僅有位移自由度 (無轉動自由度,與實體單元一致),與實體單元混合建模時易于處理連接過渡。這種單元設計使其能夠在保持實體單元三維應力求解能力的同時,具有類似殼單元的高效性。
展開 一個Abaqus建模腳本
工作需要經常在三維軟件中建立葉片模型導入abaqus計算,不勝其煩,于是嘗試用Python編寫一個腳本。
#!
找人寫個abaqus的python腳本
這個腳本需要支持以下功能: 1. 用戶自定義半對稱或1/4對稱; 2. 用戶自定義模型的大小; 3. 用戶自定義模型的網格大小; 4. 用戶自定義模型的粘彈性參數; 5. 用戶自定義內含物的位置、大小及粘彈性參數; 6. 讀取外部給定的載荷數據文件在相應的節點生成載荷; 7. 用戶自定義仿真時長; 8. 用戶自定義場輸出的區域和輸出時間頻率; 9. 自動讀取obd文件提取數據。 預算1000
Abaqus復合材料建模腳本
復合材料自動建模腳本,直接上圖,需要的站內聯系
python腳本編輯Abaqus關鍵字
使用Abaqus進行仿真分析時,經常會遇到CAE界面上無法實現的功能需求,此時通常就需要通過修改關鍵字的方式實現。
方式一:通過修改inp文件。
方式二:直接通過CAE界面的“編輯關鍵字”實現(本質也是修改inp)。
對于自動化的仿真分析任務,可以使用python語言進行自動地修改關鍵字。若采用方式一實現,需要先生成inp文件,再讀取文件進行修改,再提交inp文件創建任務,提交計算。整個過程相對較繁瑣。若直接通過程序編輯關鍵字,則不需要調整整個仿真任務的邏輯。
以在“Model-1”的“Material-1”后添加非線性粘彈性材料模型為例,如下圖:
通過對程序進行簡單修改,可以實現材料、載荷、約束等關鍵字的增加和修改等。
附錄:
展開 Abaqus|基于Python腳本的參數優化 ¥50
文章來源:微信公眾號:仿真社
本文你將獲得如下干貨:
1.獲得基于Python腳本的有限元模型修正法(FEMU)進行參數優化的完整源代碼(通用代碼,可直接反演各種材料參數,尺寸參數,相應的數據接口預留好了);
2.使用Python腳本反演了懸臂梁模型的載荷位置和集中力大小;
3.快速掌握材料參數反演流程;
4.獲得社長對該反演代碼的親自答疑。
1.導讀
工程上要確定材料的參數通常是通過力學實驗獲得。然而當實驗成本較高,實驗數據稀少的時候,反演方法來確定材料參數就是一個非常不錯的選擇。有限元模型修正法是最常用的反演方法,主要包含兩部分有限元計算和優化確定參數。有限元計算一般通過有限元軟件來完成,而優化確定材料常用MATLAB或者Python程序。因此不同軟件的協同工作是必須的一個過程。本文以懸臂梁的集中力和集中力位置作為優化變量編寫了Python腳本的代碼,然后通過最小二乘法獲得了反演參數,這是一個通用程序,可直接嫁接到其他模型上。
2.研究內容
通過A點的位移數據,反演確定集中力F以及集中力的位置L。
圖1 反演模型
3.代碼詳解
反演代碼主要包含四個部分computModel、extractDisplacement、removeFile和Objective。
展開 
詳解Abaqus插件腳本中的關鍵字(AFXKeyword)(下)
Abaqus GUI二次開發三部曲:
Abaqus 主窗口GUI的二次開發
Abaqus插件程序GUI的二次開發 初、中級篇
Abaqus插件程序GUI的二次開發 高級篇
ABAQUS批量提交任務-Python腳本
不打也可以,只不過ABAQUS界面中提示信息很多,打印了之后很容易就可以看到。
第四步:創建一個裝多個jobs名的列表,并從模型的jobs倉庫中使用keys()函數獲取。
第五步:核心步驟,用for循環,遍歷之前創建的裝有jobs名的列表,一個一個提交任務。并打印當前分析所使用的時長。這個for循環中,包含了一個if的條件判斷,是用來判斷當前任務的狀態,如果是None,那么我們就提交他。如果是complete那么就不需要提交。
【效果圖展示1】 下圖為使用上面腳本后 ,ABAQUS/CAE中信息欄的信息,可以看見,Job2-4的信息都打印出來,并包含分析所使用時間。Job1由于之前已經計算過了,運行腳本前其狀態已經是Completed,所以Job1沒有被提交,當然信息也不會被打印出來。
02 不打開ABAQUS/CAE時
接下來掩飾一下,不打開ABAQUS/CAE時,如何用Python腳本批量提交ABAQUS任務。這里跟之前是有點區別的,首先我們沒有打開CAE界面,所以我們沒有辦法直接通過訪問mdb.jobs獲取任務名的列表。
原理解讀:
第一步:腳本頭(省略,同上)
第二步:導入相關庫(省略,同上),不同的是導入了os和sys庫,用于所有分析結束后60秒后自動關機。
第三步:創建Jobs列表儲存所有需要被分析的job的名稱。這個就有點類似bat的方式了,我們需要首先將所有需要提交的任務的inp文件,和腳本或bat文件放在一個文件夾下。并在腳本和bat文件中,把需要分析的job名寫下來。
第四步:同上,for循環遍歷列表,并一個一個提交任務。不同的是,上一個在你創建Job的時候已經指定了計算使用的cpu數,所以python腳本中無需對這個特殊設定。
展開 abaqus fe-safe疲勞分析CH01-疲勞理論概述
課程目錄
CH01-疲勞理論概述
CH02-fe-safe軟體介面
WORKSHOP01-帶孔洞圓管疲勞分析
CH03-損傷累積與修正因子
WORKSHOP02-轉軸多重形式荷載之疲勞分析
CH04-EN法介紹
WORKSHOP03-托架中低週期疲勞分析
視頻鏈接:https://www.yqgqt.org.cn/college/video/c15144
基于Pycharm 的Abaqus ——python腳本編寫 ¥18
注意:此py文件適合 需要經常使用python腳本進行abaqus相關操作的用戶
對于Abaqus相對熟悉一些的使用者來說,python腳本真的是個非常方便的工具,可以定義函數修改特定變量,大大簡化了某些機械重復類的工作,還能將對應的GUI操作用python代碼呈現出來,更容易從邏輯上理清整個分析流程。通常比較推薦的做法是打開工作目錄下的abaqus.rpy文件,用戶在GUI上的每一步操作都會以python代碼的形式實時添加記錄到rpy文件中。確實很方便啊,每一步操作的代碼都能對應清晰,類似于ANSYS中的log文件。但是也存在一些問題……
問題:很容易將函數名或者是形參變量名編輯錯,也不會有參數類型的提示,代碼也沒有高亮顯示,復制代碼將后綴改成py后,觀感也不太舒適,
需求:
1,語法高亮顯示,這是最基本的
2,Abaqus對象的內部的屬性方法名聯想,自動補全,(訪問多級子對象更快捷)
項目Github地址:https://github.com/liangzulin/abaqus_pycharm 本py文件在其基礎上補充的,主要是認為其類與對象的太少,使用類的嵌套也不利于重用,所以把對象的構造放在父類,作為父類的一個方法,拆開構造
注:abaqus.py代碼只有1000行多一點,但已能滿足大部分腳本編輯所需的代碼補全,本人親測《ABAQUS PYTHON二次開發攻略》此書上代碼基本可自行敲出,后續還會補全……(因py無法上傳,只需將txt后綴名改為py即可使用)
展開