<p><span>Molecular simulation allows researchers unique insight into the structures and interactions at play in fluids. Since publication of the first edition of Molecular Simulation of Fluids, novel developments in theory, algorithms and computer hardware have generated enormous growth in simulatio
Molecular Simulation of Fluids. Theory, Algorithms, Object-Orientation, and Parallel Computing
✍ Scribed by Richard J. Sadus
- Publisher
- Elsevier
- Year
- 2024
- Tongue
- English
- Leaves
- 616
- Edition
- 2
- Category
- Library
No coin nor oath required. For personal study only.
✦ Table of Contents
Front Cover
Molecular Simulation of Fluids
Copyright Page
Dedication
Contents
Preface to the second edition
Preface to the first edition
1 Introduction
1.1 What is molecular simulation?
1.1.1 The MC method
1.1.2 MD
1.2 Progress in molecular simulation
1.2.1 Early work on hard spheres and atoms
1.2.2 Small nonpolar molecules
1.2.3 Polar molecules and ions
1.2.4 Chain molecules and polymers
1.2.5 Ensembles for molecular simulation
1.2.6 Phase equilibria
1.2.7 Interatomic interactions
1.2.8 Many-body interactions
1.2.9 Nonequilibrium MD simulation
1.2.10 Molecular simulation and object orientation
1.2.11 Parallel computing
References
2 Ensembles, thermodynamic averages, and particle dynamics
2.1 Statistical mechanics, ensembles, and averaging
2.1.1 Ensembles
2.1.2 Simple thermodynamic averages
2.1.2.1 Energy
2.1.2.2 Temperature
2.1.2.3 Pressure
2.1.2.4 Residual chemical potential
2.2 Properties from fluctuations
2.2.1 Thermodynamic properties
2.2.2 Transport coefficients
2.2.2.1 Diffusion
2.2.2.2 Shear viscosity
2.2.2.3 Thermal conductivity
2.2.3 Molecular simulation and choice of ensemble
2.3 Alternative methods for thermodynamic properties
2.3.1 MD NVE ensemble
2.3.2 MC NVT ensemble
2.3.3 MC NpT ensemble
2.3.4 MC μVT ensemble
2.3.5 MC NpH ensemble
2.4 Particle dynamics
2.4.1 Motion of unconstrained particles
2.4.2 Motion of constrained particles
2.4.2.1 Holonomic and nonholonomic constraints
2.4.2.2 Consequences of constraints on particles
2.4.2.3 Lagrange equations of motion
2.4.2.4 Hamilton equations of motion
2.4.2.5 Gauss’s principle of least constraint
2.4.3 The Liouville equation
2.4.4 The virial theorem
2.5 Summary
References
3 Intermolecular pair potentials and force fields
3.1 Calculation of the potential energy
3.1.1 Use of notation
3.2 Intermolecular forces
3.2.1 Types of intermolecular forces
3.2.2 Quantum theory of intermolecular potentials
3.3 Potentials with a hard sphere contribution
3.3.1 The HS potential
3.3.2 Non-HS repulsive potentials
3.3.2.1 Weeks–Chandler–Anderson potential
3.3.3 HSA potentials
3.3.3.1 The Square well potential
3.3.3.2 Penetrable SW potential
3.3.3.3 Triangular well potential
3.3.3.4 Yukawa potential
3.3.3.5 Inverse power potential
3.3.3.6 Sticky sphere potential
3.3.3.7 Kihara hard core potential
3.4 Soft sphere potentials
3.5 Fully interpenetrable potentials
3.5.1 Gaussian core model potential
3.5.2 Double Gaussian core model potential
3.6 Effective pairwise potentials for atoms and simple molecules
3.6.1 Repulsion + dispersion pair potentials
3.6.1.1 Generalized n–m Lennard-Jones/Mie potential
3.6.1.2 Egelstaff potential
3.6.1.3 Maitland–Smith potential
3.6.1.4 Born–Mayer and London potentials
3.6.1.5 Buckingham–Corner potential
3.6.1.6 Shaviit–Boys potential
3.6.1.7 Modified Buckingham (exp-6) potential
3.6.2 General refinement of repulsion and dispersion models
3.6.3 Shifted-force potentials
3.6.4 SR potentials
3.7 Contributions to molecular interactions
3.7.1 Intermolecular ionic and polar potentials
3.7.2 Intermolecular hydrogen bond potentials
3.7.3 Intramolecular bond potentials
3.7.4 Intramolecular angle-bending potentials
3.7.5 Intramolecular out-of-plane bending potentials
3.7.6 Intramolecular torsional potentials
3.7.7 Intramolecular cross-terms
3.8 Simple atom-based pairwise potentials for molecules
3.8.1 Stockmayer potential
3.8.2 Spurling–Mason potential
3.8.3 Restricted primitive model
3.8.4 Fumi–Tosi potential
3.9 Extension to molecules
3.9.1 Nonbonded interactions in molecules
3.9.2 Adding nonbonded interactions: the WCA + finitely extensible nonlinear elastic potential
3.10 Pairwise force fields from molecular mechanics
3.10.1 Optimized force fields
3.10.1.1 OPLS/OPLS-AA force fields
3.10.1.2 ECEPP models
3.10.1.3 AMBER force field
3.10.1.4 CHARMM force field
3.10.1.5 MM3 force field
3.10.1.6 UFF
3.10.1.7 CFF93
3.10.2 Comparison of force fields and future improvements
3.11 Case study: Models for water
3.11.1 Rigid models
3.11.2 Flexible models
3.11.3 Polarizable models
3.12 Application to mixtures
3.13 Summary
References
4 Ab initio, two-body and three-body intermolecular potentials
4.1 Ab initio calculations
4.1.1 Hartree–Fock method
4.1.2 Density functional theory
4.1.3 The Car–Parrinello method
4.2 Two-body atomic potentials
4.2.1 Empirical potentials
4.2.2 Ab initio potentials
4.3 Three-body atomic potentials
4.3.1 Three-body dispersion
4.3.2 The triple-dipole term and the Axilrod–Teller–Mutō potential
4.3.3 Density-dependent effective three-body potential
4.3.4 Multipolar contributions beyond the triple-dipole term
4.3.5 Three-body repulsion
4.3.6 Three-body dispersion versus three-body repulsion
4.4 Four- and higher-body atomic interactions
4.5 Potentials for molecules
4.5.1 Two-body ab initio molecular potentials
4.5.1.1 Diatomic molecules
4.5.1.2 Triatomic molecules
4.5.1.3 Polyatomic molecules
4.5.2 Three-body molecular potentials
4.5.3 Ab initio potentials for combinations of molecules
4.6 Case study: Augmenting ab initio potentials for fluid properties
4.6.1 Systematic improvement of water potentials
4.6.2 Efficient three-body calculations
4.7 Summary
References
5 Calculating molecular interactions
5.1 Calculation of short-range interactions
5.1.1 Naive energy and force calculations
5.1.2 Periodic boundary conditions and minimum image convention
5.1.3 Long-range corrections to periodic boundary calculations
5.1.4 Neighbor list
5.1.5 Linked cells
5.1.6 Look-up table
5.1.7 Comparison of computational efficiency
5.2 Calculation of long-range interactions
5.2.1 The Ewald sum
5.2.2 The Wolf approximation of the Ewald sum
5.2.3 The reaction field method
5.2.4 Particle-particle and particle-mesh methods
5.2.5 Tree-based methods
5.2.5.1 The Barnes–Hut algorithm
5.2.5.2 The fast multipole method
5.2.6 Comparison of computational efficiency
5.3 Summary
References
6 Monte Carlo simulation
6.1 Basic concepts
6.1.1 Background
6.1.2 Metropolis sampling and Markov chains
6.2 Application to molecules
6.2.1 Rigid molecules
6.2.2 Small flexible molecules
6.2.3 Polymers
6.2.3.1 The reptation or slithering snake algorithm
6.2.3.2 The kink-jump algorithm
6.2.3.3 The pivot algorithm
6.3 Advanced techniques
6.3.1 Configurational bias MC
6.3.1.1 Lattice chains
6.3.1.2 Flexible chains
6.3.2 Cluster moves
6.4 Path integral Monte Carlo
6.5 Summary
References
7 Integrators for molecular dynamics
7.1 Integrating the equations of motion
7.2 Gear predictor–corrector methods
7.2.1 The basic Gear algorithm
7.2.1.1 Cautionary note on nomenclature
7.2.2 Other representations of the Gear algorithm
7.3 Verlet predictor methods
7.3.1 Original Verlet algorithm
7.3.2 Leap-frog Verlet algorithm
7.3.3 Velocity-Verlet algorithm
7.3.4 Beeman modification
7.4 Runge–Kutta integration
7.5 Comparison of integrators
7.6 Integrators for molecules
7.6.1 Small molecules
7.6.2 Large molecules
7.6.2.1 The shake algorithm
7.6.2.2 The rattle algorithm
7.6.2.3 Application of Gauss's principle of least constraint
7.6.2.4 Matrix inversion method
7.6.2.5 Other methods
7.7 Summary
References
8 Nonequilibrium molecular dynamics
8.1 An example NEMD algorithm
8.2 Synthetic NEMD algorithms
8.2.1 Shear viscosity
8.2.1.1 Cautionary note on modifications to sllod
8.2.2 Self-diffusion
8.2.3 Thermal conductivity
8.2.3.1 Cautionary note on the triple point
8.3 Application of NEMD algorithms to molecules
8.4 Application of NEMD algorithms to mixtures
8.5 Comparison with EMD
8.6 Summary
References
9 Molecular simulation of ensembles
9.1 Monte Carlo
9.1.1 Canonical (NVT) ensemble
9.1.2 Isobaric–Isothermal (NpT) ensemble
9.1.3 Grand canonical (μVT) ensemble
9.1.4 Microcanonical (NVE) ensemble
9.2 Molecular dynamics
9.2.1 Microcanonical (NVE) ensemble
9.2.2 Canonical (NVT) ensemble
9.2.2.1 Simple velocity scaling
9.2.2.2 Heat-bath coupling
9.2.2.3 Andersen thermostat
9.2.2.4 Nosé thermostat
9.2.2.5 Nosé–Hoover equations
9.2.2.6 Constraint methods
9.2.3 Isobaric–isoenthalpic (NpH) ensemble
9.2.3.1 Andersen’s algorithm
9.2.3.2 Constraint methods
9.2.4 Isothermal–isobaric (NpT) ensemble
9.2.4.1 Hybrid MD/MC
9.2.4.2 Extension of the Nosé–Hoover equations
9.2.4.3 Constraint methods
9.2.5 Grand canonical (μVT) ensemble
9.2.5.1 Lupkowski–van Swol method
9.2.5.2 Çagin–Pettitt method
9.2.5.3 Lo–Palmer method
9.2.5.4 Beuter–van Gunsteren method
9.2.5.5 Parallel algorithm
9.3 Summary
References
10 Molecular simulation of phase equilibria
10.1 Calculating the chemical potential
10.2 Gibbs ensemble Monte Carlo
10.3 MD Gibbs ensemble
10.3.1 Lo–Palmer method
10.3.2 Kotelyanskii–Hentschke method
10.3.3 Baranyai–Cummings method
10.4 NpT + test particle
10.5 Gibbs–Duhem integration
10.6 Thermodynamic scaling
10.6.1 Temperature and density MC
10.6.2 Thermodynamic-scaling Gibbs ensemble MC
10.7 Pseudo-ensemble methods
10.8 Histogram reweighting algorithms
10.8.1 Grand canonical MC
10.8.2 Isothermal–isobaric MC
10.8.3 GEMC
10.9 Finite-size scaling
10.10 Empirically based simulation algorithms
10.10.1 Synthetic method
10.10.2 Combined NEMD/EMD method for SLE
10.11 Accurate determination of SLE
10.12 Summary
References
11 Molecular simulation and object-orientation
11.1 Fundamental concepts of OO
11.1.1 Classes and objects
11.1.2 Abstraction and encapsulation
11.1.3 Methods and message passing
11.1.4 Inheritance
11.1.5 Aggregation
11.1.6 Association
11.1.7 Polymorphism
11.2 Case study: application of OO to the microcanonical MD simulation of Lennard-Jones atoms
11.2.1 OOA and OOD
11.2.2 Detailed class description
11.2.2.1 Simulation
11.2.2.2 Molecular_Dynamics
11.2.2.3 Ensemble
11.2.2.4 NVE_Ensemble
11.2.2.5 Atom
11.2.2.6 LJ_Atom
11.2.2.7 Force
11.2.2.8 LJ_Force
11.2.2.9 Integrator
11.2.2.10 Gear_Predictor–corrector
11.2.2.11 Auxiliary methods
11.2.3 Object-oriented programming in C++
11.2.3.1 Code for the main() function
11.2.3.2 Code for the simulation class
11.2.3.3 Code for the Molecular_Dynamics class
11.2.3.4 Code for the ensemble class
11.2.3.5 Code for NVE_Ensemble class
11.2.3.6 Code for the Atom class
11.2.3.7 Code for LJ_Atom class
11.2.3.8 Code for the Force class
11.2.3.9 Code for the LJ_Force class
11.2.3.10 Code for the Integrator class
11.2.3.11 Code for the Gear_Predictor–corrector class
11.2.3.12 Code for auxiliary methods
11.3 Case study: application of object orientation to the microcanonical MC simulation of Lennard-Jones atoms
11.3.1 OOA and OOD
11.3.2 Detailed class description
11.3.2.1 Simulation
11.3.2.2 Monte_Carlo
11.3.2.3 Ensemble
11.3.2.4 NVE_Ensemble
11.3.2.5 Atom
11.3.2.6 LJ_Atom
11.3.2.7 Energy
11.3.2.8 LJ_Energy
11.3.2.9 Auxiliary methods
11.3.3 OOP in C++
11.3.3.1 Code for the main() function
11.3.3.2 Code for the simulation class
11.3.3.3 Code for the Monte_Carlo class
11.3.3.4 Code for the Ensemble class
11.3.3.5 Code for NVE_Ensemble class
11.3.3.6 Code for the Atom class
11.3.3.7 Code for the LJ_Atom class
11.3.3.8 Code for the Energy class
11.3.3.9 Code for the LJ_Energy class
11.3.3.10 Code for the auxiliary methods
11.4 Case study: combined MD and MC program for Lennard-Jones atoms in the microcanonical ensemble
11.4.1 OOA
11.4.2 OOP in C++
11.5 Case study: extensions
11.5.1 Other ensembles
11.5.2 Other ensembles and other potentials
11.5.3 Other ensembles, other potentials, and molecules
11.6 Summary
References
12 GPU and CPU parallel molecular simulation with CUDA and MPI
12.1 Basic GPU implementations with CUDA
12.1.1 Defining a Kernel
12.1.2 Allocating and copying memory
12.1.3 Launching the kernel
12.1.4 Reduction
12.1.5 General GPU algorithm
12.1.6 Compiling molecular simulation codes using CUDA
12.2 Case study: CUDA implementation of MD code (/mdCU_Ver2.0)
12.2.1 Key variable additions
12.2.2 The force kernel
12.2.3 Launching the force kernel
12.2.4 Changes to the MD integrator
12.3 Case study: CUDA implementation of MC code (/mcCU_Ver2.0)
12.3.1 Energy kernels
12.3.2 Launching the energy kernels
12.4 Parallel programming with MPI
12.4.1 General MPI procedure
12.5 Case study: MPI implementation of MD code (/mdMPI_Ver2.0)
12.5.1 Key variable additions
12.5.2 Changes to mainMD.cpp
12.5.3 Changes to ljForceMD.cpp
12.5.4 Changes to the MD integrator
12.6 Case study: MPI implementation of MC code (/mcMPI_Ver2.0)
12.6.1 Changes to mainMC.cpp
12.6.2 Changes to ljEnergyMC.cpp
12.7 Case study: relative performance of MD and MC MPI and GPU codes
12.7.1 Performance of MD and MC GPU codes
12.7.2 Performance of the MD MPI code
12.8 Summary
References
Appendix 1 Software user’s guide
A.1 C++ code for the molecular dynamics simulation of
A.2 C++ code for the Monte Carlo simulation of Lennard-Jones
A.3 C++ code for the combined Monte Carlo and molecular
A.4 CUDA code for the molecular dynamics simulation of
A.5 CUDA code for the Monte Carlo simulation of
A.6 MPI code for the molecular dynamics simulation of
A.7 MPI code for the molecular dynamics simulation of
A.8 Compilation
A.8.1 Serial compilation
A.8.2 MPI compilation
A.8.2.1 CUDA compilation
Appendix 2 List of algorithms
Appendix 3 Notation
Acronyms and abbreviations
Latin alphabet
Greek alphabet
Subscripts and superscripts
Index
Back Cover
📜 SIMILAR VOLUMES
<p>Motivation It is now possible to build powerful single-processor and multiprocessor systems and use them efficiently for data processing, which has seen an explosive ex pansion in many areas of computer science and engineering. One approach to meeting the performance requirements of the applicat
Motivation It is now possible to build powerful single-processor and multiprocessor systems and use them efficiently for data processing, which has seen an explosive ex- pansion in many areas of computer science and engineering. One approach to meeting the performance requirements of the application
<p><em>Object-Oriented Computer Simulation of Discrete-Event Systems</em> offers a comprehensive presentation of a wide repertoire of computer simulation techniques available to the modelers of dynamic systems. Unlike other books on simulation, this book includes a complete and balanced description