Programming Langauages for Research in Quantum Mechanics

In summary, it depends on what specific area of quantum physics you want to focus on. For condensed matter research, FORTRAN and C++ are the main languages used for hardcore computations, while Python, Java, and MATLAB are also commonly used. For high-energy physics, C++ and FORTRAN are still useful, but there are also many existing libraries and codes that can be used for simulations. In general, becoming a competent programmer is important, and starting with one or two languages (such as C++ and Python or C++ and Mathematica) is a good approach.
  • #1
rshalloo
52
0
Hey, I'm a second year physics undergrad and I'm interested in doing research in quantum Physics after I graduate. I'm just wondering what programming language I should be focusing on to enable me to carry out such research I've done introductory courses for Mathematica, Matlab and C++ and so far have found Mathematica nicest to use (as it involves the least amount of 'real' coding) although Matlab would seem to me to be most useful for Quantum research. But I'd love to your opinions! also is a high level of programming knowledge needed? Do I need to bother doing more courses in any programming languages?

Thanks!
 
Physics news on Phys.org
  • #2
This completely depends on what you are up to. Different areas of quantum physics may require anything from Fortran over C++ over Python/Matlab to Mathematica/ML/LISP etc. Your best bet is to become a competent programmer; for that you typically want to start with one or two languages (e.g., C++ and Python or C++ and Mathematica seem like good combinations to me).

Some notes on the languages:
- Fortran: Ugly language, very bad to start with. Used for hardcore number crunching in many areas (e.g., quantum chemistry, solid state physics, and other electronic structure stuff).

- C++: The most complicated language ever invented. Very powerful if used right, able to create horrific abominations if used wrong. Useful for all kinds of high-performance code (if used right), low-level to high-level. Useful for building *large* applications with many million lines of code (most major Programs in Windows, and a great part of Windows itself are written in C++).

- Python/Matlab: Can be used more-or-less interchangably in the numerics department (Python with numpy and scipy). Both are very powerful and very easy to use "glue" languages (languages you mainly use to glue library functions together). Usually the best way to get something to work, fast. Python has the advantage of being somewhat cleaner and freely available and also being useful for many things besides numerics; but in the numerics department it is less powerful than Matlab.

- Mathematica/ML/LISP: Functional languages which are mainly useful for symbolic algebra. (that is, if you have to write your symbolic algebra routines yourself, which, in fact, often happens).
 
  • #3
rshalloo said:
Hey, I'm a second year physics undergrad and I'm interested in doing research in quantum Physics after I graduate. I'm just wondering what programming language I should be focusing on to enable me to carry out such research I've done introductory courses for Mathematica, Matlab and C++ and so far have found Mathematica nicest to use (as it involves the least amount of 'real' coding) although Matlab would seem to me to be most useful for Quantum research. But I'd love to your opinions! also is a high level of programming knowledge needed? Do I need to bother doing more courses in any programming languages?

Thanks!

Well "quantum physics" isn't actually a field. People work on the foundations and interpretation of quantum mechanics (but they don't use computers), however, the science/math has basically been done for about 60 years. Condensed Matter is the largest field of physics (according to the American Physical Society) and concerns the *emergent* phenomena that occur in system of MANY quantum mechanical particles. Specifically how individual quantum mechanical particles cooperate to make phase of matter with drastically different properties, from superconductors to Bose-Einstein condensates, metals to semiconductors. This is a field which uses a lot of computing (in fact I work in computational condensed matter). Generally, the only options for hardcore computations are FORTRAN or C++. However, for lighter computations (i.e. if you're not actually trying to simulate larger systems than anyone has before or some such but just want to use some standard techniques for, say, a new type of system) then people use things like Python, Java and MATLAB along with some pretty advanced libraries for numerical computation (like BLAST)

However, if by "quantum physics" you mean quantum field theory and particle physics (i.e. high-energy physics) then these simulations tends to be things like lattice gauge theory and such. For this you still can't go wrong with C++ and FORTRAN but I feel like there are a lot more libraries that have developed over the decades. In other words, you are less likely to write completely new code and more likely to cobble together codes that others have written and train them to a new situation. In such a case the actual language you use matters little unless you actually want to change these libraries in which case you need to know the programming language they were written in (often something awful like FORTRAN 77).
 

1. What is a programming language for research in quantum mechanics?

A programming language for research in quantum mechanics is a specialized language designed to write code for simulations and calculations related to quantum mechanics. These languages often have features that make it easier to work with complex numbers and handle the unique properties of quantum systems.

2. What are the main programming languages used in quantum mechanics research?

The main programming languages used in quantum mechanics research include Python, C++, Java, and MATLAB. Each of these languages has its own advantages and may be used for different purposes in quantum mechanics research.

3. Do I need to have a background in quantum mechanics to use a programming language for research in this field?

While having a basic understanding of quantum mechanics can be helpful, it is not necessary to have a background in this field to use a programming language for research. However, it is important to have a strong understanding of the concepts and principles of programming.

4. Are there any specific libraries or frameworks for quantum mechanics programming?

Yes, there are several libraries and frameworks specifically designed for quantum mechanics programming, such as Qiskit, QuTiP, and QuEST. These libraries provide useful tools and functions for working with quantum systems and can save time and effort in coding.

5. Can I use any programming language for quantum mechanics research?

While some languages may be more commonly used in quantum mechanics research, it is possible to use any programming language for this purpose. However, it is important to consider the specific features and capabilities of the language and whether it is suitable for the task at hand.

Similar threads

  • STEM Academic Advising
Replies
9
Views
849
Replies
1
Views
807
  • STEM Academic Advising
Replies
9
Views
1K
  • STEM Academic Advising
2
Replies
41
Views
7K
  • STEM Academic Advising
Replies
2
Views
851
  • STEM Academic Advising
Replies
4
Views
813
  • STEM Academic Advising
Replies
3
Views
941
  • STEM Academic Advising
Replies
6
Views
848
  • STEM Academic Advising
Replies
2
Views
1K
  • STEM Academic Advising
Replies
11
Views
426
Back
Top