Update September 12
Dear All,
welcome to a new week with computational physics! Last week we discussed in larger detail Gaussian elimination, LU decomposition and iterative methods (Jacobi's and Gauss-Seidel) for solving equations of the type A^x^=b^. This material is covered by chapter 6 of the lecture notes and the slides on matrix handling and linear algebra. This week we move to eigenvalue problems, that is A^x^=λx^, discussed in chapter 7 of the lecture notes and the slides on eigenvalue problems, see for example http://compphysics.github.io/ComputationalPhysics/doc/pub/eigvalues/html/eigvalues.html
Project 2 deals with eigenvalue problems and our focus will be on writing our own code using Jacobi's method for finding the eigenvalues and eigenvectors. Although we focus on a quantum mechanical problem, the algorithm you end up writing will be general enough so that you can apply it to many other eigenvalue problems.
We will thus focus on how to solve project 2 first and discuss Jacobi's method in detail during this week's lectures. The first three sections of chapter7 are thus the most relevant ones this week. Project 2 is available, see for example, at http://compphysics.github.io/ComputationalPhysics/doc/Projects/2017/Project2/html/Project2-bs.html
At the lab I will discuss how to optimize your codes without too much hassle using vectorization, see for example the slides at http://compphysics.github.io/ComputationalPhysics/doc/pub/codeoptimization/html/codeoptimization.html. I will also discuss how to use unit tests. For C++ user we will focus on a very easy use library, namely catch!! See https://github.com/philsquared/Catch. I will show examples on how we can implement this in our program for project 2.
Best wishes to you all
Morten