
發布
注冊
/
登錄場變量輸出的案例
Abaqus_Python 后處理結點數據提取、場變量云圖輸出 ¥1.99
今天體會了Python腳本操作ODB文件進行數據的輸出、處理等方面的快速高效。
首先介紹一下背景,同事的項目,計算case較多。每個case需要輸出幾個路徑上的部分節點值,而且需要針對不同的case、不同的幀、不同的視角截圖、保存云圖,如果人工出圖和提取節點數據,工作量會非常大,費時會遠遠超出計算所用時間;并且,同事還要求我根據case名稱、組件名稱(模型有多個組件組成,且網格是在part上畫的,所以同一個節點編號可能對應多個節點)等保存成不同的文件。
結點溫度數據沒有保存,因此沒有輸出。下圖是自動輸出的png格式云圖。
比較倉促,代碼也比價粗糙?;仡^做一個詳細的介紹。
主要代碼見下。
展開 Abaqus&Paraview夢幻聯動!(Python二次開發篇)
該函數默認輸出的場變量為:U,A,V,RF,S,LE,PE,PEEQ,如果你輸出的場變量正好是這幾個,那么恭喜你,你可以隨意的使用該文件,如果,你的場變量輸出缺少其中幾個,就需要將缺少的場變量輸出的源代碼進行注釋;如果你的場變量輸出不在這幾個里面,你就需要按照vtu的輸出格式和該函數的風格進行自己編咯,這也就是我想自己編寫odb2vtk函數的初衷。
自編odb2vtk函數
使用方法
函數名字為convert_abaqus_to_vtk,形參依次寫入odb文件、輸出的vtk名稱、單元類型(C3D4/C3D8),想要輸出的step name,frame幀數(第幾幀),運行即可。
#!/user/bin/python
# -* - coding:UTF-8 -*-
from odbAccess import *
def convert_abaqus_to_vtk(odb_path, output_vtk_path, element_type,step_name,frame):
...
convert_abaqus_to_vtk('test_C3D8.odb', 'output_C3D8.vtk', 'C3D8','Step-1',1)
應用C3D8 和C3D4兩種單元類型,展示程序的適用性,做了一個簡單案例,邊界條件如下設置:
輸出的output_C3D8.vtk顯示如下(位移結果),
當改變單元類型時,更改形參即可:convert_abaqus_to_vtk('test_C3D4.odb', 'output_C3D4.vtk', 'C3D4','Step-1',1)
輸出的output_C3D8.vtk顯示如下(位移結果),
編制過程
以下部分對代碼關鍵地方進行詳解。
展開 ABAQUS案例-場變量的應用及材料彈性模量隨場變量而變化 ¥3
ABAQUS中的場變量具有較高的應用價值,可以在一些復雜的工程應用中極大的減輕工作量。本實例即是展示一個場變量應用——材料彈性模量隨場變量而變化,其中它涉及到關鍵字的編輯(關鍵字的具體編輯也在附件中)。本實例在附件的inp文件中。
切削仿真(abaqus軟件)中的典型報錯信息及對應解決方案(一)
解決方案:刀具單有選擇熱位移耦合單元即可,如下圖所示:
四、場變量問題
結果提示6:
產生原因:沒有勾選狀態變量
解決方案:在step的場變量中中勾選狀態變量即可,如下圖所示:
結果提示7:ODB文件過大
產生原因:場變量輸出幀數過多,如下圖所示:
解決方案:在step的場變量中,將輸出幀數適當減少即可,默認為20,推薦值200。
結果提示8:提交計算后,很長時間看不到輸出幀(一直running中),如下圖所示:
產生原因:場變量輸出幀數過少,如下圖所示
解決方案:在step的場變量中,將輸出幀數適當增加即可,默認為20,推薦值200。
展開 
Abaqus的歷史數據輸出的問題
Abaqus的歷史數據輸出的問題
Abaqus結果輸出時有場輸出(Field Output)和歷史輸出(History Output),場變量輸出用于描述某個量隨空間位置的變化,歷史變量用于描述某個量隨時間的變化,區別是場變量輸出大量的單元或節點上的計算結果,寫入odb文件的頻率低,用與生成后出的各個圖。歷史變量輸出少量單元或節點上的計算結果,寫入Odb的頻率高,用于生成X-Y圖。歷史變量允許單獨輸出某個獨立分量,經常用到的就是這個獨立分量的輸出,比如輸出結構最大點的位移變化曲線,或者盈利最大點的應力變化過程等。
在輸出歷史數據時,大多數的輸出結果比如位移和應力等,不能實現整個模型全部輸出,也就是需要指定set(參考集),需要設置相關的set后,結果輸出才會有這些數據。
定義Set的對話框如圖1所示,定義Set的類型時有三個,按照以往的理解,一般經常用到的應該是Node,也即節點集,想要輸出這個節點在求解過程中的Mises應力變化過程,選擇某個節點,通過Step模塊的History Output Requests,如圖2所示。
圖1
圖2
選擇剛才設置的Set,選擇需要輸出的結果項,此處為Mises。之后計算,計算后提取結果時,發現并沒有輸出該節點的Mises歷史數據。
筆者很快想到了,有可能是不能輸出節點的應力,因為涉及到節點解和單元積分點解的問題,這個之前已經討論過。基于此考慮,那么輸出該節點的位移場肯定沒問題,因為節點位移解是最先得到的節點解。
將Mises換成UT,如圖3所示。
同時,新建一個Element Set,因為Node Set無法輸出歷史數據,那么采用Element Set也肯定能夠輸出單元積分點的數據,如圖4所示。
展開 ABAQUS導入初始場變量(預定義場)多次低速沖擊以及沖擊后壓縮 ¥38
ABAQUS導入初始場變量(預定義場)
通常利用ABAQUS計算時,需要多步驟分析,例如計算多次低速沖擊以及沖擊后壓縮等,下面詳細描述利用數據傳遞方法進行多步驟分析。(建議購買視頻,視頻內包含此帖子)
導入效果圖如下:
導入的損傷云圖
導入的應力場
導入的位移場
分層損傷的導入
1. 計算完成后,新建一個ABAQUS 窗口,切記與上一步計算的ODB文件在同一個文件夾下,導入Part部件
ABAQUS能量平衡輸出變量
Total energy output quantities
ALLAE
“Artificial” strain energy associated with constraints used to remove singular modes (such as hourglass control), and with constraints used to make the drill rotation follow the in-plane rotation of the shell elements.
ALLCD
Energy dissipated by creep, swelling, and viscoelasticity.
ALLEE
Electrostatic energy.
ALLFD
Total energy dissipated through frictional effects. (Available only for the whole model.)
ALLIE
Total strain energy. (ALLIE = ALLSE + ALLPD + ALLCD + ALLAE + ALLQB + ALLEE + ALLDMD.)
ALLJD
Electrical energy dissipated due to flow of electrical current.
ALLKE
Kinetic energy.
ALLKL
Loss of kinetic energy at impact. (Available only for the whole model.)
ALLPD
Energy dissipated by rate-independent and rate-dependent
展開 ABAQUS中隱式和顯式的節點和單元的輸出變量解析
The output variables listed below are available in Abaqus/Explicit.
Mechanical analysis–nodal quantities
CFORCE
Field: yes History: no .fil: no
Contact normal force (CNORMF) and frictional shear force (CSHEARF).
CDISP
Field: yes History: no .fil: no
Contact opening (COPEN) and accumulated tangential motions (CSLIP1, CSLIP2, and
CSLIPEQ) for general contact analyses.
CEDGEACTIVE
Field: yes History: no .fil: no
Status of contact edges for general contact analyses (active as primary, active as
secondary and deactive).
CFRICWORK
Field: yes History: no .fil: no
Contact frictional work for general contact analyses.
CNAREA
Field: yes History: no .fil: no
Contact nodal area for each node with active contact forces in general
展開 abaqus后處理插件—場變量結果標注 ¥45
abaqus后處理界面中探針功能附帶的標記樣式非常丑陋,基于abaqus的試圖注釋功能進行二次開發,形成了場變量標注插件,方便快速的標注關心區域的應力應變等結果。
插件介紹:
按鈕介紹
從左至右依次是:標記按鈕、隱藏標記按鈕、恢復顯示按鈕、刪除按鈕
示意動畫
使用方法:
1) Probe查看節點結果,并勾選需要標記的節點項;
2)點擊工具欄中的標記按鈕,進行標記。
特點
1) 標記速度快,即使在單元數目達到百萬級及以上的模型中,標記速度仍無明顯延遲;
2)所有標記注釋均在試圖注釋功能界面里,有利于對美觀度有更高要求者進一步修改美化。
展開 【公益帖】VUMAT 中間變量輸出到指定文件中的方法
背景: 在進行用戶材料本構用戶子程序調試過程中,我們需要輸出一些中間變量,跟蹤其演化規律,用于debug, 在umat中我們往往用 write(6,*) write(7,*)寫入到相應的msg或者dat文件中,但是在VUMAT中這種方法卻不可以,下面提供一種VUMAT輸出變量的方法
需要在vumat子程序中添加如下語句
open(1,file='絕對路徑\output.txt')
write(1,*) 變量
這樣會在指定路徑下生成一個名為output.txt,希望對大家有用
ABAQUS歷史輸出中,各能量變量(ALLAE、ALLIE、ETOTAL等)意義
ABAQUS中,對于很多動態問題,尤其像高速沖擊模擬中,對結果評價很重要的一點就是要保證模型能量守恒,這就涉及到ABAQUS歷史輸出中各能量變量的意義,下面最各簡單整理:
ALLAE:人工偽應變能,六面體、殼網格中沙漏發生情況指標
ALLCD:蠕變、膨脹以及粘彈性消耗的能量
ALLFD:摩擦消耗的能量
ALLIE:總的內能,ALLIE=ALLSE+ALLPD+ALLCD+ALLAE+ALLQB+ALLEE+ALLDMD
ALLKE:動能
ALLKL:碰撞消耗的能量
ALLVD:粘性消耗的能量
ALLDMD:破壞消耗的能量
ETOTAL:所有能量的總和
NOTE:ALLAE(偽應變能)的理解:偽應變能就是控制沙漏變形所消耗的主要能量。如果偽應變能過高,說明過多的應變能被用來控制沙漏變形了。一般通過比較偽應變能和其他內部能量的值來判斷偽應變能是否過高,以及判斷過高的偽應變能的來源。
展開 
Python提取場變量-干貨 ¥1.9
提取各節點和單元的場變量,利用函數查看可提取的場變量有哪些。
在Abaqus的二次開發過程中,通常需要采用Python腳本語言將Abaqus的計算結果進行輸出,然后再進行處理。Python使Abaqus的內核語言,使用較為方便,Abaqus運行Python語言的方式有多種,可以直接命令窗口,也可以讀入腳本,還可以采用類似批處理的方式。
本次以一個例子細說Python語言在Abaqus后處理中的應用,模型的計算結果云圖如圖1所示。
2 輸出所有節點的Mises應力
直接上Python代碼:
import os
myodb=openOdb(path='Job-1.odb')
cpFile=open('artlcF1.txt','w')
RF=myodb.steps['Step-1'].frames[1].fieldOutputs['S'].values
for i in range(len(RF)) :
cpFile.write('%10.3Fn' % (RF[i].mises))
展開 ParaView---FLAC3D和3DEC輸出變量到VTK文件
1 引言
在《免費二維有限元分析軟件ADONIS計算步驟》中曾經提及ADONIS的計算結果可以輸出為VTK文件,事實上3DEC和FLAC3D的計算結果也可以輸出為VTK文件。這個筆記簡要討論了輸出步驟。
2 VTK命令
3DEC和FLAC3D使用block vtk和zone vtk命令輸出vtk文件,可以輸出的變量有:
(1) displacements: 網格點的位移矢量
(2) zone-extra: 單元索引i的額外變量
(3) gridpoint-extra: 網格點索引i的額外變量
(4) forces: 網格點不平衡力的信息,包括最后的局部應力比【FLAC/Slope的強度降低過程(Strength Reduction Procedure in FLAC/Slope)】
(5) groups: slot中單元設置的組
(6) model-fluid: 流體屬性
(7) model-mechanical: 力學屬性
(8) model-thermal: 熱屬性
(9) pore-pressure: 網格點的孔隙壓力值
(10) range: 設置range, 用來控制哪些單元包括在vtk文件中
(11) saturation: 網格點飽和度的值
(11) stresses: 每個單元的平均應力。不輸出內部四面體的應力。
(12) temperatures: 網格點的溫度值
(13) velocities: 網格點的速度矢量
(14) filename: 設置vtk的文件名
默認情況下,只輸出應力(stresses),組(groups)和位移(displacements). vtk的文件格式是XML語言。
展開 【LSDYNA操作小技巧七】LSDYNA中具體材料歷史變量的定義與輸出問題 ¥1.99
LSDYNA作為專門針對材料非線性、大變形問題而開發的大型顯示動力學仿真軟件,其擁有相當齊全的材料庫,針對其中材料的本構關系都有非常明確的軟件設置與輸出步驟,方便用戶對本構的快速設置甚至二次開發。本帖以典型的材料大變形問題磨粒切削加工引起的加工損傷為案例講解損傷歷史變量的定義與輸出步驟。
在我們沒有更好的文獻參考時,官方仿真軟件的幫助文檔是一個最佳的選擇。以下提供在LSDYNA中具體查閱歷史變量定義的鏈接如下,
History Variables for Certain Material Models — Welcome to the LS-DYNA support site.
基于此,必須首先定義目標歷史變量如圖1所示。具體通過,在關鍵字 *DATABASE_EXTENT_BINARY中定義NEIPH 或 NEIPS 實現。這里NEIPH 或 NEIPS 只能填入具體的數字加以定義材料具體哪些的歷史變量。
圖1
具體以此為例:為輸出磨粒切削加工引起的工件損傷,首先找到對應的工件材料編號110(工件為K9玻璃,采用JH-2本構),可知損傷因定義為2如圖1所示,故在NEIPH輸入數字2即可,若為了查看其他材料歷史變量,對應輸出1-4即可實現。
圖2
完成定義后,完成模型建模輸出為k文件,在LSPP中進行損傷云圖的輸出。圖3為定義的損傷在后處理中的查看方式,圖4為輸出的損傷云圖,紅色粒子表示損傷。
圖3
圖4
以上,基于此案例,可在LSDYNA軟件中定義并輸出所給材料的歷史變量。
展開 Abaqus后處理常見問題
在Step模塊中設置場變量輸出時沒有選擇位移U,以致于ODB文件中沒有保存位移數據;
在Step模塊中設置場變量輸出時,沒有將位移U的輸出區域設為默認的Whole model.
如何將未變形圖與已變形圖疊加顯示?
圖是重點?。。?如何同時顯示多個視圖?
Viewport——Create創建新的視窗,多嘗試,要達到如下效果:
如何在Abaqus中操作輸出曲線
Operate on XY Data —— combine(x,x)在combine函數中操作,例如combine(-x,y-z)。
木木在剛開始玩Abaqus的時候,常常文件分析完了之后,就把數據Copy到Excel,然后再進行處理,上面的操作會省去很多不必要的步驟,大大提高數據處理效率。
如何將分析結保存為文本文件(.rpt)?
創建XY數據后,Report——XY,選擇輸出的數據即可,輸出到工作路徑下的abaqus.rpt文件中。
參考文獻:[1]曹金鳳, 石亦平. ABAQUS有限元分析常見問題解答[M]. 機械工業出版社, 2009.
展開