معرفی کتاب «Computer simulation in physics and engineering» نوشتهٔ Steinhauser, Martin Oliver در سال 2013. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است. «Computer simulation in physics and engineering» در دستهٔ بدون دستهبندی قرار دارد.
This work is a needed reference for widely used techniques and methods of computer simulation in physics and other disciplines, such as materials science. Molecular dynamics computes a molecule's reactions and dynamics based on physical models; Monte Carlo uses random numbers to image a system's behaviour when there are different possible outcomes with related probabilities. The work conveys both the theoretical foundations as well as applications and "tricks of the trade", that often are scattered across various papers. Thus it will meet a need and fill a gap for every scientist who needs computer simulations for his/her task at hand. In addition to being a reference, case studies and exercises for use as course reading are included. * Provides a hands-on reference of molecular dynamics and Monte Carlo simulation methods * Presents the foundations of the methods * Assembles many "tricks of the trade" of the most important techniques * For Physicists, Engineers and Material Scientists * Numerous illustrations * Source code samples for download * With case studies and exercises for use as course reading Preface 5 1 Introduction to computer simulation 21 1.1 Physics and computational physics 21 1.2 Choice of programming language 25 1.3 Outfitting your PC for scientific computing 33 1.4 History of computing in a nutshell 37 1.5 Number representation: bits and bytes in computer memory 42 1.5.1 Addition and subtraction of dual integer numbers 44 1.5.2 Basic data types 49 1.6 The role of algorithms in scientific computing 61 1.6.1 Efficient and inefficient calculations 63 1.6.2 Asymptotic analysis of algorithms 71 1.6.3 Merge sort and divide-and-conquer 76 1.7 Theory, modeling and computer simulation 79 1.7.1 What is a theory? 79 1.7.2 What is a model? 87 1.7.3 Model systems: particles or fields? 92 1.7.4 The linear chain as a model system 94 1.7.5 From modeling to computer simulation 98 1.8 Exercises 101 1.8.1 Addition of bit patterns of 1 byte duals 101 1.8.2 Subtracting dual numbers using two’s complement 101 1.8.3 Comparison of running times 101 1.8.4 Asymptotic notation 102 1.9 Chapter literature 103 2 Scientific Computing in C 104 2.1 Introduction 104 2.1.1 Basics of a UNIX/Linux programming environment 107 2.2 First steps in C 119 2.2.1 Variables in C 121 2.2.2 Global variables 123 2.2.3 Operators in C 124 2.2.4 Control structures 128 2.2.5 Scientific “Hello world!” 131 2.2.6 Streams - input/output functionality 136 2.2.7 The preprocessor and symbolic constants 139 2.2.8 The function scanf() 142 2.3 Programming examples of rounding errors and loss of precision 145 2.3.1 Algorithms for calculating e-x 150 2.3.2 Algorithm for summing 1/n 153 2.4 Details on C-Arrays 157 2.4.1 Direct initialization of certain array elements (C99) 161 2.4.2 Arrays with variable length (C99) 161 2.4.3 Arrays as function parameters 162 2.4.4 Pointers 164 2.4.5 Pointers as function parameters 172 2.4.6 Pointers to functions as function parameters 174 2.4.7 Strings 179 2.5 Structures and their representation in computer memory 181 2.5.1 Blending structs and arrays 183 2.6 Numerical differentiation and integration 185 2.6.1 Numerical differentiation 186 2.6.2 Case study: the second derivative of ex 189 2.6.3 Numerical integration 196 2.7 Remarks on programming and software engineering 201 2.7.1 Good software development practices 201 2.7.2 Reduction of complexity 204 2.7.3 Designing a program 208 2.7.4 Readability of a program 209 2.7.5 Focus your attention by using conventions 210 2.8 Ways to improve your programs 211 2.9 Exercises 213 2.9.1 Questions 213 2.9.2 Errors in programs 214 2.9.3 printf()-statement 217 2.9.4 Assignments 218 2.9.5 Loops 219 2.9.6 Recurrence 219 2.9.7 Macros 220 2.9.8 Strings 220 2.9.9 Structs 221 2.10 Projects 223 2.10.1 Decimal and binary representation 223 2.10.2 Nearest machine number 223 2.10.3 Calculating e -x 223 2.10.4 Loss of precision 224 2.10.5 Summing series 224 2.10.6 Recurrence in orthogonal functions 225 2.10.7 The Towers of Hanoi 225 2.10.8 Spherical harmonics and Legendre polynomials 227 2.10.9 Memory diagram of a battle 228 2.10.10 Computing derivatives numerically 228 2.11 Chapter literature 230 3 Fundamentals of statistical physics 231 3.1 Introduction and basic ideas 232 3.1.1 The macrostate 236 3.1.2 The microstate 238 3.1.3 Information conservation in statistical physics 239 3.1.4 Equations of motion in classical mechanics 245 3.1.5 Statistical physics in phase space 249 3.2 Elementary statistics 255 3.2.1 Random Walk 256 3.2.2 Discrete and continuous probability distributions 261 3.2.3 Reduced probability distributions 262 3.2.4 Important distributions in physics and engineering 264 3.3 Equilibrium distribution 269 3.3.1 The most probable distribution 271 3.3.2 A statistical definition of temperature 273 3.3.3 The Boltzmann distribution and the partition function 275 3.4 The canonical ensemble 278 3.5 Exercises 281 3.5.1 Trajectories of the one-dimensional harmonic oscillator in phase space 281 3.5.2 Important integrals of statistical physics 281 3.5.3 Probability, example from playing cards 281 3.5.4 Rolling dice 282 3.5.5 Problems, using the Poisson density 282 3.5.6 Particle inside a sphere 282 4 Inter- and intramolecular potentials 284 4.1 Introduction 285 4.2 The quantum mechanical origin of particle interactions 286 4.3 The energy hypersurface and classical approximations 290 4.4 Non-bonded interactions 291 4.5 Pair potentials 294 4.5.1 Repulsive Interactions 295 4.5.2 Electric multipoles and multipole expansion 300 4.5.3 Charge-dipole interaction 300 4.5.4 Dipole-dipole interaction 303 4.5.5 Dipole-dipole interaction and temperature 304 4.5.6 Induction energy 305 4.5.7 Dispersion energy 307 4.5.8 Further remarks on pair potentials 308 4.6 Bonded interactions 311 4.7 Chapter literature 312 5 Molecular Dynamics simulations 314 5.1 Introduction 315 5.1.1 Historical notes on MD 319 5.1.2 Limitations of MD 323 5.2 Numerical integration of differential equations 329 5.2.1 Ordinary differential equations 329 5.2.2 Finite Difference methods 330 5.2.3 Improvements to Euler’s algorithm 336 5.2.4 Predictor-corrector methods 337 5.2.5 Runge-Kutta methods 338 5.3 Integrating Newton’s equation of motion: the Verlet algorithm 340 5.4 The basic MD algorithm 343 5.5 Basic MD: planetary motion 347 5.5.1 Preprocessor statements and basic definitions 347 5.5.2 Organization of the data 348 5.5.3 Function that computes the energy 348 5.5.4 The Verlet velocity algorithm 349 5.5.5 The force calculation 349 5.5.6 The initialization and output functions 352 5.5.7 The main()-function 352 5.6 Planetary motion: suggested project 355 5.7 Periodic boundary conditions 357 5.8 Minimum image convention 358 5.9 Lyapunov instability 358 5.10 Case study: static and dynamic properties of a microcanonical LJ fluid 361 5.10.1 Microcanonical LJ fluid: suggested projects 366 5.11 Chapter literature 376 6 Monte Carlo simulations 377 6.1 Introduction to MC simulation 377 6.1.1 Historical remarks 380 6.2 Simple random numbers 382 6.2.1 The linear congruential method 385 6.2.2 Monte Carlo integration - simple sampling 389 6.3 Case study: MC simulation of harddisks 398 6.3.1 Trial moves 398 6.3.2 Case study: MC simulation of harddisks - suggested exercises 400 6.4 The Metropolis Monte Carlo method 401 6.5 The Ising model 403 6.5.1 Case study: Monte Carlo simulation of the 2D Ising magnet . 406 6.6 Case Study: NVT MC of dumbbell molecules in 2D 412 6.7 Exercises 414 6.7.1 The GSL library 414 6.7.2 Calculating π 415 6.7.3 Simple and importance sampling with random walks in 1D 419 6.7.4 Simple sampling and importance sampling with random walks in 1D 419 6.8 Chapter literature 427 7 Advanced topics, and applications in soft matter 428 7.1 Partial differential equations 428 7.1.1 Elliptic PDEs 430 7.1.2 Parabolic PDEs 431 7.1.3 Hyperbolic PDEs 431 7.2 The finite element method (FEM) 432 7.3 Coarse-grained MD for mesoscopic polymer and biomolecular simulations 434 7.3.1 Why coarse-grained simulations? 434 7.4 Scaling properties of polymers 435 7.5 Ideal polymer chains 436 7.6 Single-chain conformations 440 7.7 The ideal (Gaussian) chain model 441 7.8 Scaling of flexible and semiflexible polymer chains 442 7.9 Constant temperature MD 449 7.10 Velocity scaling using the Behrendsen thermostat 450 7.11 Dissipative particle dynamics thermostat 451 7.12 Case study: NVT Metropolis MC simulation of a LJ fluid 454 7.13 Exercise 463 7.13.1 Dumbbell molecules in 3D 463 A The software development life cycle 464 B Installation guide to Cygwin 465 C Introduction to the UNIX/Linux programming environment 468 C.1 Directory structure 468 C.2 Users, rights and privileges 470 C.3 Some basic commands 473 C.4 Processes 475 C.4.1 Ending processes 475 C.4.2 Processes priorities and resources 475 C.5 The Bash 477 C.6 Tips and tricks 478 C.7 Useful programs 478 C.7.1 Remote connection: ssh 479 C.7.2 Gnuplot 479 C.7.3 Text editors: vi, EMACS and others 479 D Sample program listings 490 D.1 Sample code for file handling 490 E Reserved keywords in C 493 F Functions of the standard library 494 G Elementary combinatorial problems 495 G.1 How many differently ordered sequences of N objects are possible? 495 G.2 In how many ways can N objects be divided into two piles, with n and m objects, respectively? 495 G.3 In how many ways can N objects be arranged in r + 1 piles with nj objects in pile number j with j ∈ [0, 1,..., r]? 496 G.4 Stirling’s approximation of large numbers 496 H Some useful constants 497 I Installing the GNU Scientific Library, GSL 498 J Standard header files of the ANSI-C library 499 K The central limit theorem 500 Bibliography 501 Acronyms 525 Index 526 Authors 529 Content: Preface 1 Introduction to computer simulation 1.1 Physics and computational physics 1.2 Choice of programming language 1.3 Outfitting your PC for scientific computing 1.4 History of computing in a nutshell 1.5 Number representation: bits and bytes in computer memory 1.5.1 Addition and subtraction of dual integer numbers 1.5.2 Basic data types 1.6 The role of algorithms in scientific computing 1.6.1 Efficient and inefficient calculations 1.6.2 Asymptotic analysis of algorithms 1.6.3 Merge sort and divide-and-conquer 1.7 Theory, modeling and computer simulation. 1.7.1 What is a theory?1.7.2 What is a model? 1.7.3 Model systems: particles or fields? 1.7.4 The linear chain as a model system 1.7.5 From modeling to computer simulation 1.8 Exercises 1.8.1 Addition of bit patterns of 1 byte duals 1.8.2 Subtracting dual numbers using two's complement 1.8.3 Comparison of running times 1.8.4 Asymptotic notation 1.9 Chapter literature 2 Scientific Computing in C 2.1 Introduction 2.1.1 Basics of a UNIX/Linux programming environment 2.2 First steps in C 2.2.1 Variables in C 2.2.2 Global variables 2.2.3 Operators in C 2.2.4 Control structures. 2.2.5 Scientific "Hello world!"2.2.6 Streams -- input/output functionality 2.2.7 The preprocessor and symbolic constants 2.2.8 The function scanf() 2.3 Programming examples of rounding errors and loss of precision 2.3.1 Algorithms for calculating e-x 2.3.2 Algorithm for summing 1/n 2.4 Details on C-Arrays 2.4.1 Direct initialization of certain array elements (C99) 2.4.2 Arrays with variable length (C99) 2.4.3 Arrays as function parameters 2.4.4 Pointers 2.4.5 Pointers as function parameters 2.4.6 Pointers to functions as function parameters 2.4.7 Strings. 2.5 Structures and their representation in computer memory2.5.1 Blending structs and arrays 2.6 Numerical differentiation and integration 2.6.1 Numerical differentiation 2.6.2 Case study: the second derivative of ex 2.6.3 Numerical integration 2.7 Remarks on programming and software engineering 2.7.1 Good software development practices 2.7.2 Reduction of complexity 2.7.3 Designing a program 2.7.4 Readability of a program 2.7.5 Focus your attention by using conventions 2.8 Ways to improve your programs 2.9 Exercises 2.9.1 Questions 2.9.2 Errors in programs. 2.9.3 printf()-statement2.9.4 Assignments 2.9.5 Loops 2.9.6 Recurrence 2.9.7 Macros 2.9.8 Strings 2.9.9 Structs 2.10 Projects 2.10.1 Decimal and binary representation 2.10.2 Nearest machine number 2.10.3 Calculating e -x 2.10.4 Loss of precision 2.10.5 Summing series 2.10.6 Recurrence in orthogonal functions 2.10.7 The Towers of Hanoi 2.10.8 Spherical harmonics and Legendre polynomials 2.10.9 Memory diagram of a battle 2.10.10 Computing derivatives numerically 2.11 Chapter literature 3 Fundamentals of statistical physics 3.1 Introduction and basic ideas.
This work is a needed reference for widely used techniques and methods of computer simulation in physics and other disciplines, such as materials science. Molecular dynamics computes a molecule's reactions and dynamics based on physical models; Monte Carlo uses random numbers to image a system's behaviour when there are different possible outcomes with related probabilities. The work conveys both the theoretical foundations as well as applications and "tricks of the trade", that often are scattered across various papers. Thus it will meet a need and fill a gap for every scientist who needs computer simulations for his/her task at hand. In addition to being a reference, case studies and exercises for use as course reading are included.
Main description: This work is a needed reference for widely used techniques and methods of computer simulation in physics and other disciplines, such as materials science. The work conveys both: the theoretical foundations of computer simulation as well as applications and "tricks of the trade", that often are scattered across various papers. Thus it will meet a need and fill a gap for every scientist who needs computer simulations for his/her task at hand. In addition to being a reference, case studies and exercises for use as course reading are included