ANSYS二次开发:Python实现ANSYS前后处理操作(PyAnsys库,DPF)

🍺相关文章汇总如下🍺:

  1. 🎈ANSYS二次开发:APDL开发入门准备🎈
  2. 🎈ANSYS二次开发:后处理使用APDL命令流解析结果文件🎈
  3. 🎈ANSYS二次开发:Python解析ANSYS结果文件(PyAnsys库)🎈
  4. 🎈ANSYS二次开发:Python实现ANSYS后处理操作(PyAnsys库,DPF)🎈

文章目录

  • 1、简介
  • 2、安装
  • 2.1 ansys-mapdl-core
  • 2.2 pyaedt
  • 2.3 ansys-dpf-core
  • 2.4 ansys-dpf-post
  • 2.5 ansys-mapdl-reader
  • 2.6 Granta MI BoM Analytics
  • 3、入门示例
  • 3.1 ansys-mapdl-core
  • 3.2 pyaedt
  • 3.3 ansys-dpf-core
  • 3.4 ansys-dpf-post
  • 3.5 ansys-mapdl-reader
  • 3.6 Granta MI BoM Analytics
  • 4、扩展示例(User Guide)
  • 4.1 Brief Demo
  • 4.2 DPF Model
  • 结语
  • 1、简介

    Welcome to the PyAnsys Project!
    PyAnsys 项目是 Python 包的集合,可通过 Python 使用 Ansys 产品。
    Python + Ansys = PyAnsys

    The PyAnsys project is a collection of Python packages to enable the usage of Ansys products through Python.
    This project originally began as a single package, pyansys, and has been expanded to six main packages:
    这个项目最初是作为一个单独的包开始的pyansys,并且已经扩展到六个主要包:

  • PyMAPDL:MAPDL 的 Pythonic 接口
  • PyAEDT : AEDT 的 Pythonic 接口
  • PyDPF-Core:使用数据处理框架 (DPF) 进行后处理。更复杂但更强大的后处理 API。
  • PyDPF-Post:流线型和简化的 DPF 后处理。更高级别的包和用途ansys-dpf-core。
  • Legacy PyMAPDL Reader:旧版结果文件阅读器。支持从 MAPDL v14.5 到当前版本的结果文件。
  • Granta MI BoM Analytics:Granta MI BoM 分析服务的 Pythonic 接口。

  • 2、安装

    要使用 PyAnsys,您需要为您的产品安装适用的软件包:

    MAPDL:

    pip install ansys-mapdl-core
    

    AEDT:

    pip install pyaedt
    

    MAPDL Post-Processing:

    pip install ansys-dpf-core
    pip install ansys-dpf-post
    pip install ansys-mapdl-reader
    

    2.1 ansys-mapdl-core

    安装此软件包:

    pip install ansys-mapdl-core
    
  • 安装过程截图如下:

  • 2.2 pyaedt

    PyAEDT 旨在整合和扩展围绕 Ansys Electronics Desktop (AEDT) 脚本编写的所有现有功能,以允许重用现有代码、共享最佳实践并加强协作。PyAEDT 在MIT License下获得许可。

    PyAEDT 包括与以下 AEDT 工具和 Ansys 产品交互的功能:

  • HFSS and HFSS 3D Layout
  • Icepak
  • Maxwell 2D/3D and RMxprt
  • Q3D/2DExtractor
  • Mechanical
  • Nexxim
  • Simplorer
  • EDB Database
  • 安装此软件包:

    pip install pyaedt
    
  • 安装过程截图如下:

  • 2.3 ansys-dpf-core

    PyDPF-Core 适用于 Ansys 2021R1 及更高版本。

    数据处理框架 (DPF) 旨在为数值模拟用户/工程师提供用于访问和转换模拟数据的工具箱。DPF 可以从求解器结果文件以及几种中性格式(csv、hdf5、vtk 等)访问数据。可以使用各种运算符来处理和转换这些数据。

    DPF 是一个基于工作流的框架,它允许通过链接运算符进行简单和/或复杂的评估。DPF 中的数据是基于在称为字段的自给自足实体中描述的与物理无关的数学量定义的。这使得 DPF 成为具有多种功能的模块化且易于使用的工具。它是一种旨在处理大量数据的产品。

    Pythonansys.dpf.core模块为强大的 DPF 框架提供 Python 接口,无需离开 Python 环境即可对各种 Ansys 文件格式和物理场解决方案进行快速后处理。

    DPF-Core is a Python client API for easily accessing DPF (Data Processing Framework) postprocessing capabilities. The ansys.dpf.core package makes highly efficient computation, customization, and remote postprocessing accessible in Python.

    These sections describe the most common DPF entities:

  • DPF Model provides the model for accessing results and metadata from result files.
  • Operators provide the objects for creating and transforming data.
  • Fields Container and Fields provide the main simulation data container with fields.
    Additionally, Plotting describes how to plot results via PyVista.
  • 使用以下命令安装此存储库:

    pip install ansys-dpf-core
    

    git clone https://github.com/pyansys/pydpf-core
    cd pydpf-core
    pip install -e .
    

    DPF supports Windows 10 and CentOS 7 and later. For more information, see Ansys Platform Support.
    Other platforms may be supported by using DPF within a containerization ecosystem such as Docker or Kubernetes. For more information, see docker.

  • 安装过程截图如下:

  • 2.4 ansys-dpf-post

    PyDPF-Post 适用于 Ansys 2021R1 及更高版本。

    数据处理框架 (DPF) 旨在为数值模拟用户/工程师提供用于访问和转换模拟数据的工具箱。DPF 可以从求解器结果文件以及几种中性格式(csv、hdf5、vtk 等)访问数据。可以使用各种运算符来处理和转换这些数据。

    Python ansys.dpf.post包为 DPF 提供了一个简化的 Python 接口,因此无需离开 Python 环境即可实现快速后处理。

    该模块利用 DPF-Core 项目的ansys.dpf.core 软件包,可用于使用 Ansys 的 DPF 构建更高级和定制的工作流程。

  • 使用以下命令安装此存储库:
  • pip install ansys-dpf-post
    

    安装过程截图如下:

    2.5 ansys-mapdl-reader

    这是用于读取从 MAPDL 生成的二进制和 ASCII 文件的遗留模块。
    This module will likely change or be depreciated in the future.
    我们鼓励您在DPF-Core和 DPF-Post中使用新的数据处理框架 (DPF) 模块,因为它们使用客户端/服务器接口提供了一个现代化的 ANSYS 结果文件接口,使用与 ANSYS Workbench 中使用的相同软件,但通过Python 客户端。

    这个 Python 模块允许您直接从二进制 ANSYS v14.5+ 文件中提取数据,并使用简单的 API 和基于 ANSYS 提供的头文件的 C 库快速显示或动画化它们。

    该ansys-mapdl-reader模块支持以下格式:

  • *.rst- 结构分析结果文件

  • *.rth- 热分析结果文件

  • *.emat- 元素矩阵数据文件

  • *.full- 完整的刚度质量矩阵文件

  • .cdb或.dat- MAPDL ASCII 块存档和 Mechanical Workbench 输入文件

  • 安装过程截图如下:


  • 详情请参考作者的另一篇博文:
    ANSYS二次开发:Python解析ANSYS结果文件(PyAnsys库)
    https://blog.csdn.net/hhy321/article/details/122898478

    2.6 Granta MI BoM Analytics

    Granta MI 受限物质解决方案包括 BoM 分析服务,该服务提供 REST API 以允许外部应用程序和工具确定材料和产品是否符合各种法规。此包为 BoM 分析服务 API 提供 Pythonic 接口。

  • 安装此软件包:
  • pip install ansys-grantami-bomanalytics
    
  • 安装过程截图如下:
  • 3、入门示例

    3.1 ansys-mapdl-core

  • 官方测试代码如下:
  • from ansys.mapdl.core import launch_mapdl
    mapdl = launch_mapdl()
    print(mapdl)
    
  • 运行结果截图如下:
  • 3.2 pyaedt

    Higher-Level Pythonic Ansys Electronics Desktop Framework.
    PyAEDT is part of the larger PyAnsys effort to facilitate the use of Ansys technologies directly from Python.

  • NdExplorer
  • To open the NdExplorer, click Tools > Network Data Explorer. The NdExplorer window is divided into the following panes:
    • Control Pane across the top
    • Data View Pane to the right
    • Data Selection Panes to the left — divided into Frequency Selection and Variation Selection


    https://courses.ansys.com/wp-content/uploads/2021/07/Q3D_SIGS_2020R1_EN_LE01_Intro.pdf

    亲,相关测试正在建设中,请稍等。。。

    3.3 ansys-dpf-core

  • 官方测试代码如下:
  • from ansys.dpf.core import Model
    model = Model('e://file.rst')
    print(model)
    
  • 运行结果截图如下:
  • 3.4 ansys-dpf-post

  • 官方测试代码如下:
  • from ansys.dpf import post
    from ansys.dpf.post import examples
    solution = post.load_solution(examples.multishells_rst)
    stress = solution.stress()
    stress.xx.plot_contour(show_edges=False)
    


    stress.xx.get_data_at_field(0)
    

  • 运行结果截图如下:
  • 3.5 ansys-mapdl-reader

    详情请参考作者的另一篇博文:
    ANSYS二次开发:Python解析ANSYS结果文件(PyAnsys库)
    https://blog.csdn.net/hhy321/article/details/122898478

    3.6 Granta MI BoM Analytics

    亲,相关测试正在建设中,请稍等。。。

    4、扩展示例(User Guide)

    DPF is a modern framework based on new hardware architectures.
    DPF is physics-agnostic, which means that its use is not limited to a particular field, physics solution, or file format.
    DPF is developed around two core entities:
    (1)Data represented as a field
    (2)An operator to act upon this data
    Each DPF capability is developed through operators that allow for componentization of the framework. Because DPF is plugin-based, new features or formats can be easily added.

    数据处理框架 ( DPF ) 为数值模拟用户/工程师提供了一个用于访问和转换模拟数据的工具箱。它用于处理模拟工作流程中模拟数据的复杂预处理或后处理。

    DPF 是一个独立的、与物理无关的工具,可以插入到许多应用程序中,用于数据输入和数据输出(结果图、可视化等)。

    DPF 可以访问求解器结果文件和其他中性格式(例如 CSV、HDF5 和 VTK)的数据。可以使用各种运算符,允许您操作和转换此数据。您可以将运算符链接在一起以创建简单或复杂的数据处理工作流程,这些工作流程可以重复使用或用于未来的评估。

    DPF 中的数据是基于在称为字段的自给自足实体中描述的与物理无关的数学量定义的。这使得 DPF 成为具有多种功能的模块化且易于使用的工具。它旨在处理大量数据。

    4.1 Brief Demo

    Opening a result file generated from MAPDL (or another ANSYS solver) and extracting results from it is easy:

    from ansys.dpf.core import Model
    from ansys.dpf.core import examples
    model = Model(examples.simple_bar)
    print(model)
    

    disp = model.results.displacement().X()
    model.metadata.meshed_region.plot(disp.outputs.fields_container())
    


    4.2 DPF Model

    DPF 模型提供了打开结果文件的起点。从这里您可以连接各种操作员并显示结果和数据。
    要创建Model实例,请导入dpf并加载文件。提供的路径必须是绝对路径或相对于 DPF 服务器的路径。

    from ansys.dpf import core as dpf
    from ansys.dpf.core import examples
    
    path = examples.simple_bar
    model = dpf.Model(path)
    print(model)
    

    model.metadata.result_info.analysis_type
    
    model.metadata.meshed_region.nodes.n_nodes
    model.metadata.meshed_region.elements.n_elements
    print(model.metadata.meshed_region.elements.element_by_id(1))
    
    time_freq_support =  model.metadata.time_freq_support
    print(time_freq_support.time_frequencies.data)
    
    print(model.results)
    

    from ansys.dpf import core as dpf
    from ansys.dpf.core import examples
    model = dpf.Model(examples.simple_bar)
    results = model.results # printable object
    



    亲,官网的其他案例的相关测试正在建设中,请稍等。。。

    结语

    如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
    如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
    如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
    感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

    来源:爱看书的小沐

    物联沃分享整理
    物联沃-IOTWORD物联网 » ANSYS二次开发:Python实现ANSYS前后处理操作(PyAnsys库,DPF)

    发表评论