
發布
注冊
/
登錄abaqus批量加載的案例
ABAQUS利用Python程序實現節點載荷的批量加載
abaqus Python批量自動識別螺栓加載螺栓預緊力
abaqus Python批量自動識別螺栓加載螺栓預緊力,代碼見下,能自動識別與默認XYZ坐標軸方向相同的螺栓,基于網格單元法向確定螺栓力加載方向,無需手動指定方向,自動建立Surface set。step1-bolt建立螺栓力,step2批量修改保持螺栓長度。
abaqus二次開發:前處理批量加載集中力和扭矩插件(源碼+注釋) ¥168
abaqus二次開發:前處理批量加載集中力和扭矩插件(源碼+注釋)
購買后,請加V:wzd_1021_
更多插件內容,請私聊
同時提供定制hypermesh/hyperview/abaqus前后處理插件開發。
abaqus Python批量自動識別螺栓加載螺栓預緊力_完整代碼!.py ¥20
abaqus Python批量自動識別螺栓加載螺栓預緊力,自動修改第二分析步為固定螺栓長度_完整代碼下載見付費內容! 因上傳不支持.py換成.txt格式上傳,下載后只需改一下后綴名為.py。按照下圖操作即可。

一種多功能往復加載小試驗臺 | 批量小實驗的生產機器
小實驗臺的試驗案例
有了這樣的科研神器,買回來第一天我們就開始試驗啦~ 比如負剛度裝置的低頻往復加載試驗(位移相關型試件),如圖5所示。裝置輸出位移達到了試驗工況的要求,滯回曲線光滑。
圖5 負剛度裝置試驗
再比如小黏滯墻試驗(速度相關型試件)高頻往復加載試驗,滯回曲線如圖6所示。試驗曲線表明,小試驗臺的加載速度也達到了試驗工況要求。
圖6 小黏滯墻試驗
總結一下,用小試驗臺做試驗有以下優勢:
1. 加載功能強大,可以做很多大型加載設備無法實現的加載工況。
2. 制作和設計小試件耗時短,如果實驗失敗可以在短時間內修改試件缺陷重新制作并得到更優的試驗結果。
3. 相比足尺試驗復雜的安裝流程,小試驗臺試件安裝方便,一個人就可以搞定。
展開 (源代碼)Hypermesh二次開發:懸置28個工況載荷批量加載插件 ¥168
Hypermesh二次開發:懸置28個工況載荷批量加載插件
Abaqus彈簧批量連接/車橋耦合扣件批量連接代碼+詳細教學視頻 ¥38.9
ABAQUS軟件批量彈簧連接代碼(可修改距離誤差)+使用視頻(10分鐘自己錄制)
贈送:
ABAQUS鄰近點匹配算法批量建立連接器單元_模擬鋼筋混凝土粘結滑移,教學視頻+代碼
其他批量連接代碼
SHPB可控多脈沖加載技術與Abaqus仿真方法 ¥15
1、問題介紹
SHPB多脈沖加載方法一般有兩種:多次反射加載法、多級撞擊桿法。多次反射加載法,利用入射桿的反射波在端面二次反射形成加載波,實際上常規的SHPB試驗都是多次反射加載,只不過在處理數據時只截取了第一次加載的數據,其特點是相鄰加載時間間隔是固定值(入射桿桿長的兩倍與桿彈性波速的比值);多級撞擊桿法,是基于撞擊桿或者加載結構設計,將撞擊桿設計成可實現多次撞擊的結構,撞擊間隔可調可控,多級撞擊桿一般有串聯結構、夾心結構等形式。
本案例主要介紹SHPB夾心結構的多級撞擊桿技術與仿真方法。
2、內容
2.1 基于夾心撞擊桿的多脈沖加載SHPB結構
夾心撞擊桿形式的多脈沖加載SHPB結構如下:
夾心形式的撞擊桿主要由外桿和內桿組成,內桿與外桿端面間隔d。實際試驗中,內桿是圓柱體,尺寸與外桿內徑相同(留有公差),內桿與外桿可以滑動,外桿自由端封閉,靠近撞擊端的端面裝配有端蓋。
進行實驗時,內桿、外桿以相同的初速度運動,由于間隔d的存在,外桿先撞擊入射桿,然后經過一定的時間間隔后內桿再撞擊入射桿,因此通過調節間隔d的大小可以控制多脈沖加載的時間間隔。
2.2 時間間隔計算
根據一維應力波理論,可知:
(1)加載脈寬:
第一次加載(加載波1):
第二次加載(加載波2):
(2)兩次沖擊時間間隔:
其中,初始撞擊速度,撞擊外桿長度,撞擊內桿長度,波速,間隔長度,為波阻抗比值。
展開 通過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批量計算工具
Abaqus批量計算.zip
Abaqus的Python批量隨機幾何建模入門
Abaqus支持使用Python語言進行二次開發建模,用戶可以利用Python代碼達成特殊的建模要求。在批量隨機幾何建模問題中,有兩個關鍵詞:一是批量、二是隨機。
1、批量建模
批量建模主要用到的技巧是循環。在此我們介紹兩種常用的Python語言循環控制代碼格式。
首先是while循環,也就是“當循環”。我們直接看一個例子:
i=1
while i < 6:
print i
i=i+1
我們觀察以上代碼,它的意思是:當i小于6的時候,執行print i的命令,直到while后面的條件不成立(即i大于等于6)為止。在循環前,我們給i幅值為1,每一次循環又讓i在原來基礎上加一,這樣就實現了循環打印五個數字的效果。這里的i一般用于循環計數,自加的操作可以讓它記錄循環次數。
注意:while下面的執行語句要空四個格!
第二種方式是for循環,也就是“歷遍循環”。還是直接看例子:
a=[1,2,3,4,5]
for i in a:
print i
這段代碼首先定義了一個列表a,它包含五個元素,分別是1、2、3、4、5這五個整型變量。for i in a:的意思是讓虛擬元素i在a中逐個變化,也就是第一次循環時,i=1,第二次循環時,i=2,依次把五個元素歷遍后循環終止。這段代碼的實現效果與第一段代碼相同。
同樣需要注意,for下面的執行語句也要空四個格!
2、隨機建模
隨機建模主要用到的技巧是產生隨機數字。這就要用到Python的隨機模塊random了。
展開 
Abaqus批量提交作業 ¥6
<pre class="ql-syntax" spellcheck="false"># -*- coding: utf-8 -*-
from abaqus import *
from abaqusConstants import *
import os
import time
def clean_residual_files(job_name):
"""清理殘留文件函數"""
residual_ext = ['.lck', '.prt', '.sim', '.sta',
'.abq', '.com', '.dat', '.msg','.odb',
'.log', '.odb', '.inp']
for ext in residual_ext:
file_path = job_name + ext
if os.path.exists(file_path):
try:
os.remove(file_path)
 
