ansys / pyansys

Delivering PyAnsys libraries as a bundle
https://docs.pyansys.com
MIT License
141 stars 81 forks source link

ANSYS/PyAnsys version management #187

Closed agrishin closed 1 year ago

agrishin commented 1 year ago

From Costas Vogiatzis at Honeywell (Phoenix): As we are starting to use PyAnsys for Methods work we are trying to determine the best way to support multiple ANSYS versions. For context, most of PyAnsys Methods work so far involves only MAPDL. We are using PyAnsys to read RST/RTH results and to a lesser extent drive MAPDL. Python literacy among ANSYS users is low so we are wrapping PyAnsys functionality in MATLAB code so users can perform these operations from within MATLAB without using Python/PyAnsys directly. These utilities are distributed as part of a larger, general purpose MATLAB library that I maintain.

We typically have users using releases going back up to 3-4 years and we also have archived data that go back even more. Depending on ANSYS version, users would need different PyAnsys module versions and possibly different Python versions. Often times the same user would need to work with multiple ANSYS versions depending on project. Managing dependencies for different ANSYS versions can be done with virtual environments and tools like pyenv for multiple Python versions. However that becomes too complex for a casual ANSYS user: users would need to be guided through Python and module installation and virtual environment use. Also, managing the environments is somewhat fragile because of version conflicts depending on what else the user has installed on that box.

This will be an issue with deployment of PyAnsys based utilities. The concern is that it will be complex for end users to manage and they will not work reliably. We would like to understand how ANSYS envisions multiple versions of ANSYS+PyAnsys would be managed on a single computer in a robust way. Ideally we would like everything relating to PyAnsys to be included in the MAPDL installation so users would not need to manage that.

A related issue is that per the docs the legacy RST reader will be phased out. However DPF does not seem to support older ANSYS versions. That will be an issue if we transition tools to PyAnsys and then find that we cannot use them with some earlier ANSYS result. We would like to understand what tool version can read what MAPDL result file version.

Regards,

Costas Vogiatzis Aero & Mechanical Sciences Honeywell Aerospace

akaszynski commented 1 year ago

Excellent points. I'm pulling information from internal shareholders and we're formulating a response. However, a few points I'd like to make first:

germa89 commented 1 year ago

Hi @agrishin

The topics you are mentioning here are very interesting. I will drop my 2 cents with regard PyMAPDL perspective.

We will probably discuss it internally in the coming weeks. We shall let you know if some interesting points are raised in these internal meetings. Please ping us again in couple of weeks if we haven't get back to you.

akaszynski commented 1 year ago

I understand what you mean. For new Python users, some of the python nuances (i.e. virtual environments) seem complex. I don't think there are easy solutions for this. At end, it is how Python is built and we cannot change that much into this. We already shipped a python environment with Ansys installation, but still the user needs to activate it and properly use it. It might still be complex enough for some users. I think we should still work a bit more on this, but there are some limitations difficult to overcome.

We have an internal tool we can make public.

RobPasMue commented 1 year ago

Hi @agrishin - just remembered we have this issue still open. As @akaszynski mentioned, we had an internal tool that we made public a couple of months ago-

It's this project here: the Ansys Python Manager I recommend you to go through our docs in order to understand how to install it: https://installer.docs.pyansys.com/version/stable/installer.html

If you have any doubts, please let us know. We will try to help you out as much as possible.

This tool will allow you to install Python on your machines (in case you need it), handle the creation of virtual environments, and manage the installation of the public PyAnsys libraries. This tool is mostly for Windows. Let us know your feedback.

Closing the issue in the meantime