At one point, I need to do some postprocessing on the result data from Abaqus. Abaqus python scripting is a great tool but it does not satisfy my needs. I eventually choose ParaView due to its open source and visualization pipeline. I can write my own filter to perform complex postprocessing tasks at the speed of C/C++! In fact, most of the time I do not even have to implement details because ParaView already has a rich library of filters where I can combine to achieve what I need. Then, the question becomes, how do I read output database from Abaqus in ParaView? This is how I get started for this project and we eventually published a paper in an open source journal to talk about the designs.
Most of the feedback/complains I got is that the Python version is running slow for converting large ODB files. When I wrote the code, I want to it be used out of the box. Importing other packaged libraries is not an option. Downside is that I use Python IO to write data line by line. This is largest bottleneck in performance. In retrospect, there are probably two options in Python:
- Find a Python library which can transfer numpy data in memory and write them down in C. Does it exist? How is the compatibility in Python 2.7?
- Implement it by myself in C and wrap it with Python. Very catchy but I do not know how much time it takes. I have never written a Python package before.
In the end, I just get away with C++ implementation (Abaqus provides API for both Python and C++). So if you have a large ODB to convert, just stick to C++!