# Linux Software useful for PhD

Tags:
1. Sep 3, 2016

### RobosaurusRex

Hi,

I am a PhD student studying fluid dynamics, and have a heavy interest in numerical programming and simulations. I come from a background in Applied Mathematics and Theoretical Physics.

I have an ubuntu system set up and I have the typical software I plan to be using regularly, ie MATLAB, Python, LaTeX.

Is there any useful/fun software you guys recommend that either is obscure or something not many people would think of? Anything relevant to maths/physics or even just admin related to PhD is much appreciated!

Even any coding languages which you think would be of worth, please throw them down to.

Thanks!

2. Sep 3, 2016

### Dr Transport

If you are doing CFD, you need a compiler for your code, C++ or FORTRAN because CFD unstructured grids take an immense amount of time to run and converge to a reasonable answer. Matlab is OK for initial algorithm development.

3. Sep 3, 2016

4. Sep 4, 2016

### RobosaurusRex

Do you have any recommendations for source material to a novice of fortran

5. Sep 4, 2016

### Dr Transport

Thousands of sites online...... and if your professor is older than 40, they most likely wrote fortran in the past.

6. Sep 4, 2016

7. Sep 4, 2016

8. Sep 6, 2016

### bigfooted

I also recommend to use something like http://www.japref.org [Broken] to keep track of your growing list of research papers, it can be easily used with latex to create bibliographies. You can also put an addon in firefox so if you are on springer or elsevier, you can directly put the bibliography information in jabref.

For making simple drawings (with latex support) I used to use http://epb.lbl.gov/xfig/ [Broken], but it is no longer maintained (any other recommendations?).
For making 2d plots, I use gnuplot or xmgrace

I also recommend playing around with command lines using sed and awk to manipulate output files. there are some interesting websites with lists of oneliners that are real time savers.
When debugging, use the debugger. That's what it's for. Also learn how to use a profiler. I have used valgrind, but if there are others that are better, I'm happy to hear about them.

Last edited by a moderator: May 8, 2017
9. Sep 6, 2016

### Krylov

In addition to what was mentioned above I would like to recommend the "Guide to Fortran 200x Programming" by Walt Brainerd. I read the book for $x = 3$ and found it very useful. Recently I saw that there is a new edition corresponding to $x = 8$. I also heard good things about "Modern Fortran in Practice" by Arjen Markus, but I do not own that book myself.

As a compiler you could use gfortran, which is part of GCC. Depending on your employment situation and your hardware, you could also be eligible for free use of Intel's compiler and fine-tuned versions of standard numerical libraries (BLAS and LAPACK, among others).

Last edited: Sep 6, 2016
10. Sep 6, 2016

### Staff: Mentor

If you're working in a mixed programming environment then you might want to check out Julia as it can interoperable with fortran, R, Python and c/c++. Julia is a more modern open source version of MATLAB.