
This course starts in the second quartile and continues in the third quartile.
During the course you will have the satisfying experience of writing serious programs and to define and solve relevant and larger mechanical and physicalmechanical problems by yourself. You will be able to compose and develop a variety of advanced algorithms for a number of recurrent problems in engineering, learn to understand and modify bigger programs as well as get firsthand experience in writing efficient, welldocumented code. An integral part of the exercises is to apply your codes and to draw conclusions from the numerical results regarding their implications for the problem under study. After this course, the student is able to:
 Develop and write serious computer programs
 Identify and define problems to be solved
 Compose and develop advanced algorithms
 Independently solve complex mechanical and physical problems
 Describe / explain and modify larger programs
 Write efficient and welldocumented code


This course explains the basics of various numerical algorithms and methods (such as finite elements, molecular dynamics and image analysis) used every day in mechanical engineering, civil engineering, and physics. The goal is not to use commercial software packages, but to gain a deeper understanding of the methods by implementing them by yourself in Matlab, C or C++. Hence this course will teach you to fully understand all elements of each method and you will gain the essential coding experience. Best practices for debugging and good coding style are also extensively treated in this course. The course consists of both classroomlectures to explain the basic theory and exercises where the acquired knowledge will be implemented directly on the computer. Several examples will be treated, some of which are related or build upon each other, while others can be done as independent modules. You will have the unique opportunity to treat the same problem using different methods (for example, diffusion can be dealt with by finite differences, finite elements, particle methods and stochastic methods). The ultimate goal is that you are able to compare the different methods and hence become familiar with the strengths and weaknesses of a wide range of numerical methods and approaches. Solution hints, instructions and numerical codes are provided whenever necessary. The course consists of classes lectures spread over the 1B and 2A quarters, with following interactive practice hours. The largest and most timeintensive part of the course is solving the assignments, i.e., the programming part, running the codes, interpreting the output and reporting the results back to the instructors. During interactive solution/seminar hours, the instructors are available for help and questions.
Contents :
 Motivation and Introduction
 Harmonic Oscillator and Pendulum (ODE)
 Linear Finite Element Method (FEM)
 NonLinear finite element method
 Linear Molecular Dynamics (MD) for Solids
 Molecular Dynamics (nonlinear) for Fluids
 Random numbers and Applications
 Finite Volume Method (FV)
 Smoothed Particle Hydrodynamics (SPH)
 Image analysis
 Using an Arduino (a small computer)
 Further modules on selected topics, depending on the interests of the attending students and the availability of (guest) teachers.
For every assignment, the students hands in his/her code and a report describing the code, the simulation results and their interpretation. The number of ECTS awarded depends on the completed assignments. The final grade is a weighted average of the grades earned for the assignments.




 VoorkennisAbility to write simple codes in matlab, as taught in e.g. Programming in Engineering, 191158510 
Master Mechanical Engineering 
Bachelor Advanced Technology 
Bachelor Technische Natuurkunde 
  Verplicht materiaalCourse materialLecture notes from Canvas and script (available online as pdf) 

 Aanbevolen materiaalWerkvormenLecture
 Self study without assistance
 Tutorial

 ToetsenReport


 