1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Physics What do theoretical physicists actually do?

  1. Dec 27, 2017 #1
    Dear PF community,

    I was wondering, what do theoretical physicists actually do? Putting teaching and marking responsibilities aside, would you be able to describe to me your day-to-day activities when you do research? It is something that has been on my mind for a while.

    I suspect PF members will now ask me to elaborate on what I mean by “theoretical physicist”. What I mean is someone who is not engaged into experimental work (hence, I am not restricting the question solely to string theorists). Do you construct mathematical models to explain experimental results? What programs do you use? Do you use Matlab when doing computations? Or Mathematica perhaps? I read somewhere that exactly solvable problems in physics and maths are rare – does that mean you often use approximations or numerical analyses? How often do you collaborate with experimentalists in your research area? Etc.

    Thank you for reading so far, happy holidays everyone! :)
     
  2. jcsd
  3. Dec 27, 2017 #2
    Hi!

    Excellent question, I am still an undergrad but I have also asked the question many times, heres how an ordinary day can look like for my friends who does research, besides all teaching and responsibilities.

    They are usually a part of a research team (even though they might work very independently) doing research on a subject, not always to expect a specific solution/answer but sometimes just to deepen in a field.

    My friend do research beyond the standard model, he investigates and predicts how particles interact at very high energy levels.

    He reads articles related to his work to gain eventual insight. Sit with java or c+ to simulate a particle collision/interaction at very high energy levels, run some simulations and sit and analyze the result, was it expected, was something strange, why was it strange? And then do it again. This subject is very hard to do manual computations around so he mainly work with hes computer.

    He also skype and do meetings to discuss results, get input from other in the research-team or with research-teams in a similar area.

    Eventually he finds an interesting pattern in behavior/outcomes and write an article about it (actually parallell with the work).

    He fines it, and hope one day hes predictions will be found at cern.

    It is hard to map down a day because one never know the project will turn out, one answer open up the door to even more questions.

    I have other friends, phd-students, who only work with pen and paper to solve differential-equation problems, so they read, think, do math, discuss and write articles.
     
  4. Dec 27, 2017 #3
    Some of the more pure theorists will come along and give their answers which will provide a more complete picture, but I've published enough theory papers and worked with enough theorists in atomic physics to begin to paint a picture.

    Most of the theoretical physics I've seen and been a part of is developing and implementing theory to either make predictions for experiments that are expected in the next few years or to explain and validate new theoretical methods with recent experimental results. Since the calculations tend to be computationally intensive, they tend to be coded in C or Fortran rather than Matlab or MMA. Once a theoretical method and computational results are validated by comparison with experimental results, they can be used to more fully explore the parameter spaces and make predictions relating to system behavior in areas where experimental results are not yet available.
     
  5. Jan 16, 2018 #4
    Just one quick question - when you say C, do you mean any one from the whole family of languages: C/C++/C#, or are you referring to C specifically?

    Thank you both for your replies, FilipLand and Dr. Courtney. Sorry it took me so long to get back to it, I have been on holidays.
     
  6. Jan 16, 2018 #5

    Dr Transport

    User Avatar
    Science Advisor
    Gold Member

    yes....
     
  7. Jan 16, 2018 #6
    Most of what I've seen and done has been in C. I would not put a premium on learning other variants for number crunching. But it's possible you get dropped into a group where you need to roll with a variant.
     
  8. Jan 17, 2018 #7

    DrDu

    User Avatar
    Science Advisor

    From my experience most successful theorists work in close collaboration with one or several groups of experimentalists. You have to develop a thorough understanding in how these experiments work and be able to interpret the outcome or predict new experiments to confirm your hypotheses.
    Theoreticians work on all fields, not only particle physics, but from biophysics, solid state physics, nuclear physics to chemical physics.
    While it is true that a model which is realistic in all respects is often too complicated to be solved analytically, I think that finding analytical models which allow you to develop a qualitative understanding of what is going on is an important task of a theoretician.

    Most theoreticians prefer to use open code, often in c++ these days and at least partly written by themselves, to Matlab. Maple and Mathematica come very handy to do and plot analytical calculations.
     
  9. Jan 29, 2018 #8

    analogdesign

    User Avatar
    Science Advisor

    Just saw this and can't resist... you could still code in MMA if you want to beat the hell out of the problem. **baddabing!**

    In all seriousness, I work with a lot of physicists and Dr. Courtney + DrDu are right. One modification I'd make to Dr. Courtney's answer is a lot of the simulation or analysis frameworks are coded in C++ (e.g. ROOT, GEANT) and physicists often either code directly in C++ (although ROOT is weird C++) or use a Python front end (the number crunching is done in C). Fortran is still used if the intended simulation target is a supercomputer.

    One thing I've noticed is Python is gaining traction everywhere. More and more people are migrating from MATLAB (or other tools) to Python. I am trying to wean myself off MATLAB too (and I'm an engineer). It's a big trend.
     
  10. Feb 5, 2018 #9

    Scrumhalf

    User Avatar
    Gold Member

    A slight tangent - OP, I hope you don't mind. If you do, let me know and I'll take this to private message.

    Analogdesign, one of my 2018 goals is to become proficient with MATLAB. I've never had a need to use it so far in my professional career. I am reasonably familiar with Python though (my wife is the real expert in it though). Does Python have all the libraries and plotting/visualization options that MATLAB does?
     
  11. Feb 5, 2018 #10
    Not at all.

    That is most certainly the trend in my (previous) geophysics department - leaving MATLAB and moving towards Python (Anaconda), which is free and saves the department money.

    From what I was explained, the free version of Anaconda would typically lack the "latest" features MATLAB would have, until the next version is released. But since I never used either, this could be wrong.
     
  12. Feb 5, 2018 #11

    Scrumhalf

    User Avatar
    Gold Member

    Thanks! I was just reading up on Anaconda. Downloading as we speak! :)
     
  13. Feb 6, 2018 #12

    wle

    User Avatar

    I'd recommend against this, mainly because Matlab is proprietary. If you become an expert at Matlab then you are becoming an expert at using one company's product. Anything you develop in Matlab that you might like to share will also only be useful to others who have access to Matlab, unless you were careful to make sure it will also run in Octave. Personally I also find Matlab's programming language a bit lame compared with freely available languages like Python.

    By all means use Matlab if you have access to it. I do, from time to time, but I don't see it as something that is worth investing time becoming an expert at. There are plenty of freely available alternatives and once you have a certain amount of experience with programming and numerics in general then it should be quite easy to switch to Matlab if you find you really do need it specifically for something or other.
     
  14. Feb 7, 2018 #13
    I'm familiar with these areas of theoretical physics:
    1. Condensed Matter Theory.
    2. High Energy Phenomology
    3. High Energy Physics/Standard Model Completion (that includes string theorist).
    4. AdS/CFT guys (string theorist who wants to find connections with QFT).
    5. Cosmologist.
    6. Plasma Theory.

    For most in area 1 & 3 & 4, most of the time is spent reading papers, discussing papers with peers/collaborators and brainstorming on the blackboard ideas. Sometimes vigorously, having thought experiments and arguments to prove/disprove certain ideas. A lot of those thought experiments require careful analytical (pen/paper) calulation, which many do on paper, and sometimes on Mathematica. Mathematica is very nicely optimize for analytical/simple graphing/simple numerics, which is highly suitable for the analytical work.

    What I see is that as you transition out to area 2 & 5 & 6, I see more evidence of heavy lifting numerical work, something that require a computer cluster to compute and often is written in an optimized language for numeric/data processing. For midsized jobs, python/matlab works fine, but for area 6, some of the PDE's are coded in Fortran or C++ and solved on a massive cluster.
     
  15. Feb 8, 2018 #14
    Theory student here. If you look at the typical Google scholar profile, you will see several types of papers for a typical theorist.

    1. Fundamental papers. These typically deal with very simple real systems or toy models. They are intended to elucidate some detail about the theory itself rather than make predictions. The best papers in this category are those that are qualitatively insightful in a fashion that can be observed experimentally (for instance, early models on the electron-phonon interaction were not predictive, but anticipated a variety of effects qualitatively that were intuitively used in the design of devices).

    2. Applied papers. Here the theorist is often listed as a co-author with an experimental group. They have typically performed a variety of calculations within the context of existing theory. These days the calculations are almost always performed with computers to some degree, so most competent theorists are competent programmers/applied computer scientists.

    EDIT: I'm very experienced with both Python and MATLAB. Frankly, both are such trivial languages by comparison to Fortran or C that you should learn whichever is pertinent to your current situation, and then switch to the other as needed. They are actually similar to each other; I've rewritten MATLAB codes in python and it is pretty simple. In fact, there are modules to import one into the other which are getting better all the time.

    Also, MATLAB has a very powerful IDE. Python has a more fickle, complex environment. I prefer Python, but it's not going to completely displace MATLAB anytime soon. For instance, IIRC MATLAB for loops are pretty easy to compile to C (or something like that, I'm not a superuser). You can do this with cython or by vectorizing your algorithm (via Numpy) but it is harder to do with Python.
     
  16. Feb 9, 2018 #15

    analogdesign

    User Avatar
    Science Advisor

    It has *most* of the libraries you would need. For the work in our group, it has everything we need. We can vectorize with numPy so it is quite similar to Matlab (although a few annoying wrinkles). We haven't had a lot of success auto-porting code, but we port by hand as we go. We've already reduced the number of Matlab licenses we have and my goal is to dump Matlab in the near future. The licenses for the toolboxes (e.g. signal processing, controls) really adds up quick.

    With SciPy and Matplotlib you can do just about everything you can do in Matlab and the plots look better. You lose some advanced functionality (like generating VHDL directly from Matlab) but in my experience that wasn't super useful.
     
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted