1 Introduction 1
1.1 Physics and computational physics 1
1.2 Classical mechanics and statistical mechanics 1
1.3 Stochastic simulations 4
1.4 Electrodynamics and hydrodynamics 5
1.5 Quantum mechanics 6
1.6 Relations between quantum mechanics and classical statistical physics 7
1.7 Quantum molecular dynamics 8
1.8 Quantum field theory 9
1.9 About this book 9
Exercises 11
References 13
2 Quantum scattering with a spherically symmetric potential 14
2.1 Introduction 14
2.2 A program for calculating cross sections 18
2.3 Calculation of scattering cross sections 25
Exercises 27
References 28
3 The variational method for the Schr?dinger equation 29
3.1 Variational calculus 29
3.2 Examples of variational calculations 32
3.3 Solution of the generalised eigenvalue problem 36
3.4 Perturbation theory and variational calculus 37
Exercises 39
References 41
4 The Hartree-Fock method 43
4.1 Introduction 43
4.2 The Born-Oppenheimer approximation and the independent-particle method 44
4.3 The helium atom 46
4.4 Many-electron systems and the Slater determinant 52
4.5 Self-consistency and exchange:Hartree-Fock theory 54
4.6 Basis functions 60
4.7 The structure of a Hartree-Fock computer program 69
4.8 Integrals involving Gaussian functions 73
4.9 Applications and results 77
4.10 Improving upon the Hartree-Fock approximation 78
Exercises 80
References 87
5 Density functional theory 89
5.1 Introduction 89
5.2 The local density approximation 95
5.3 Exchange and correlation:a closer look 97
5.4 Beyond DFT:one- and two-particle excitations 101
5.5 A density functional program for the helium atom 109
5.6 Applications and results 114
Exercises 116
References 119
6 Solving the Schr?dinger equation in periodic solids 122
6.1 Introduction:definitions 123
6.2 Band structures and Bloch’s theorem 124
6.3 Approximations 126
6.4 Band structure methods and basis functions 133
6.5 Augmented plane wave methods 135
6.6 The linearised APW(LAPW)method 141
6.7 The pseudopotential method 144
6.8 Extracting information from band structures 160
6.9 Some additional remarks 162
6.10 Other band methods 163
Exercises 163
References 167
7 Classical equilibrium statistical mechanics 169
7.1 Basic theory 169
7.2 Examples of statistical models;phase transitions 176
7.3 Phase transitions 184
7.4 Determination of averages in simulations 192
Exercises 194
References 195
8 Molecular dynamics simulations 197
8.1 Introduction 197
8.2 Molecular dynamics at constant energy 200
8.3 A molecular dynamics simulation program for argon 208
8.4 Integration methods:symplectic integrators 211
8.5 Molecular dynamics methods for different ensembles 223
8.6 Molecular systems 232
8.7 Long-range interactions 241
8.8 Langevin dynamics simulation 247
8.9 Dynamical quantities:nonequilibrium molecular dynamics 251
Exercises 253
References 259
9 Quantum molecular dynamics 263
9.1 Introduction 263
9.2 The molecular dynamics method 266
9.3 An example:quantum molecular dynamics for the hydrogen molecule 272
9.4 Orthonormalisation;conjugate gradient and RM-DIIS techniques 278
9.5 Implementation of the Car-Parrinello technique for pseudopotential DFT 289
Exercises 290
References 293
10 The Monte Carlo method 295
10.1 Introduction 295
10.2 Monte Carlo integration 296
10.3 Importance sampling through Markov chains 299
10.4 Other ensembles 310
10.5 Estimation of free energy and chemical potential 316
10.6 Further applications and Monte Carlo methods 319
10.7 The temperature of a finite system 330
Exercises 334
References 335
11 Transfer matrix and diagonalisation of spin chains 338
11.1 Introduction 338
11.2 The one-dimensional Ising model and the transfer matrix 339
11.3 Two-dimensional spin models 343
11.4 More complicated models 347
11.5 ’Exact’diagonalisation of quantum chains 349
11.6 Quantum renormalisation in real space 355
11.7 The density matrix renormalisation group method 358
Exercises 365
References 370
12 Quantum Monte Carlo methods 372
12.1 Introduction 372
12.2 The variational Monte Carlo method 373
12.3 Diffusion Monte Carlo 387
12.4 Path-integral Monte Carlo 398
12.5 Quantum Monte Carlo on a lattice 410
12.6 The Monte Carlo transfer matrix method 414
Exercises 417
References 421
13 The finite element method for partial differential equations 423
13.1 Introduction 423
13.2 The Poisson equation 424
13.3 Linear elasticity 429
13.4 Error estimators 434
13.5 Local refinement 436
13.6 Dynamical finite element method 439
13.7 Concurrent coupling of length scales:FEM and MD 440
Exercises 445
References 446
14 The lattice Boltzmann method for fluid dynamics 448
14.1 Introduction 448
14.2 Derivation of the Navier-Stokes equations 449
14.3 The lattice Boltzmann model 455
14.4 Additional remarks 458
14.5 Derivation of the Navier-Stokes equation from the lattice Boltzmann model 460
Exercises 463
References 464
15 Computational methods for lattice field theories 466
15.1 Introduction 466
15.2 Quantum field theory 467
15.3 Interacting fields and renormalisation 473
15.4 Algorithms for lattice field theories 477
15.5 Reducing critical slowing down 491
15.6 Comparison of algorithms for scalar field theory 509
15.7 Gauge field theories 510
Exercises 532
References 536
16 High performance computing and parallelism 540
16.1 Introduction 540
16.2 Pipelining 541
16.3 Parallelism 545
16.4 Parallel algorithms for molecular dynamics 552
References 556
Appendix A Numerical methods 557
A1 About numerical methods 557
A2 Iterative procedures for special functions 558
A3 Finding the root of a function 559
A4 Finding the optimum of a function 560
A5 Discretisation 565
A6 Numerical quadratures 566
A7 Differential equations 568
A8 Linear algebra problems 590
A9 The fast Fourier transform 598
Exercises 601
References 603
Appendix B Random number generators 605
B1 Random numbers and pseudo-random numbers 605
B2 Random number generators and properties of pseudo-random numbers 606
B3 Nonuniform random number generators 609
Exercises 611
References 612
Index 613