微信扫码下载

编辑推荐

适读人群:可以帮助正在使用Abaqus进行仿真分析工作的工程师或者科研人员学习AbaqusPython二次开发方法
  ABAQUS原厂推荐的二次开发图书  全实例ABAQUS/Python程序的图书  面向解决工程实际问题的图书  全部案例源代码  图书+微信订阅号+QQ群+SimWe论坛=可沟通交流的生态系统教程

内容简介

  《ABAQUS Python二次开发攻略 CAE分析大系》是作者结合自己多年Abaqus使用经验,在汲取国内外大量资料的基础上编写的一本Python二次开发知识点笔记。内容涉及开发环境的搭建、Python基础语法知识、AbaqusPythonAPI讲解,并以实例展示的方式详细阐明了二次开发的流程和方法。《ABAQUS Python二次开发攻略 CAE分析大系》可以帮助正在使用Abaqus进行仿真分析工作的工程师或者科研人员学习AbaqusPython二次开发方法,同时对熟悉Abaqus二次开发流程的读者也有一定的借鉴价值。

作者简介

  苏景鹤:SimWe论坛版主,自西安交通大学力学硕士毕业后一直从事结构分析与优化相关工作,有丰富的有限元分析经验。业余爱好程序设计,兴趣主要集中在数值分析方法与CAE软件二次开发方面。  江丙云:SimWe论坛、研发埠版主,精通ABAQUS结构分析、多物理场联合分析等,超过6年世界500强电子企业有限元分析经验,专职于机电产品工程分析及其优化设计;上海交通大学博士,出版有《CAE分析大系——ABAQUS工程实例详解》。

目录

第一部分 引言

第1章 Abaqus二次开发简介 12
1.1 为什么是Python 12
1.2 Python、FORTRAN与Abaqus 13
1.3 基于Python二次开发 14

第2章 Python能力确认 17
2.1 测试程序 17
2.2 程序运行结果 22

第3章 脚本的运行与开发环境 23
3.1 Abaqus中脚本的运行 23
3.1.1 命令区KCLI(KernelCommandLineInterface) 23
3.1.2 CAE-RunScript 24
3.1.3 AbaqusCommand 24
3.1.4 AbaqusPDE 25
3.2 选择自己的Python开发环境 26
3.2.1 AbaqusPDE 26
3.2.2 IDLE 27
3.2.3 Notepad++ 28
3.2.4 EditPlus 29
3.2.5 选择合适的编程环境 32

第二部分 Python基础

第4章 Python数据类型与操作符 34
4.1 基本数据类型 34
4.2 列表、元组和字符串 36
4.2.1 列表(list) 36
4.2.2 元组(tuple) 38
4.2.3 字符串(str) 40
4.2.4 列表、元组和字符串的关系 42
4.3 字典 43
4.4 集合 45
4.5 操作符 46
4.5.1 赋值操作符 46
4.5.2 数字类型的操作符 46
4.5.3 序列类型的操作符 48
4.5.4 字典和集合的操作符 50

第5章 表达式和流程控制 51
5.1 表达式和程序执行流程 51
5.2 分支语句if-else 52
5.3 循环语句 54
5.3.1 while循环语句 54
5.3.2 for循环语句 55
5.4 中断和退出 58
5.4.1 break语句 58
5.4.2 continue语句 59
5.5 特殊语句pass 60

第6章 函数 61
6.1 定义函数 61
6.2 函数中的参数传递与调用方法 63
6.3 几个特殊的函数关键字 64
6.3.1 Lambda关键字与匿名函数 64
6.3.2 Map关键字与批量化函数操作 66
6.3.3 Reduce关键字和求和 67
6.3.4 Filter关键字和条件选择 67

第7章 对象和类 69
7.1 对象 69
7.2 类 70
7.2.1 如何定义类 70
7.2.2 如何使用类 71
7.2.3 子类、父类和继承 72
7.2.4 几个特殊的实例属性和类方法 74
7.3 模块和包 75
7.3.1 模块 75
7.3.2 模块的路径搜索 76
7.3.3 名称空间 77
7.3.4 包 78

第8章 文件和目录 79
8.1 文件读写操作 79
8.2 目录操作 82
8.3 文件的压缩和备份 85
8.4 综合实例 87

第9章 异常处理 89
9.1 Python中常见的异常 90
9.2 自定义异常 92
9.3 使用异常 93
9.4 再看异常处理的作用 95

第10章 常用Python扩展模块介绍 96
10.1 NumPy和高效数据处理 97
10.1.1 创建数组 98
10.1.2 数组操作 99
10.1.3 数组运算 100
10.1.4 线性代数 100
10.2 SciPy与数值计算 101
10.2.1 插值 101
10.2.2 拟合 101
10.2.3 极值问题 102
10.3 Matplotlib和图表绘制 103
10.3.1 二维点线数据绘制 104
10.3.2 辅助散点和线图绘制 105
10.3.3 简单三维数据可视化 107
10.4 Xlrd/xlwt与读写Excel 109
10.4.1 读取Excel文件 109
10.4.2 写入Excel数据 109
10.5 Reportlab和PDF 110
10.6 联合使用类库 111

