Scientific Computing

This webpage is about the use of computers in science.  

HOME 

SWik 

Computational Physics

Physics simulation forum 

Phun - 2D physics sandbox 

SSH 

Connect to any computer through ssh. For windows download SSH (windows). For linux just use

 $ ssh username@serverdomain

Using ssh with public keys doesn't require the password.

Documenting your code

Documentation is one of the most important  aspects in programming process. If you can't write clear documentation to what you are coding, your code worth of nothing. Believe me, in one month or two, you'll have no clue what's going on in your code. Use Doxygen for putting documentation online or use wiki pages on someones website.

Version control

gitTrac, subversion

Programming Languages

Python (Java) for rapid code writting but slow execution, and C++ (Fortran) for fast running speed. Given the complexity of the modern problems which arise in scientific computing, C++ and Fortran are more and more becoming low-level languages to handle only simple problems.

Here is what most people do:

  • write  quickly a  prototype program in , say, Python. 
  • make sure there are no bugs and  it does what it's supposed to
  • identify the bottle neck of your program, usually it will be only 10%-15% of the total code size
  • rewrite those parts (usually loops) in C++, and insert them into main code with swig or though command line (simpler).

Online books

Techniques for Scientific C++ 

Computational Chemistry Soft at OSC (pdf) 

GNU scientific library 

Links

Mathematica 

R 

Python 

Libraries

C++4u  (codes)

Blitz++

Boost

GSL