Archive Class and Functions

class ansys.mapdl.reader.archive.Archive(filename, read_parameters=False, parse_vtk=True, force_linear=False, allowable_types=None, null_unallowed=False, verbose=False, name='')

Read a blocked ANSYS archive file or input file.

Reads a blocked CDB file and optionally parses it to a vtk grid. This can be used to read in files written from MAPDL using the CDWRITE command or input files ('.dat') files written from ANSYS Workbench.

Write the archive file using CDWRITE, DB, archive.cdb

Parameters
  • filename (string) – Filename of block formatted cdb file

  • read_parameters (bool, optional) – Optionally read parameters from the archive file. Default False.

  • parse_vtk (bool, optional) – When True, parse the raw data into to VTK format.

  • force_linear (bool, optional) – This parser creates quadratic elements if available. Set this to True to always create linear elements. Defaults to False.

  • allowable_types (list, optional) –

    Allowable element types. Defaults to all valid element types in ansys.mapdl.reader.elements.valid_types

    See help(ansys.mapdl.reader.elements) for available element types.

  • null_unallowed (bool, optional) – Elements types not matching element types will be stored as empty (null) elements. Useful for debug or tracking element numbers. Default False.

  • verbose (bool, optional) – Print out each step when reading the archive file. Used for debug purposes and defaults to False.

  • name (str, optional) – Internally used parameter used to have a custom __repr__.

Examples

>>> from ansys.mapdl import reader as pymapdl_reader
>>> from ansys.mapdl.reader import examples
>>> hex_beam = pymapdl_reader.Archive(examples.hexarchivefile)
>>> print(hex_beam)
ANSYS Archive File HexBeam.cdb
  Number of Nodes:              40
  Number of Elements:           321
  Number of Element Types:      1
  Number of Node Components:    2
  Number of Element Components: 2

Print the node array

>>> hex_beam.nodes
array([[0.  , 0.  , 0.  ],
       [1.  , 0.  , 0.  ],
       [0.25, 0.  , 0.  ],
       ...,
       [0.75, 0.5 , 3.5 ],
       [0.75, 0.5 , 4.  ],
       [0.75, 0.5 , 4.5 ]])

Read an ANSYS workbench input file

>>> my_archive = pymapdl_reader.Archive('C:\Users\user\stuff.dat')

Notes

This class only reads EBLOCK records with SOLID records. For example, the record EBLOCK,19,SOLID,,3588 will be read, but EBLOCK,10,,,3588 will not be read. Generally, MAPDL will only write SOLID records and Mechanical Workbench may write SOLID records. These additional records will be ignored.

property grid

vtk.UnstructuredGrid of the archive file.

Examples

>>> from ansys.mapdl import reader as pymapdl_reader
>>> from ansys.mapdl.reader import examples
>>> archive = pymapdl_reader.Archive(examples.hexarchivefile)
>>> archive.grid
UnstructuredGrid (0x7ffa237f08a0)
  N Cells:      40
  N Points:     321
  X Bounds:     0.000e+00, 1.000e+00
  Y Bounds:     0.000e+00, 1.000e+00
  Z Bounds:     0.000e+00, 5.000e+00
  N Arrays:     13
property parameters

Parameters stored in the archive file

Examples

>>> from ansys.mapdl import reader as pymapdl_reader
>>> from ansys.mapdl.reader import examples
>>> archive = pymapdl_reader.Archive(examples.hexarchivefile,
                                     read_parameters=True)
>>> archive.parameters
{}
plot(off_screen=None, full_screen=None, screenshot=None, interactive=True, cpos=None, window_size=None, show_bounds=False, show_axes=None, notebook=None, background=None, text='', return_img=False, eye_dome_lighting=False, volume=False, parallel_projection=False, use_ipyvtk=None, jupyter_backend=None, return_viewer=False, return_cpos=False, jupyter_kwargs={}, theme=None, hidden_line_removal=None, anti_aliasing=None, zoom=None, **kwargs)

Plot a vtk or numpy object.

