Wl LEY-VCH - GBV

Transcription

Rubin H. LandauManuel J. PäezCristian C. BordeianuComputational PhysicsProblem Solving with Python3rd completely revised editionWl LEY-VCHVerlag GmbH &. Co. KGaA

1Computational Physics and Computational Science 1This Book's Subjects 3This Book's Problems 4This Book's Language: The Python Ecosystem 8Python Packages (Libraries) 9This Book's Packages 10The Easy Way: Python Distributions (Package Collections)Python's Visualization Tools 13Visual (VPython)'s 2D Plots 14VPython's Animations 17Matplotlib's 2D Plots 17Matplotlib's 3D Surface Plots 22Matplotlib's Animations 24Mayavi's Visualizations Beyond Plotting 26Plotting Exercises 30Python's Algebraic Tools 31Computing Software Basics 33121234Making Computers Obey 33Programming Warmup 35Structured and Reproducible Program Design 36Shells, Editors, and Execution 37Python I/O 39Computer Number Representations (Theory) 40IEEE Floating-Point Numbers 41Python and the IEEE 754 Standard 47Over and Underflow Exercises 48Machine Precision (Model) 49

VIIIContents2.4.52.52.5.12.5.2Experiment: Your Machine's Precision 50Problem: Summing Series 51Numerical Summation (Method) 52Implementation and Assessment 523Errors and Uncertainties in 33.3.1Types of Errors (Theory) 53Model for Disaster: Sub tractive Cancelation 55Subtractive Cancelation Exercises 56Round-off Errors 57Round-off Error Accumulation 58Error in Bessel Functions (Problem) 58Numerical Recursion (Method) 59Implementation and Assessment: Recursion Relations 61Experimental Error Investigation 62Error Assessment 65534Monte Carlo: Randomness, Walks, and Decays .24.5.34.6Deterministic Randomness 69Random Sequences (Theory) 69Random-Number Generation (Algorithm) 70Implementation: Random Sequences 72Assessing Randomness and Uniformity 73Random Walks (Problem) 75Random-Walk Simulation 76Implementation: Random Walk 77Extension: Protein Folding and Self-Avoiding Random Walks 79Spontaneous Decay (Problem) 80Discrete Decay (Model) 81Continuous Decay (Model) 82Decay Simulation with Geiger Counter Sound 82Decay Implementation and Visualization 845Differentiation and ferentiation 85Forward Difference (Algorithm) 86Central Difference (Algorithm) 87Extrapolated Difference (Algorithm) 87Error Assessment 88Second Derivatives (Problem) 90Second-Derivative Assessment 90Integration 91Quadrature as Box Counting (Math) 91Algorithm: Trapezoid Rule 93Algorithm: Simpson's Rule 9485

22.1Integration Error (Assessment) 96Algorithm: Gaussian Quadrature 97Mapping Integration Points 98Gaussian Points Derivation 99Integration Error Assessment 100Higher Order Rules (Algorithm) 103Monte Carlo Integration by Stone Throwing (Problem) 104Stone Throwing Implementation 104Mean Value Integration (Theory and Math) 105Integration Exercises 106Multidimensional Monte Carlo Integration (Problem) 108Multi Dimension Integration Error Assessment 109Implementation: 10D Monte Carlo Integration 110Integrating Rapidly Varying Functions (Problem) 110Variance Reduction (Method) 110Importance Sampling (Method) 111von Neumann Rejection (Method) 111Simple Random Gaussian Distribution 113Nonuniform Assessment O 113Implementation O .2Matrix Computing 117Problem 3: N - D Newton-Raphson; Two Masses on a StringTheory: Statics 118Algorithm: Multidimensional Searching 119Why Matrix Computing? 122Classes of Matrix Problems (Math) 122Practical Matrix Computing 124Python Lists as Arrays 126Numerical Python (NumPy) Arrays 127NumPy's linalg Package 132Exercise: Testing Matrix Programs 134Matrix Solution of the String Problem 137Explorations rror Searching and Data Fitting 141Problem 1: A Search for Quantum States in a Box 141Algorithm: Trial-and-Error Roots via Bisection 142Implementation: Bisection Algorithm 144Improved Algorithm: Newton-Raphson Searching 245Newton-Raphson with Backtracking 147Implementation: Newton-Raphson Algorithm 148Problem 2: Temperature Dependence of Magnetization 148Searching Exercise 150Problem 3: Fitting An Experimental Spectrum 150117IX

