Simulation and Modeling
This is a survey course on simulation methodologies, techniques, and applications. The main emphasis of the course is on the use of simulation in physical sciences, in particular its applications in Physics. In this course we will learn to build simulations and to use these simulations to solve real world problems.
- Week 1 - Introduction and building simulations
- Week 2, 3 - Continuous systems, particle-based simulations
- Week 4, 5 - Rigid body dynamics
- Week 6 - Collision detection, Midterm 1
- Week 7 - Collision detection
- Week 8, 9 - Random processes
- Week 10 - Discrete event systems, many particle systems
- Week 11 - validation & verifaction, Midterm 2
- Week 12 - Project presentations
- Class participation, quizzes, and exercises 10%
- Lab participation and completion 20%
- Midterm exams 30%
- Course project 40%
A student must get 50% in the course project to pass the course.
- Midterm 1 (70 minutes) on Feb 13
- Study break during the week of Feb 18
- Midterm 2 (70 minutes) on Mar 26
- Project selection due by Mar 4
You may loose up to 10% of the course project grade if project selection isn’t finalized by Mar 1. You may loose up to an addition 20% of the course project grade if the project selection isn’t finalized by Mar 11.
- Project final presentations during last lecture
- Project report due on Apr 5 midnight
Ontario Tech University’s academic calendar that lists important dates (and deadlines) is available at here.
- Why simulations?
- Validate a model or a theory
- Perform experiments
- Support model-based design
- Education and training
- Building simulations
- Data collection
- Continuous systems
- Variables: state, input, and output
- Ordinary Differential Equations (ODEs)
Labs start from the second week.
- Mass-Spring system
- Ball falling under gravity
- Bouncing balls
- Energy calculations
- Potential and kinectic energy
- Projectile motion
- Terminal Velocity
- Modelling drag
- 2D Mass-Spring System Implementation
- Solving ODEs in Python
- Euler method
- Runga-Kutta method
- Many body simulations
- Rigid body dynamics
- Particles vs. rigid bodies
- Coordinate frames
- Linear and angular velocities
- Center of mass
- Inertia tensor
- Equations of motions
- Shape representation
- Collision detection
- Collisions with a static object
- Collision between moving targets
- Efficiency considerations
- Rigid body collisions
- Rigid body collisions (contd.)
- Midterm 1
- Random processes
- Monte Carlo simulations
- Random walks
- Random numbers
- Generating random numbers from uniform discrete
- Generating random numbers from non-uniform discrete distributions
- Generating random numbers from non-uniform continuous distributions
- Normal distribution
- Exponential distribution
- Many particle systems
- Molecular dynamics
- Boundary conditions
- Setting up initial conditions
- Pressure and temperature
- Microcanonical ensemble
- Quasi-ergodic hypothesis
- Demon algorithm
- Ising model
- Discrete Event Systems
- Validation and verification
- Midterm 2
- Wrap up
- Course project presentations
The course project is an independent exploration of a specific problem within the context of this course. The topic of the project will be decided in consultation with the instructor.
Project grade will depend on the ideas, how well you present them in the report, how well you position your work in the related literature, how thorough are your experiments and how thoughtful are your conclusions.
Teams of up to two students are allowed.
Below, you will find a list of projects that students have done in the previous iterations of this course:
- Angry birds;
- Flappy birds;
- Balancing an inverted pendulum on a moving platform;
- Rocket simulation;
- Stock market simulation;
- High-performance collision detection;
- Simulating a waving flag;
- The attack of zombies;
- Rigibu puzzle;
- Modeling storms;
- An analysis of customer service in call centres;
- Crowd simulation;
- A vehicle rental network;
- A leaf blowing in the wind; and
- Simulating waves.
- 15 minutes
- the problem description with a motivation
- a quick overview of related work
- the proposed solution
- a technical description of the solution
- encountered difficulties
- an evaluation
- future work and conclusion
Project report is due by April 5, 2020, midnight EST. This is a firm deadline. For your final project write-up you must use ACM SIG Proceedings Template (available at the ACM website). Project report is at most 12 pages long, plus extra pages for references.
No single textbook covers all the material that we will discuss in this course. Still the following two books are useful for a deeper study of most of the topics that we will cover in this course.
- Harvey Gould, Jan Tobochnik, and Wolfgang Christian, “An Introduction to Computer Simulation Methods: Applications to Physical Systems,” Third Edition, Addison Wesley, 2007.
- Wolfgang Christian, “Open Source Physics: A User’s Guide with Examples,” Addison Wesley, 2007.
Students are strongly encouraged to take their own notes during lectures.
Course labs will use Python3.
In the past, we have also used the OSP Java Package and Arena Simulation Software.