Parameters
  • var_item (pyvista.DataSet, vtk, or numpy object) – VTK object or numpy array to be plotted.

  • off_screen (bool, optional) – Plots off screen when True. Helpful for saving screenshots without a window popping up. Defaults to the global setting pyvista.OFF_SCREEN.

  • full_screen (bool, optional) – Opens window in full screen. When enabled, ignores window_size. Defaults to active theme setting in pyvista.global_theme.full_screen.

  • screenshot (str or bool, optional) –

    Saves screenshot to file when enabled. See: Plotter.screenshot(). Default False.

    When True, takes screenshot and returns numpy array of image.

  • interactive (bool, optional) – Allows user to pan and move figure. Defaults to pyvista.global_theme.interactive.

  • cpos (list, optional) – List of camera position, focal point, and view up.

  • window_size (list, optional) – Window size in pixels. Defaults to global theme pyvista.global_theme.window_size.

  • show_bounds (bool, optional) – Shows mesh bounds when True. Default False.

  • show_axes (bool, optional) – Shows a vtk axes widget. If None, enabled according to pyvista.global_theme.axes.show.

  • notebook (bool, optional) – When True, the resulting plot is placed inline a jupyter notebook. Assumes a jupyter console is active.

  • background (str or sequence, optional) – Color of the background.

  • text (str, optional) – Adds text at the bottom of the plot.

  • return_img (bool, optional) – Returns numpy array of the last image rendered.

  • eye_dome_lighting (bool, optional) – Enables eye dome lighting.

  • volume (bool, optional) – Use the Plotter.add_volume() method for volume rendering.

  • parallel_projection (bool, optional) – Enable parallel projection.

  • use_ipyvtk (bool, optional) – Deprecated. Instead, set the backend either globally with pyvista.set_jupyter_backend('ipyvtklink') or with backend='ipyvtklink'.

  • jupyter_backend (str, optional) –

    Jupyter notebook plotting backend to use. One of the following:

    • 'none' : Do not display in the notebook.

    • 'static' : Display a static figure.

    • 'ipygany' : Show a ipygany widget

    • 'panel' : Show a panel widget.

    This can also be set globally with pyvista.set_jupyter_backend().

  • return_viewer (bool, optional) – Return the jupyterlab viewer, scene, or display object when plotting with jupyter notebook.

  • return_cpos (bool, optional) – Return the last camera position from the render window when enabled. Defaults to value in theme settings.

  • jupyter_kwargs (dict, optional) – Keyword arguments for the Jupyter notebook plotting backend.

  • theme (pyvista.themes.DefaultTheme, optional) – Plot-specific theme.

  • hidden_line_removal (bool, optional) – Wireframe geometry will be drawn using hidden line removal if the rendering engine supports it. See Plotter.enable_hidden_line_removal. Defaults to the theme setting pyvista.global_theme.hidden_line_removal.

  • anti_aliasing (bool, optional) – Enable or disable anti-aliasing. Defaults to the theme setting pyvista.global_theme.antialiasing.

  • zoom (float, optional) – Camera zoom. A value greater than 1 is a zoom-in, a value less than 1 is a zoom-out. Must be greater than 0.

  • **kwargs (optional keyword arguments) – See pyvista.Plotter.add_mesh() for additional options.

Returns

  • cpos (list) – List of camera position, focal point, and view up. Returned only when return_cpos=True or set in the default global or plot theme. Not returned when in a jupyter notebook and return_viewer=True.

  • image (np.ndarray) – Numpy array of the last image when either return_img=True or screenshot=True is set. Not returned when in a jupyter notebook with return_viewer=True. Optionally contains alpha values. Sized:

    • [Window height x Window width x 3] if the theme sets transparent_background=False.

    • [Window height x Window width x 4] if the theme sets transparent_background=True.

  • widget – IPython widget when return_viewer=True.

Examples

Plot a simple sphere while showing its edges.

>>> import pyvista
>>> mesh = pyvista.Sphere()
>>> mesh.plot(show_edges=True)
property quality

Minimum scaled jacobian cell quality.