e Implementation, Assessment 152Cubic Spline Interpolation (Method) 153Problem 4: Fitting Exponential Decay 156Least-Squares Fitting (Theory) 158Least-Squares Fitting: Theory and Implementation 160Exercises: Fitting Exponential Decay, Heat Flow and Hubble's LawLinear Quadratic Fit 164Problem 5: Nonlinear Fit to a Breit-Wigner 18.9.28.10Solving Differential Equations: Nonlinear Oscillations 171Free Nonlinear Oscillations 171Nonlinear Oscillators (Models) 171Types of Differential Equations (Math) 173Dynamic Form for ODEs (Theory) 175ODE Algorithms 177Euler'sRule 177Runge-Kutta Rule 178Adams-Bashforth-Moulton Predictor-Corrector Rule 183Assessment: rl 2 vs. rk4 vs. rk45 185Solution for Nonlinear Oscillations (Assessment) 187Precision Assessment: Energy Conservation 188Extensions: Nonlinear Resonances, Beats, Friction 189Friction (Model) 189Resonances and Beats: Model, Implementation 190Extension: Time-Dependent Forces .69.6.19.6.29.7ODE Applications: Eigenvalues, Scattering, and Projectiles 193Problem: Quantum Eigenvalues in Arbitrary Potential 193Model: Nucleon in a Box 194Algorithms: Eigenvalues via ODE Solver Search 195Numerov Algorithm for Schrödinger ODE O 197Implementation: Eigenvalues via ODE Solver Bisection AlgorithmExplorations 203Problem: Classical Chaotic Scattering 203Model and Theory 204Implementation 206Assessment 207Problem: Balls Falling Out of the Sky 208Theory: Projectile Motion with Drag 208Simultaneous Second-Order ODEs 209Assessment 210Exercises: 2- and 3-Body Planet Orbits and Chaotic Weather 2111010.1High-Performance Hardware and Parallel Computers 215High-Performance Computers 215162200

Contents 0.16Memory Hierarchy 216The Central Processing Unit 219CPU Design: Reduced Instruction Set Processors 220CPU Design: Multiple-Core Processors 221CPU Design: Vector Processors 222Introduction to Parallel Computing 223Parallel Semantics (Theory) 224Distributed Memory Programming 226Parallel Performance 227Communication Overhead 229Parallelization Strategies 230Practical Aspects of MIMD Message Passing 231High-Level View of Message Passing 233Message Passing Example and Exercise 234Scalability 236Scalability Exercises 238Data Parallelism and Domain Decomposition 239Domain Decomposition Exercises 242Example: The IBM Blue Gene Supercomputers 243Exascale Computing via Multinode-Multicore GPUs 111.4.211.4.311.511.5.111.611.6.111.6.2Applied HPC: Optimization, Tuning, and GPU Programming 247General Program Optimization 247Programming for Virtual Memory (Method) 248Optimization Exercises 249Optimized Matrix Programming with NumPy 251NumPy Optimization Exercises 254Empirical Performance of Hardware 254Racing Python vs. Fortran/C 255Programming for the Data Cache (Method) 262Exercise 1: Cache Misses 264Exercise 2: Cache Flow 264Exercise 3: Large-Matrix Multiplication 265Graphical Processing Units for High Performance Computing 266The GPU Card 267Practical Tips for Multicore and GPU Programming 267CUDA Memory Usage 270CUDA Programming O 2711212.112.212.2.112.312.4Fourier Analysis: Signals and Filters 275Fourier Analysis of Nonlinear Oscillations 275Fourier Series (Math) 276Examples: Sawtooth and Half-Wave Functions 278Exercise: Summation of Fourier Series 279Fourier Transforms (Theory) 279

.112.912.9.112.1012.11The Discrete Fourier Transform 281Aliasing (Assessment) 285Fourier Series DFT (Example) 287Assessments 288Nonperiodic Function DFT (Exploration) 290Filtering Noisy Signals 290Noise Reduction via Autocorrelation (Theory) 290Autocorrelation Function Exercises 293Filtering with Transforms (Theory) 294Digital Filters: Windowed Sine Filters (Exploration) OThe Fast Fourier Transform Algorithm O 299Bit Reversal 301FFT Implementation 303FFT Assessment 6.113.6.213.6.313.713.7.113.7.2Wavelet and Principal Components Analyses: Nonstationary Signals andData Compression 307Problem: Spectral Analysis of Nonstationary Signals 307Wavelet Basics 307Wave Packets and Uncertainty Principle (Theory) 309Wave Packet Assessment 311Short-Time Fourier Transforms (Math) 311The Wavelet Transform 313Generating Wavelet Basis Functions 313Continuous Wavelet Transform Implementation 316Discrete Wavelet Transforms, Multiresolution Analysis O 317Pyramid Scheme Implementation O 323Daubechies Wavelets via Filtering 327DWT Implementation and Exercise 330Principal Components Analysis 332Demonstration of Principal Component Analysis 334PCA Exercises 4.5.314.6Nonlinear Population Dynamics 339Bug Population Dynamics 339The Logistic Map (Model) 339Properties of Nonlinear Maps (Theory and Exercise) 341Fixed Points 342Period Doubling, Attractors 343Mapping Implementation 344Bifurcation Diagram (Assessment) 345Bifurcation Diagram Implementation 346Visualization Algorithm: Binning 347Feigenbaum Constants (Exploration) 348Logistic Map Random Numbers (Exploration) O 348296

