You are on page 1of 21

Computational

Physics (PHY473)
I-Introduction

Mahendra Verma
IIT Kanpur
Why Computation?
Science problems are complex.

Presently available analytical tools don't work.

Solved problems:

H atom, simple harmonic oscillator

So, for complex problems


Either perturbative methods

Or numerical methods
Computer simulations: Numerical experiments

Just like experiments

We make models based on numerical results.

Often complements experiments

Excellent visualisation
Applications in
Physics
★ Nonlinear physics, Fluids and Plasmas

• Modelling of nonlinear systems


• Physics of turbulence
• Automobiles and aerospace engineering.

• Fusion reactor; nuclear fission and fusion;


Tokomak

• Applications in plasma physics (deposition,


discharge etc.)

• Oil exploration
★ Astrophysics

• Star simulations; Galaxy


• Accretion disc
• Planetary formation
• Simulation of the universe
★ Geophysics & Atmospheric Physics

• Oil exploration
• Weather predictions & Climate modeling
• Tectonic plates, earthquakes
• Dynamo simulation
★ Particle Physics

• Lattice QCD

• Accelerator simulation, Data analysis

★ Condensed matter physics: structure of matter

• Solve n-body problems (electronic structures


etc.)
• Monte Carlo; Quantum Monte Carlo
• Particle simulations
Other applications
★ Defence, to be precise, offence

★ Software development for homes, offices, and


society (IoT).

★ Machine learning

★ Embedded computing

★ Mobile computing (apps)


Theory vs.
Computation
★ Complimentary skills..

★ A theoretical physicist could be

• A pure theoretician
• A good theoretician, average computational
scientist.
• Average theoretician and good computation sci
• OK theoretician and excellent computational sci
• Excellent theoretician and excellent
computation scientist (Kenneth Wilson)
How should I
proceed?
★ As a user, learn linux.

★ Algorithmic thinking

★ Programming languages:

• Compiler language: C, C++, Fortran, Java

• Interpreter language: Python, Matlab, Mathematica, Maple

• https://www.python.org/doc/essays/comparisons/

★ As a programmer, learn at least compiler language, and one


interpreter language. I recommend C++ and Python. Also,
wolfram-alpha

★ We will work with Python due to simplicity, its power for


computing as well as data analysis including plotting. Also,
due to lack of time.
About the course
★ First part:

• About computers: hardware and software


• How to be a good programmer?
• Algorithmic thinking and Aesthetics.
• Python
★ Second part- Numerical analysis:

• Interpolation, differentiation, integration, ODE solver,


PDE solver, matrix computations, Monte-Carlo method,
Linear equation solvers (matrix algebra).
★ Programming is an art.

★ So, Practice, practice, practice!!

★ Make sure that your programs looks good


(indent, good choice of variables, nice
program structure etc.)

★ Rewrite your program until you are satisfied.


References
• My notes (with typos + bugs)

• Mark Newmann: Computational Physics with


Python, 2nd Ed.

• C. Hill, Learning Scientific Programming with


Python

• J. H. Ferziger, Numerical Methods for engineers,


2nd Ed.
Marks distribution
• Midsem exam (theory+practical): 25 marks

• Final exam(th+practical) OR project: 25 marks

• Lab marks (weekly): 50 marks

• Bonus marks for (weightage < 40%)

✴ Attendance during the discussion session

✴ Mini projects along the course

• It’s hard to figure out cheating in the virtual world. We strongly urge
you to not cheat. Note: More than anyone else, you will be cheating
yourself. May like this http://mahendra-verma.blogspot.com/2013/01/
on-examinations-addressed-to-students.html
Timings

• Discussion hour: M: 3-4PM on zoom

• Lab: TUE 3-5PM (Online), Virtual (more on this


tomorrow 1/9)

• Videos lectures will be released every TUE.


Practice problems by THU. Lab based on these
videos in the following TUE.
About me

• mkv@iitk.ac.in

• https://sites.google.com/view/mahendra-verma/

You might also like