Is Python Suitable for Integrating and Updating Legacy Engineering Software?

In summary, Python would be a good choice for this project, as it is relatively easy to translate the old code into and has a large community of developers.
  • #1
bigaggie
40
0
So, my company has quite a few old programs for calculating solutions to bearings, annular seals, etc. The calculations are iterative in nature, and none of these old programs are really integrated together, which is problematic. Plus they're in Fortran (or something else), and don't run on our newer computers. So I would like to reprogram some of them to run on 64 bit Windows machines. But I'm not sure what language to use for something like this. We'd like to package them together into a software suite that we can distribute among our engineering group. I know some Python, and I think I could do it in Python relatively quickly, but is this really something that Python's suitable for? Should we be looking at C (or one of its variants)?
 
Technology news on Phys.org
  • #2
C#.NET would be a reasonable choice.
 
  • #3
If the company is paying for the job, Microsoft Visual Studio supports Fortran (but not in the free VS Express versions). All the languages are integrated with each other, so if you want to leave your Fortran code untouched and add a graphical user interface in a different language, you can.

I agree the .NET framework would be a reasonable choice for any new code. Use whichever language is easiest to translate your old code into (which probably means "old school" C, rather than C++ or C#).

There used to be a very good fortran-to-C conversion program, called, unimaginatively, f2c. I don't know if it's still around or supported though. Try Google.
 
  • #4
EDIT: If you can package up the Fortran code as a DLL, you could use the existing code from another language like Python. I don't have any practical experience with this, though. Otherwise...

Python with numpy would be a good choice.

http://www.numpy.org/

There are several Python distributions for windows that probably have all you need, like Anaconda, Canopy, WinPython, and Portable Python.

http://code.google.com/p/winpython/
http://continuum.io/downloads
https://www.enthought.com/products/canopy/
http://portablepython.com/

I use WinPython. The default install is just a directory, with no registry changes. It's only as invasive as you want it to be. But Portable Python may be even more convenient in this way since it's meant to be run off a USB stick.

And here's a site with many pre-compiled scientific Python modules for windows:

http://www.lfd.uci.edu/~gohlke/pythonlibs/

With numpy, you want to try to convert an iterative solution to a vectorized solution. Usually this is very straightforward, but some cases may take some thought. In the case where only an iterative solution will work, I've found Cython fairly easy to use for massive speedups without having to write C by hand:

http://cython.org/
 
Last edited:
  • #7
Thanks for the help guys. Looks like we'll have to find a co-op or something (we're a bunch of mech engineers).
 

Related to Is Python Suitable for Integrating and Updating Legacy Engineering Software?

What is the "Language for Bearing Program"?

The "Language for Bearing Program" is a language learning program designed for individuals who need to improve their language skills for professional or academic purposes. It focuses on developing fluency, accuracy, and confidence in using the target language.

Who is the program suitable for?

The program is suitable for individuals who have a basic understanding of the target language and want to improve their proficiency for specific purposes. It is also beneficial for professionals who work in international settings and need to communicate effectively with colleagues or clients.

What are the main components of the program?

The program includes a variety of activities and exercises that focus on developing all four language skills: listening, speaking, reading, and writing. It also incorporates cultural and situational contexts to help learners understand and use the language in real-life situations.

How long does it take to complete the program?

The duration of the program may vary depending on the individual's starting level and learning pace. However, on average, it takes around 6-12 months to complete the program and achieve a significant improvement in language proficiency.

What are the benefits of the "Language for Bearing Program"?

The program offers numerous benefits, including improved communication skills, increased confidence in using the target language, enhanced cultural understanding, and better job opportunities. It also helps individuals develop critical thinking, problem-solving, and interpersonal skills.

Similar threads

  • Programming and Computer Science
Replies
16
Views
1K
  • Programming and Computer Science
Replies
9
Views
1K
  • Programming and Computer Science
Replies
4
Views
4K
  • Programming and Computer Science
Replies
14
Views
3K
  • Programming and Computer Science
Replies
2
Views
3K
  • STEM Academic Advising
Replies
4
Views
2K
  • STEM Career Guidance
Replies
2
Views
1K
Replies
4
Views
3K
  • Mechanical Engineering
Replies
1
Views
2K
Back
Top