214.11.314.11.414.11.5Other Maps (Exploration) 348Signals of Chaos: Lyapunov Coefficient and Shannon Entropy O 349Coupled Predator-Prey Models 353Lotka-Volterra Model 354Lotka-Volterra Assessment 356Predator-Prey Chaos 356Exercises 359LVM with Prey Limit 359LVM with Predation Efficiency 360LVM Implementation and Assessment 361Two Predators, One Prey (Exploration) 36215Continuous Nonlinear 15.415.515.615.7Chaotic Pendulum 363Free Pendulum Oscillations 364Solution as Elliptic Integrals 365Implementation and Test: Free Pendulum 366Visualization: Phase-Space Orbits 367Chaos in Phase Space 368Assessment in Phase Space 372Exploration: Bifurcations of Chaotic Pendulums 374Alternate Problem: The Double Pendulum 375Assessment: Fourier/Wavelet Analysis of Chaos 377Exploration: Alternate Phase-Space Plots 378Further Explorations 37936316Fractals and Statistical Growth Fractional Dimension (Math) 383The Sierpifiski Gasket (Problem 1) 384Sierpinski Implementation 384Assessing Fractal Dimension 385Growing Plants (Problem 2) 386Self-Affine Connection (Theory) 386Barnsley's Fern Implementation 387Self-Affinity in Trees Implementation 389Ballistic Deposition (Problem 3) 390Random Deposition Algorithm 390Length of British Coastline (Problem 4) 391Coastlines as Fractals (Model) 392Box Counting Algorithm 392Coastline Implementation and Exercise 393Correlated Growth, Forests, Films (Problem 5) 395Correlated Ballistic Deposition Algorithm 395Globular Cluster (Problem 6) 396Diffusion-Limited Aggregation Algorithm 396383XIII

XIV Contents16.7.216.816.916.1016.10.116.11Fractal Analysis of DLA or a Pollock 399Fractals in Bifurcation Plot (Problem 7) 400Fractals from Cellular Automata 400Perlin Noise Adds Realism O 402Ray Tracing Algorithms 404Exercises 4071717.117.217.317.3.117 A17.4.117.4.217 8.417.9Thermodynamic Simulations and Feynman Path IntegralsMagnets via Metropolis Algorithm 409An Ising Chain (Model) 410Statistical Mechanics (Theory) 412Analytic Solution 413Metropolis Algorithm 413Metropolis Algorithm Implementation 416Equilibration, Thermodynamic Properties (Assessment)Beyond Nearest Neighbors, ID (Exploration) 419Magnets via Wang-Landau Sampling 420Wang-Landau Algorithm 423WLS Ising Model Implementation 425WLS Ising Model Assessment 428Feynman Path Integral Quantum Mechanics 429Feynman's Space-Time Propagation (Theory) 429Bound-State Wave Function (Theory) 431Lattice Path Integration (Algorithm) 432Lattice Implementation 437Assessment and Exploration 440Exploration: Quantum Bouncer's Paths 4401818.118.1.118.1.218.1.318.218.318.4Molecular Dynamics Simulations 445Molecular Dynamics (Theory) 445Connection to Thermodynamic Variables 449Setting Initial Velocities 449Periodic Boundary Conditions and Potential CutoffVerlet and Velocity-Verlet Algorithms 451ID Implementation and Exercise 453Analysis 45619PDE Review and Electrostatics via Finite Differences and Electrostatics viaFinite Differences 461PDE Generalities 461Electrostatic Potentials 463Laplace's Elliptic PDE (Theory) 463Fourier Series Solution of a PDE 464Polynomial Expansion as an Algorithm 466Finite-Difference Algorithm 46719.119.219.2.119.319.3.119 A409417450

