CD61004 - High-Performance Computing and its Applications in Complex Physical Systems (3-1-0)
Introduction to HPC architecture and parallel programming: basic architecture and organization: memory hierarchy, shared and distributed memory architectures, multiprocessor architecture, introduction to thread-level parallelism, accelerators (gpu, xeon-phi), performance prediction and evaluation, parallel programming/computing: introduction to MPI/ OpenMP, basics of cuda programming, optimizing cluster operation: running jobs in HPC environment, job scheduler, cluster level load balancing
Special methods for studying complex systems: basics of statistical mechanics, potential energy surface, introduction to molecular mechanics, simulation methods: molecular dynamics and Monte Carlo simulations, enhanced sampling methods, coarse-grain modelling
Applications to complex systems: open-source software: md and mc simulation packages, parallelization in software: domain/spatial decomposition, distribution of non-bonded interactions, dynamic load balancing, multiprocessor communication, modelling of soft matter systems such as biomolecules, polymers, carbon nanostructures etc., Computation of thermodynamic, kinetic and mechanical properties of different complex systems
CD61006 - Quantum Methods in Molecular Simulations (2-0-3)
THEORY COMPONENT: analytical solution of hydrogen and hydrogenic systems; Born-Oppenheimer approximation; formulation of Hartree-Fock method for molecular systems; post HF methods overview; exchange and correlation concepts; configuration interaction techniques; coupled cluster technique for many-body systems; density functional theory; exchange-correlation functionals, dispersion corrections; time-dependent DFT; geometry optimization techniques; basis sets in quantum chemistry; general framework of molecular simulations; quantum chemical simulations of solids and crystalline materials; simulation of molecular catalysis; vibrational analysis and frequency calculations; simulation of molecular properties.
LAB COMPONENT: building molecules; Z-matrices; internal coordinates; SCF calculations of atoms and small-to-medium sized molecules, restricted and unrestricted Hartree Fock calculations; SCF convergence criteria; geometry optimization techniques; vibrational frequency calculations and analysis of vibrational modes; calculation of Gibbs free energy of formation and Gibbs reaction energy; CI, MP2, coupled-cluster calculations of small molecules; multi-configuration SCF calculations; concept of active space; density functional calculations of large molecules; cost-benefit analysis; effects of basis sets and electron correlation - a comparison of methods; framework for crystalline solids; building crystal planes and supercells; DFT calculations of crystalline solids; simulation of molecular catalysis; biomolecular simulation using hybrid QM/MM approach.
CD61203 - Essential Tools for Scientific Computing (3-1-0)
Using Unix-based operating systems: history, Unix file system, basic and advanced Unix commands, and text editors.
Shell scripting: introduction, understanding shell scripts, exit status and return codes, wildcards, logical operators, conditions and loops, array and file operations, functions, debugging, bash i/o operations.
Command line utilities: awk and sed programming.
Basics of python programming: installation, variables and expressions, lists, tuples and data dictionaries, booleans and conditions, functions, loops, and iterations.
Using make, source code, compilation, and libraries
Source code management (Git and GitHub): Introduction, creating a repository, branching and merging, git workflows
Job scheduler and resource manager (slurm).
Introduction to document preparation (markdown and LaTeX).
Scientific data visualization and analysis (xmgrace, matplotlib).
Open-source libraries and solver packages: usage and their performance (Palabos, BLAS, LAPACK, WORHP, SciPy, OpenFOAM, FreeFEM, etc).