1 Preliminaries 1
1.1 Introduction 1
1.2 Python 2
1.3 Object-oriented programming 5
1.4 The pDynamo library 8
1.5 Notation and units 9
2 Chemical models and representations 14
2.1 Introduction 14
2.2 The System class 14
2.3 Example 1 17
2.4 Common molecular representations 18
2.5 Example 2 27
3 Coordinates and coordinate manipulations 31
3.1 Introduction 31
3.2 Connectivity 31
3.3 Internal coordinates 35
3.4 Example 3 38
3.5 Miscellaneous transformations 41
3.6 Superimposing structures 45
3.7 Example 4 47
4 Quantum chemical models 51
4.1 Introduction 51
4.2 The Born-Oppenheimer approximation 51
4.3 Strategies for obtaining energies on a potential energy surface 53
4.4 Molecular orbital methods 54
4.5 The Hartree-Fock approximation 56
4.6 Analysis of the charge density 67
4.7 Example 5 70
4.8 Derivatives of the potential energy 74
4.9 Example 6 78
5 Molecular mechanics 81
5.1 Introduction 81
5.2 Typical empirical energy functions 81
5.3 Calculating a molecular mechanics energy 93
5.4 Example 7 101
5.5 Parametrizing potential energy functions 103
5.6 Soft constraints 105
6 Hybrid potentials 110
6.1 Introduction 110
6.2 Combining QC and MM potentials 110
6.3 Example 8 114
6.4 Covalent bonds between QC and MM atoms 116
6.5 Example 9 120
7 Finding stationary points and reaction paths on potential energy surfaces 122
7.1 Introduction 122
7.2 Exploring potential energy surfaces 122
7.3 Locating minima 126
7.4 Example 10 129
7.5 Locating saddle points 130
7.6 Example 11 134
7.7 Following reaction paths 136
7.8 Example 12 139
7.9 Determining complete reaction paths 140
7.10 Example 13 144
8 Normal mode analysis 148
8.1 Introduction 148
8.2 Calculation of the normal modes 148
8.3 Rotational and translational modes 153
8.4 Generating normal mode trajectories 156
8.5 Example 14 158
8.6 Calculation of thermodynamic quantities 161
8.7 Example 15 165
9 Molecular dynamics simulations Ⅰ 170
9.1 Introduction 170
9.2 Molecular dynamics 170
9.3 Example 16 178
9.4 Trajectory analysis 182
9.5 Example 17 184
9.6 Simulated annealing 186
9.7 Example 18 189
10 More on non-bonding interactions 195
10.1 Introduction 195
10.2 Cutoff methods for the calculation of non-bonding interactions 195
10.3 Example 19 205
10.4 Including an environment 209
10.5 Periodic boundary conditions 212
10.6 Example 20 215
10.7 Ewald summation techniques 217
10.8 Fast methods for the evaluation of non-bonding interactions 223
11 Molecular dynamics simulations Ⅱ 225
11.1 Introduction 225
11.2 Analysis of molecular dynamics trajectories 225
11.3 Example 21 233
11.4 Temperature and pressure control in molecular dynamics simulations 235
11.5 Example 22 244
11.6 Calculating free energies:umbrella sampling 246
11.7 Examples 23 and 24 252
11.8 Speeding up simulations 258
12 Monte Carlo simulations 262
12.1 Introduction 262
12.2 The Metropolis Monte Carlo method 262
12.3 Monte Carlo simulations of molecules 266
12.4 Example 25 277
12.5 Calculating free energies:statistical perturbation theory 280
12.6 Example 26 286
Appendix 1 The pDynamo library 294
Appendix 2 Mathematical appendix 298
A2.1 The eigenvalues and eigenvectors of a matrix 298
A2.2 The method of Lagrange multipliers 300
Appendix 3 Solvent boxes and solvated molecules 302
A3.1 Example 27 302
A3.2 Example 28 305
Bibliography 307
Author index 326
Subject index 330