PyMAPDL Reader - Legacy Binary and Archive File Reader#
这是一个传统模块,用于读取由 MAPDL 生成的二进制和 ASCII 文件。
通过该 Python 模块,您可以直接从 ANSYS v14.5+ 二进制文件中提取数据,并使用直接的 API 和基于 ANSYS 提供的头文件的 C 库快速显示或制作动画。
ansys-mapdl-reader
模块支持以下格式:
*.rst
- Structural analysis result file 结构分析结果文件*.rth
- Thermal analysis result file 热分析结果文件*.emat
- Element matrix data file 单元矩阵数据文件*.full
- Full stiffness-mass matrix file 全刚度-质量矩阵文件*.cdb
or*.dat
- MAPDL ASCII block archive and Mechanical Workbench input files MAPDL ASCII 块存档和 Mechanical Workbench 输入文件
请参阅 PyMAPDL-Reader 文档 获取完整文档。
Note
该模块将来可能会被舍弃。
我们鼓励您在 PyDPF-Core 和 PyDPF-Post 中使用 新的数据处理框架 (DPF) 模块,因为它们提供了使用客户端/服务器界面访问 Ansys 结果文件的现代界面,该界面使用在 Ansys Mechanical 中使用的相同软件,但通过 Python 客户端。
Brief Demo: Direct Access to Binary Files#
下面是一个快速示例代码块,展示如何使用 ansys-mapdl-reader
从 ANSYS 结果文件直接加载结果并绘制结果图:
>>> from ansys.mapdl import reader as pymapdl_reader
>>> result = pymapdl_reader.read_binary('rotor.rst')
>>> nnum, stress = result.principal_nodal_stress(0)
>>> print(stress[:3])
array([[-1.2874937e-06, 1.2874934e-06, 5.6843419e-14, 0.0000000e+00,
8.1756007e-06, -8.1756007e-06],
[-1.1674185e-04, -1.1674478e-04, -3.0856981e-04, -1.7892545e-06,
-2.5823609e-05, 2.5835518e-05],
[-5.7354209e-05, -5.5398770e-05, -1.4944717e-04, -1.0580692e-06,
-1.7659733e-05, -3.5462126e-06]], dtype=float32)
第一个结果的单元应力
>>> estress, elem, enode = result.element_stress(0)
>>> estress[0]
array([[ 1.0236604e+04, -9.2875127e+03, -4.0922625e+04, -2.3697146e+03,
-1.9239732e+04, 3.0364934e+03]
[ 5.9612605e+04, 2.6905924e+01, -3.6161423e+03, 6.6281304e+03,
3.1407712e+02, 2.3195926e+04]
[ 3.8178301e+04, 1.7534495e+03, -2.5156013e+02, -6.4841372e+03,
-5.0892783e+03, 5.2503605e+00]
[ 4.9787645e+04, 8.7987168e+03, -2.1928742e+04, -7.3025332e+03,
1.1294199e+04, 4.3000205e+03]])
获取第一个单元对应的 ansys 单元编号。
>>> elem[0]
32423
获取第一个单元所属的节点。
>>> enode[0]
array([ 9012, 7614, 9009, 10920], dtype=int32)
绘制第一个结果的节点位移图。
>>> result.plot_nodal_displacement(0)
![_images/rotor.jpg](_images/rotor.jpg)
License and Acknowledgments#
ansys-mapdl-reader
模块采用 MIT 许可证授权。