For a thirty minute review, this is pretty good. I think a followup review could be helpful that connects the Gauss-Seidel method to the splitting where Ax=b is approximated assuming A=L+D+U where L is strictly lower triangular, D is a diagonal matrix and U is strictly upper triangular, then we can approximate the inverse of A by subdividing the matrix such that we have (L+D)x^k+1 + Ux^k = b, or alternatively Lx^k+(D+U)x^k+1 = b. The renumbering of the equations has the effect of moving the coefficients around between the L and U matrices. The triangular matrix has a trivial inverse (which is what is implemented by the sweeping approach described in this video). It is important to also note that *when* the coefficients come from an upwind scheme, then it is possible to number the equations such that there are many more zeros in either the L or U sub-matrices. This will result in a much more effective iterative scheme, whereas for coefficients from an elliptic system such as the heat equation give equal weight to the L and U parts. This usually means that the effectiveness of the Gauss-Seidel method will be more effective for upwind dominant systems often found in higher speed compressible flows compared to lower speed diffusion dominant flows. For diffusion dominant problems the Gauss-Seidel method will quickly stall and must be combined with a multigrid or Krylov subspace method to actually be useful.
Wow, this video is such a great explanation of the Gauss-Seidel algorithm! I really appreciate how it was broken down and explained using a basic example with limited math. As someone who is new to CFD, this was the perfect level of detail for me to understand the concept. Thank you for sharing!
These are very helpful! Thank you for these great videos and excited for conjugate gradient! I always see the preconditioned bi-conjugate gradients in openfoam and have zero clue what they do lol
@@fluidmechanics101 Same! Your videos are so good and now I have hopes that I can finally understand conjugate gradient and multigrid methods! 😂 Looking forward to it!!
Yes, the usual approach in CFD is to linearise the non linear terms as much as possible. A linear contribution is added to the A matrix and the non linear component is added to the B vector (evaluated explicitly using values from the previous iteration). Relaxation is then used to stabilise the calculation, so that the non linear contribution is added slowly
I was listening to your talk with Jousef Murad and found it cool that you were would like to know how SpaceX does their supersonic and hypersonic computations. Are you going to make a video on compressible solvers at some point? That would be great! The landscape of compressible solvers is a complex one to navigate (density based vs pressure based, riemann solvers, etc.)
That's the plan! I have almost finished the pressure based solvers for incompressible flows. Next I will be looking at the compressible solvers (much more difficult)
Thanks for a great series of videos! How is the Gauss-Seidel method (and other general solvers such as multi-grid) related to the SIMPLE and PISO you talked about early in this series? Are they just different ways to solve the NS equations? When do you prefer which methods?
Gauss Seidel (and others) are used to solve the individual matrix equations. SIMPLE and PISO tell you the order that the matrix equations are solved in 👍
I wanted to ask in the Q&A of the webpage but I think there isn't. Is it going to be a Christmas sale or something like that? I from LATAM and the courses are a bit expensive ( by no means I saying they wouldn't be worth the price just that the currency convertion :c )
I really want to get into CFD career. Can you make a beginner friendly video lectures. I have enrolled into your fundamental but most of stuff is hard to grasp. I have to continuously look up scientific notations. I am fairly good with calculus 1, can you suggest prerequisite to the fundamentals course? Thanks
I don't have anything specific, but any good course on vector calculus would be a good place to start! You really need to get used to using 'nabla' and the dot product
I think your presentation would benefit from pointing out, though notation, when a variable is assumed to be know from a previous iteration. E.g. your Eqn 11 is not the formula for Gauss-Seidel, it is missing appropriate notation and terms you mentioned but choose to ignore. You couldn’t code the method based on your talk. (This type of clear differentiation of variables through notation would also have really benefited your talk on the SIMPLE method.) Also, typically, algorithms are not deemed to be converged when the difference from iteration to iteration is small, but when some norm of the residual r:=b-Ax is also small. If only the differences are considered the algorithm may have stagnated without convergence. GS is not used alone, it is either used as a smoother in Multigrid or in some modified form as a preconditioner to a Krylov method; on its own the convergence rate is too slow. I too strongly recommend Youssef Saad’s freely available book on iterative methods to anyone interested in further exploring the linear algebra relevant to CFD. (Google “yousef saad iterative methods” for the pdf.)
All good points, thank you. The book by Saad is one of my favourites, a great suggestion. I would highly recommend people having a read if they want more detail. I agree with your points on notation. The form I have used is deliberately simplified in places and can't really be used to code an algorithm. However, this was deliberate. There are plenty of detailed sources on the internet for the detailed mathematics of GS and how to code it. My intention was to provide some of the understanding which was clearly missing from these descriptions, as most often CFD engineers only need the understanding to choose the right method (rather than coding it themselves). The understanding that GS uses a local average is the key point here, as it will help us later when we look at multi-grid. So yes, the talk is not a full treatment of the topic, but I hope people have found the 30 minutes of selected material useful 🙂