Lecture Materials for PHYS:5905 Special Topics: Numerical Simulation of Plasmas
Below are links to the scanned PDF versions of the lecture notes handed out in class:
- Lecture #1: Introduction to Numerical Simulation of Plasmas
- Why Do We Pursue Computational Plasma Physics?
- Lecture #2: Single Particle Motion #1: Larmor Motion
- Lecture #2: Single Particle Motion
- Numerical Lecture #1: Euler Differencing
- Example Matlab Code: Larmor Motion Analytical Solution with plots
- Homework #2: In-class Exercises
- Lecture #3: Single Particle Motion #2: E x B Drift
- Numerical Lecture #2: Dimensionless Equations, Leapfrog Timestepping, and Coding Algorithm Choices
- Example Matlab Code: Switch-Case and Function Call Example
- Example Matlab Code: Function needed for Switch-Case and Function Call Example
- Homework #2b: In-class Exercises
- Lecture #4: Single Particle Motion #3: Grad B and Curvature Drift
- Numerical Lecture #3: Initializing Higher Order Schemes, Third-Order Adams-Bashforth
- Example Matlab Code: Magnetic Field
- Homework #3a: In-class Exercises
- Lecture #5: Single Particle Motion #4: Magnetic Mirror Force and Adiabatic Invariance
- Lecture #3: Mirror Force, Adiabatic Invariance, Polarization Drift, and Collisions
- Numerical Lecture #4: Invariants
- Homework #4a: In-class Exercises
- Lecture #6: Single Particle Motion #5: Runge-Kutta and Adaptive Stepsize Algorithms
- Numerical Lecture #5: Systems of ODEs, Runge-Kutta, and Adaptive Stepsize Algorithms
- Homework #4b: In-class Exercises
- Lecture #7: Single Particle Motion #6: Monte Carlo Collisions
- Numerical Lecture #6: Monte Carlo Implementation of Collisions
- Homework #5a: In-class Exercises
- Lecture #8: Computer Lab Time
- Continue working on HW#4 or HW#5.
- Lecture #9: Getting Online with Argon
- Homework #6a: In-class Exercises
- Unix: If you are unfamiliar with Unix commands, please review the references on Unix at the bottom of the Links and References page of this course website.
- Lecture #10: Single Particle Motion in Fortran90
- Homework #6b: In-class Exercises
- Example Fortran90 Code: E x B drift using Euler timestepping with analytical solution
- Lecture #11: The Equations of Magnetohydrodynamics (MHD) and Hydrodynamics
- Lecture #4: The Equations of Magnetohydrodynamics (MHD) and Hydrodynamics
- Lecture #12: Finite Differencing
- Numerical Lecture #7: Finite Differencing: 1D Linear Hydrodynamics
- Homework #7a: In-class Exercises
- Lecture #13: Numerical Stability
- Numerical Lecture #8: Numerical Stability
- Homework #8a: In-class Exercises
- Lecture #14: Phase and Amplitude Errors
- Homework #8b: In-class Exercises
- Lecture #15: Nonlinear Hydrodynamics
- Numerical Lecture #9: Nonlinear Hydrodynamics
- Homework #9a: In-class Exercises
- Proposed Remaining Lectures
- Semester Project
- Lecture #16: Kinetic Simulation
- Lecture #5: Kinetic Plasma Physics
- Numerical Lecture #10: Kinetic Simulation: Vlasov-Poisson Plasmas
- Homework #9b: In-class Exercises
- Lecture #17: Introduction to High Performance Computing and MPI Parallelization
- Numerical Lecture #11: Introduction to High Performance Computing
- Numerical Lecture #12: Parallel Programming Using MPI
- Handout: Message Passing Interface (MPI)
- Homework #10a: In-class Exercises
- Lecture #18: Design of Parallel Algorithms
- Numerical Lecture #13: Design of Parallel Algorithms
- Lecture #19: Multi-threading Using OpenMP
- Numerical Lecture #14: Introduction to OpenMP Parallelization (Ott)
- OpenMP 5.0 Reference Card
- Homework #11a: In-class Exercises
- Lecture #20: GPU Computing with CUDA
- Numerical Lecture #15: GPU Programming using CUDA
- Homework #11b: In-class Exercises
- Lecture #21: Parallel Performance and Optimization
- Numerical Lecture #16: Parallel Performance and Optimization
- Lecture #22: The Practice of High Performance Computing
- Numerical Lecture #17: The Practice of High Performance Computing
- Lecture #23: Implicit Methods
- Numerical Lecture #18: Implicit Timestepping Schemes
- Lecture #24: Comparison of Different Numerical Methods
- Numerical Lecture #19: Comparison of Finite Difference, Finite Element, and Spectral Methods
- Lecture #25: Major Plasma Simulation Approaches and Publicly Available Simulation Codes
- Numerical Lecture #20: Major Plasma Simulation Approaches and Publicly Available Simulation Codes
- Lecture #26: Applying for High-Performance Computing Allocations
- Numerical Lecture #21:Applying for High-Performance Computing Allocations
- Howes XSEDE Proposal 2016
- pack_xsede16_190501.tar.gz