第11章 Python编程中的效率问题 114
11.1 时间成本优化 114
11.1.1 使用内建函数(built-inFunction) 114
11.1.2 循环内部的变量创建 115
11.1.3 循环内部避免不必要的函数调用 117
11.1.4 使用列表解析 118
11.1.5 尽量减少IO读写 118
11.1.6 使用优秀的第三方库 119
11.1.7 其他 120
11.2 空间成本优化 120
11.2.1 使用xrange处理长序列 120
11.2.2 注意数据类型的使用 121
11.2.3 使用iterator 122

第三部分 Abaqus/Python基础

第12章 AbaqusScript入门 124
12.1 GUI操作Vsrpy脚本日志 124
12.2 对脚本进行简单的二次开发 133

第13章 Abaqus/Python基础 135
13.1 Abaqus/Python中的数据类型 135
13.1.1 符号常值(SymbolicConstants) 135
13.1.2 布尔值(Booleans) 135
13.1.3 特有的模型对象 136
13.1.4 序列(Sequences) 136
13.1.5 仓库(Repositories) 137
13.2 Abaqus/Python的对象的访问和创建 138
13.2.1 对象的访问 139
13.2.2 对象数据的修改 140
13.2.3 对象的创建 140
13.3 Abaqus/Python中的主要对象概况 141
13.3.1 Abaqus中的Session对象 142
13.3.2 Abaqus中的Mdb对象 143
13.3.3 Abaqus中的Odb对象 145

第14章 Session对象的使用 146
14.1 Viewport及其相关对象 147
14.2 Path对象 152
14.3 XYData对象 153
14.4 XYCurve和XYPlot对象 154
14.5 writeXYReport和writeFieldReport函数 157

第15章 Mdb对象的使用 160
15.1 Model类与有限元模型的建立 161
15.1.1 Sketch和Part对象 162
15.1.2 Material和Section对象 166
15.1.3 Assembly对象 167
15.1.4 Step对象 169
15.1.5 Region对象 170
15.1.6 Constraint和Interaction对象 171
15.1.7 Mesh函数 172
15.1.8 BoundaryCondition和Load对象 173
15.2 Job命令 176

第16章 Odb对象的使用 177
16.1 Odb对象中模型数据 178
16.1.1 Material对象 178
16.1.2 孤立网格数据信息 178
16.1.3 集合对象 182
16.2 Odb对象中结果数据的读取 184
16.2.1 场变量数据的处理 186
16.2.2 历史变量数据的处理 189
16.3 Odb数据文件的写入 190
16.3.1 已有模型添加特定数据 190
16.3.2 生成完整的Odb对象 192

第17章 几个常见问题 195
17.1 几何和网格元素的选择 195
17.1.1 内置的选择函数 195
17.1.2 基于特征的筛选方法 197
17.2 几何元素的特征操作 199
17.3 具有集合性质的对象 201
17.4 监测任务运行过程和结果 204
17.5 交互式输入与GUI插件 206
17.5.1 交互输入 207
17.5.2 GUI插件制作 208

第四部分 应用实例

第18章 悬链线问题 218
18.1 悬链线的方程 218
18.2 利用Abaqus分析悬链线曲线特征 221
18.2.1 建立分析脚本 221
18.2.2 确定合适的初始拉伸量 223
18.2.3 拉伸刚度的影响 224

第19章 扭力弹簧的刚度 227
19.1 扭力弹簧的理论分析公式 227
19.2 利用Abaqus分析扭力弹簧 229
19.2.1 梁单元模拟扭力弹簧 229
19.2.2 实体单元模拟扭力弹簧 234
19.3 结果对比 236

第20章 圆角处网格研究 238
20.1 带孔薄板 238
20.1.1 理论分析 238
20.1.2 模型计算 239
20.2 台阶板倒角处的应力 244
20.2.1 理论分析 244
20.2.2 有限元模拟 245

第21章 优化问题 249
21.1 水下圆筒的抗屈曲设计 249
21.1.1 问题的描述 249
21.1.2 参数化模型 250
21.1.3 优化策略 251
21.1.4 求解与结果 254
21.2 过盈配合设计 258
21.2.1 问题描述 258
21.2.2 参数化模型建模 258
21.2.3 优化策略与结果 263
21.3 笔盖的插入力的确定 268
21.3.1 问题描述 268
21.3.2 参数化模型建模 268
21.3.3 优化策略与结果 273

第22章 分析之间的数据传递 277
22.1 数据传递方法之InitialState 277
22.1.1 数据传递前的准备 277
22.1.2 Standard数据导入Explicit的步骤 278
22.1.3 数据导入实例:冲压成型分析 279
22.2 数据传递方法之Mapsolution 284
22.2.1 Mapsolution使用格式 284
22.2.2 数据映射实例:拉拔成型 287

第23章 Python和子程序 295
23.1 Fortran基本用法 295
23.1.1 Fortran基本语法 295
23.1.2 Fortran程序实例 296
23.2 Python处理子程序的一般方法 297
23.3 实例:Dload动态轴承载荷 299
23.3.1 滚子间力的分布 299
23.3.2 Hertz接触理论 300
23.3.3 Dload子程序模板 301
23.3.4 Python建模程序 303
23.4 实例:基于Dflux的焊接热分析 305
23.4.1 焊接分析热源类型 306
23.4.2 Dflux子程序模板 307
23.4.3 焊接自动化分析脚本 309

参考文献 316

其他推荐