I am evaluating various Open Source tools for use in EE resarch. Few interesting ones would be Octave, SciLab, Python with Numpy and SciPy. Anyone care to share experiences, good or bad? Any other suggestions?
I don't know about the specific demands of EE research, but I am using Python in combination with Numpy and SciPy (and matplotlib) as a Matlab substitute. The good thing is that you get to use a "real" programming language that is much more flexible and robust than Matlab and that scales to larger projects. I also quite like the quality of the graphics produced by matplotlib and its configurability; however, its 3D plotting capabilities (using mplot3d) are a bit limited compared to Matlab at this time.
The main drawback might be that SciPy etc. is less comprehensive than a full-blown Matlab installation with all its toolboxes and extensive documentation. You should make sure that SciPy either includes all the tools you need or that there are at least third-party Python libraries satisfying your requirements.
The answer highly depends on the aim, scope, and functional requirements related to particular research. For instance would you like to stay in the realm of scripting environment only or allow for mixed language programming mode? Another question is if you aim mainly at using ready tools (complete programs or packages) with minimal
modifications or you envisage the need of extensive programming.
Another issue is if you are interested in the results of finite element analysis, interpretation of the results and applications in concrete problems, or you are interested in finite element method pre se, that is you would like to develop new FE formulations and you would like to challenge your understanding of an underlying theory by providing sample implementations. Without considering the above issues (and couple more) all answers would be rather vague generalizations and as such not really useful. That said, I'm using mixed language programming aproach with C++ FEM engines (GetFEM++ for instance) and Python in scripting layer.
About 3D graphics pointed by Frank above, I'm currently using VTK with its Python Interface. There is also a Matlab interface too. But you can keep on with Python with 3D graphics without problems.
More generally, some drawback I can point, about Python, out is due to its tremendous universality. You can do anything with it, and so, it's difficult to point out what is good for you, and what is not.
Some packaging a la Matlab is usefull, to ensure some coherence and no redundency.
This is the role of Pythonxy package. Specially devoted to Windows users, it is easy to follow this coherence under Unix Oses (Linux...)