目录 1
第1章 MSC.Marc二次开发基础 1
1.1 概述 1
1.2 用户子程序分类及常用用户子程序 2
1.3 利用公共块进行数据传递 3
1.4 利用ELMVAR和NODVAR提取单元和节点变量 6
1.4.1 利用ELMVAR提取单元求解结果 6
1.4.2 利用NODVAR提取节点结果 7
1.5 利用内部子程序进行矩阵运算 8
1.6 用户子程序调用原理 9
1.7 应用举例——移动载荷 10
1.7.1 分析模型描述 10
1.7.2 用户子程序的选择及其格式 11
1.7.3 用户子程序代码 12
1.7.4 采用Mentat做前后处理 13
1.7.5 采用Patran做前后处理 19
第2章 Fortran语言基础 31
2.1 Fortran简介 31
2.1.2 程序实例 32
2.1.1 Fortran 77格式 32
2.2.1 常量 34
2.2 常用概念 34
2.2.2 变量 35
2.2.3 常用Fortran函数 36
2.2 4 算术运算符 36
2.2.5 赋值语句 36
2.2.7 DATA表达式定义变量初值 37
2.2.8 END语句、STOP语句和PAUSE语句 37
2.2.6 参数语句PARAMETER 37
2.3 逻辑运算和选择结构 38
2.3.1 关系运算符 38
2.3.2 逻辑运算符 39
2.3.3 用If-then-else实现选择结构 39
2.4 循环结构的实现 40
2.4.1 用Go to语句实现循环 40
2.4.2 用Do语句实现循环 40
2.5.1 双精度类型数据 41
2.5 Fortran的数据结构 41
2.4.3 用While语句实现循环 41
2.4.4 Continue语句 41
2.5.2 复型数据 42
2.5.3 字符型数据 42
2.6 数据的输入/输出 43
2.6.1 格式化输入/输出 43
2.6.2 自由格式输出语句 44
2.7 数组 44
2.7.1 定义数组 44
2.8.1 函数子程序的定义和调用 45
2.7.2 在子程序中可变数组的定义 45
2.8 子程序 45
2.8.2 子例子程序的定义和调用 46
2.8.3 数据块子程序 46
2.9 数据存储方式 47
2.10 文件操作语句 48
2.11 用户子程序中的文件操作 48
2.11.1 将结果写入文件 48
2.11.2 从数据文件中读入数据 49
2.11.3 定义输入数据 50
2.11.4 重新定义重启动文件输出 51
2.11.5 退出计算运行 52
第3章 用户定义的加载、边界条件和状态变量 53
3.1 概述 53
3.2 热源控制 54
3.2.1 子程序格式 55
3.2.2 分析模型描述 56
3.2.3 用户子程序代码 61
3.2.4 计算结果 62
3.3 非线性弹簧 63
3.3.1 子程序格式 64
3.3.2 分析模型描述 64
3.3.3 用户子程序代码 71
3.3.4 计算结果 73
3.4 集中力跟随 75
3.4.1 子程序格式 75
3.4.2 分析模型描述 76
3.4.3 用户子程序代码 79
3.4.4 计算结果 85
3.5 分布力 87
3.5.1 子程序格式 88
3.5.2 分析模型描述 88
3.5.3 用户子程序代码 92
3.5.4 计算结果 93
3.6 对流边界和流动速度用户子程序及应用 95
3.6.1 子程序格式 95
3.6.2 分析模型描述 96
3.6.3 用户子程序文件 100
3.6.4 分析结果 102
3.7 集中弯矩 103
3.7.1 子程序格式 104
3.7.2 分析模型描述 104
3.7.3 用户子程序代码 106
3.7.4 计算结果 107
3.8 非均匀温度场分布 108
3 8.2 分析模型描述 109
3.8.1 子程序格式 109
3.8.3 用户子程序代码 114
3.8.4 计算结果 115
3.9 梁在温度梯度和热辐射影响下的蠕变 117
3.9.1 子程序格式 117
3.9.2 蠕变规律 118
3.9.3 分析模型描述 119
3.9.4 用户子程序代码 124
3.9.5 计算结果 127
3.10 位移响应谱的输入 128
3.10.1 子程序格式 129
3.10.2 分析模型描述 129
3.10.3 用户子程序代码 133
3.10.4 计算结果 134
第4章 用户定义的各向异性材料特性和本构关系 136
4.1 概述 136
4.2 线性平面应力三角形单元 137
4.2.1 子程序格式 138
4.2.2 分析模型描述 140
4.2.3 用户子程序代码 145
4.2.4 计算结果 150
4.3 邓肯一张非线性弹性E-B模型 151
4.3.1 子程序格式 152
4.3.2 模型描述 155
4.3.3 用户子程序代码 159
4.3.4 计算结果 163
4.4.1 子程序格式 166
4.4 梁单元 166
4.4.2 非线性弹性梁 167
4.4.3 非线性弹性梁分析模型描述 168
4.4.4 非线性弹性梁使用的用户子程序代码 172
4.4.5 非线性弹性梁计算结果 173
4.4.6 双折线弹塑性梁单元 174
4.4.7 双折线弹塑性梁分析模型描述 174
4.4.8 双折线弹塑性梁使用的用户子程序代码 178
4.4.9 双折线弹塑性梁计算结果 182
4.5 3D复合材料铺层 183
4.5.1 用户程序change.f的使用说明 185
4.5.2 模型描述 186
4.5.3 用户子程序代码 190
4.5.4 计算结果 195
4.6 正交各向异性材料方向的定义 197
4.6.1 程序格式 197
4.6.2 模型描述 197
4.6.3 用户子程序代码 204
4.6.4 计算结果 206
4.7.1 子程序格式 207
4.7 各向异性材料定义 207
4.7.2 分析模型描述 209
4.7.3 用户子程序代码 213
4.7.4 计算结果 215
4.8 采用变形梯度定义非线性应力—应变关系 216
4.8.1 子程序格式 217
4.8.2 分析模型描述 218
4.8.3 用户子程序代码 223
4.8.4 计算结果 227
4 9.1 子程序格式 228
4.9 Rebar单元属性定义 228
4.9.2 分析模型描述 230
4.9.3 用户子程序代码 236
4.9.4 计算结果 238
4.10 材料的硬化特性定义 239
4.10.1 子程序格式 239
4.10.2 分析模型描述 240
4.10.3 用户子程序代码 244
4.10.4 计算结果 245
第5章 粘塑性和广义塑性用户子程序 247
5.1 概述 247
5.2 隐式蠕变分析 247
5.2.1 用户子程序格式 248
5.2.2 分析模型描述 250
5.2.3 用户子程序代码 254
5.2.4 计算结果 257
6.1 概述 260
6.2 玻璃热分析 260
第6章 粘弹性用户子程序 260
6.2.1 热传导温度场分析模型描述 261
6.2.2 温度场计算结果 265
6.3 玻璃粘弹性分析 266
6.3.1 用户子程序格式 266
6.3.2 粘弹性分析模型描述 267
6.3.3 用户子程序代码 275
6.3.4 粘弹性分析结果 276
7.1 概述 279
第7章 修改几何形状的用户子程序 279
7.2 厚度变化 280
7.2.1 用户子程序格式 280
7.2.2 分析模型描述 280
7.2.3 用户子程序代码 282
7.2.4 计算结果 286
7.3 焊接死活单元 288
7.3.1 子程序格式 288
7.3.2 分析模型描述 289
7.3.3 用户子程序代码 296
7.3.4 计算结果 300
8.1 概述 303
8.2 晶粒大小 303
第8章 定义输出量的用户子程序 303
8.2.1 用户子程序格式 304
8.2.2 分析模型描述 305
8.2.3 用户子程序代码 313
8.2.4 计算结果 315
8.3 莫尔应力和Tresca应力输出 317
8.3.2 分析模型描述 318
8.3.1 用户子程序格式 318
8.3.3 用户子程序代码 321
8.3.4 计算结果 322
第9章 定义滑动轴承分析的用户子程序 324
9.1 概述 324
9.2 程序格式与实例分析 325
9.2.1 程序格式 325
9.2.2 模型描述 326
9.2.3 用户子程序代码 331
9.2.4 计算结果 332
第10章 程序PLDUMP 2000 334
10.1 概述 334
10.2 文件格式及PLOUMP 2000的应用 334
10.2.1 后处理文件格式 335
10.2.2 PLDUMP 2000概述 338
10.2.3 应用举例 340
10.2.4 运行结果 344
11.2.1 用户材料库的定义过程 348
11.2 用户材料库的定义 348
11.1 概述 348
第11章 用户材料库定义 348
11.2.2 应用举例 350
11.2.3 例题中流动应力文件 353
第12章 高温结构粘塑性分析 356
12.1 背景 356
12.2 Walker模型及其修正模型 357
12.2.1 Walker模型 357
12.2.2 Walker模型的修正模型 358
12.3 有限元分析方法 358
12.4 用户子程序文件 364
12.5 程序验证 379
12.5.1 分析模型的建立 379
12.5.2 结果讨论 381
第13章 复杂结构热分析 383
13.1 背景 383
13.2 基本理论和方法 383
13.2.1 热传导分析单元 383
13.2.2 辐射边界条件的处理方法 384
13.2.3 对流换热系数的确定方法 385
13.2.4 辐射通量密度及辐射强度计算 386
13.3 自编程序及用户子程序文件 387
13.4 例题分析 400
13.4.1 模型与网格划分 400
13.4.2 计算工况的选取 400
13.4.3 边界条件的施加 400
13.4.4 计算及结果分析 402
14.1 Python简介 405
第14章 MSC.Marc Python指南 405
14.1.1 PyMentat使用基础 406
14.1.2 PyPost使用基础 407
14.1.3 Python编程简介 408
14.2 一个简单实例 409
14.2.1 生成节点和单元的Python脚本代码 410
14.2.2 Python的些语法规则 411
14.2.3 运行脚本 411
14.3.1 为MSC.Mentat创建一个简单的Python脚本 412
14.3 如何通过PyMentat从MSC.Mentat中获取数据 412
14.3.2 py_get_int和py_get_float方法 413
14.3.3 运行脚本 414
14.4 如何使用Python创建复杂几何体 414
14.4.1 板的属性 414
14.4.2 Python脚本代码 415
14.4.3 运行脚本 417
14.5 如何使用PyMentat添加模型属性 417
14.5.1 板的属性 418
14.5.2 节点和单元标识符 420
14.5.4 提交作业 422
14.5.3 运行脚本 422
14.6 处理后处理结果文件 423
14.6.1 后处理Python脚本基础 423
14.6.2 标量值 425
14.6.3 运行脚本 426
14.7 如何使用组 426
14.7.1 组基础 426
14.7.2 一个简单例子 427
14.7.4 组标识符和组名 428
14.7.3 运行脚本 428
14.8 读取后处理结果文件 429
14.8.1 PyPost模块基础知识 429
14.8.2 运行脚本 431
14.9 如何使用PyPost获取单元数据 431
14.9.1 处理单元数据 431
14.9.2 运行脚本 434
14.10 处理单元张量数据 435
14.10.1 后处理Python脚本基础 435
14.10.2 运行脚本 437
14.11.1 为MSC.Mentat创建一个简单的Python脚本 438
14.11 如何使用py_connect方法 438
14.11.2 py connect方法 439
14.11.3 处理socket错误 439
14.11.4 运行脚本 440
14.12 处理单元张量数据 441
14.12.1 面向MSC.Mentat的绘图模块gdchart 441
14.12.2 gnuplot模块 443
14.12.3 OpenGL模块 446
14.13.1 简介 452
14.13 Python常用程序模块 452
14.13.2 PyMentat程序模块 453
14.13.3 PyPost程序模块 456
14.13.4 算术和数据库函数 474
14.14 几何非线性悬臂梁优化实例 477
14.14.1 悬臂梁优化设计目标 478
14.14.2 优化设计思路 478
14.14.3 悬臂梁高度优化设计的Python脚本 479
14.14.4 运行脚本 484
参考文献 486