Table of Contents

Cover

Related Titles

Title

Authors

Copyright

Dedication

Preface

Acknowledgments

1: Introduction

1.1 Computational Physics and Computational Science

1.2 This Book’s Subjects

1.3 This Book’s Problems

1.4 This Book’s Language: The Python Ecosystem

1.5 Python’s Visualization Tools

1.6 Plotting Exercises

1.7 Python’s Algebraic Tools

2: Computing Software Basics

2.1 Making Computers Obey

2.2 Programming Warmup

2.3 Python I/O

2.4 Computer Number Representations (Theory)

2.5 Problem: Summing Series

3: Errors and Uncertainties in Computations

3.1 Types of Errors (Theory)

3.2 Error in Bessel Functions (Problem)

3.3 Experimental Error Investigation

4: Monte Carlo: Randomness, Walks, and Decays

4.1 Deterministic Randomness

4.2 Random Sequences (Theory)

4.3 Random Walks (Problem)

4.4 Extension: Protein Folding and Self-Avoiding Random Walks

4.5 Spontaneous Decay (Problem)

4.6 Decay Implementation and Visualization

5: Differentiation and Integration

5.1 Differentiation

5.2 Forward Difference (Algorithm)

5.3 Central Difference (Algorithm)

5.4 Extrapolated Difference (Algorithm)

5.5 Error Assessment

5.6 Second Derivatives (Problem)

5.7 Integration

5.8 Quadrature as Box Counting (Math)

5.9 Algorithm: Trapezoid Rule

5.10 Algorithm: Simpson’s Rule

5.11 Integration Error (Assessment)

5.12 Algorithm: Gaussian Quadrature

5.13 Higher Order Rules (Algorithm)

5.14 Monte Carlo Integration by Stone Throwing (Problem)

5.15 Mean Value Integration (Theory and Math)

5.16 Integration Exercises

5.17 Multidimensional Monte Carlo Integration (Problem)

5.18 Integrating Rapidly Varying Functions (Problem)

5.19 Variance Reduction (Method)

5.20 Importance Sampling (Method)

5.21 von Neumann Rejection (Method)

5.22 Nonuniform Assessment

6: Matrix Computing

6.1 Problem 3: N–D Newton–Raphson; Two Masses on a String

6.2 Why Matrix Computing?

6.3 Classes of Matrix Problems (Math)

6.4 Python Lists as Arrays

6.5 Numerical Python (NumPy) Arrays

6.6 Exercise: Testing Matrix Programs

7: Trial-and-Error Searching and Data Fitting

7.1 Problem 1: A Search for Quantum States in a Box

7.2 Algorithm: Trial-and-Error Roots via Bisection

7.3 Improved Algorithm: Newton–Raphson Searching

7.4 Problem 2: Temperature Dependence of Magnetization

7.5 Problem 3: Fitting An Experimental Spectrum

7.6 Problem 4: Fitting Exponential Decay

7.7 Least-Squares Fitting (Theory)

7.8 Exercises: Fitting Exponential Decay, Heat Flow and Hubble’s Law

8: Solving Differential Equations: Nonlinear Oscillations

8.1 Free Nonlinear Oscillations

8.2 Nonlinear Oscillators (Models)

8.3 Types of Differential Equations (Math)

8.4 Dynamic Form for ODEs (Theory)

8.5 ODE Algorithms

8.6 Runge–Kutta Rule

8.7 Adams–Bashforth–Moulton Predictor–Corrector Rule

8.8 Solution for Nonlinear Oscillations (Assessment)

8.9 Extensions: Nonlinear Resonances, Beats, Friction

8.10 Extension: Time-Dependent Forces

9: ODE Applications: Eigenvalues, Scattering, and Projectiles

9.1 Problem: Quantum Eigenvalues in Arbitrary Potential

9.2 Algorithms: Eigenvalues via ODE Solver + Search

9.3 Explorations

9.4 Problem: Classical Chaotic Scattering

9.5 Problem: Balls Falling Out of the Sky

9.6 Theory: Projectile Motion with Drag

9.7 Exercises: 2- and 3-Body Planet Orbits and Chaotic Weather

10: High-Performance Hardware and Parallel Computers

10.1 High-Performance Computers

10.2 Memory Hierarchy

10.3 The Central Processing Unit

10.4 CPU Design: Reduced Instruction Set Processors

10.5 CPU Design: Multiple-Core Processors

10.6 CPU Design: Vector Processors

10.7 Introduction to Parallel Computing

10.8 Parallel Semantics (Theory)

10.9 Distributed Memory Programming

10.10 Parallel Performance

10.11 Parallelization Strategies

10.12 Practical Aspects of MIMD Message Passing

10.13 Scalability

10.14 Data Parallelism and Domain Decomposition

10.15 Example: The IBM Blue Gene Supercomputers

10.16 Exascale Computing via Multinode-Multicore GPUs

11: Applied HPC: Optimization, Tuning, and GPU Programming

11.1 General Program Optimization

11.2 Optimized Matrix Programming with NumPy

11.3 Empirical Performance of Hardware

11.4 Programming for the Data Cache (Method)

11.5 Graphical Processing Units for High Performance Computing

11.6 Practical Tips for Multicore and GPU Programming

12: Fourier Analysis: Signals and Filters

