About This Independent Study

🎯

Mission

Explore high-performance computing techniques for physics simulations, combining theoretical understanding with practical implementation across multiple programming paradigms.

πŸ”¬

Focus Areas

  • Numerical methods for differential equations
  • GPU acceleration & parallel computing
  • N-body gravitational simulations
  • Quantum mechanics computational methods
  • Monte Carlo techniques
  • Performance optimization & benchmarking
πŸ› οΈ

Technologies

Python JAX Fortran C/C++ CUDA Web (Three.js)
πŸ“š

Course Structure

  • Weekly Meetings: Discussion & code review
  • Textbook: Computational Physics by Newman
  • Projects: Hands-on implementations
  • Deliverables: Code, documentation, presentations

Projects

βœ“ Complete

N-Body Gravitational Simulation

Multi-Language Performance Comparison

Implemented identical gravitational N-body simulations in JAX (GPU), Fortran, C++, C, and Python. Benchmarked performance across 10-1000 particles, achieving 1384Γ— speedup with GPU acceleration.

Languages: 5 implementations
Max Speedup: 1384Γ— (GPU)
Particles: 10-1000
JAX Fortran C++ C OpenMP CUDA
πŸ“‹ Planned

Quantum Mechanics Solver

1D & 2D SchrΓΆdinger Equation

Numerical solution of time-independent SchrΓΆdinger equation for various potentials. Visualization of wavefunctions and probability densities.

Objectives:

  • Finite difference methods
  • Matrix diagonalization techniques
  • Eigenvalue solvers comparison
  • Interactive wavefunction visualization
Python NumPy SciPy Matplotlib
πŸ“‹ Planned

Molecular Dynamics

Lennard-Jones Fluid Simulation

Classical molecular dynamics simulation using Lennard-Jones potential. Study phase transitions and thermodynamic properties.

Objectives:

  • Periodic boundary conditions
  • Velocity Verlet integration
  • Temperature & pressure calculation
  • Radial distribution function analysis
C++ CUDA Python
πŸ“‹ Planned

Monte Carlo Methods

Ising Model & Statistical Physics

Monte Carlo simulation of 2D Ising model. Explore phase transitions, critical phenomena, and Metropolis algorithm efficiency.

Objectives:

  • Metropolis-Hastings algorithm
  • Critical temperature determination
  • Autocorrelation analysis
  • Parallel tempering techniques
JAX NumPy Fortran
πŸ’‘ Future Work

Additional Topics

To Be Determined

Additional computational physics projects based on course progress and interests.

Potential Topics:

  • Partial Differential Equations (Heat, Wave, Diffusion)
  • Fourier Analysis & Spectral Methods
  • Random Walks & Brownian Motion
  • Fluid Dynamics (Lattice Boltzmann)
  • Machine Learning for Physics

Course Notes & Resources

πŸ“ Lecture Notes

Weekly meeting summaries

Week 1 - TBD Introduction

Course Overview & Setup

Week 2 - TBD Theory

Numerical Integration Methods

Week 3 - TBD Practice

GPU Programming Fundamentals

πŸ“š Notes will be added as the course progresses

πŸ“– Textbook Progress

Computational Physics by Newman

βœ“

Chapter 1: Introduction

Python basics, NumPy, visualization

β‹―

Chapter 2: Python Programming

Control flow, functions, modules

β—‹

Chapter 3: Graphics & Visualization

Matplotlib, 2D/3D plotting

β—‹

Chapter 4: Accuracy & Speed

Floating-point, optimization

β—‹

Chapter 5: Integrals & Derivatives

Numerical calculus methods

🎯 5 of 13 chapters

Learning Resources

πŸŽ“ Recommended Reading

  • Newman - Computational Physics (Primary textbook)
  • Press et al. - Numerical Recipes
  • Landau & PΓ‘ez - Computational Physics: Problem Solving with Python
  • Giordano & Nakanishi - Computational Physics

πŸ”§ Development Tools

  • Python 3.12+ with NumPy, SciPy, Matplotlib
  • JAX for GPU acceleration
  • Jupyter Notebooks for exploration
  • Git & GitHub for version control
  • VSCode or PyCharm for development

πŸ“Š Visualization Tools

  • Matplotlib - 2D plotting
  • Three.js - 3D web visualization
  • Plotly - Interactive plots
  • Mayavi - 3D scientific visualization