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_eblock=True)
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, pathlib.Path) – 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__
.read_eblock (bool, default: True) – Read the element block.
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, butEBLOCK,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 filename: str
String form of the filename. This property is read-only.
- property grid
Return a
pyvista.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 {}
- property pathlib_filename: Path
Return the
pathlib.Path
version of the filename. This property can not be set.
- 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, jupyter_backend=None, return_viewer=False, return_cpos=False, jupyter_kwargs=None, theme=None, anti_aliasing=None, zoom=None, border=False, border_color='k', border_width=2.0, ssao=False, **kwargs)
Plot a PyVista, numpy, or vtk object.
- Parameters:
var_item (pyvista.DataSet) – See
Plotter.add_mesh
for all supported types.off_screen (bool, optional) – Plots off screen when
True
. Helpful for saving screenshots without a window popping up. Defaults to the global settingpyvista.OFF_SCREEN
.full_screen (bool, default:
pyvista.plotting.themes.Theme.full_screen
) – Opens window in full screen. When enabled, ignoreswindow_size
.screenshot (str or bool, optional) –
Saves screenshot to file when enabled. See:
Plotter.screenshot()
. DefaultFalse
.When
True
, takes screenshot and returnsnumpy
array of image.interactive (bool, default:
pyvista.plotting.themes.Theme.interactive
) – Allows user to pan and move figure.cpos (list, optional) – List of camera position, focal point, and view up.
window_size (sequence, default:
pyvista.plotting.themes.Theme.window_size
) – Window size in pixels.show_bounds (bool, default: False) – Shows mesh bounds when
True
.show_axes (bool, default:
pyvista.plotting.themes._AxesConfig.show
) – Shows a vtk axes widget.notebook (bool, default:
pyvista.plotting.themes.Theme.notebook
) – WhenTrue
, the resulting plot is placed inline a jupyter notebook. Assumes a jupyter console is active.background (ColorLike, default:
pyvista.plotting.themes.Theme.background
) – Color of the background.text (str, optional) – Adds text at the bottom of the plot.
return_img (bool, default: False) – Returns numpy array of the last image rendered.
eye_dome_lighting (bool, optional) – Enables eye dome lighting.
volume (bool, default: False) – Use the
Plotter.add_volume()
method for volume rendering.parallel_projection (bool, default: False) – Enable parallel projection.
jupyter_backend (str, default:
pyvista.plotting.themes.Theme.jupyter_backend
) –Jupyter notebook plotting backend to use. One of the following:
'none'
: Do not display in the notebook.'static'
: Display a static figure.'trame'
: Display usingtrame
.
This can also be set globally with
pyvista.set_jupyter_backend()
.return_viewer (bool, default: False) – Return the jupyterlab viewer, scene, or display object when plotting with jupyter notebook.
return_cpos (bool, default: False) – 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.plotting.themes.Theme, optional) – Plot-specific theme.
anti_aliasing (str | bool, default:
pyvista.plotting.themes.Theme.anti_aliasing
) – Enable or disable anti-aliasing. IfTrue
, uses"msaa"
. If False, disables anti_aliasing. If a string, should be either"fxaa"
or"ssaa"
.zoom (float, str, optional) – Camera zoom. Either
'tight'
or a float. A value greater than 1 is a zoom-in, a value less than 1 is a zoom-out. Must be greater than 0.border (bool, default: False) – Draw a border around each render window.
border_color (ColorLike, default: "k") –
Either a string, rgb list, or hex color string. For example:
color='white'
color='w'
color=[1.0, 1.0, 1.0]
color='#FFFFFF'
border_width (float, default: 2.0) – Width of the border in pixels when enabled.
ssao (bool, optional) – Enable surface space ambient occlusion (SSAO). See
Plotter.enable_ssao()
for more details.**kwargs (dict, optional) – 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 andreturn_viewer=True
.image (np.ndarray) – Numpy array of the last image when either
return_img=True
orscreenshot=True
is set. Not returned when in a jupyter notebook withreturn_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 (ipywidgets.Widget) – IPython widget when
return_viewer=True
.
Examples
Plot a simple sphere while showing its edges.
>>> import pyvista as pv >>> mesh = pv.Sphere() >>> mesh.plot(show_edges=True)
Plot a volume mesh. Color by distance from the center of the ImageData. Note
volume=True
is passed.>>> import numpy as np >>> grid = pv.ImageData( ... dimensions=(32, 32, 32), spacing=(0.5, 0.5, 0.5) ... ) >>> grid['data'] = np.linalg.norm(grid.center - grid.points, axis=1) >>> grid['data'] = np.abs(grid['data'] - grid['data'].max()) ** 3 >>> grid.plot(volume=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, exclude_missing=False)#
Writes FEM as an ANSYS APDL archive file.
This function supports the following element types:
vtk.VTK_HEXAHEDRON
vtk.VTK_PYRAMID
vtk.VTK_QUADRATIC_HEXAHEDRON
vtk.VTK_QUADRATIC_PYRAMID
vtk.VTK_QUADRATIC_TETRA
vtk.VTK_QUADRATIC_WEDGE
vtk.VTK_QUAD
vtk.VTK_TETRA
vtk.VTK_TRIANGLE
vtk.VTK_VOXEL
vtk.VTK_WEDGE
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, pathlib.Path) – Filename to write archive file.
grid (pyvista.DataSet) – Any
pyvista.DataSet
that can be cast to apyvista.UnstructuredGrid
.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.
exclude_missing (bool, default: False) – When
allow_missing=True
, write0
instead of renumbering nodes. This allows you to exclude midside nodes for certain element types (e.g.SOLID186
). Missing midside nodes are identified as-1
in the"ansys_node_num"
array.
Examples
Write a
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.
- 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'
.