Contents19.4.119.4.219.519.619.719.819.9Relaxation and Over-relaxation 469Lattice PDE Implementation 470Assessment via Surface Plot 471Alternate Capacitor Problems 471Implementation and Assessment 474Electric Field Visualization (Exploration) 475Review Exercise 47620Heat Flow via Time .4.120.4.2Heat Flow via Time-Stepping (Leapfrog) 477The Parabolic Heat Equation (Theory) 478Solution: Analytic Expansion 478Solution: Time Stepping 479von Neumann Stability Assessment 481Heat Equation Implementation 483Assessment and Visualization 483Improved Heat Flow: Crank-Nicolson Method 484Solution of Tridiagonal Matrix Equations O 487Crank-Nicolson Implementation, Assessment 49047721Wave Equations I: Strings and 1.4.121.4.221.4.321.521.621.7A Vibrating String 491The Hyperbolic Wave Equation (Theory) 491Solution via Normal-Mode Expansion 493Algorithm: Time Stepping 494Wave Equation Implementation 496Assessment, Exploration 497Strings with Friction (Extension) 499Strings with Variable Tension and Density 500Waves on Catenary 501Derivation of Catenary Shape 501Catenary and Frictional Wave Exercises 503Vibrating Membrane (2D Waves) 504Analytical Solution 505Numerical Solution for 2D Waves 50822Wave Equations II: Quantum Packets and 122.4Quantum Wave Packets 511Time-Dependent Schrödinger Equation (Theory) 511Finite-Difference Algorithm 513Wave Packet Implementation, Animation 514Wave Packets in Other Wells (Exploration) 516Algorithm for the 2D Schrödinger Equation 517Exploration: Bound and Diffracted 2D Packet 518Wave Packet-Wave Packet Scattering 518491511XV

7.222.7.322.822.922.10Algorithm 520Implementation 520Results and Visualization 522E&M Waves via Finite-Difference Time DomainMaxwell's Equations 525FDTD Algorithm 526Implementation 530Assessment 530Extension: Circularly Polarized Waves 531Application: Wave Plates 533Algorithm 534FDTD Exercise and Assessment 53552523Electrostatics via Finite Elements23.123.223.323 A23.4.123.4.223.523.5.123.623.6.123.6.223.6.323.6 A23.6.523.6.623.6.7Finite-Element Method G 537Electric Field from Charge Density (Problem) 538Analytic Solution 538Finite-Element (Not Difference) Methods, ID 539Weak Form of PDE 539Galerkin Spectral Decomposition 540ID FEM Implementation and Exercises 544ID Exploration 547Extension to 2D Finite Elements 547Weak Form of PDE 548Galerkin's Spectral Decomposition 548Triangular Elements 549Solution as Linear Equations 551Imposing Boundary Conditions 552FEM 2D Implementation and Exercise 554FEM 2D Exercises 55453724Shocks Waves and .124.5.224.5.324.5.424.6Shocks and Solitons in Shallow Water 555Theory: Continuity and Advection Equations 556Advection Implementation 558Theory: Shock Waves via Burgers' Equation 559Lax-Wendroff Algorithm for Burgers' Equation 560Implementation and Assessment of Burgers' Shock Equation 561Including Dispersion 562Shallow-Water Solitons: The KdeV Equation 563Analytic Soliton Solution 563Algorithm for KdeV Solitons 564Implementation: KdeV Solitons 565Exploration: Solitons in Phase Space, Crossing 567Solitons on Pendulum Chain 567555

ing Dispersion 568Continuum Limit, the Sine-Gordon Equation 570Analytic SGE Solution 571Numeric Solution: 2D SGE Solitons 5712D Soliton Implementation 573SGE Soliton Visualization 57425Fluid Dynamics25.125.225.2.125.2.225.2.325.325 A25.4.125.4.225.4.325.4.425.4.5River Hydrodynamics 575Navier-Stokes Equation (Theory) 576Boundary Conditions for Parallel Plates 578Finite-Difference Algorithm and Overrelaxation 580Successive Overrelaxation Implementation 5812D Flow over a Beam 581Theory: Vorticity Form of Navier-Stokes Equation 582Finite Differences and the SOR Algorithm 584Boundary Conditions for a Beam 585SOR on a Grid 587Flow Assessment 589Exploration 59057526Integral Equations of Quantum 6.4.126.4.226.4.326.4.426A.526.4.6Bound States of Nonlocal Potentials 591Momentum-Space Schrödinger Equation (Theory) 592Integral to Matrix Equations 593Delta-Shell Potential (Model) 595Binding Energies Solution 595Wave Function (Exploration) 597Scattering States of Nonlocal Potentials 0 597Lippmann-Schwinger Equation (Theory) 598Singular Integrals (Math) 599Numerical Principal Values 600Reducing Integral Equations to Matrix Equations (Method) 600Solution via Inversion, Elimination 602Scattering Implementation 603Scattering Wave Function (Exploration) 604591Appendix A Codes, Applets, and AnimationsBibliographyIndex615609607XVII

Computational Physics Problem Solving with Python 3rd completely revised edition Wl LEY-VCH Verlag GmbH &. Co. KGaA . Contents Dedication V Preface XIX Introduction 1 Computational Physics and Computational Science 1 This Book's Subjects 3 This Book's Problems 4 This Book's Language: The Python Eco