Instructor:  Burkhard Militzer  GSI: Robert MartinShort 
militzer@berkeley.edu  rmartinshort@berkeley.edu  
Office hours:  Tue 45 pm  Tue 57 pm 
401 McCone Hall  401 McCone Hall 
4 units:  Lectures:  Tu 56 pm  3106 Etcheverry Hall  Computer lab:  We 911 or 111 
Th 34 pm  3106 Etcheverry Hall  B3A Evans Hall 
 This course offers a general introduction to computer simulations for all science majors. Participants will use the Jupyter notebooks to perform calculations, design 3D graphics, and build on existing computer programs. No prior programming experience is required. The course teaches fundamental skills for scientists and helps students with future homework. It covers data processing techniques as well standard simulations methods including Monte Carlo and molecular dynamics. The algorithms are illustrated with a variety of applications in earth and planetary science as well as astronomy. 
Cassini spacecraft in Saturn orbit 
Choatic behavior of dynamical systems: the Lorenz attractor 
Combined gravity field of sun and planet 
Fractal nature of ferns 
Koch snowflake 
Sierpinski gasket 
Type of assignment  Description  Files 
Lab 1  Getting to know Jupyter notebooks  Intro_to_python_05.pdf ice_core_temperature_data.txt 
Homework 1  Simple calculations with Jupyter notebooks  hw01_course_intro13.pdf ice_core_CO2_data.txt 
Lab 2  Pixel graphs and filling matrices  pixel_graphics12.pdf topography_180x360_grid.txt 
Homework 2  Practice making a smiley  hw02_pixel_graphics_13.pdf 
Type of assignment  Description  Files 
Lab 1  Getting to know Matlab: vectors & matrices  lab01_Matlab_intro02.pdf 
Homework 1  Getting to know Matlab: loops and plots  hw01_plotting_and_loops.pdf 
Lab 2  Fractals in Matlab: Mandelbrot set  lab02_Mandelbrot01.pdf example.m mandelbrot14.m 
Homework 2  Fractals in Matlab: Julia set  hw02_Mandelbrot_and_Julia_sets.pdf 
Lab+homework 3  Diffusion limited aggregation  lab_hw03_DLA_html.pdf diffusion_limited_aggregation2D_exercise.m 
Lab 4  Keplerian orbits of planets integrated with Euler's method  lab04_kepler04.pdf run_kepler_ode_euler04.m 
Homework 11  Cooling of a lava dike  hw11_cooling_dike.pdf 
Tadpole orbit 
Horseshoe orbit 
Molecular dynamics simulations using a LennardJones pair potential 
Apollonian gasket 
Diffusion limited aggregation along a sticky wall 
Modified aggregation to increase the fractal dimension 
Diffusion limited aggregation with two species. Click on each image to see the structures growing. 

Series of fractals obtained with Newton's method in the complex plane. Click on any image to start a movie. 

Triangular fractal (click on image to start movie) 
Aggregation in 3D (click on image to start movie) 
Mandelbrot fractal (click on image to start movie) 
Julia set (click on image to start movie) 
In the foot steps of Joan Miro (Higher resolution available: left and right) 
In the spirit of Piet Mondrian (higher resolution available) 
Landscape evolution model (code written by former EPS109 student Jeff Prancevic) Three movies for different models are available: movie 1, movie 2, and movie 3. 
A different landscape evolution model. Click on image to start the animation. 
Landscape evolution model rewritten in Python. Click on image to start the animation. 
Water wave traveling along a midocean ridge. Numerical solution of the shallow water wave equation. Click on image to start animations 1 or 2 . 
Labyrinths were generated with 101 x 101, 201 x 202, and 401 x 401 resolution and also on a hexagonal grid. 
Date  Lecture topic  Computer lab exercises 
Thu 8/27 
1: Introduction of course, historical overview, interplay of experiments, theory, and simulation  Lab 1: Matlab as a pocket calculator 
Tue 9/1 
2: Fractals in nature, models and computer simulations, fractal dimension and examples in topography and coast line structure  Lab 2: Loops and plots in Matlab 
Tue 9/3 
3: Mandelbrot set and related fractals 

Tue 9/8  4: Random walks and diffusion limited aggregation (DLA), percolation theory  Lab 3: Programming the Mandelbrot and Julia set 
Thu 9/10 
5: Group discussion on fractals  
Tue 9/15  6: Numerical algorithms for finding roots and minima  Lab 4: DLA in 2D on a flat sheet 
Thu 9/17  7: Introduction to time independent partial differential equations (PDE), algorithms and stationary state of 1D heat equation  
Tue 9/22  8: Methods to find the stationary state of 2D heat equation  Lab 5: Heat equation solver in 2D 
Thu 9/24  9: Time dependent PDEs, diffusion equation (heat and chemical diffusion), solution of the 1D heat equation, cooling of a lave dike  
Tue 9/29  10: Landscape erosion models  Lab 6: Perron’s erosion model 
Thu 10/1  11: Wave equations and numerical solutions  
Tue 10/6  12: Shallow water wave equation, tsunamis  Lab 7: 3D water wave simulations 
Thu 10/8  Midterm  
Tue 10/13  13: Introduction to ordinary differential equations, Euler’s method  Lab 8: Keplerian orbits 
Thu 10/15  14: Newton’s law of motion, Keplerian orbits  
Tue 10/20  15: Planetary orbits, Hohmann transfers, spacecraft trajectories  Lab 9: Lagrange points 
Thu 10/22  16: RungeKutta method  
Tue 10/27  17: Lagrange points, horseshoe and tadpole orbits of asteroids  Lab 10: Exercise on tadpole and horseshoe orbits 
Thu 10/29  18: Strange attractors  
Tue 11/3  19: Chaotic dynamical systems and Lyaponov exponents  Lab 11: Roessler attractor 
Thu 11/5  20: Simple models for climate change  
Tue 11/10  21: Molecular dynamics (MD)  Lab 12: Box model for climate change 
Thu 11/12  22: Crystal structures, simulations in periodic boundary conditions  
Tue 11/17  23: Many particle simulations  Lab 13: Molecular dynamics I 
Thu 11/19  24: Thermodynamic equilibrium, different states of matter  
Tue 11/24  25: Introduction to Monte Carlo (MC) simulations  Lab 14: Molecular dynamics II 
Thu 11/26  Holiday  
Tue 12/1  26: Applications of MC simulations  Lab 15: Comparison of MC and MD 
Thu 12/3  27: Curve fitting using the leastsquares method, revisions, and exam preparations  
Tue 12/8  28: Students present their movie projects, part A  Lab 16: Students present their movie projects, part B 