Computational Phy. Methods and Sim. (question)

In summary: Downsides:-It is a bit more difficult to learn than C++ or Java.-It can be more difficult to get started with FORTRAN if you don't have a background in mathematics.
  • #1
Buginga
1
0
I'm trying to find a good starting point in comp. phy. ; emphasizing particles,chemical,physical problems,solid state,q.m,nanotech... simulations into a (2D or 3D) virtual environment(for research and engineering), (analogy: just like game engines or robotics animations), in an quantitative and graphical approach;

so I ask for a visualization and advice about programming languages, programs, books or anything that can help me and fit in this area that I`ve presented.(Any resources would be of great help)
Numerical calculations and mathematical models. ( for this i´ve already started to learn mathematica, matlab, and C++; is it a good start?)
 
Last edited:
Physics news on Phys.org
  • #2
Well, your question's a bit vague on what you want to learn - the approach is quite different between fields, and in general, the emphasis is far more on the physical science end of things than on the computer science end. Add to that, that practically all physicists (and most chemists) know at least some programming - it's generally easier to train a physicist or chemist in programming than to bring a programmer up to speed on all the necessary science.

I know some people with a Comp Sci background working in bioinformatics, but I don't think I've ever run across one in e.g. quantum chemistry. So if you want to do actual scientific programming, I think your best bet would to study physics or chemistry and take extra courses in comp sci. (having a programming hobby is of course a very good idea as well!)

The introductory course our dept. gives uses Frank Jensen's book, "Introduction to computational chemistry".
 
  • #4
Every simulation is based on physics (classical and quantum mechanics, and statistical physics in the most part of cases), therefore, you have to study physics. Actually physics here is the most important thing.

Programming is also required of course. The favorite programming language of computer science is FORTRAN without doubt, but C is also used sometimes. C++ is quite rare. Some utilities are frequently written on Octave, MATLAB. The operating system of choice for a computer scientist is Linux (sometimes UNIX). For visualization VMD or some other programs are used.

There are a lot of various types of simulations. Among those different kinds of molecular dynamics are the most prominent ones. To start with that subject you need the book by Allen and Tildesley or by Frenkel and Smith.

You can easily start with classical molecular dynamics (for this you need classical mechanics, elementary statistical physics and FORTRAN) and continue your studies with a so called ab-inito molecular dynamics (same prerequisites + quantum mechanics). Then you may want to continue your research along the way of path-integrals molecular dynamics which is the most difficult to master.
 
  • #5
corydalus

There's no way that the favorite programming language among computer scientists is fortran. It's definitely C or C++. Fortran has only one kind of data structure --- arrays. Computer scientist need many kinds of data structures --- lists, vectors, arrays, hashmaps, red-black trees, etc. Fortran doesn't provide these things.

However, among physicists, fortran is still very popular. If you're first learning a programming language, then fortran might be the way to go, as it doesn't have to deal with the complexities of pointers. Also, arrays are infinitely more intuitive in fortran than in C.
 
  • #6
wsttiger said:
corydalus

There's no way that the favorite programming language among computer scientists is fortran. It's definitely C or C++. Fortran has only one kind of data structure --- arrays. Computer scientist need many kinds of data structures --- lists, vectors, arrays, hashmaps, red-black trees, etc. Fortran doesn't provide these things.

However, among physicists, fortran is still very popular. If you're first learning a programming language, then fortran might be the way to go, as it doesn't have to deal with the complexities of pointers. Also, arrays are infinitely more intuitive in fortran than in C.

First of all, in my reply I primarily was talking about the simulations including some kind of physics. The question was about "comp. phy. ; emphasizing particles,chemical,physical problems,solid state,q.m,nanotech..." after all. I agree completely that in some fields C++ may be much better than FORTRAN.

However, if we are talking about computational physics (especially solid state), chemistry or biology, these fields almost always use MC, MD, different types of DE's or some diagonalizing techniques. All these approaches have the following features:
  • They need a lot of time to complete the simulation;
  • They use matrices intensively;
  • They need some supporting numerical routines.

Among the C, C++ and FORTRAN, the latter is:
  • The fastest;
  • Is very matrix-friendly;
  • Has the best numerical routines.
That is why FORTRAN is used very frequently. Some of the best packages -- VASP, CPMD, DL_POLY -- are in FORTRAN. Even in mathematics FORTRAN is frequently used due to its high level of optimization and high computational efficiency for numerical operations.

Of course, FORTRAN has many drawbacks almost all of which are the consequences of its ancient age. These include the lack of ready-to-use code for high level structures, inconvenient syntax etc. But FORTRAN is still the best for number crunching.
 
  • #7
I was replying to your statement that fortran is the most popular language among "computer scientist"; that is simply not true.

However, it probably is the most popular among computational scientists for the reasons that you mentioned above.

C is on par with fortran as far as speed goes, but you're correct for numerical calculation that use arrays as their primary data structure, fortran is king.

I'm sorry. I didn't mean to start a "holy war". My apologies.
 
  • #8
I'm a graduate student in physics doing computational physics. The codes I work with have all been in C++, but I also use a lot of Matlab and I feel that Python will be used increasingly in the future. I don't know Fortran, but I have had to read Fortran a few times and had no problem from my C/C++ background. It sounds to me like you have a good start from the things that you were mentioning. If you want to do visualization, then you should learn some OpenGL. I have been learning it recently and I feel that it is a good skill to have. If you have a solid physics background it isn't too hard to understand 3D graphics because the math involved will be well within your understanding.
 
  • #9
Fortran remains the favorite in the physics (and more math-problem-oriented) crowd. It's nobody's favorite language from a programming-language perspective.

But neither are C/C++ the favorite programming languages of any Comp Sci professors I know. C is weakly-typed and has loose syntax and simply put, a lot of flaws from a language-design perspective. C++ in turn is a pragmatic attempt to make C object-oriented. It's nobody's favorite from a design perspective either (it's by design a compromise to ensure some backwards-compatibility with C).

Comp. Sci folks tend to like more obscure languages like LISP, Smalltalk, Haskell, etc.
 
  • #10
A book I've found useful is by Paul Harrison, "Computational Methods in Physics, Chemistry and Biology: An Introduction".

I liked it for the following reasons:
the level was reasonable, the style of the text and besides the code (C language) being available the author presented the psuedo code so that the reader could convert to the language of their choice
 

What is Computational Phy. Methods and Sim.?

Computational Phy. Methods and Sim. is a field of study that combines computer science, mathematics, and physics to develop algorithms and simulations for solving complex physical problems.

What are some common applications of Computational Phy. Methods and Sim.?

Some common applications of Computational Phy. Methods and Sim. include weather forecasting, climate modeling, fluid dynamics, quantum mechanics, and molecular dynamics.

What are the main advantages of using Computational Phy. Methods and Sim.?

The main advantages of using Computational Phy. Methods and Sim. include the ability to solve complex problems that are impossible to solve analytically, the ability to simulate systems that are difficult or impossible to observe in real life, and the ability to rapidly test and optimize a wide range of scenarios.

What are the main challenges in Computational Phy. Methods and Sim.?

Some main challenges in Computational Phy. Methods and Sim. include developing accurate and efficient algorithms, dealing with large amounts of data, and validating the simulations against real-world experiments.

What skills are required to work in Computational Phy. Methods and Sim.?

To work in Computational Phy. Methods and Sim., one needs a strong background in computer science, mathematics, and physics. Additionally, skills in programming, data analysis, and problem-solving are crucial for success in this field.

Similar threads

  • Programming and Computer Science
Replies
1
Views
1K
Replies
2
Views
863
  • Programming and Computer Science
Replies
10
Views
3K
  • Astronomy and Astrophysics
Replies
1
Views
1K
Replies
1
Views
774
  • DIY Projects
Replies
23
Views
4K
Replies
4
Views
836
Replies
8
Views
2K
  • STEM Academic Advising
Replies
1
Views
1K
  • STEM Academic Advising
Replies
16
Views
2K
Back
Top