展開 ABAQUS批量提交任務
ABAQUS可以使用Python代碼進行批量提交任務
第一步:
新建文本.txt,復制Python代碼到文本,代碼如下
# -*-coding:UTF-8-*-
from abaqus import *
from abaqusConstants import *
import time
print "==================== 【開 始】 ====================="
jobs = mdb.jobs.keys() #獲得所有任務名稱
for i in jobs: #遍歷所有任務
myJob = mdb.jobs[i] #獲得任務對象
#判斷任務的狀態是否為None,避免重復提交
if myJob.status == None:
t0=time.time() #記錄提交前的時間
myJob.submit() #提交計算
myJob.waitForCompletion() #等待計算完成
print '【%s】計算完成,耗時 %f 秒'%(i,time.time()-t0)
print "==================== 【結 束】 ====================="
第二步:文本格式.txt 修改為 .py
第三步:創建好任務,且任務顯示狀態為 None,不允許有其他狀態,否則提交不成功(可修改代碼值靈活變化)
批量提交有兩種方式:
1、file>Run Script,打開前面保存的.py文件,任務會自動進行
2、直接復制代碼到Abaqus
展開 ABAQUS批量提交Job與Python讀取ODB結果應力應變數據
今天完成了一些節點性工作,下午有些時間,回答一個后臺有網友的提問:
這個問題具有一定的普遍性和通用性,普遍性是很多人都會遇到,通用性是指應用場景很廣泛,尤其是現在很多人趕時髦搞深度學習和機器學習什么的,需要進行大量計算和數據處理來構建數據集,這就不可避免的要進行批量化處理了,因此對這些問題進行基本的講解也就有了意義,我原來也寫過一些相關文章,點擊下面圖片可以跳轉。
該網友的問題,實際上是兩個問題:
問題1是如何批量提交job;
問題2是如何從ODB結果文件中讀取計算結果數據。
因此本文也從兩個方面來進行介紹。
問題1
如何批量提交job——計算任務
批量提交計算任務這個問題實際上是老生常談了,可以用兩種基本的方式實現。
方法1:
在cmd中使用命令行的方式,這種方式也可以保存為bat文件的方式運行,這個方式我并不常用,可參考幫助文檔中的如下部分,很詳細。
方法2
采用python程序進行批量提交
如果你的若干個job已經在job界面建好了,并且打算每算完一個job自動的進行后處理的話,采用python腳本會很方便。
展開 ABAQUS根據Excel/csv批量生成inp
進行Job 和 Step的名稱標準化, 使用ABAQUS名稱標準化工具, 因為無論是.xls還是.csv, 均有可能出現不符合ABAQUS命名規則的字符串出現.
03
—
補充說明
讀取Excel/csv進行批量生產inp, 最難的部分在于力的作用邏輯, 因為涉及力與扭矩的判斷, 并且有的點只受力的作用而不受扭矩的作用.
這需要進行判別(目前程序無法判別只受扭矩作用的情況, 當然這種作用方式在實際工作中也沒有遇見過), 因為只受力的作用時該點有三個方向的載荷而普通的作用點是有六個方向的載荷的.
這部分的邏輯是我剛開始接觸python的時候設計的, 屬于陳年舊貨, 現在拿來使用雖然沒有邏輯問題, 但是還是有很大的優化空間, 只不過....以后再說吧.
04
—
源代碼
關注AbaqusCoder并回復createJobFromExcel獲得源代碼.
期待更多技術干貨, 請關注AbaqusCoder!
如果本文對您有幫助, 期待您的轉發與點亮再看!
展開