Negative values indicate invalid cells while positive values indicate valid cells. Varies between -1 and 1.

Examples

>>> from ansys.mapdl import reader as pymapdl_reader
>>> from ansys.mapdl.reader import examples
>>> archive = pymapdl_reader.Archive(examples.hexarchivefile)
>>> archive.quality
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
ansys.mapdl.reader.archive.save_as_archive(filename, grid, mtype_start=1, etype_start=1, real_constant_start=1, mode='w', enum_start=1, nnum_start=1, include_etype_header=True, reset_etype=False, allow_missing=True, include_surface_elements=True, include_solid_elements=True, include_components=True)

Writes FEM as an ANSYS APDL archive file. This function supports the following element types:

  • 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

  • vtk.VTK_TRIANGLE

  • vtk.VTK_QUAD

Will automatically renumber nodes and elements if the FEM does not contain ANSYS node or element numbers. Node numbers are stored as a point array “ansys_node_num”, and cell numbers are stored as cell array “ansys_elem_num”.

Parameters
  • filename (str) – Filename to write archive file.

  • grid (vtk.UnstructuredGrid) – VTK UnstructuredGrid to convert to an APDL archive file. PolyData will automatically be converted to an unstructured mesh.

  • mtype_start (int, optional) – Material number to assign to elements. Can be set manually by adding the cell array “mtype” to the unstructured grid.

  • etype_start (int, optional) – Starting element type number. Can be manually set by adding the cell array “ansys_etype” to the unstructured grid.

  • real_constant_start (int, optional) – Starting real constant to assign to unset cells. Can be manually set by adding the cell array “ansys_real_constant” to the unstructured grid.

  • mode (str, optional) – File mode. See help(open)

  • enum_start (int, optional) – Starting element number to assign to unset cells. Can be manually set by adding the cell array “ansys_elem_num” to the unstructured grid.

  • nnum_start (int, optional) – Starting element number to assign to unset points. Can be manually set by adding the point array “ansys_node_num” to the unstructured grid.

  • include_etype_header (bool, optional) – For each element type, includes element type command (e.g. “ET, 1, 186”) in the archive file.

  • reset_etype (bool, optional) – Resets element type. Element types will automatically be determined by the shape of the element (i.e. quadradic tetrahedrals will be saved as SOLID187, linear hexahedrals as SOLID185). Default True.

  • include_surface_elements (bool, optional) – Includes surface elements when writing the archive file and saves them as SHELL181.

  • include_solid_elements (bool, optional) – Includes solid elements when writing the archive file and saves them as SOLID185, SOLID186, or SOLID187.

  • include_components (bool, optional) – Writes note components to file. Node components must be stored within the unstructured grid as uint8 or bool arrays.

Examples

Write a VTK of pyvista UnstructuredGrid to archive.cdb

>>> from ansys.mapdl import reader as pymapdl_reader
>>> from pyvista import examples
>>> grid = examples.load_hexbeam()
>>> pymapdl_reader.save_as_archive('archive.cdb', grid)
ansys.mapdl.reader.archive.write_nblock(filename, node_id, pos, angles=None, mode='w')

Writes nodes and node angles to file.

Parameters
  • filename (str or file handle) – Filename to write node block to.

  • node_id (np.ndarray) – ANSYS node numbers.

  • pos (np.ndarray) – Node coordinates.

  • angles (np.ndarray, optional) – Writes the node angles for each node when included.

  • mode (str, optional) – Write mode. Default 'w'.

ansys.mapdl.reader.archive.write_cmblock(filename, items, comp_name, comp_type, digit_width=10, mode='w')

Writes a component block (CMBLOCK) to a file.

Parameters
  • filename (str or file handle) – File to write CMBLOCK component to.

  • items (list or np.ndarray) – Element or node numbers to write.

  • comp_name (str) – Name of the component

  • comp_type (str) – Component type to write. Should be either ‘ELEMENT’ or ‘NODE’.

  • digit_width (int, optional) – Default 10

  • mode (str, optional) – Write mode. Default 'w'.