Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python提取ABAQUS结果数据

Python提取ABAQUS结果数据

作者头像
联远智维
发布于 2022-01-20 05:11:56
发布于 2022-01-20 05:11:56
2K00
代码可运行
举报
文章被收录于专栏:联远智维联远智维
运行总次数:0
代码可运行

当我们需要根据现有的理论知识,采用MATLAB等软件对有限元计算结果进行处理时,可以采用Python提取ABAQUS数据。在采用Python对ABAQUS结果提取之前,首先我们要了解ABAQUS odb文件结构。

ABAQUS odb文件结构

实例:(采用ABAQUS 2017调试)

(1) 查询ABAQUS数据结构

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/user/bin/python
# -*-coding:UTF-8 -*-
#***************************************
#**         程序提取场变量输出        **
#** 主要为梁单元应力、内力和节点位移  **
#***************************************
#导入模块
fromodbAccess import*
fromabaqusConstants import*
importsys
importos
odb =openOdb(path='C:\\Temp\\shangtest.odb')
cpFile=open('artlcF1.txt','w')
#----------------------------------------------------------------------------------------
#创建变量topCenter,得到单元集CENT
topCenter=odb.rootAssembly
printtopCenter

(2)采用Python提取位移

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fromodbAccess import*
fromabaqusConstants import*
importos
myodb=openOdb(path='C:\\Temp\\jieguosuchu.odb')
RS=myodb.steps['Step-3'].frames[1].fieldOutputs['U'].values
cpFile=open('distance.txt','w')
for i inRS :
     cpFile.write('%d %7.4f %7.4f\n' % (i.nodeLabel,i.data[0],i.data[1]))
else:
cpFile.close()

(3)采用Python提取mises应力

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
importos
myodb=openOdb(path='Job-1.odb')
cpFile=open('artlcF1.txt','w')
RF=myodb.steps['Step-1'].frames[1].fieldOutputs['S'].values
for i inrange(len(RF)) :
     cpFile.write('%s\n' % (RF[i].mises))
else:
cpFile.close()

(4)提取节点集合上的位移

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fromodbAccess import*
fromabaqusConstants import*
importsys
importos
odb =openOdb(path='C:\\Temp\\shangtest.odb')
#创建变量lastFrame,得到载荷步Step-1的最后一帧
lastFrame= odb.steps['Step-3'].frames[-1]
# Createa variable that refers to the displacement 'U'
# in thelast frame of the first step.
#创建变量displacement ,得到最后一帧的位移场数据
displacement= lastFrame.fieldOutputs['U']
#创建变量center,得到节点集PUNCH
center =odb.rootAssembly.instances['SHANGBIAN-1'].\
    nodeSets['SHANGTEST']
#创建变量centerDisplacement,得到region center的位移场数据
centerDisplacement= displacement.getSubset(region=center)
#输出各种信息,该节点集只有一个节点
for v incenterDisplacement.values:
    print 'Position = ', v.position,'Type =',v.type
    print 'Node label = ', v.nodeLabel
    print 'X displacement = ', v.data[0]
    print 'Y displacement = ', v.data[1]
    print 'Displacement magnitude =',v.magnitude
odb.close()
#----------------------------------------------------------------------------------------

(5)提取节点集合上的力

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/user/bin/python
# -*-coding:UTF-8 -*-
#***************************************
#**         程序提取场变量输出        **
#** 主要为梁单元应力、内力和节点位移  **
#***************************************
#导入模块
fromodbAccess import*
fromabaqusConstants import*
importsys
importos
odb =openOdb(path='C:\\Temp\\shangtest.odb')
cpFile=open('artlcF1.txt','w')
#----------------------------------------------------------------------------------------
#创建变量topCenter,得到单元集CENT
topCenter=odb.rootAssembly.instances['DIBIAN-1'].elementSets['XIAJIECHUTEST']
#创建变量stressField,得到位移场数据
stressField= odb.steps['Step-3']
stressField= odb.steps['Step-3'].frames[3].fieldOutputs['S']
#创建变量field,得到该单元集的积分点的数据
field =stressField.getSubset(region=topCenter,
    position=INTEGRATION_POINT, elementType ='CPS4R')
#创建变量fieldValues,得到field的数值数据
fieldValues= field.values
#循环输出单元号,单元上的积分点号以及积分点的应力分量
for v infieldValues:
#    cpFile.write(v.elementLabel,)   
#    cpFile.write ('Integration Point = ',v.integrationPoint)
# Foreach tensor component.
    for component in v.data:
