
發布
注冊
/
登錄abaqus約束批量的案例
Abaqus彈簧批量連接/車橋耦合扣件批量連接代碼+詳細教學視頻 ¥38.9
ABAQUS軟件批量彈簧連接代碼(可修改距離誤差)+使用視頻(10分鐘自己錄制)
贈送:
ABAQUS鄰近點匹配算法批量建立連接器單元_模擬鋼筋混凝土粘結滑移,教學視頻+代碼
其他批量連接代碼
有限元理論基礎及Abaqus內部實現方式研究系列47:約束關系(3)-船舶規范約束導致的Max Ratio問題
有限元中的約束很多場景大家用的是邊界中的簡支、固支等約束,但從更廣泛的角度上講,只要表示一個節點的某個自由度依賴于其它的節點自由度或者取某個特定值,就可以稱為約束關系。只不過對固支、簡支等直接自由度=0,在有限元中直接減縮剛度陣就行,很容易求,但對節點自由度相互依賴的約束關系就比較復雜了。約束關系主要有兩類。
(1) 一類是MPC點之間的約束。Nastran的MPC的靈活度要遠遠超過Abaqus,Nastran的主節點可以選擇123自由度,也可以對每個從節點設置不同的自由度,還能主節點和從節點互相包含,Abaqus更多的是只負責80%的常用應用場景,復雜功能讓你編子程序,但事實上一線仿真工程師又有多少人愿意編子程序呢?這種做法導致雖然Abaqus無論從用戶體驗、非線性還是商業化都比Nastran好很多,但很多線性的工程復雜問題還是沒法替代Nastran。
(2) 另一類是Contact、Tie等的面之間的約束關系。在這方面Abaqus要明顯強于Nastran了。
我們將用統一的公式來求解這兩類關系,同時也從軟件實現層面說明一下針對這兩類情況的各自差異。分幾篇文章來介紹約束關系,本篇是約束關系(3)- 船舶規范約束導致的Max Ratio問題,這是我們碰到的1個實際的工程問題,當自主CAE軟件往外推廣時,只要用,就會有各式各樣的問題,最基本也是最重要的一條是自主CAE軟件算出來的結果只要不符合預期或者商軟的結果,就必須要你解釋why?不會有人覺得商軟或者建模等等有問題,無一例外都默認是自主軟件的錯。不過這也正常,一開始商軟推廣也是這么過來的,就是現在,如果商軟客戶提出問題,一般商軟技術支持的響應速度也是必須要在24個小時內回復。
展開 通過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中,點面耦合時在點上施加的力荷載是N的單位還是Pa的單位呢?
我當時一看到這個問題,就想到的肯定是N的單位(當然經過試驗這也確實是正確答案,如果大家只是看答案的話,那么接下來的內容也不必再看了,感謝大家),畢竟施加的荷載名稱是concentrated force,并且我們平時在給耦合點施加位移荷載時,得到的反力也是N的單位。但是該同學糾結于一句話,那就是點面耦合之后,我加到點上的荷載,就相當于加到面上,那是不是我施加到面上的每一點荷載都是N,那么分布開來應該是N/m2,或者N/mm2,即壓強單位。
想解答這個疑問其實很簡單,只需要建立三個簡單的模型(其實更簡單的方法只需要建一個表面比單位尺寸(1*1)大一定數量的塊體,而后通過對耦合點施加力荷載,看其結果分析量級即可知道答案,但是為了防止偶然性(即單位尺寸的模型),本帖借鑒”Yy“同學的做法,建立三個模型),模型如下:建立100*100*100mm的立方體,隨便給一個材料,立方體下表面完全約束,三個模型網格尺寸相同,分別施加三種上表面力荷載:
1,點面耦合的模型,在耦合點施加數值為-200的荷載,如下所示:
最終得到應力狀態如下:
此結果的點面耦合為運動分布,運動學耦合將耦合節點的運動約束為參考節點的剛體運動。該約束可以應用于耦合節點上相對于全局或局部坐標系的用戶指定的自由度。
展開 
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!
如果本文對您有幫助, 期待您的轉發與點亮再看!
展開 abaqus批量提交inp文件進行計算
此時在abaqus插入腳本即可使用了
當然還有別的方法,但這中腳本方法親測我覺得最靠譜。

ABAQUS批量提交任務的兩種方法
Python提交方法
這里主要講解ABAQUS/CAE界面下,使用Python代碼批量提交任務,代碼量很少,正文內容僅十行,可以實現:Job模塊下任務狀態為None時,順序批量的提交計算,并統計每個任務所耗費的時間。
代碼運行方式:
方式1:菜單欄File->Run Script...
方式2:在底部命令輸入窗口中粘帖上述代碼
來源:CAE愛聯盟
作者:陳佳敏cn
ABAQUS批量inp順序作業
work-more.txt
ABAQUS批量inp順序作業.docx
Abaqus批量生成連接器
Abaqus批量生成連接器
批量提取Abaqus的節點坐標(初始坐標、指定Step下的變形量、變形后節點坐標) ¥40
<h2>摘要</h2><p>本文介紹如何使用Python腳本二次開發來批量提取ABAQUS輸出數據庫(ODB)文件中指定Step下的Set節點集變形量。通過詳細的步驟說明、代碼示例和圖片展示,您將學會如何使用該腳本,自動化輸出CSV文件包含(Node Label;Step Name、Increment、Step Time,U1,U2)。</p><p>如果還需要按Increment提取每個增量下的變形后的節點坐標的話,在提取變形量的基礎上,與初始坐標進行簡單的計算就可以求得坐標。 (備注:該代碼只提取了x,y方向的變形量)</p><h2>1. 問題描述</h2><p>在工程仿真和分析領域,提取ABAQUS輸出數據庫(ODB)文件中的節點集變形量是一項常見任務。然而,手動提取這些數據是一項繁瑣且容易出錯的工作。因此,需要一種自動化的方法來批量提取指定步驟下按節點集組織的變形量數據。</p><h2>2. 實例展示</h2><p>假設我們有一個名為`example.odb`的ODB文件,其中包含名為`Step-x`的步驟和名為`Set-x`的節點集。運行以上代碼后,腳本會自動將該步驟下節點集的變形量提取出來,并保存為`NodalDisplacement.csv`文件。
展開