Skip to main content

PyMAPDL Reader - Legacy Binary and Archive File Reader

PyAnsys pypi PyPIact GH-CI codecov MIT black

This is the legacy module for reading in binary and ASCII files generated from MAPDL.

This Python module allows you to extract data directly from binary ANSYS v14.5+ files and to display or animate them rapidly using a straightforward API coupled with C libraries based on header files provided by ANSYS.

The ansys-mapdl-reader module supports the following formats:

  • *.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

Please see the PyMAPDL-Reader Documentation for the full documentation.

Installation

Installation through pip:

pip install ansys-mapdl-reader

You can also visit pymapdl-reader to download the source or releases from GitHub.

Python 3.10 Extra Instructions

PyMAPDL-Reader requires the VTK library which, at the moment, is not available for Python 3.10 in their official channel.

If you wish to install PyMAPDL-Reader in Python 3.10, you can still do it by using the unofficial VTK wheel from PyVista using --find-links. This tells pip to look for vtk at wheels.pyvista.org. Use this with:

pip install ansys-mapdl-reader --find-links https://wheels.pyvista.org/

Please visit Unofficial VTK Wheels for Python 3.10 for further details.

Examples

Loading and Plotting a MAPDL Archive File

ANSYS archive files containing solid elements (both legacy and modern), can be loaded using Archive and then converted to a vtk object.

from ansys.mapdl import reader as pymapdl_reader
from ansys.mapdl.reader import examples

# Sample *.cdb
filename = examples.hexarchivefile

# Read ansys archive file
archive = pyansys.Archive(filename)

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

# Create a vtk 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

You can then load this vtk file using pyvista or another program that uses VTK.

# Load this from vtk
import pyvista as pv
grid = pv.UnstructuredGrid('hex.vtu')
grid.plot()

Loading the Result File

This example reads in binary results from a modal analysis of a beam from ANSYS.

# Load the reader from pyansys
from ansys.mapdl import reader as pymapdl_reader
from ansys.mapdl.reader import examples

# Sample result file
rstfile = examples.rstfile

# Create result object by loading the result file
result = pyansys.read_binary(rstfile)

# Beam natural frequencies
freqs = result.time_values
>>> print(freq)
[ 7366.49503969  7366.49503969 11504.89523664 17285.70459456
  17285.70459457 20137.19299035]

Get the 1st bending mode shape. Results are ordered based on the sorted node numbering. Note that results are zero indexed

