跳转到主要内容

Pythonic接口用于访问MAPDL存档文件。

项目描述

pypi GH-CI MIT

使用CDWRITE从MAPDL写入的ANSYS存档文件(包括旧的和现代的)可以通过存档加载并转换为VTK对象。

这实际上是一个没有二进制阅读器的pymapdl-reader,以便在开发中提供更大的灵活性。

安装

通过pip安装

pip install mapdl-archive

示例

加载并绘制MAPDL存档文件

包含实体元素(包括旧的和现代的)的ANSYS存档文件可以通过存档加载,然后转换为VTK对象。

from mapdl_archive import Archive, examples

# Sample *.cdb
filename = examples.hexarchivefile

# Read ansys archive file
archive = Archive(filename)

# Print raw data from cdb
for key in archive.raw:
   print("%s : %s" % (key, archive.raw[key]))

# Create an unstructured grid from the raw data and plot it
grid = archive.parse_vtk(force_linear=True)
grid.plot(color='w', show_edges=True)

# write this as a vtk xml file
grid.save('hex.vtu')

# or as a vtk binary
grid.save('hex.vtk')
Hexahedral beam

然后您可以使用PyVistaVTK加载这个vtk文件。

import pyvista as pv
grid = pv.UnstructuredGrid('hex.vtu')
grid.plot()

读取ANSYS存档

包含元素(包括旧的和现代的)的MAPDL存档文件(*.cdb和*.dat)可以通过存档加载并转换为vtk对象。

import mapdl_archive
from mapdl_archive import examples

# Read a sample archive file
archive = mapdl_archive.Archive(examples.hexarchivefile)

# Print various raw data from cdb
print(archive.nnum, archive.nodes)

# access a vtk unstructured grid from the raw data and plot it
grid = archive.grid
archive.plot(color='w', show_edges=True)

您还可以选择通过启用read_parameters参数读取存档文件中存储的任何参数。

import mapdl_archive
archive = mapdl_archive.Archive('mesh.cdb', read_parameters=True)

# parameters are stored as a dictionary
archive.parameters

写入MAPDL存档

使用VTK生成的无结构网格可以转换为ANSYS APDL存档文件,并使用Python中的mapdl_archive.save_as_archive和MAPDL中的CDREAD加载到任何版本的ANSYS中。以下示例使用内置存档文件展示了这一功能。

import pyvista as pv
from pyvista import examples
import mapdl_archive

# load in a vtk unstructured grid
grid = pv.UnstructuredGrid(examples.hexbeamfile)
script_filename = '/tmp/grid.cdb'
mapdl_archive.save_as_archive(script_filename, grid)

# Optionally read in archive in PyMAPDL and generate cell shape
# quality report
from ansys.mapdl.core import launch_mapdl
mapdl = launch_mapdl()
mapdl.cdread('db', script_filename)
mapdl.prep7()
mapdl.shpp('SUMM')

生成的ANSYS质量报告

------------------------------------------------------------------------------
           <<<<<<          SHAPE TESTING SUMMARY           >>>>>>
           <<<<<<        FOR ALL SELECTED ELEMENTS         >>>>>>
------------------------------------------------------------------------------
                   --------------------------------------
                   |  Element count        40 SOLID185  |
                   --------------------------------------

 Test                Number tested  Warning count  Error count    Warn+Err %
 ----                -------------  -------------  -----------    ----------
 Aspect Ratio                 40              0             0         0.00 %
 Parallel Deviation           40              0             0         0.00 %
 Maximum Angle                40              0             0         0.00 %
 Jacobian Ratio               40              0             0         0.00 %
 Warping Factor               40              0             0         0.00 %

 Any                          40              0             0         0.00 %
------------------------------------------------------------------------------

支持的单元类型

目前,save_as_archive函数仅支持实体单元,包括以下类型:

  • vtk.VTK_TETRA

  • vtk.VTK_QUADRATIC_TETRA

  • vtk.VTK_PYRAMID

  • vtk.VTK_QUADRATIC_PYRAMID

  • vtk.VTK_WEDGE

  • vtk.VTK_QUADRATIC_WEDGE

  • vtk.VTK_HEXAHEDRON

  • vtk.VTK_QUADRATIC_HEXAHEDRON

线性单元类型将写入为SOLID185,二次单元将写入为SOLID186,除非是二次四面体,将写入为SOLID187。

许可证和致谢

mapdl-archive库遵循MIT许可证。

由以下支持