Here's a link to learn the Multigrid Algorithm in C++ ... I love C++

the system is transformed to lower levels l-1,l-2,...,1 using prolongation p and restriction r operators. On every level a pre- and post-Smoothing operation is performed: This involves nu1/nu2 -Jacobi-Steps in the pre-/post-Smoothing operations and a relaxation parameter omega. On the coarsest level the equation is solved directly. In these examples the V-cycle was computed, meaning the algorithm only visited every level once