Pythonic interface to files generated by MAPDL
Project description
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')
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')
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')
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)
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:
- Install Visual C++
See here for a list of which Python versions correspond to which Visual C++ version
- Install the development version of pymapdl-reader to your Python environment
Navigate to the project’s top level (the same directory as this README)
run pip install -e .
License and Acknowledgments
The ansys-mapdl-reader library is licensed under the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | be8a5f065b41f89d5d62e273e3a79c36ba8ed861a6072982497bc5031e691da3 |
|
MD5 | 9c610130a2aec957934a64ab92cc1ea7 |
|
BLAKE2b-256 | bdab71116f20f90237568d1ea7288be7222316a0b3fd418d8beb921c7b4c9e0e |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp312-cp312-win_amd64.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a28257f3c8630d1ec91a8ae1ca584f5f29c2b59246d2c5cead4ea4840389779 |
|
MD5 | 81fd37773bd22b59a34061d09f25ce85 |
|
BLAKE2b-256 | db6d8c24b95f2e2d2e5fc93995deee8129ea21cf277145dfb9c3b1fd13484084 |
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
- Download URL: ansys_mapdl_reader-0.54.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8588dc22e629b545eeea4c7e09303385b4ebcba2c54c40c5fc7acbec57277003 |
|
MD5 | ad0fab4944921a2868b204d4b15921e8 |
|
BLAKE2b-256 | ece70abec521845df965a849975d8362bf97bed15cd40ddf01f8d60b2c2128eb |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp312-cp312-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp312-cp312-macosx_10_9_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.12, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdbbf88587f23eb072e4b98ca840c34775b1dbecc7bd2eac12385950abae5bdf |
|
MD5 | 50777bf545a69f36dc49945c4220f9c8 |
|
BLAKE2b-256 | ecd9365b2069886b5480c7562fac1fbeb2bcd5fb964dfdc87b0bb6b53006ba48 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp312-cp312-macosx_10_9_universal2.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp312-cp312-macosx_10_9_universal2.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.12, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e148c0dcc1e4729593f99cd56a943023c24514f0e31a1a20e842929c6ee28120 |
|
MD5 | 10b44f253b8c7cbdf252bca192d31291 |
|
BLAKE2b-256 | c155edf938205cf073a03c9fb697d34327de5b8f6cbc9ef41f25494e664d7250 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c44ec96f96a6c20ae186918953a7fe2f2d43335f93c70e7034e1d9fb6c26bd82 |
|
MD5 | 5b96eb934254c228f155a242ccdcce01 |
|
BLAKE2b-256 | b71a96a279a65626e40dbc77ece43b3ed3e3bda0c85dc635634f0bbbf0f4d2e9 |
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
- Download URL: ansys_mapdl_reader-0.54.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 270f8373b9804ca4d8c2088f14d3ae9b1ab3ba5fb2a554e5b052c7ea962c8672 |
|
MD5 | 5bfbf1badfca5cfce13abf3b62f087de |
|
BLAKE2b-256 | 074164c8a173b479028279eacd7aad29447e95b0e24cb35fd6b3eeaa76b4d9bd |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp311-cp311-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 806d8f3b77f450162e5674f503b5a5a367f4304d6a2c470729a769fea9be60a2 |
|
MD5 | 8c6ca8aca2e879de6ab53948bd2f6949 |
|
BLAKE2b-256 | db84719429d2ab3946d18c022468aa5c2bd58dd01b64b61ce710a9349c856a19 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp311-cp311-macosx_10_9_universal2.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp311-cp311-macosx_10_9_universal2.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.11, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4abdf7552625413e85a8e35075e6f43cef8201de996b45d0b1451d63c552e589 |
|
MD5 | 8876425e4f4b939721522b183bc45812 |
|
BLAKE2b-256 | 688da9037602e83458b8c26c51e0d8033fb2e3b8f30232d598c69cfaa43e269b |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 743eb04581a75b25e1e7b83f5a95bd57bf9f311aae8d2308882371200c892d21 |
|
MD5 | a48478bacc7223ec3293d9910c57e0a1 |
|
BLAKE2b-256 | 2104dc0733db851b0a3b0309680bd0b26eb03fe657440aefca89c6b74d4174eb |
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
- Download URL: ansys_mapdl_reader-0.54.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d113e59349d861122f5e8f9f77e614e4e64cf147d2f998e942bdc8dd16dfd4be |
|
MD5 | 33fca36b529b0126808864d7e51bb12c |
|
BLAKE2b-256 | fd162164c1555b8a5b4fd9bf2d23ef4e99665c23f07ef2c3b723101ddbaab786 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp310-cp310-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df57a96186f03693d416bfd31ffc83b414870ef649fea64c47eff0c8596e6fda |
|
MD5 | 20849165291eb9aaea829ffbdecc64bb |
|
BLAKE2b-256 | 76946a974de8bb350b553d7b605c9a3319c8275ce6360394ad00f35ce9bc72e6 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp310-cp310-macosx_10_9_universal2.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp310-cp310-macosx_10_9_universal2.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84a6ddd3b55394e9be3d6f652635da710e30ac828a22af32688f4e594493cd78 |
|
MD5 | 6bf0ff9390b12ce38e120182f62ea8e4 |
|
BLAKE2b-256 | c64128b1a796b87c1a0fcb19449e8589812670a6a7ce8c3cb8ab9db3d66c4ff8 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | caffaba9bb8d2882b02dfb2445d3d9492fbb456b5d01dced154131f417c6f3e9 |
|
MD5 | ad026a7ea7faf7bddd0b833add29caca |
|
BLAKE2b-256 | 116431eee5c960ad17e4405603e752ef6f3ec71f710255ae0e297bb821a6a95e |
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
- Download URL: ansys_mapdl_reader-0.54.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6566fa222adbb0df686f1af7795c8191f73bdaf027bde99c3b077d91761ec619 |
|
MD5 | 21db9252898d9f2d630c5684ed448bfb |
|
BLAKE2b-256 | 09776e6bad33c8cdccd77e2ac44de83b325e9c2ee2ab02d826cce2a1d4780066 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp39-cp39-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c8879281f90c14ac2488f924ffdd07f36a5f7aa1e6303fde3f7859eac55cd3a |
|
MD5 | e8ef703d2bdf0a30134363fd73117365 |
|
BLAKE2b-256 | b9b9df63a0d654bb1103e6a2b39d493a0833e1922ed41ff3d6566cc9e8c8cc13 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp39-cp39-macosx_10_9_universal2.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp39-cp39-macosx_10_9_universal2.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a03a70b5d6b8786bfdf7bb5924bb393846d31ebe90c5571712120755e7fd9d9 |
|
MD5 | b9cfb8eaf6ee437d5ddd782922bc6be1 |
|
BLAKE2b-256 | 48f2eae2bfc50b0badb404462c5a1687fb45e2141638ab1da642b159bf72da95 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp38-cp38-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp38-cp38-macosx_10_9_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.8, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4f86b731de1c44f641e53e4db39f1f713abd1367ae76653e689557bad5f6964 |
|
MD5 | 1276c0b646576ce4e1ca0147fe8ece99 |
|
BLAKE2b-256 | 0cb09ddbdb0624557cafe57836ab39621ff191ece960cf3c883600ed2b805ae4 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp38-cp38-macosx_10_9_universal2.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp38-cp38-macosx_10_9_universal2.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.8, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b69f164c876ca3e6a0fd10c0d9ede1774561fb6f819d3085c745f76e1e389b2 |
|
MD5 | 4b67d7605d9b3f0d1c6f210fa0745bc1 |
|
BLAKE2b-256 | 973d057eab980af994cb967330cec8006b9273365095bbe4ee16d057557af7b2 |
File details
Details for the file ansys_mapdl_reader-0.54.2-cp37-cp37m-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ansys_mapdl_reader-0.54.2-cp37-cp37m-macosx_10_9_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.7m, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bee7897a39289d3b8917fc71b5f06a204eb9567f2779b96e058a78f31a15337a |
|
MD5 | 0f34251da9e189ed6e1e2d6a95643e26 |
|
BLAKE2b-256 | 9fa2b99bc8fe5dd28583c02b4ecdd0bf4bca891ddb4f4a7adf211260a7ef947b |