A Python wrapper for Ansys mapdl core
Project description
Overview
The PyMAPDL project supports Pythonic access to MAPDL to be able to communicate with the MAPDL process directly from Python. The latest ansys-mapdl-core package enables a more comprehensive interface with MAPDL and supports:
All the features of the original module (e.g. pythonic commands, interactive sessions).
Remote connections to MAPDL from anywhere via gRPC.
Direct access to MAPDL arrays, meshes, and geometry as Python objects.
Low level access to the MAPDL solver through APDL math in a scipy like interface.
Here’s a quick demo of PyMAPDL within VSCode:
PyMAPDL works within Jupyter Notebooks, the standard Python console, or in batch mode on Windows, Linux, and even Mac OS.
Documentation and Issues
See the Documentation page for more details, and the Examples gallery for some examples.
Please feel free to post issues and other questions at PyMAPDL Issues. This is the best place to post questions and code.
Project Transition - Legacy Support
This project was formerly known as pyansys, and we’d like to thank all the early adopters, contributors, and users who submitted issues, gave feedback, and contributed code through the years. The pyansys project has been taken up Ansys and will be leveraged in creating new Pythonic, cross-platform, and multi-language service based interfaces for Ansys’s products. Your contributions to pyansys has shaped it into a better solution.
The pyansys project is expanding beyond just MAPDL, and while there are many new features and changes to the original Python module, many steps have been taken to ensure compatibility with legacy code while supporting new features. The original python module has been split up into the following projects and modules:
Please visit the GitHub pages for further details regarding each project.
Installation
The ansys-mapdl-core package currently supports Python 3.6 through Python 3.8 on Windows, Mac OS, and Linux.
Install the latest release from PyPi with:
pip install ansys-mapdl-core
Alternatively, install the latest from PyMAPDL GitHub via:
pip install git+https://github.com/pyansys/pymapdl.git
For a local “development” version, install with:
git clone https://github.com/pyansys/pymapdl.git
cd mapdl
pip install -e .
Dependencies
You will need a local licenced copy of ANSYS to run MAPDL prior and including 2021R1. If you have the latest version of 2021R1 you do not need MAPDL installed locally and can connect to a remote instance via gRPC.
Getting Started
Launch MAPDL Locally
You can launch MAPDL locally directly from Python using launch_mapdl:
from ansys.mapdl.core import launch_mapdl
mapdl = launch_mapdl()
This automatically searches for the latest local version of MAPDL, launches it as a background process, and immediately connects to it. You can then start sending python commands to MAPDL.
Launching Manually or Connecting to a Remote Instance
If you wish to connect to a session of MAPDL on a remote computer (either locally the LAN or through the internet), first ensure you have MAPDL started in gRPC server mode. This example assumes you will be launching an instance locally from Windows, but can be easily adapted to run from Linux, or the LAN provided the necessary ports are open. This example specifies the port with -port 50052, but this option can be left out if you plan on using the default port 50052.
start "MAPDL" "%ANSYS211_DIR%\bin\winx64\ANSYS211.exe" -port 50052 -grpc
Next, connect to the instance of MAPDL from python with:
>>> from ansys.mapdl.core import Mapdl
>>> ip = '127.0.0.1'
>>> mapdl = Mapdl(ip=ip, port=50052, start_instance=False)
>>> print(mapdl)
A successful connection returns:
Product: ANSYS Mechanical Enterprise
MAPDL Version: RELEASE 2020 R2 BUILD 20.2TEST UPDATE 20200601
ansys.mapdl.core Version: 0.57.0
Should you wish to connect to this instance of MAPDL from a remote computer, you substitute ip= with the LAN or WAN address of the computer you wish to connect to. Depending on your network settings, you may have to open local ports or enable port redirection across the WAN.
Basic Usage
You run MAPDL commands via:
mapdl.run('/PREP7')
Nearly all the built-in MAPDL commands have an associated pythonic method mapped to it. For example, /PREP7 is:
mapdl.prep7()
There are also non-mapdl commands such as mapdl.eplot which plot elements using vtk and pyvista rather than relying on MAPDL’s graphics server. Another is mapdl.vget, which leverages gRPC to rapidly exchange binary arrays from MAPDL to Python rather than relying on file IO to exchange data.
Additionally, there are the post_processing, geometry, and mesh properties, which you can use to perform remote (or local) post processing without result file exchange, display geometry properties, or view mesh statistics. Additionally, there’s the parameters property which shows the active MAPDL parameters, and you can use to send or receive arrays between MAPDL and Python.
See the full documentation at PyMAPDL Documentation for more details.
Run on Docker
Run MAPDL within a container on any OS with docker!
See MAPDL on Docker README for details regarding using MAPDL within a container.
Citing this Module
If you use PyMAPDL for research and would like to cite the module and source, you can visit pyansys Zenodo and generate the correct citation. For example, the BibTex citation is:
@software{alexander_kaszynski_2020_4009467,
author = {Alexander Kaszynski},
title = {{pyansys: Python Interface to MAPDL and Associated
Binary and ASCII Files}},
month = aug,
year = 2020,
publisher = {Zenodo},
version = {0.43.2},
doi = {10.5281/zenodo.4009467},
url = {https://doi.org/10.5281/zenodo.4009467}
}
Please visit the link above for the most recent citation as the citation here may not be current.
License and Acknowledgments
PyMAPDL is licensed under the MIT license.
This module, ansys-mapdl-core makes no commercial claim over Ansys whatsoever. This tool extends the functionality of MAPDL by adding a Python interface to the MAPDL service without changing the core behavior or license of the original software. The use of the interactive APDL control of PyMAPDL requires a legally licensed local copy of Ansys.
To get a copy of Ansys, please visit Ansys.
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 Distribution
File details
Details for the file ansys-mapdl-core-0.61.2.tar.gz
.
File metadata
- Download URL: ansys-mapdl-core-0.61.2.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a2ca67b5c0ae0ffe9067f4bf66be73475f8d0d0a41233ee3056973187599958 |
|
MD5 | 8c60a89889de9721b4c41f9db0fd63e6 |
|
BLAKE2b-256 | b49422191b0389edcc87cb918b0692890c2881744f71caa574e404796dfd2ef4 |
File details
Details for the file ansys_mapdl_core-0.61.2-py3-none-any.whl
.
File metadata
- Download URL: ansys_mapdl_core-0.61.2-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | db21e4c583be7087d01175c5d21f15b4c7b36e932005776dbd5945833c891ef3 |
|
MD5 | ab850171a1cb62f37370fb3f760b3467 |
|
BLAKE2b-256 | 0a3d5bd212d546ecc496d5c4ade4c27cac9c66aa99066fff48b4e71fb6935a24 |