《Abaqus GUI程序开发指南(Python语言)》——2.2 Python与Abaqus

简介:

本节书摘来自异步社区《Abaqus GUI程序开发指南(Python语言)》一书中的第2章,第2.2节,作者: 贾利勇 , 富琛阳子 , 贺高 , 周正光 更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.2 Python与Abaqus

Abaqus作为国际公认的大型通用非线性有限元软件之一,被广泛应用于机械制造、航空航天、汽车交通、船舶、土木工程、能源矿产、医疗卫生以及日用家电等诸多领域。随着Abaqus应用领域及用户的不断拓展,软件自身提供的功能往往不能满足一些特殊的使用要求。为了进一步满足不同用户在软件使用过程中不断产生的新需求,Abaqus软件为用户提供了开放的二次开发接口,包括基于FORTRAN语言的用户子程序接口和基于Python语言的脚本接口。前者主要是方便用户开发自定义材料模型、自定义单元、自定义输出变量以及复杂载荷等,其影响的是CAE分析过程中的求解环节;后者主要是方便用户根据自身的需求开发前后处理工具(GUI程序)或者辅助用户实现参数化的建模以及数据处理等工作,其影响的是CAE分析过程的前后处理环节。

Abaqus在继承Python原有库函数的基础上,进一步扩展了Python的库函数,通过调用这些库函数,可绕过Abaqus/CAE界面,直接操纵Abaqus的内核程序,实现快速前处理建模及后处理功能。

Abaqus脚本接口可以通过以下多种方式与Abaqus/CAE内核程序进行交互(如图2.1所示)。

(1)图形用户界面(GUI):在自定义对话框中设置或选择参数,适用于复杂、系统、完整功能实现。本书第四、五、六章将详细讲述GUI 控件的使用方法以及GUI插件程序和GUI应用程序的开发。

(2)主窗口下部命令交互界面(CLI):适用于单句或者多句简单指令执行。本书第二章及第三章中的简单实例多采用这种方式。

(3)执行脚本文件(script):适用于相同指令重复执行的情况。本书第二章及第三章中的复杂实例以及GUI插件的内核执行文件均采用这种方式进行测试。


051e3c714a6f2be2c8e571fa4a4330ce3b5a7e38

本书的第二章和第三章主要是通过CLI和script两种方式与Abaqus/CAE内核程序进行交互,后续章节主要采用GUI的形式与Abaqus/CAE内核程序进行交互。GUI界面的创建基于Abaqus GUI Toolkit ,它是Abaqus专为二次开发提供的GUI工具包,提供了大量的窗体控件,并给出了各个控件的组成部分以及创建该控件的方法。同时, GUI工具包也是FOX GUI Toolkit 的扩展,它允许用户修改和扩展Abaqus/ CAE的功能,以便更有效率地运用Abaqus解决问题。Abaqus脚本接口扩展了Python自身的对象模型,丰富了其函数库,使得Abaqus的二次开发更为快捷。

简单地讲,Abaqus软件通过提供Python语言的脚本接口可以实现以下功能。

(1)参数化的建模。通过编写脚本实现模型的参数化建模,当某些参数发生变化时,只需要在脚本文件中对相应参数进行修改并重新执行脚本文件即可完成重新建模工作,可以避免因修改参数引起的大量手动重复操作。

(2)参数学习。在参数化模型的基础上,通过改变某些特征参数,并以脚本的形式反复提交计算并输出结果,可以分析目标变量随着某些参数的变化历程,当达到指定的目标值时停止计算,输出最终的优化结果。

(3)创建GUI插件程序。插件程序是Abaqus二次开发中较为简单的GUI 开发类型,用户可以借助RSG对话框构造器快速地创建GUI 图形界面。有关插件程序的开发内容详见本书第五章“插件程序开发指南”。

(4)用户自定义GUI应用程序开发。用户自定义GUI 程序开发是Abaqus二次开发中一类高级的GUI开发方式,应用程序中可以集成多功能组件、多模块、多类GUI工具包,适合用于复杂的应用平台开发。有关自定义GUI应用程序的详细内容请参照本书第六章“用户自定义GUI应用程序开发指南”。

相关文章
|
9月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
499 2
|
9月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1609 1
|
10月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1659 102
|
10月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
397 103
|
测试技术 开发者 Python
Python(GUI)之活动积分记录表
本文介绍了一套使用Python的Tkinter库构建的学生活动积分记录系统。该系统允许教师选择班级和学生,输入加分分数及原因,并将数据保存至文件,旨在简化学生积分管理流程,提升教学效率。
584 130
|
API C++ 开发者
PySide vs PyQt:Python GUI开发史诗级对决,谁才是王者?
PySide 和 PyQt 是 Python GUI 开发领域的两大利器,各有特色。PySide 采用 LGPL 协议,更灵活;PyQt 默认 GPL,商业使用需授权。两者背后团队实力雄厚,PySide 得到 Qt 官方支持,PyQt 由 Riverbank Computing 打造。API 设计上,PySide 简洁直观,贴近原生 Qt;PyQt 增加 Pythonic 接口,操作更高效。性能方面,两者表现优异,适合不同需求的项目开发。选择时可根据项目特点与开源要求决定。
1496 20
|
10月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
428 82
|
9月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
379 4
|
11月前
|
机器学习/深度学习 自然语言处理 数据可视化
Python:简洁而强大的通用语言
Python:简洁而强大的通用语言

推荐镜像

更多