Abaqus Python Development Environment (PDE) Bug / Questions

I've been using Abaqus' PDE quite extensively while writing a large code base for the purpose of doing real time FEA for closed-loop control. There is one major annoyance I have run into while using it: the Abaqus PDE and the Abaqus executable must be restarted in order for changes to files to non-main files to be recognized by the Abaqus PDE. This means that every time I find a bug with the Abaqus PDE and make a change to a file which is not the main file in the Abaqus PDE, it is necessary to restart Abaqus and the Abaqus PDE in order for the change to be recognized.

This makes it very annoying to debug my large code base, and since Abaqus' PDE is the only way to access the debugger, I am seriously considering switching to a different FEA program to make debugging easier.

Note that I am using Abaqus 2024 on Red Hat Enterprise Linux.

Here's a simple list of steps to reproduce the issue:

  1. Download the attached main.py.txt and test.py.txt files. Remove the .txt suffices. This site prevents attaching files which end with .py.
  2. Open main.py and test.py in Abaqus PDE. Select main.py as the "main" file.
  3. Modify the sys.path.insert() statement at the top of main.py to point to the directory containing the test.py file.
  4. Run main.py. You should see "15" and "hello" printed to the Message Area in the CAE GUI.
  5. Now modify main.py so that "a=10". Re-run main.py. You should see "20" and "hello" printed to the Message Area in the CAE GUI. This illustrates that changes to the file selected as "main" in the PDE are recognized by the PDE.
  6. Now modify test.py so that test_function() prints "testing..." instead of "hello". Re-run main.py. You will see that "20" and "hello" are printed to the Message Area in the CAE GUI. The change from "hello" to "testing..." was not picked up by the Abaqus PDE! This illustrates that changes to files not selected as "main" in the PDE are not recognized by the PDE.
  7. Now close the Abaqus PDE window and re-open it. Re-run main.py. Again, you will see that "20" and "hello" are printed to the Message Area in the CAE GUI. This illustrates that restarting the Abaqus PDE still doesn't make it recognize changes.
  8. Now close the Abaqus PDE and the Abaqus window. Restart the Abaqus window, and in this new window, open the Abaqus PDE. Open main.py and test.py in Abaqus PDE and select main.py as the "main" file. Run main.py. You will see that "20" and "testing..." are printed to the Message Area in the CAE GUI. This shows that the only way to get Abaqus PDE to recognize changes to a non-main file is to fully restart Abaqus itself.

 

If anyone has a way to get around this annoyance, I would appreciate suggestions.

Also, if anyone from Dassault Systemes is reading this: Please make a command-line version of the Abaqus Python debugger available. For those of us writing large code bases that make calls into Abaqus Python API, using the Abaqus PDE to debug is extremely slow and clunky.