12.1 Fourier Analysis of Nonlinear Oscillations

12.2 Fourier Series (Math)

12.3 Exercise: Summation of Fourier Series

12.4 Fourier Transforms (Theory)

12.5 The Discrete Fourier Transform

12.6 Filtering Noisy Signals

12.7 Noise Reduction via Autocorrelation (Theory)

12.8 Filtering with Transforms (Theory)

12.9 The Fast Fourier Transform Algorithm

12.10 FFT Implementation

12.11 FFT Assessment

13: Wavelet and Principal Components Analyses: Nonstationary Signals and Data Compression

13.1 Problem: Spectral Analysis of Nonstationary Signals

13.2 Wavelet Basics

13.3 Wave Packets and Uncertainty Principle (Theory)

13.4 Short-Time Fourier Transforms (Math)

13.5 The Wavelet Transform

13.6 Discrete Wavelet Transforms, Multiresolution Analysis

13.7 Principal Components Analysis

14: Nonlinear Population Dynamics

14.1 Bug Population Dynamics

14.2 The Logistic Map (Model)

14.3 Properties of Nonlinear Maps (Theory and Exercise)

14.4 Mapping Implementation

14.5 Bifurcation Diagram (Assessment)

14.6 Logistic Map Random Numbers (Exploration)

14.7 Other Maps (Exploration)

14.8 Signals of Chaos: Lyapunov Coefficient and Shannon Entropy

14.9 Coupled Predator–Prey Models

14.10 Lotka–Volterra Model

14.11 Predator–Prey Chaos

15: Continuous Nonlinear Dynamics

15.1 Chaotic Pendulum

15.2 Visualization: Phase-Space Orbits

15.3 Exploration: Bifurcations of Chaotic Pendulums

15.4 Alternate Problem: The Double Pendulum

15.5 Assessment: Fourier/Wavelet Analysis of Chaos

15.6 Exploration: Alternate Phase-Space Plots

15.7 Further Explorations

16: Fractals and Statistical Growth Models

16.1 Fractional Dimension (Math)

16.2 The Sierpiński Gasket (Problem 1)

16.3 Growing Plants (Problem 2)

16.4 Ballistic Deposition (Problem 3)

16.5 Length of British Coastline (Problem 4)

16.6 Correlated Growth, Forests, Films (Problem 5)

16.7 Globular Cluster (Problem 6)

16.8 Fractals in Bifurcation Plot (Problem 7)

16.9 Fractals from Cellular Automata

16.10 Perlin Noise Adds Realism

16.11 Exercises

17: Thermodynamic Simulations and Feynman Path Integrals

17.1 Magnets via Metropolis Algorithm

17.2 An Ising Chain (Model)

17.3 Statistical Mechanics (Theory)

17.4 Metropolis Algorithm

17.5 Magnets via Wang–Landau Sampling

17.6 Wang–Landau Algorithm

17.7 Feynman Path Integral Quantum Mechanics

17.8 Feynman’s Space–Time Propagation (Theory)

17.9 Exploration: Quantum Bouncer’s Paths

18: Molecular Dynamics Simulations

18.1 Molecular Dynamics (Theory)

18.2 Verlet and Velocity–Verlet Algorithms

18.3 1D Implementation and Exercise

18.4 Analysis

19: PDE Review and Electrostatics via Finite Differences and Electrostatics via Finite Differences

19.1 PDE Generalities

19.2 Electrostatic Potentials

19.3 Fourier Series Solution of a PDE

19.4 Finite-Difference Algorithm

19.5 Assessment via Surface Plot

19.6 Alternate Capacitor Problems

19.7 Implementation and Assessment

19.8 Electric Field Visualization (Exploration)

19.9 Review Exercise

20: Heat Flow via Time Stepping

20.1 Heat Flow via Time-Stepping (Leapfrog)

20.2 The Parabolic Heat Equation (Theory)

20.3 Assessment and Visualization

20.4 Improved Heat Flow: Crank–Nicolson Method

21: Wave Equations I: Strings and Membranes

21.1 A Vibrating String

21.2 The Hyperbolic Wave Equation (Theory)

21.3 Strings with Friction (Extension)

21.4 Strings with Variable Tension and Density

21.5 Vibrating Membrane (2D Waves)

21.6 Analytical Solution

21.7 Numerical Solution for 2D Waves

22: Wave Equations II: Quantum Packets and Electromagnetic

22.1 Quantum Wave Packets

22.2 Time-Dependent Schrödinger Equation (Theory)

22.3 Algorithm for the 2D Schrödinger Equation

22.4 Wave Packet–Wave Packet Scattering

22.5 E&M Waves via Finite-Difference Time Domain

22.6 Maxwell’s Equations

22.7 FDTD Algorithm

22.8 Application: Wave Plates

22.9 Algorithm

22.10 FDTD Exercise and Assessment

23: Electrostatics via Finite Elements

23.1 Finite-Element Method

23.2 Electric Field from Charge Density (Problem)

23.3 Analytic Solution

23.4 Finite-Element (Not Difference) Methods, 1D

23.5 1D FEM Implementation and Exercises

23.6 Extension to 2D Finite Elements

24: Shocks Waves and Solitons

24.1 Shocks and Solitons in Shallow Water

24.2 Theory: Continuity and Advection Equations

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!