>>> nnum, disp = result.nodal_solution(0)
>>> print(disp)
[[ 2.89623914e+01 -2.82480489e+01 -3.09226692e-01]
 [ 2.89489249e+01 -2.82342416e+01  2.47536161e+01]
 [ 2.89177130e+01 -2.82745126e+01  6.05151053e+00]
 [ 2.88715048e+01 -2.82764960e+01  1.22913304e+01]
 [ 2.89221536e+01 -2.82479511e+01  1.84965333e+01]
 [ 2.89623914e+01 -2.82480489e+01  3.09226692e-01]
 ...

Plotting Nodal Results

As the geometry of the model is contained within the result file, you can plot the result without having to load any additional geometry. Below, displacement for the first mode of the modal analysis beam is plotted using VTK.

# Plot the displacement of Mode 0 in the x direction
result.plot_nodal_solution(0, 'x', label='Displacement')
https://github.com/pyansys/pymapdl-reader/blob/main/doc/source/images/hexbeam_disp_small.png

Results can be plotted non-interactively and screenshots saved by setting up the camera and saving the result. This can help with the visualization and post-processing of a batch result.

First, get the camera position from an interactive plot:

>>> cpos = result.plot_nodal_solution(0)
>>> print(cpos)
[(5.2722879880979345, 4.308737919176047, 10.467694436036483),
 (0.5, 0.5, 2.5),
 (-0.2565529433509593, 0.9227952809887077, -0.28745339908049733)]

Then generate the plot:

result.plot_nodal_solution(0, 'x', label='Displacement', cpos=cpos,
                           screenshot='hexbeam_disp.png',
                           window_size=[800, 600], interactive=False)

Stress can be plotted as well using the below code. The nodal stress is computed in the same manner that ANSYS uses by to determine the stress at each node by averaging the stress evaluated at that node for all attached elements. For now, only component stresses can be displayed.

# Display node averaged stress in x direction for result 6
result.plot_nodal_stress(5, 'Sx')
https://github.com/pyansys/pymapdl-reader/blob/main/doc/source/images/beam_stress_small.png

Nodal stress can also be generated non-interactively with:

result.plot_nodal_stress(5, 'Sx', cpos=cpos, screenshot=beam_stress.png,
                       window_size=[800, 600], interactive=False)

Animating a Modal Solution

Mode shapes from a modal analysis can be animated using animate_nodal_solution:

result.animate_nodal_solution(0)
Modal shape animation

If you wish to save the animation to a file, specify the movie_filename and animate it with:

result.animate_nodal_solution(0, movie_filename='/tmp/movie.mp4', cpos=cpos)

Reading a Full File

This example reads in the mass and stiffness matrices associated with the above example.

# Load the reader from pyansys
from ansys.mapdl import reader as pymapdl_reader
from scipy import sparse

# load the full file
fobj = pyansys.FullReader('file.full')
dofref, k, m = fobj.load_km()  # returns upper triangle only

# make k, m full, symmetric matrices
k += sparse.triu(k, 1).T
m += sparse.triu(m, 1).T

If you have scipy installed, you can solve the eigensystem for its natural frequencies and mode shapes.

from scipy.sparse import linalg

# condition the k matrix
# to avoid getting the "Factor is exactly singular" error
k += sparse.diags(np.random.random(k.shape[0])/1E20, shape=k.shape)

# Solve
w, v = linalg.eigsh(k, k=20, M=m, sigma=10000)

# System natural frequencies
f = np.real(w)**0.5/(2*np.pi)

print('First four natural frequencies')
for i in range(4):
    print '{:.3f} Hz'.format(f[i])
First four natural frequencies
1283.200 Hz
1283.200 Hz
5781.975 Hz
6919.399 Hz

Developing on Windows

This package is designed to be developed on Linux, and if you need to develop on Windows you will need to install your own C++ compiler. We recommend:

  1. Install Visual C++
    1. See here for a list of which Python versions correspond to which Visual C++ version

    2. Only Python <= 3.8 appears to be supported at the moment.

  2. Install the development version of pymapdl-reader to your Python environment
    1. Navigate to the project’s top level (the same directory as this README)

    2. run pip install -e .

License and Acknowledgments

The ansys-mapdl-reader module is licensed under the MIT license.

Release files for ansys-mapdl-reader 0.52.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for ansys-mapdl-reader 0.52.1
File
ansys_mapdl_reader-0.52.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
ansys_mapdl_reader-0.52.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
ansys_mapdl_reader-0.52.1-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
ansys_mapdl_reader-0.52.1-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details
ansys_mapdl_reader-0.52.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
ansys_mapdl_reader-0.52.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
ansys_mapdl_reader-0.52.1-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
ansys_mapdl_reader-0.52.1-cp39-cp39-macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) Details
ansys_mapdl_reader-0.52.1-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
ansys_mapdl_reader-0.52.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
ansys_mapdl_reader-0.52.1-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details
ansys_mapdl_reader-0.52.1-cp38-cp38-macosx_10_9_universal2.whl CPython 3.8 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64) Details
ansys_mapdl_reader-0.52.1-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
ansys_mapdl_reader-0.52.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
ansys_mapdl_reader-0.52.1-cp37-cp37m-macosx_10_9_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 Details

Total release size: 29.5 MB

Release files / ansys_mapdl_reader-0.52.1-cp310-cp310-win_amd64.whl

Download URL ansys_mapdl_reader-0.52.1-cp310-cp310-win_amd64.whl
Size 1.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
7488c1393a4b42213d0af567dc53e52970771dc0c78dda0c979e07be7724b474
BLAKE2b-256 checksum
How to use checksums
4d0bfc2e4a6130f191cb69ff167267d7ff0662bd563e804b2685e230e9321665
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ansys_mapdl_reader-0.52.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.8 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7f9fb0aef0ed8cc0aea25a96ffe07f2976d53d810890adb49a28a59124ba3076
BLAKE2b-256 checksum
How to use checksums
25cac7a1dde933425a7a0a1a3839731b17e748a0308f5664055f95be8b57e6ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp310-cp310-macosx_10_9_x86_64.whl

Download URL ansys_mapdl_reader-0.52.1-cp310-cp310-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
fdff8140b941abd40814856c8747dff82622e9d73b191ff73e79c344298cbf9f
BLAKE2b-256 checksum
How to use checksums
c7066370ada806c0a21551c4c32a7585b532d70999b22694c055d5fdf677c270
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp310-cp310-macosx_10_9_universal2.whl

Download URL ansys_mapdl_reader-0.52.1-cp310-cp310-macosx_10_9_universal2.whl
Size 1.7 MB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
216bf1b8bf9ea10d25c48a73c1d9629f77b452ef4e30facf33abee9edc9716fd
BLAKE2b-256 checksum
How to use checksums
350c954e2dea86f4050c1bc1fce38e25845629580d73d1d58d3af7f70d0b9652
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp39-cp39-win_amd64.whl

