Basic Computer Simulation

Syllabus for a certificate course on Basic Computer Simulation:

There will be nine papers in this course.


Introduction to computer simulation

Setting up Linux environment, compilers, editors etc

Basic Linux commands

Working knowledge of shell-scripting

Revision of numerical methods

Simple user-graphics interface example of simulation


Monte-Carlo Simulation (Ref: K Binder)

Basic idea of random sampling 

Importance sampling

Principle of detailed-balance

Metropolis algorithm

Algorithms for grid generation

Solving 2D Ising model

Monte-Carlo algorithm for statistical physics


Molecular-Dynamics Simulation (Ref: D C Rapaport)

Revision of ODE solvers

Error analysis

Symplectic algorithms

Boundary conditions

Minimum image convension and Ewald sum

Thermostats and Barostats

Integrated quantities for statistical analysis


Particle-in-Cell simulation (Ref: C Birdsall)

Revision of numerical integration

Working knowledge of numerical interpolation

Cloud-in-Cell algorithm

Electromagnetic PIC algorithms


Computational Fluid Dynamics (Ref: D Kopriva)

Equations of Fluid Dynamics

Finite Difference algorithm

Finite Element algorithm

Finite Volume algorithm 

Spectral algorithms

Flux limiters

Pseudo-Spectral method

Boundary effects

Comparison of accuracy


Parallel Computing Algorithms (Ref: IBM Redbooks)

Basic concepts of parallel computing

Parallel computing on shared memory architecture

Parallel computing on distributed memory architecture

Heterogeneous parallel computing

Computation on single GPU

Computation on multiple GPUs

Introduction to FPGA


Implementation in HPC systems

Basic idea of High-Performance computing environment

Generating shell-scripts for HPC

Basic HPC commands

Hands-on and trouble-shooting

Performance optimization tools and techniques


Introduction to Machine Learning (Ref: L Moroney)

Philosophy of Artificial Intelligence 

Machine Learning and its applications

Familiarization with the numerical tools

Open-source softwares for Machine Learning

Hands-on session

Introduction to Genetic Programming


Introduction to Quantum Computing (Ref: Nielsen and Chuang)

Brief recap of Linear Algebra

Pauli Matrices and Quantum Operators

Quantum Gates

Quantum Circuits

Hands on implementation of Quantum Gates

Basic Quantum Algorithms

Open-source quantum softwares

Quantum Teleportation