What computer skills are required for physicists working in the field?

Click For Summary

Discussion Overview

The discussion revolves around the computer skills and programming languages utilized by physicists in their work, particularly focusing on those in the field rather than students. Participants share their experiences with various technologies and programming languages relevant to computational physics, data analysis, and simulations.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Homework-related

Main Points Raised

  • Some participants mention the use of MATLAB for data analysis and visualization, while others highlight the importance of C and Fortran for numerical computations and simulations.
  • A graduate student describes translating code from MATLAB to C, achieving significant speed improvements and applying evolutionary algorithms for parameter fitting.
  • Several participants note that the choice of programming language depends on the specific computational needs of their work, with some favoring symbolic computation tools like Maple and Mathematica.
  • One participant discusses using a combination of C/C++ and Fortran for high-performance computing (HPC) applications, while also utilizing MATLAB for educational purposes.
  • Another participant expresses interest in learning Java for physics applications, despite most contributions favoring C and Fortran.
  • A participant shares their experience developing an interactive Java animation for simulating orbits around black holes, detailing the functionalities and experiments included in the package.

Areas of Agreement / Disagreement

Participants generally agree on the importance of programming skills in physics, but there are multiple competing views regarding which languages and tools are most effective or necessary. The discussion remains unresolved regarding the best approach to programming in physics.

Contextual Notes

Some participants indicate that the effectiveness of certain programming languages may depend on the specific tasks or projects they are involved in, highlighting a lack of consensus on a universal set of skills required for all physicists.

snackanddrink
Messages
11
Reaction score
0
I thought this might be a well-used thread if I asked the following:

What computer skills do physicists use in their work? Please tell me what technology you have learned for whatever job you do. This questions mostly geared toward those of you guys out in the field, not fellow undergrads like myself. (:
 
Physics news on Phys.org
I'm a graduate student doing work in the stochastic solution of chemical rate equations.

This is a purely computational exercise. The original code was in MATLAB, but I translated it to C this summer and obtained speed improvements of about 200x. Currently, we're working on applying evolutionary algorithms to pick rate parameters that give us the best fit to "experiment".
 
matlab, c and fortran are widely used. how much and what exactly you need to know depends a lot on how computationally oriented whatever you do is. I mainly use MATLAB for data-analysis but all of the heavier computational work the theorists do at our lab is done in fortran or c.
 
As others have said, C and Fortran for numerical work like solving differential equations, computing definite integrals, finding roots, etc.

Maple and Mathematica are used to do the above things symbolically, if possible. Sometimes an attack that uses a combination of symbolic and numerical computer methods is needed.
 
Matlab - great for visualising results, fast.
 
As a grad student, I work with fortran and mathematica on a daily basis. Fortran, because that is what most of the codes I work on were written in before my time. Mathematica because my advisor uses it for a lot of things so it makes it easy for me to send him files regularily. He does use it for things that would be better done with MATLAB but that just isn't the way he does things.
 
I'm also a grad student, and I will be working in C/C++/F for my simulations dealing with HPC "realtime" rendering and Nbody. I also use Matlab for classes(booo).
 
I'm dabbling with C# in my spare time. The C family are extraordinarily powerful, but can be very difficult to use and perhaps are superfluous for physics applications in some cases. They teach FORTRAN here in second and third year, and the staff are apparently quite keen on MATLAB for certain things, but I never got on with it.
 
I do mostly condensed matter & material science stuff ... Cs, F for HPC, Python, some Perl, Java, visual basic etc. ... quite a bit of the software development is done "directly" using MATLAB & mathematica (scripting, simple GUI builders, their 'compilers') and various other scripting languages/interfaces.
 
  • #10
I'm an undergrad student, first year in Theoretical Physics / Applied Maths, I have taken 2 years of java in Highschool, I would really like to pursue advanced programming with java and physics together. If anyone has any resources I'd gladly appreciate them. I know that most of you said you work in a C language or Fortran, but I would like to try my luck at writing programs for physics with java
 
  • #11
mgiddy911 said:
I'm an undergrad student, first year in Theoretical Physics / Applied Maths, I have taken 2 years of java in Highschool, I would really like to pursue advanced programming with java and physics together. If anyone has any resources I'd gladly appreciate them. I know that most of you said you work in a C language or Fortran, but I would like to try my luck at writing programs for physics with java

You might want to look at these books, which complement each other nicely.

Java Number Cruncher: The Java Programmer's Guide to Numerical Computing

https://www.amazon.com/gp/product/0521821134/?tag=pfamazon01-20

In order to teach myself some Java, I have developed an interactive animation that shows orbits (timelike geodesics parametrized by proper time) about Schwarzschild black holes. The program numerically solves differential equations, computesdefinite integrals, finding roots, and plots the results graphically.

The animation takes as input from the user the initial r coordinate, and the initial speed and angle with respect to an orthonormal frame of a platform hovering (and experiencing an incredibly large "g-force") at that r value.

The animation sits in a frame in a bunch of hyperlinked html files. These files contain a number of short explanations and write-ups for some suggested virtual experiments that can be performed with the package.

Experiment 1: Falling Into a Black Hole
Experiment 2: Escape Velocity
Experiment 3: Investigation of Stable Circular Orbits
Experiment 4: Investigation of Unstable Circular Orbits
Experiment 5: Investigation of Spiral Orbits
Experiment 6: Gravity Bends Light Rays!
Experiment 7: Boundaries Between Orbits of Various Kinds
Experiment 8: Orbital Precession and Closed Orbits

I've had a lot of fun (and some frustrations) developing and playing with the package. I have attached a zipped file that contains all the necessary files. To use the animation, unzip the zipped file, making sure that all files are extracted into the same folder. (A new folder should probably created before doing this.) Click on the file blackHoleOrbits.html to view and interact with the animation.

The animation is certainly not at a professional level, and it has glitches and warts.

I posted this a couple of years ago, but I think I have fixed one of the minor glitches.
 

Attachments

Last edited by a moderator:

Similar threads

  • · Replies 7 ·
Replies
7
Views
1K
  • · Replies 1 ·
Replies
1
Views
1K
Replies
2
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 6 ·
Replies
6
Views
3K
Replies
32
Views
2K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 14 ·
Replies
14
Views
2K
  • · Replies 19 ·
Replies
19
Views
4K