Home Page Icon
Home Page
Table of Contents for
A Survey of Computational Physics
Close
A Survey of Computational Physics
by Cristian C. Bordeianu, José Páez, Rubin H. Landau
A Survey of Computational Physics
Cover
Title
Copyright
Contents
Preface
1 Computational Science Basics
1.1 Computational Physics and Science
1.2 How to Read and Use This Book
1.3 Making Computers Obey; Languages (Theory)
1.4 Programming Warmup
1.4.1 Structured Program Design
1.4.2 Shells, Editors, and Execution
1.4.3 Java I/O, Scanner Class with printf
1.4.4 I/O Redirection
1.4.5 Command-Line Input
1.4.6 I/O Exceptions: FileCatchThrow.java
1.4.7 Automatic Code Documentation Θ
1.5 Computer Number Representations (Theory)
1.5.1 IEEE Floating-Point Numbers
1.5.2 Over/Underflows Exercises
1.5.3 Machine Precision (Model)
1.5.4 Determine Your Machine Precision
1.6 Problem: Summing Series
1.6.1 Numerical Summation (Method)
1.6.2 Implementation and Assessment
2 Errors & Uncertainties in Computations
2.1 Types of Errors (Theory)
2.1.1 Model for Disaster: Subtractive Cancellation
2.1.2 Subtractive Cancellation Exercises
2.1.3 Round-off Error in a Single Step
2.1.4 Round-off Error Accumulation After Many Steps
2.2 Errors in Spherical Bessel Functions (Problem)
2.2.1 Numerical Recursion Relations (Method)
2.2.2 Implementation and Assessment: Recursion Relations
2.3 Experimental Error Investigation (Problem)
2.3.1 Error Assessment
3 Visualization Tools
3.1 Data Visualization
3.2 PtPlot: 2-D Graphs Within Java
3.3 Grace/ACE: Superb 2-D Graphs for Unix/Linux
3.3.1 Grace Basics
3.4 Gnuplot: Reliable 2-D and 3-D Plots
3.4.1 Gnuplot Input Data Format Θ
3.4.2 Printing Plots
3.4.3 Gnuplot Surface (3-D) Plots
3.4.4 Gnuplot Vector Fields
3.4.5 Animations from a Plotting Program (Gnuplot) Θ
3.5 OpenDX for Dicing and Slicing
3.6 Texturing and 3-D Imaging
4 Object-Oriented Programs: Impedance & Batons
4.1 Unit I. Basic Objects: Complex Impedance
4.2 Complex Numbers (Math)
4.3 Resistance Becomes Impedance (Theory)
4.4 Abstract Data Structures, Objects (CS)
4.4.1 Object Declaration and Construction
4.4.2 Implementation in Java
4.4.3 Static and Nonstatic Methods
4.4.4 Nonstatic Methods
4.5 Complex Currents (Solution)
4.6 OOP Worked Examples
4.6.1 OOP Beats
4.6.2 OOP Planet
4.7 Unit II. Advanced Objects: Baton Projectiles Θ
4.8 Trajectory of a Thrown Baton (Problem)
4.8.1 Combined Translation and Rotation (Theory)
4.9 OOP Design Concepts (CS)
4.9.1 Including Multiple Classes
4.9.2 Ball and Path Class Implementation
4.9.3 Composition, Objects Within Objects
4.9.4 Baton Class Implementation
4.9.5 Composition Exercise
4.9.6 Calculating the Baton’s Energy (Extension)
4.9.7 Examples of Inheritance and Object Hierarchies
4.9.8 Baton with a Lead Weight (Application)
4.9.9 Encapsulation to Protect Classes
4.9.10 Encapsulation Exercise
4.9.11 Complex Object Interface (Extension)
4.9.12 Polymorphism, Variable Multityping
4.10 Supplementary Exercises
4.11 OOP Example: Superposition of Motions
4.12 Newton’s Laws of Motion (Theory)
4.13 OOP Class Structure (Method)
4.14 Java Implementation
5 Monte Carlo Simulations (Nonthermal)
5.1 Unit I. Deterministic Randomness
5.2 Random Sequences (Theory)
5.2.1 Random-Number Generation (Algorithm)
5.2.2 Implementation: Random Sequence
5.2.3 Assessing Randomness and Uniformity
5.3 Unit II. Monte Carlo Applications
5.4 A Random Walk (Problem)
5.4.1 Random-Walk Simulation
5.4.2 Implementation: Random Walk
5.5 Radioactive Decay (Problem)
5.5.1 Discrete Decay (Model)
5.5.2 Continuous Decay (Model)
5.5.3 Decay Simulation
5.6 Decay Implementation and Visualization
6 Integration
6.1 Integrating a Spectrum (Problem)
6.2 Quadrature as Box Counting (Math)
6.2.1 Algorithm: Trapezoid Rule
6.2.2 Algorithm: Simpson’s Rule
6.2.3 Integration Error (Analytic Assessment)
6.2.4 Algorithm: Gaussian Quadrature
6.2.5 Integration Implementation and Error Assessment
6.3 Experimentation
6.4 Higher-Order Rules (Algorithm)
6.5 Monte Carlo Integration by Stone Throwing
6.5.1 Stone Throwing Implementation
6.5.2 Integration by Mean Value (Math)
6.6 High-Dimensional Integration (Problem)
6.6.1 Multidimensional Monte Carlo
6.6.2 Error in Multidimensional Integration (Assessment)
6.6.3 Implementation: 10-D Monte Carlo Integration
6.7 Integrating Rapidly Varying Functions (Problem)
6.7.1 Variance Reduction (Method)
6.7.2 Importance Sampling (Method)
6.7.3 Von Neumann Rejection (Method)
6.7.4 Simple Gaussian Distribution
6.8 Nonuniform Assessment ©
6.8.1 Implementation: Nonuniform Randomness ©
7 Differentiation & Searching
7.1 Unit I. Numerical Differentiation
7.2 Forward Difference (Algorithm)
7.3 Central Difference (Algorithm)
7.4 Extrapolated Difference (Method)
7.5 Error Analysis (Assessment)
7.6 Second Derivatives (Problem)
7.6.1 Second-Derivative Assessment
7.7 Unit II. Trial-and-Error Searching
7.8 Quantum States in a Square Well (Problem)
7.9 Trial-and-Error Roots via the Bisection Algorithm
7.9.1 Bisection Algorithm Implementation
7.10 Newton-Raphson Searching (A Faster Algorithm)
7.10.1 Newton-Raphson Algorithm with Backtracking
7.10.2 Newton-Raphson Algorithm Implementation
8 Solving Systems of Equations with Matrices; Data Fitting
8.1 Unit I. Systems of Equations and Matrix Computing
8.2 Two Masses on a String
8.2.1 Statics (Theory)
8.2.2 Multidimensional Newton-Raphson Searching
8.3 Classes of Matrix Problems (Math)
8.3.1 Practical Aspects of Matrix Computing
8.3.2 Implementation: Scientific Libraries, World Wide Web
8.3.3 JAMA: Java Matrix Library
8.3.4 Exercises for Testing Matrix Calls
8.3.5 Matrix Solution of the String Problem
8.3.6 Explorations
8.4 Unit II. Data Fitting
8.5 Fitting an Experimental Spectrum (Problem)
8.5.1 Lagrange Interpolation (Method)
8.5.2 Lagrange Implementation and Assessment
8.5.3 Explore Extrapolation
8.5.4 Cubic Splines (Method)
8.5.5 Spline Fit of Cross Section (Implementation)
8.6 Fitting Exponential Decay (Problem)
8.6.1 Theory to Fit
8.7 Least-Squares Fitting (Method)
8.7.1 Least-Squares Fitting: Theory and Implementation
8.7.2 Exponential Decay Fit Assessment
8.7.3 Exercise: Fitting Heat Flow
8.7.4 Linear Quadratic Fit (Extension)
8.7.5 Linear Quadratic Fit Assessment
8.7.6 Nonlinear Fit of the Breit–Wigner Formula to a Cross Section
9 Differential Equation Applications
9.1 Unit I. Free Nonlinear Oscillations
9.2 Nonlinear Oscillators (Models)
9.3 Types of Differential Equations (Math)
9.4 Dynamic Form for ODEs (Theory)
9.5 ODE Algorithms
9.5.1 Euler’s Rule
9.5.2 Runge–Kutta Algorithm
9.5.3 Adams–Bashforth–Moulton Predictor-Corrector
9.5.4 Assessment: rk2 versus rk4 versus rk45
9.6 Solution for Nonlinear Oscillations (Assessment)
9.6.1 Precision Assessment: Energy Conservation
9.7 Extensions: Nonlinear Resonances, Beats, and Friction
9.7.1 Friction: Model and Implementation
9.7.2 Resonances and Beats: Model and Implementation
9.8 Implementation: Inclusion of Time-Dependent Force
9.9 Unit II. Binding A Quantum Particle
9.10 The Quantum Eigenvalue Problem (Theory)
9.10.1 Nucleon in a Box (Model)
9.11 Combined Algorithms: Eigenvalues via ODE Solver Plus Search
9.11.1 Numerov Algorithm for the Schrödinger ODE ©
9.11.2 Implementation: Eigenvalues via an ODE Solver Plus Bisection Algorithm
9.12 Explorations
9.13 Unit III. Scattering, Projectiles, and Planetary Orbits
9.14 Problem 1: Classical Chaotic Scattering
9.14.1 Model and Theory
9.14.2 Implementation
9.14.3 Assessment
9.15 Problem 2: Balls Falling Out of the Sky
9.16 Theory: Projectile Motion with Drag
9.16.1 Simultaneous Second-Order ODEs
9.16.2 Assessment
9.17 Problem 3: Planetary Motion
9.17.1 Implementation: Planetary Motion
10 Fourier Analysis: Signals and Filters
10.1 Unit I. Fourier Analysis of Nonlinear Oscillations
10.2 Fourier Series (Math)
10.2.1 Example 1: Sawtooth Function
10.2.2 Example 2: Half-wave Function
10.3 Summation of Fourier Series (Exercise)
10.4 Fourier Transforms (Theory)
10.4.1 Discrete Fourier Transform Algorithm
10.4.2 Aliasing and Anti-aliasing Θ
10.4.3 DFT for Fourier Series (Algorithm)
10.4.4 Assessments
10.4.5 DFT of Nonperiodic Functions (Exploration)
10.5 Unit II. Filtering Noisy Signals
10.6 Noise Reduction via Autocorrelation (Theory)
10.6.1 Autocorrelation Function Exercises
10.7 Filtering with Transforms (Theory)
10.7.1 Digital Filters: Windowed Sinc Filters ©
10.8 Unit III. Fast Fourier Transform Algorithm ©
10.8.1 Bit Reversal
10.9 FFT Implementation
10.10 FFT Assessment
11 Wavelet Analysis & Data Compression
11.1 Unit I. Wavelet Basics
11.2 Wave Packets and Uncertainty Principle (Theory)
11.2.1 Wave Packet Assessment
11.3 Short-Time Fourier Transforms (Math)
11.4 The Wavelet Transform
11.4.1 Generating Wavelet Basis Functions
11.4.2 Continuous Wavelet Transform Implementation
11.5 Unit II. Discrete Wavelet Transform and Multiresolution Analysis Θ
11.5.1 Pyramid Scheme Implementation Θ
11.5.2 Daubechies Wavelets via Filtering
11.5.3 DWT Implementation and Exercise
12 Discrete & Continuous Nonlinear Dynamics
12.1 Unit I. Bug Population Dynamics (Discrete)
12.2 The Logistic Map (Model)
12.3 Properties of Nonlinear Maps (Theory)
12.3.1 Fixed Points
12.3.2 Period Doubling, Attractors
12.4 Mapping Implementation
12.5 Bifurcation Diagram (Assessment)
12.5.1 Bifurcation Diagram Implementation
12.5.2 Visualization Algorithm: Binning
12.5.3 Feigenbaum Constants (Exploration)
12.6 Random Numbers via Logistic Map (Exploration) ©
12.7 Other Maps (Exploration)
12.8 Signals of Chaos: Lyapunov Coefficients Θ
12.8.1 Shannon Entropy ©
12.9 UnitI Quiz
12.10 Unit II. Pendulums Become Chaotic (Continuous)
12.11 Chaotic Pendulum ODE
12.11.1 Free Pendulum Oscillations
12.11.2 Solution as Elliptic Integrals
12.11.3 Implementation and Test: Free Pendulum
12.12 Visualization: Phase Space Orbits
12.12.1 Chaos in Phase Space
12.12.2 Assessment in Phase Space
12.13 Exploration: Bifurcations of Chaotic Pendulums
12.14 Alternative Problem: The Double Pendulum
12.15 Assessment: Fourier/Wavelet Analysis of Chaos
12.16 Exploration: Another Type of Phase Space Plot
12.17 Further Explorations
12.18 Unit III. Coupled Predator-Prey Models Θ
12.19 Lotka-Volterra Model
12.19.1 LVM with Prey Limit
12.19.2 LVM with Predation Efficiency
12.19.3 LVM Implementation and Assessment
12.19.4 Two Predators, One Prey (Exploration)
13 Fractals & Statistical Growth
13.1 Fractional Dimension (Math)
13.2 The Sierpinski Gasket (Problem 1)
13.2.1 Sierpinski Implementation
13.2.2 Assessing Fractal Dimension
13.3 Beautiful Plants (Problem 2)
13.3.1 Self-affine Connection (Theory)
13.3.2 Barnsley’s Fern Implementation
13.3.3 Self-affinity in Trees Implementation
13.4 Ballistic Deposition (Problem 3)
13.4.1 Random Deposition Algorithm
13.5 Length of the British Coastline (Problem 4)
13.5.1 Coastlines as Fractals (Model)
13.5.2 Box Counting Algorithm
13.5.3 Coastline Implementation and Exercise
13.6 Correlated Growth, Forests, and Films (Problem 5)
13.6.1 Correlated Ballistic Deposition Algorithm
13.7 Globular Cluster (Problem 6)
13.7.1 Diffusion-Limited Aggregation Algorithm
13.7.2 Fractal Analysis of a DLA (or Pollock) Graph (Assessment)
13.8 Fractal Structures in a Bifurcation Graph (Problem 7)
13.9 Fractals from Cellular Automata
13.10 Perlin Noise Adds Realism Θ
13.10.1 Including Ray Tracing
13.11 Quiz
14 High-Performance Computing Hardware, Tuning, and Parallel Computing
14.1 Unit I. High-Performance Computers (CS)
14.2 Memory Hierarchy
14.3 The Central Processing Unit
14.4 CPU Design: Reduced Instruction Set Computer
14.5 CPU Design: Multiple-Core Processors
14.6 CPU Design: Vector Processor
14.7 Unit II. Parallel Computing
14.8 Parallel Semantics (Theory)
14.9 Distributed Memory Programming
14.10 Parallel Performance
14.10.1 Communication Overhead
14.11 Parallelization Strategy
14.12 Practical Aspects of Message Passing for MIMD
14.12.1 High-Level View of Message Passing
14.13 Example of a Supercomputer: IBM Blue Gene/L
14.14 Unit III. HPC Program Optimization
14.14.1 Programming for Virtual Memory (Method)
14.14.2 Optimizing Programs; Java versus Fortran/C
14.14.3 Experimental Effects of Hardware on Performance
14.14.4 Java versus Fortran/C
14.15 Programming for the Data Cache (Method)
14.15.1 Exercise 1: Cache Misses
14.15.2 Exercise 2: Cache Flow
14.15.3 Exercise 3: Large-Matrix Multiplication
15 Thermodynamic Simulations & Feynman Quantum Path Integration
15.1 Unit I. Magnets via the Metropolis Algorithm
15.2 An Ising Chain (Model)
15.3 Statistical Mechanics (Theory)
15.3.1 Analytic Solutions
15.4 Metropolis Algorithm
15.4.1 Metropolis Algorithm Implementation
15.4.2 Equilibration, Thermodynamic Properties (Assessment)
15.4.3 Beyond Nearest Neighbors and 1-D (Exploration)
15.5 Unit II. Magnets via Wang-Landau Sampling Θ
15.6 Wang-Landau Sampling
15.6.1 WLS Ising Model Implementation
15.6.2 WLS Ising Model Assessment
15.7 UnitIII. Feynman Path Integrals Θ
15.8 Feynman’s Space-Time Propagation (Theory)
15.8.1 Bound-State Wave Function (Theory)
15.8.2 Lattice Path Integration (Algorithm)
15.8.3 Lattice Implementation
15.8.4 Assessment and Exploration
15.9 Exploration: Quantum Bouncer’s Paths Θ
16 Simulating Matter with Molecular Dynamics
16.1 Molecular Dynamics (Theory)
16.1.1 Connection to Thermodynamic Variables
16.1.2 Setting Initial Velocity Distribution
16.1.3 Periodic Boundary Conditions and Potential Cutoff
16.2 Verlet and Velocity-Verlet Algorithms
16.3 1-D Implementation and Exercise
16.4 Trajectory Analysis
16.5 Quiz
17 PDEs for Electrostatics & Heat Flow
17.1 PDE Generalities
17.2 Unit I. Electrostatic Potentials
17.2.1 Laplace’s Elliptic PDE (Theory)
17.3 Fourier Series Solution of a PDE
17.3.1 Polynomial Expansion As an Algorithm
17.4 Solution: Finite-Difference Method
17.4.1 Relaxation and Overrelaxation
17.4.2 Lattice PDE Implementation
17.5 Assessment via Surface Plot
17.6 Alternate Capacitor Problems
17.7 Implementation and Assessment
17.8 Electric Field Visualization (Exploration)
17.9 Laplace Quiz
17.10 Unit II. Finite-Element Method Θ
17.11 Electric Field from Charge Density (Problem)
17.12 Analytic Solution
17.13 Finite-Element (Not Difference) Methods
17.13.1 Weak Form of PDE
17.13.2 Galerkin Spectral Decomposition
17.14 FEM Implementation and Exercises
17.15 Exploration
17.16 Unit III. Heat Flow via Time-Stepping (Leapfrogging)
17.17 The Parabolic Heat Equation (Theory)
17.17.1 Solution: Analytic Expansion
17.17.2 Solution: Time-Stepping
17.17.3 Von Neumann Stability Assessment
17.17.4 Heat Equation Implementation
17.18 Assessment and Visualization
17.19 Improved Heat Flow: Crank-Nicolson Method
17.19.1 Solution of Tridiagonal Matrix Equations ©
17.19.2 Crank-Nicolson Method Implementation and Assessment
18 PDE Waves: String, Quantum Packet, and E&M
18.1 Unit I. Vibrating String
18.2 The Hyperbolic Wave Equation (Theory)
18.2.1 Solution via Normal-Mode Expansion
18.2.2 Algorithm: Time-Stepping
18.2.3 Wave Equation Implementation
18.2.4 Assessment and Exploration
18.3 Waves with Friction (Extension)
18.4 Waves for Variable Tension and Density (Extension)
18.4.1 Waves on a Catenary
18.4.2 Derivation of a Catenary Shape
18.4.3 Catenary and Frictional Wave Exercises
18.5 Unit II. Quantum Wave Packets
18.6 Time-Dependent Schrödinger Equation (Theory)
18.6.1 Finite-Difference Algorithm
18.6.2 Wave Packet Implementation and Animation
18.7 Wave Packets in Other Wells (Exploration)
18.8 Algorithm for the 2-D Schrödinger Equation
18.9 Unit III. E&M Waves via Finite-Difference Time Domain ©
18.10 Maxwell’s Equations
18.11 FDTD Algorithm
18.11.1 Implementation
18.11.2 Assessment
18.11.3 Extension: Circularly Polarized EM Waves
19 Solitons & Computational Fluid Dynamics
19.1 Unit I. Advection, Shocks, and Russell’s Soliton
19.2 Theory: Continuity and Advection Equations
19.2.1 Advection Implementation
19.3 Theory: Shock Waves via Burgers’ Equation
19.3.1 Algorithm: The Lax-Wendroff Method for Burgers’ Equation
19.3.2 Implementation and Assessment of Burgers’ Shock Equation
19.4 Including Dispersion
19.5 Shallow-Water Solitons, the KdeV Equation
19.5.1 Analytic Soliton Solution
19.5.2 Algorithm for KdeV Solitons
19.5.3 Implementation: KdeV Solitons
19.5.4 Exploration: Solitons in Phase Space and Crossing
19.6 Unit II. River Hydrodynamics
19.7 Hydrodynamics, the Navier-Stokes Equation (Theory)
19.7.1 Boundary Conditions for Parallel Plates
19.7.2 Analytic Solution for Parallel Plates
19.7.3 Finite-Difference Algorithm and Overrelaxation
19.7.4 Successive Overrelaxation Implementation
19.8 2-D Flow over a Beam
19.9 Theory: Vorticity Form of the Navier-Stokes Equation
19.9.1 Finite Differences and the SOR Algorithm
19.9.2 Boundary Conditions for a Beam
19.9.3 SOR on a Grid Implementation
19.9.4 Assessment
19.9.5 Exploration
20 Integral Equations in Quantum Mechanics
20.1 Unit I. Bound States of Nonlocal Potentials
20.2 Momentum-Space Schrödinger Equation (Theory)
20.2.1 Integral to Linear Equations (Method)
20.2.2 Delta-Shell Potential (Model)
20.2.3 Binding Energies Implementation
20.2.4 Wave Function (Exploration)
20.3 Unit II. Nonlocal Potential Scattering Θ
20.4 Lippmann-Schwinger Equation (Theory)
20.4.1 Singular Integrals (Math)
20.4.2 Numerical Principal Values
20.4.3 Reducing Integral Equations to Matrix-Equations (Algorithm)
20.4.4 Solution via Inversion or Elimination
20.4.5 Scattering Implementation
20.4.6 Scattering Wave Function (Exploration)
Appendix A: Glossary
Appendix B: Installing Packages
B.1 Installing Java Developer’s Kit
B.2 Using Classes and Packages
B.2.1 Including Packages
Appendix C: OpenDX: Industrial-Strength Data Visualization
C.1 Getting DX and Unix Running (for Windows)
C.2 Test Drive of DX Visual Programming
C.3 DX Tools Summary
C.4 DX Data Structure and Storage
C.5 Sample Visual Programs
C.5.1 Sample 1: Linear Plot
C.5.2 Sample 2: Fourier Transform
C.5.3 Sample 3: Potential of a 2-D Capacitor
C.5.4 Sample 4: Vector Field Plots
C.5.5 Sample 5: 3-D Scalar Potentials
C.5.6 Sample 6: 3-D Functions, the Hydrogen Atom
C.6 Animations with OpenDX
C.6.1 Scripted Animation with OpenDX
C.6.2 Wave Packet and Slit Animation
Appendix D: An MPI Tutorial
D.1 Running on a Beowulf
D.2 Running MPI
D.2.1 MPI under the SGE Queueing System
D.2.2 MPI Under the Torque/PBS Queueing System
D.2.3 Running Parallel Jobs with Torque
D.3 Your First MPI Program: MPIhello.c
D.3.1 MPIhello.c Explained
D.3.2 Send/Receive Messages: MPImessage2.c
D.3.3 Receive More Messages: MPImessage3.c
D.3.4 Broadcast Messages
D.3.5 Exercise
D.4 Parallel Tuning
D.5 A String Vibrating in Parallel
D.5.1 MPIstring.c Exercise
D.6 Deadlock
D.6.1 Nonblocking Communication
D.6.2 Collective Communication
D.7 Bootable Cluster CD ©
D.8 Parallel Computing Exercises
D.9 List of MPI Commands
Appendix E: Calling LAPAC K from C
E.1 Calling LAPACK Fortran from C
E.2 Compiling C Programs with Fortran Calls
Appendix F: Software on the CD
Appendix G: Compression via DWT with Thresholding
G.1 More on Thresholding
G.2 Wavelet Implementation and Assessment
Bibliography
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
Copyright
Next
Next Chapter
Contents
In memory of our parents
Bertha Israel Landau, Philip Landau, and Sinclitica Bordeianu
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset