Skip to main content

Pythonic interface to files generated by MAPDL

Project description

PyAnsys pypi PyPIact GH-CI codecov MIT black pre-commit.ci status

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.

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 = pymapdl_reader.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 = pymapdl_reader.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/ansys/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/ansys/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 = pymapdl_reader.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. 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 library is licensed under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ansys_mapdl_reader-0.54.2.tar.gz (640.7 kB view details)

Uploaded Source

Built Distributions

ansys_mapdl_reader-0.54.2-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12 Windows x86-64

ansys_mapdl_reader-0.54.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

ansys_mapdl_reader-0.54.2-cp312-cp312-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

ansys_mapdl_reader-0.54.2-cp312-cp312-macosx_10_9_universal2.whl (1.9 MB view details)

Uploaded CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

ansys_mapdl_reader-0.54.2-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11 Windows x86-64

ansys_mapdl_reader-0.54.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

ansys_mapdl_reader-0.54.2-cp311-cp311-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

ansys_mapdl_reader-0.54.2-cp311-cp311-macosx_10_9_universal2.whl (1.9 MB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

ansys_mapdl_reader-0.54.2-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

ansys_mapdl_reader-0.54.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

ansys_mapdl_reader-0.54.2-cp310-cp310-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

ansys_mapdl_reader-0.54.2-cp310-cp310-macosx_10_9_universal2.whl (1.9 MB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

ansys_mapdl_reader-0.54.2-cp39-cp39-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.9 Windows x86-64

ansys_mapdl_reader-0.54.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

ansys_mapdl_reader-0.54.2-cp39-cp39-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

ansys_mapdl_reader-0.54.2-cp39-cp39-macosx_10_9_universal2.whl (1.9 MB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

ansys_mapdl_reader-0.54.2-cp38-cp38-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

ansys_mapdl_reader-0.54.2-cp38-cp38-macosx_10_9_universal2.whl (1.9 MB view details)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

ansys_mapdl_reader-0.54.2-cp37-cp37m-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file ansys_mapdl_reader-0.54.2.tar.gz.

File metadata

  • Download URL: ansys_mapdl_reader-0.54.2.tar.gz
  • Upload date:
  • Size: 640.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for ansys_mapdl_reader-0.54.2.tar.gz
Algorithm Hash digest
SHA256 be8a5f065b41f89d5d62e273e3a79c36ba8ed861a6072982497bc5031e691da3
MD5 9c610130a2aec957934a64ab92cc1ea7
BLAKE2b-256 bdab71116f20f90237568d1ea7288be7222316a0b3fd418d8beb921c7b4c9e0e

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9a28257f3c8630d1ec91a8ae1ca584f5f29c2b59246d2c5cead4ea4840389779
MD5 81fd37773bd22b59a34061d09f25ce85
BLAKE2b-256 db6d8c24b95f2e2d2e5fc93995deee8129ea21cf277145dfb9c3b1fd13484084

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8588dc22e629b545eeea4c7e09303385b4ebcba2c54c40c5fc7acbec57277003
MD5 ad0fab4944921a2868b204d4b15921e8
BLAKE2b-256 ece70abec521845df965a849975d8362bf97bed15cd40ddf01f8d60b2c2128eb

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cdbbf88587f23eb072e4b98ca840c34775b1dbecc7bd2eac12385950abae5bdf
MD5 50777bf545a69f36dc49945c4220f9c8
BLAKE2b-256 ecd9365b2069886b5480c7562fac1fbeb2bcd5fb964dfdc87b0bb6b53006ba48

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e148c0dcc1e4729593f99cd56a943023c24514f0e31a1a20e842929c6ee28120
MD5 10b44f253b8c7cbdf252bca192d31291
BLAKE2b-256 c155edf938205cf073a03c9fb697d34327de5b8f6cbc9ef41f25494e664d7250

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c44ec96f96a6c20ae186918953a7fe2f2d43335f93c70e7034e1d9fb6c26bd82
MD5 5b96eb934254c228f155a242ccdcce01
BLAKE2b-256 b71a96a279a65626e40dbc77ece43b3ed3e3bda0c85dc635634f0bbbf0f4d2e9

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 270f8373b9804ca4d8c2088f14d3ae9b1ab3ba5fb2a554e5b052c7ea962c8672
MD5 5bfbf1badfca5cfce13abf3b62f087de
BLAKE2b-256 074164c8a173b479028279eacd7aad29447e95b0e24cb35fd6b3eeaa76b4d9bd

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 806d8f3b77f450162e5674f503b5a5a367f4304d6a2c470729a769fea9be60a2
MD5 8c6ca8aca2e879de6ab53948bd2f6949
BLAKE2b-256 db84719429d2ab3946d18c022468aa5c2bd58dd01b64b61ce710a9349c856a19

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 4abdf7552625413e85a8e35075e6f43cef8201de996b45d0b1451d63c552e589
MD5 8876425e4f4b939721522b183bc45812
BLAKE2b-256 688da9037602e83458b8c26c51e0d8033fb2e3b8f30232d598c69cfaa43e269b

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 743eb04581a75b25e1e7b83f5a95bd57bf9f311aae8d2308882371200c892d21
MD5 a48478bacc7223ec3293d9910c57e0a1
BLAKE2b-256 2104dc0733db851b0a3b0309680bd0b26eb03fe657440aefca89c6b74d4174eb

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d113e59349d861122f5e8f9f77e614e4e64cf147d2f998e942bdc8dd16dfd4be
MD5 33fca36b529b0126808864d7e51bb12c
BLAKE2b-256 fd162164c1555b8a5b4fd9bf2d23ef4e99665c23f07ef2c3b723101ddbaab786

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 df57a96186f03693d416bfd31ffc83b414870ef649fea64c47eff0c8596e6fda
MD5 20849165291eb9aaea829ffbdecc64bb
BLAKE2b-256 76946a974de8bb350b553d7b605c9a3319c8275ce6360394ad00f35ce9bc72e6

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 84a6ddd3b55394e9be3d6f652635da710e30ac828a22af32688f4e594493cd78
MD5 6bf0ff9390b12ce38e120182f62ea8e4
BLAKE2b-256 c64128b1a796b87c1a0fcb19449e8589812670a6a7ce8c3cb8ab9db3d66c4ff8

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 caffaba9bb8d2882b02dfb2445d3d9492fbb456b5d01dced154131f417c6f3e9
MD5 ad026a7ea7faf7bddd0b833add29caca
BLAKE2b-256 116431eee5c960ad17e4405603e752ef6f3ec71f710255ae0e297bb821a6a95e

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6566fa222adbb0df686f1af7795c8191f73bdaf027bde99c3b077d91761ec619
MD5 21db9252898d9f2d630c5684ed448bfb
BLAKE2b-256 09776e6bad33c8cdccd77e2ac44de83b325e9c2ee2ab02d826cce2a1d4780066

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2c8879281f90c14ac2488f924ffdd07f36a5f7aa1e6303fde3f7859eac55cd3a
MD5 e8ef703d2bdf0a30134363fd73117365
BLAKE2b-256 b9b9df63a0d654bb1103e6a2b39d493a0833e1922ed41ff3d6566cc9e8c8cc13

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 0a03a70b5d6b8786bfdf7bb5924bb393846d31ebe90c5571712120755e7fd9d9
MD5 b9cfb8eaf6ee437d5ddd782922bc6be1
BLAKE2b-256 48f2eae2bfc50b0badb404462c5a1687fb45e2141638ab1da642b159bf72da95

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d4f86b731de1c44f641e53e4db39f1f713abd1367ae76653e689557bad5f6964
MD5 1276c0b646576ce4e1ca0147fe8ece99
BLAKE2b-256 0cb09ddbdb0624557cafe57836ab39621ff191ece960cf3c883600ed2b805ae4

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7b69f164c876ca3e6a0fd10c0d9ede1774561fb6f819d3085c745f76e1e389b2
MD5 4b67d7605d9b3f0d1c6f210fa0745bc1
BLAKE2b-256 973d057eab980af994cb967330cec8006b9273365095bbe4ee16d057557af7b2

See more details on using hashes here.

File details

Details for the file ansys_mapdl_reader-0.54.2-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for ansys_mapdl_reader-0.54.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bee7897a39289d3b8917fc71b5f06a204eb9567f2779b96e058a78f31a15337a
MD5 0f34251da9e189ed6e1e2d6a95643e26
BLAKE2b-256 9fa2b99bc8fe5dd28583c02b4ecdd0bf4bca891ddb4f4a7adf211260a7ef947b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page