Download URL ansys_mapdl_reader-0.52.1-cp39-cp39-win_amd64.whl
Size 1.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
b53d3288b0992d7ecd046d29bd8b94380cada6e2e26de01b7ab1fbee043f0077
BLAKE2b-256 checksum
How to use checksums
1e0b9e0dc8419ba4d3aae9e4faf3eb6f76f590c18ea96475c4bb8f3c7e00469a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ansys_mapdl_reader-0.52.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.8 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
80d5103882e6c41b0cb5d486e5ea5fdcb66cd58c0df7d49afc27790103961b45
BLAKE2b-256 checksum
How to use checksums
9fe9d80e0d6fe13100ddb6e18724156a7c3c9a1b1838c03ed9761fe53e138886
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp39-cp39-macosx_10_9_x86_64.whl

Download URL ansys_mapdl_reader-0.52.1-cp39-cp39-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
addcd3a7055dc2151dcde98f718c892f8f713b4c69de68cbe8551a1f464e763c
BLAKE2b-256 checksum
How to use checksums
74342e87bd96374bed59422b7f73ed8485d935e373f65ea055d843e961a3bb3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp39-cp39-macosx_10_9_universal2.whl

Download URL ansys_mapdl_reader-0.52.1-cp39-cp39-macosx_10_9_universal2.whl
Size 1.8 MB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
dae8025d6270348bad04a9e7387eb7a4288dc182fa7e5feec9c05a275f66d599
BLAKE2b-256 checksum
How to use checksums
34bb7e9d10805cdd665f91c05909111f800ae0d2b74d6c1bd820a1f212c166e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp38-cp38-win_amd64.whl

Download URL ansys_mapdl_reader-0.52.1-cp38-cp38-win_amd64.whl
Size 1.1 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
853e0227b4dba498d039fd9647343cc6d32f67a100dada25934813811ac27528
BLAKE2b-256 checksum
How to use checksums
1c4a40a630307b41af9d8c4daaf6455fe03b074f330e58e1f249c5ee4789aa6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ansys_mapdl_reader-0.52.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.9 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
cddf330bcd8394b0320625fbdd41c7ae9dd1130a088f021a4fabd753e921f6a9
BLAKE2b-256 checksum
How to use checksums
017a88fe7eb4b1444d1b48d01a7f048f44d9901f5a52946b9bc30a862d06cf12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp38-cp38-macosx_10_9_x86_64.whl

Download URL ansys_mapdl_reader-0.52.1-cp38-cp38-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
00838ec37a4e20273879f508c9fa67ff88225f913cf266e4cd1aee4bb460da56
BLAKE2b-256 checksum
How to use checksums
de3622a56130076f8af85d6909b4f295042f68572b66e0bb868ae99b44ebc519
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp38-cp38-macosx_10_9_universal2.whl

Download URL ansys_mapdl_reader-0.52.1-cp38-cp38-macosx_10_9_universal2.whl
Size 1.7 MB
Tags CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
c5623313c2c5c7d3e0972b2bcd81159f316e79f572baa2ad5a1ca6fa20a29b07
BLAKE2b-256 checksum
How to use checksums
51205b217f46d3e0bab2a598afbe085ca956309098fad6c71a74e4e3a484f5de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp37-cp37m-win_amd64.whl

Download URL ansys_mapdl_reader-0.52.1-cp37-cp37m-win_amd64.whl
Size 1.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
a175c07499a955e7fbdc35afa424d8febf236bfb32d8c51b7440d742660269d0
BLAKE2b-256 checksum
How to use checksums
9e0c3025c791e7810f77c14e9af78b1e85ff8ff61238460171d476fd03404fa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ansys_mapdl_reader-0.52.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.6 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d3d123806eff89b7b095964f1eb45ccb13a6a30724de2c367725d71812741a86
BLAKE2b-256 checksum
How to use checksums
7968b64250a36227758fff3728bdf30276345cb797cce967c622e8eac4fa99b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / ansys_mapdl_reader-0.52.1-cp37-cp37m-macosx_10_9_x86_64.whl

Download URL ansys_mapdl_reader-0.52.1-cp37-cp37m-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
881f38993a7264a13672098aa5573c7918320cbd2eedec0113210f6224c95fa0
BLAKE2b-256 checksum
How to use checksums
523c36499a70302d900486f6a7520f64e5bd8cadb3a2d22478f67d77662241fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release history Release notifications | RSS feed

This release

0.52.1 This release

15 release files

0.51.9

8 release files

0.51.8

8 release files

0.51.5

9 release files

0.50.0

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page