# Printusing a format. The comma at the end of the
# printstatement suppresses the carriage return.
        cpFile.write ('%-15.5f' % component)
# Aftereach tuple has printed, print a carriage return.
    cpFile.write('\n')
cpFile.close()

注意事项:

(1)在ABAQUS CAE中运行Python文件;

(2)A=odb.steps['Step-1'].frames和B=odb.steps['Step-1'].frames[-1]的理解

A是Python的一个列表,B是表示列表A中最后一个元素

例如:以下程序输出的结果是一个列表,元素个数(Step-1中增量步数目+1)

stressField= odb.steps['Step-1']

printstressField.frames

输出为:

(2) Python 多行注释功能

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'''
Aftereach tuple has printed, print a carriage return.
    cpFile.write('\n')
cpFile.close()
'''
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 轻量化结构分析与设计 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Abaqus-Python后处理节点场变量的提取
通常情况下,有限元计算中场变量在结果文件(Abaqus中ODB文件)中的存储主要在单元积分点和节点这两处。应力等状态变量的存储在积分点,而节点存储了节点位移,温度等场变量。
阿信老师CAE
2024/04/16
5730
Abaqus-Python后处理节点场变量的提取
ABAQUS批量提交Job与Python读取ODB结果应力应变数据
这个问题具有一定的普遍性和通用性,普遍性是很多人都会遇到,通用性是指应用场景很广泛,尤其是现在很多人赶时髦搞深度学习和机器学习什么的,需要进行大量计算和数据处理来构建数据集,这就不可避免的要进行批量化处理了,因此对这些问题进行基本的讲解也就有了意义,我原来也写过一些相关文章,点击下面图片可以跳转。
阿信老师CAE
2022/05/17
4.2K0
ABAQUS批量提交Job与Python读取ODB结果应力应变数据
Abaqus-Python后处理Mises应力与应力提取
Abaqus计算结果除了炫目的云图之外,结果文件中的场变量往往也需要我们进行一定的读取和处理,通常情况下可以通过界面选取的方式读取,方式如下
阿信老师CAE
2024/04/03
1.1K0
Abaqus-Python后处理Mises应力与应力提取
基于PYTHON的ABAQUS后处理开发
ABAQUS 的后处理功能不能完全提供我们在分析过程中所需的数据,为更好的扩展后处理功能,查看和分析结果数据,本文提出了使用Python 语言对ABAQUS 进行二次开发来达到这一目的的方法。文中讨论了ABAQUS 的脚本接口和对象模型在二次开发中的作用和调用流程,以及文件的读写与复制、数据读取与处理、结果输出与查看等关键技术。以共轨管锥面密封性的分析为例,使用Python 语言提取了分析结果数据并将结果作为初始条件加载于新的分析中,最终得到所需的分析数据。
用户学习笔记
2022/06/07
1.3K0
如何为ABAQUS结果文件加入新的场变量
ABAQUS软件提供了大量可输出的场变量类型,用来进行结果分析,但仍然有一些场变量ABAQUS软件并不支持,对于这种情形我们可以通过以下两种方式向ABAQUS结果文件中加入:
阿信老师CAE
2024/04/28
8941
如何为ABAQUS结果文件加入新的场变量
ABAQUS免费培训 Abaqus成型 焊接 疲劳多工况课程
在工程中,多工况的情况是普遍存在的情况,而单工况孤立存在是十分理想状态下的假设。例如我们在进行强度分析时,都是假设其本身是不存在应力的,然后基于这种无初始应力下的计算,使得我们不得不放大安全系数来排除初始应力的干扰。
达索SOLIDWORKS科研教育服务
2023/03/10
5820
ABAQUS免费培训 Abaqus成型 焊接 疲劳多工况课程
Python处理Abaqus inp文件
在做科研过程中,有没有遇到过需要批量计算的情况,每次计算的模型都相差不大,只对特定的参数进行更改。在批量计算时,很多时候做的是重复的操作,是否可以采用程序批量化进行建模、分析以及计算?
联远智维
2022/01/20
1.9K0
ABAQUS UEL初步(二)
必须要定义的部分:1、Right-hand-vector:计算单元不平衡力矩阵,外力与内力的差值;2、Jacobian(stiffness) matrix:单元刚度矩阵;3、Solution-dependent state variable。
联远智维
2022/01/20
1K0
ABAQUS UEL初步(二)
Abaqus 文件后缀含义详析及技术支持服务介绍
在使用Abaqus进行有限元分析时,软件会生成多种文件,每种文件通过特定的后缀名标识其功能和内容。这些文件共同支撑建模、求解、后处理及调试的完整流程。理解这些文件的含义和管理方法,能帮助用户高效处理复杂项目、排查错误并优化存储空间。以下分类详解常见文件后缀及其作用。
思茂信息
2025/04/02
1350
Abaqus 文件后缀含义详析及技术支持服务介绍
Abaqus里应用Python的一些技巧
例如:cell4 = mdb.models['block'].parts['crankcase'].cells[4],要把part模块中编号为4的体赋值给cell4,就需通过路径mdb→models→part→cells(4号体属性),其中'block'、'crankcase'、分别是model和part的名字。
分享菌
2022/05/06
9400
Python脚本将ABAQUS结果导出到excel的方法(附代码)
在使用abaqus后处理的过程中,我们常常需要将结果中的某些场变量值导出,如果能将需要的结果直接导出到excel中,甚至在写入表格之前进行一定的计算处理,就能在很大程度节省时间提高效率,降低劳动强度。
阿信老师CAE
2022/05/17
4.7K0
Python脚本将ABAQUS结果导出到excel的方法(附代码)
Abaqus&CST仿真软件功能对比简介
ABAQUS/CAE采用了参数化建模方法,为实际工程结构的参数设计与优化,结构修改提供了有力工具。具有很强的开放性,可以结合 Python 语言方便的定制用户化界面,方便用户操作。
达索SOLIDWORKS科研教育服务
2024/03/06
2331
Abaqus&CST仿真软件功能对比简介
Python数据分析(中英对照)·Random Walks 随机游走
This is a good point to introduce random walks. 这是引入随机游动的一个很好的观点。 Random walks have many uses. 随机游动有许多用途。 They can be used to model random movements of molecules, 它们可以用来模拟分子的随机运动, but they can also be used to model spatial trajectories of people, 但它们也可以用来模拟人的空间轨迹, the kind we might be able to measure using GPS or similar technologies. 我们可以用GPS或类似的技术来测量。 There are many different kinds of random walks, and properties of random walks 有许多不同种类的随机游动,以及随机游动的性质 are central to many areas in physics and mathematics. 是物理学和数学许多领域的核心。 Let’s look at a very basic type of random walk on the white board. 让我们看看白板上一种非常基本的随机行走。 We’re first going to set up a coordinate system. 我们首先要建立一个坐标系。 Let’s call this axis "y" and this "x". 我们把这个轴叫做“y”,这个叫做“x”。 We’d like to have the random walk start from the origin. 我们想让随机游动从原点开始。 So this is position 1 for the random walk. 这是随机游动的位置1。 To get the position of the random walker at time 1, we can pick a step size. 为了得到时间1时随机行走者的位置,我们可以选择一个步长。 In this case, I’m just going to randomly draw an arrow. 在这种情况下,我将随机画一个箭头。 And this gives us the location of the random walker at time 1. 这给了我们时间1的随机游走者的位置。 So this point here is time is equal to 0. 这里的时间等于0。 And this point here corresponds to time equal to 1. 这一点对应于等于1的时间。 We can take another step. 我们可以再走一步。 Perhaps in this case, we go down, say over here. 也许在这种情况下,我们下去,比如说在这里。 And this is our location for the random walker at time t is equal to 2. 这是时间t等于2时,随机游走者的位置。 This is the basic idea behind all random walks. 这是所有随机游动背后的基本思想。 You have some location at time t, and from that location 你在时间t有一个位置,从这个位置开始 you take a step in a random direction and that generates your location 你在一个随机的方向上迈出一步,这就产生了你的位置 at time t plus 1. 在时间t加1时。 Let’s look at these a little bit more mathematically. 让我们从数学的角度来看这些。 First, we’re going to start with the location of the random walk at time t 首先,我们从时间t的随机游动的位置开始 is equal to 0. 等于0。 So position x at time t is equal to 0 is whatever 所以时间t处的位置x等于0是什么 the location of the random walke
数媒派
2022/12/01
5010
Python模块知识6:OS、SYS模块
1、os模块,和系统相关的,比如获取路径、目录、文件夹之类 常用方法: os.getcwd() #获取当前工作目录,即当前Python脚本工作的目录路径 os.rename('oldname','new')#重命名文件/目录 os.path.abspath(path) #返回path规范化的绝对路径,含文件名的 os.path.dirname(path) #获取文件所在的文件夹名称 os.chdir("dirname") #改变当前脚本的工作目录,相当于shell下的cd os.path.join(path
企鹅号小编
2018/01/11
9210
Python模块知识6:OS、SYS模块
有限元平面四边形等差单元python编程
四边形等参单元的刚度矩阵是二重积分式,我想用Maple求解析解,算了很久也没有算出结果。所有我的编程思路是先用 sympy 求出 单元刚度矩阵的符号解,再用lambdify函数将符号解的单元刚度矩阵的各元素转为普通的python函数,最后用scipy进行二重数值积分。
用户6021899
2020/09/24
2.3K1
有限元平面四边形等差单元python编程
为爬虫获取登录cookies: 使用Charles和requests模拟微博登录
我们讲了如何配置Charles代理,这一节我们通过模拟微博登录这个例子来看看如何使用Charles分析网站加载流程,顺便把微博模拟登录的Python代码也给实现了。
一墨编程学习
2019/05/15
2.7K0
为爬虫获取登录cookies: 使用Charles和requests模拟微博登录
Abaqus网格划分的python二次开发问题
我目前是一名硕士一年级的学生,平时也在自己学习ABAQUS简单插件的制作。由于没有查找到资料,所以想请教您一些问题。
阿信老师CAE
2023/03/01
1.1K0
Abaqus网格划分的python二次开发问题
ADINA常见问题解答
Q:怎样改进ADINA-AUI 中实体的显示效果?  A:在某些情况下,ADINA-AUI 显示的实体在边界上不光滑,这仅仅是显示的问题,并不影响几何尺寸的精确度。为了改进显示的效果, 1 点击Modify Mesh Plot 。 2 点击Line Depiction 。 3 将ADINA-M Chord Angle 由默认的0.4改为0.1 并且点击OK。 4 点击Surface Depiction 。 5将ADINA-M Chord Angle 由默认的0.4改为0.1 并且点击OK。 6 点击OK,关闭Modify Mesh Plot 对话框。 Q:为什么AUI 的图形功能在我的计算机上不能正常的工作?  A:有些计算机的显卡在Open GL 图形系统中不能正常的工作。请切换到Windows GDI 图形系统,在Edit 菜单中,点击Graphics System ,然后选择Windows GDI 图形系统。 Q:当我从ADINA-AUI 打印文件时,为什么打印不出来任何结果?  A:注意只有Windows 版本才会发生这样的问题。 当使用Open GL 图形方式时,有的打印机会出现上述问题。为解决该问题,当打印的时候,选择Windows GDI 图形方式。从菜单Edit > Graphics System… 中选择Windows GDI 作为图形系统,然后开始打印。 注意打印结束后,可以将图形系统切换回Open GL 以便获得更快的图形效果。 Q:为什么安装了浮动License(Floating Industry或者Floating Educational)后,Adina无法启动? A:如果安装过程正确,而且电脑上的防火墙不阻止Adina读取服务器上的License,那么这样的问题一般是由于计算机使用了中文名。不论是Adina的服务器还是Adina客户端,都不允许使用中文计算机名。 Q:如何将壳单元厚度显示出来? A:在Display-->Geometry/Mesh Plot-->Modify打开的窗口中点击Element Depiction,在新打开的窗口中的Shell Element Attributes域中选择Top/Bottom(默认是Mid-Surface)。
CAE之家
2022/06/30
1.6K0
ansys随机振动分析_workbench扫频振动仿真
以上六步中,前两步跟单点响应谱分析一样,后四步将在下面作详细讲解。Ansys/Professional产品中不能进展随机振动分析。
全栈程序员站长
2022/11/07
2.7K0
有限元一阶四面体单元python编程(一)
一阶四面体单元,共有4个节点,每个节点有ux, uy, uz 3个自由度,共有12个自由度。一阶四面体单元的位移函数u(x,y,z), v(x,y,z) 和w(x,y,z)均为线性函数,故其单元应变场和单元应力场皆为常量。一阶四面体单元的单元刚度矩阵Ke的公式推导可参考《有限元方法基础教程(第5版)》相关的章节。
用户6021899
2020/11/03
1.7K0
相关推荐
Abaqus-Python后处理节点场变量的提取
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验