Comments to educational videos often say "this helped me more than my uni lectures" but this time I wanna say this helped me more than other youtube videos. Thanks!
My first attempt to learn FVM and what a lucky person I am! :D. THANK YOU! May you please make some videos on coding in OpenFOAM alongside these great theory videos. According to the quality of your videos and the way you teach in them, I'm sure that will be the greatest OpenFoam series in the entire TH-cam. Thanks again.
This was a wonderful video, exactly what I needed! I'm putting together some training at work to explain the math behind various methods of solving PDEs. Part of that is a basic level of how FEA and CFD work, and why it makes sense to be using these methods. My background is more in math, solids, and FEA or FD for specific solvers. I knew that CFD was going to be based in integral equations and take advantage of the divergence theorem, but I just assumed that fluxes, velocities, etc would be solved at the boundaries rather than the centroid. And that would totally make sense in 1D (where I was starting as a jumping-off point), but I'm sure solving everything at the centroid makes more sense when you go to more spatial dimensions, and it also allows for more adaptability. This was presented in a very understandable way without shying away from the details. I also found some of your other videos on the way and often thought "This is not what I'm looking for, but is great...and I might come back when I'm done!" And I did linger on some of them when I knew it wasn't the right video for what I was looking for. Onto the interpolation schemes video! BTW, I also have a question that I'm going to post separately rather than in this rambling praise comment.
I haven't finished watching the video yet, but one of the advantages of the FVM is numerical stability. You can insist that each finite volume has conditions that make physical sense, keeping you from going off the rails.
Thank you very much for the video. The narration is very clear and concise, keep it on! As a kind request - it would be great to know about the diffusion term breakdown and some more details about the linear system formation. Thank you very much.
Thank you so much for the kind feedback 😊 i will be doing the diffusion term in a separate video as it is a little more complicated. It will also give us a chance to learn a bit about orthogonality, which you will find useful for meshing!
Hello Aiden, First of all thank you for starting such great lecture series, it is very helpful in understanding CFD in depth. Just a request if you are able to explain the difference between steady state and transient simulation mathematical that would be great. I know the basic difference but don't understand how steady state solver uses a pseudo time step technique for convergence.
Why does diagonal dominance reduce with a positive S contribution? By definition, for a diagonal dominance, the absolute value of the element on the diagonal is considered to be greater than the sum of the absolute values of the other elements in that row. Thank you for your pricesless time and teachings about this tremendous topic.
S is on the right hand side of the equation. So if it is positive, when you move it to the left hand side (to add it to the diagonal of the matrix) the contribution is negative, which reduces diagonal dominance
Hi Josh, the diffusion term is covered in my ‘Non Orthogonal Correctors’ video. If you want more detail (and some specifics) you can always check out my fundamentals course on udemy/skillshare and on my website (link in the description) 😊
great video series. Could you please arrange the all the videos in number series from basics to advanced, so a beginner can follow up accordingly. Thanks.
Hey Aidan! Thanks a bunch for your videos! by far the clearest explanation I've found! Quick question: were you able to post the videos on how to handle the diffusion term yet?
I am currently trying to find some good sources for the finite element method (applied to CFD of course). This has been quite difficult so far, as all the main CFD codes are FVM codes! But i do plan on doing a video when i can find some good sources 😄
@@fluidmechanics101 Hi Aidan, did you find some good references on FEM for cfd? It would be very helpful to know some of those while waiting for your video :) thanks!!!
I have a question about adding the linear source term contribution to the LHS or RHS at 9:28. When adding it to the RHS, does this mean that we are using values U_p from the previous time step? Because how can we add a term to the RHS if we are actually trying to solve for a variable on which the term depends?
Hi, I have a question. Is there a 2nd part of this lecture where you show the development of the diffusion term part of the equation? Great video btw, very useful.
Hello Aidan thanks for the video it was very helpful as usual from you. you are doing a great effort and I really appreciate that. Are you planning to make a video explaining the difference between Ansys Fluent module and CFX module and if you wish also the OF. I really want to know the main differences between these Modules when I am going to solve a CFD problem. Thanks again and look to hear from you soon.
Thanks Mohamed! There are many differences between Fluent, CFX and OpenFoam. Fluent and OpenFoam are very similar as they both are cell centred codes. CFX on the other hand calculates the variables at the nodes (rather than the centroids). For most applications you can do the same simulation in all three codes and get good results with them all. CFX tends to be easier to set up multiphase simulations, while Fluent is better for combustion and heat transfer applications. I would tens to go with whichever you feel comfortable with and prefer!
Hi Aidan, thanks for your lucid explanation of FVM . I wanted ask about your thoughts on FVM applied to unstructured (Tetrahedral, Poly) mesh versus structured mesh. What are the major differences between structured and unstructured mesh from FVM point of view ?
Good question! This is a very detailed topic and a lot goes into it (probably more than I can explain in the comment section). Basically the unstructured FVM can handle any of these cells. Cells with high skewness and non orthogonality reduce stability and slow down the calculation regardless of their shape. So the closer you get to perfect shapes the better for you. In terms of comparing cell types, without going into too much detail, if you can get a mesh with all hexes that is best, polys are in the middle and tets are worst.
Hi Aidan, Thanks for everything. I am a master student and because of your videos I made it this far. I was wondering how did you derive the Navier Stokes equation. It looks very different from the ones in my textbooks. Thanks!
I tend to use the form used in CFD textbooks and theses, rather than fluid mechanics textbooks. I would have a look in Hrvoje Jasaks thesis (Google search and it should be the first link). That is probably the form I used (it has been a few years, so I can't really remember!)
Hi Aidan! Again, I'd like to say thanks for all this outstanding content coming out. As a "rookie" in the field of CFD and FLUENT, I'm a huge fan of it! I have however one question that arises after having watched one of your previous videos (SIMPLE algorithm) and this one here, it would be much appreciated if you could cast a light upon it: how do you go about the pressure term in the momentum equation? As far as I know (correct me If I'm wrong, please), you solve for the pressure by means of the poisson equation derived from the continuity equation. However, in that equation you still have the divergence of the pressure gradient... so I'm guessing that you need to discretize this equation as well and account somehow for the pressure gradient on the faces. Am I right? Thing is, that in FLUENT you are asked to choose a spatial discretization scheme for the pressure (PRESTO!, second order, standard...), that's why I'm kinda thrown off as to how do you go about this term. All the best, Alejandro
Yes, alejandro you are correct! You solve a poisson equation for pressure, which is derived from the continuity equation. The poisson equation for pressure is solved in the same way as the momentum equation and the other scalar transport equations. However, it is sometimes necessary to use a different discretisation term for the pressure on the cell faces (buoyancy driven and swirling flows for example). From experience, i usually go with body force weighted for this term in FLUENT and it usually gives good results 😊
Fluid Mechanics 101 But here we need to integrate the pressure over the volume as well, on the other hand in the simple algorithm we leave it undiscretized ( M.U = -grad(P) ) how can we make the transition from FVM matrix form to the simple algorithm matrix form?
Hmm I think I have a video on Non-Newtonian flows. I can't remember if I did it specifically for laminar flows though! Maybe have a quick search on the channel homepage?
Hi Aidan, regarding M matrix and cell connectivity (slide 22), what if our mesh is unstructured and no reordering of the cells’ numbers has been done, do we still get a sparse matrix (M)? Thank you for your response. Take care!
Hi Aidan, I am from FEM/mechanics field but also curious about fluid dynamics and I find your lectures quite helpful to understand the basic concepts. I have a question regarding the M matrix produced after adding all the coefficients from the volume meshes. In general, is this (sparse) matrix symmetric or asymmetric like indicated in slide 22/24? Thank you
@@fluidmechanics101 thank you for your time! In mechanics the coefficient matrix is called stiffness matrix and it is usually symmetric, positive definite and sparse allowing to use LDL, LL decompositions etc. Anyway, I will watch the rest of your videos, keep up the good work!
Not really coming from the CFD world, I'm not really familiar with the whole mixed implicit-explicit, picking on the fly methodology to maintain diagonal dominance (though I think that's a really neat approach), but I noticed something in equation (18) that had me curious. (Please forgive my use of "^" for both superscripts and exponents.) Why do we do S U^i-1 U^i as the linearization (assuming implicit treatment)? If we were to take a Newton's Iterations approach, we would have S [(U^i-1)^2 + 2(U^i - U^i-1)U^i-1] which is 2S U^i-1 U^i - S (U^i-1)^2. I would expect that the Newton's Iterations approach when using implicit treatment would converge more quickly, and would also double the contribution towards the diagonal dominance.
I think it is because we need the factorisation to be linear in U^i. So the factorisation needs to be: U^i * everything else. If it is not linear, we can't include the term into the left hand side as the left hand side is essentially: constant * U^i
The neat thing is it actually would still be linear. If we take our function f(U)=U*U and find the linear approximation of f(U^i) as the first two terms of the Taylor Series, we'd get f(U^i)~f(U^i-1)+(U^i - U^i-1)*df/dU(U^i-1). That would be U^i-1*U^i-1 +2U^i*U^i-1 - 2U^i-1*U^i-1. You can then add those first and last terms together, and it'd get you a term that moves to the right side of the equation, while they middle term stays on the left. It also works for higher powers of U, which would just give you a higher factor than that 2. I think commercial FEA codes usually use this method. I do know it's the method Abaqus/Standard uses for it's heat transfer analysis (of solids). (You can look up in the Abaqus User Manual that it uses a Backward Implicit Method with Newton Iterations.) I'm not sure what the official name of the method here would be, but I guess it basically approximates f(U^i) as U^i*[f(U^i-1)/U^i-1]. It certainly should work, but I thought there was a better linear approximation available. I would expect this method to slow down the iterations, especially for higher-power terms. But maybe that's a good thing for the stability somehow? Or, it could just be that this is easier. If you want to do Newton Iterations, you need to know the derivative of your non-linear function, and so if you put a user subroutine into Abaqus (such as user-defined internal heat generation), you actually have to give it both the function and the function's derivative to pass into the solver.
Hi Dr. Aidan, First of all thank you so much for the wide range of CFD topics you've been covered to this day. This channel is a bless for us CFD Enthusiasts. I have a question about treating the convective term in NS with FVM. I understand that one of the U face velocity is interpolated via Upwind of some kind of Numerical scheme. How do we treat the other U that's inside of the mass flux of surface. I saw in Prof. Jasak's thesis he mentions something but he also doesn't go detailed explanation. Can you explain this to me or kindly refear to a source that explains
Hello, yes one of the velocities is treated with some form of upwind differencing, so that it can be written in terms of the velocity at the cell centroids (the unknowns in the matrix equation). The other velocity is combined with density and the face area of the cell to form the face mass flow rate. This face mass flow rate is evaluated using the velocity from the previous iteration (it is lagged) and becomes part of the coefficient in the A matrix. I am going to do this in a lot more detail soon, but hopefully this is enough to get you started
Hello Dr. Aidan, Does your course on Udemy include the zip file(which has pdf file and python coding) or we need to buy that separately from your website.
Hi Nikhil, the udemy course should have everything (pdf, python code, excel code and lecture talks). Ive tried to make everything the same and put them up on all the platforms that i know about, so that you guys can get everything in whatever way you prefer. I dont mind myself, i just know that some people have different preferences for what they like 😄 if there are any problems just drop me a comment or email and i can help you out, as i want it to be easy with no problems at all.
Hello Ph.D. Aidan, I know from your videos, and Prof. Jasak thesis that if the temperature is varying linearly in a square face it a is given as T = Tf +(Xf-X)grad(Tf); Where (Xf-X) is the position vector of any point in the face from the centroid of the face and Tf is the temperature gradient at face centroid. Now, if we're considering taking the gradient of the temperature, grad(T) will it be grad(T) = grad(Tf) + (Xf-X)grad(grad(T)) as (X-Xf), even though a vector can be considered a constant as it doesn't varies with position OR grad(T) = grad(Tf) +grad((Xf-X)grad(Tf))as we have to cosider (X-Xf) as varying with position. Thank you.
would you please tell me the required courses that i need to take in order to start learning CFD like math courses as calculus,algebra,fluid mechanics....and so on?!
To start learning CFD, you should probably learn some linear algebra (matrices), vector calculus and partial differential equations. Then you should be good to go! Most undergraduate mathematics courses for engineering should be sufficient for you
I have a question: in the convection term, how can the coefficients be obtained if we have the velocity squared? Do you use a velocity from a previous iteration?
Great videos! I have a question about equation 24, in OpenFoam documentation it says they use Gauss integration. Is that implemented at this point (equation 24) to obtain a different approximation of the surface integrals? Otherwise, where would they apply Gauss integration?
Hi Aidan, thank you for this great video. I am missing a comment to the pressure term in the equation. Will it be on the rhs? We need one condition more for it. Regards from Germany
Hi Miezie, the pressure gradient in the momentum equations is tricky. It requires special algorithms (like SIMPLE or PISO) to calculate it. For now, when we solve the momentum equations, it is treated as an explicit source term. You can check out my video on the SIMPLE algorithm (or PISO coming soon) if you would like to know more 😊
At 9:56, you explain implicit vs explicit treatment. I don't quite understand how it's even possible to use an explicit treatment in this case as we're solving for the Up values and the source contribution necessarily has to be in the M matrix.
If you use Up from the previous iteration instead, then it is effectively a fixed value and so the entire term is added to the right hand side instead of the M matrix
Hi Aidan First of all thank you for the videos. They help a lot. Secondly I would like to ask you a question: According to the Ansys Fluent UDF Manual, the DEFINE_SOURCE macro allows the user to choose the implicit solution of the source term by setting the term dS[eqn] as the derivative of the source term or to choose the explicity solution by setting dS[eqn] equal to 0. Does this implicit/explicit treatment of the UDF macro exactly match what you have commented on this video or am I misunderstanding something? Once again thank you.
Hi Bernardo, yes you are exactly correct! The Fluent DEFINE_SOURCE UDF gives the option of specifying the derivative of the source term (implicit treatment). If you do specify the derivative then it will try and use implicit treatment, if not it will use explicit treatment 👍
Hi Seb, thanks for your support 😊 i probably wont be looking into the lattice boltzmann method, as it isnt used by most mainstream CFD solvers. Is there a particular application you are thinking of?
Thank you very much Aidan, your explanation made understanding the FVM very straight forward! Would you be able to point me to a resource where I can see all the steps in details applied to a simple flow problem? Thank you so much again, looking forward to more of your videos :)
Hi Yahya, unfortunately I dont have a good resource for you right now. But i am working on putting something together for you, as i think it would be really cool to see a nice working example. I have some ideas, so let me get back to you :)
Hi Aidan, Thank you for your video. This is very useful for me. I am looking for the integration of the diffusion term. Could you give me the link? Many thanks!
Could somebody please explain why does a positive S value in source term would make the matrix less diagonally dominant? We just need the diagonal elements to be heavy in magnitude right?
All terms in NS equation (eq.1) are vectors except the term -2/3mu(\Del.U) I...In this specific term all the components are scalar except "I" which is a square matrix making the whole term a matrix and not a vector. Something doesn’t serm right.
Hi Aidan Sir, There was a doubt that for hexahedron cell, Matrix M size is going to be 7*7 ??? one for owner cell at diagonal and 6 for all six neighbor cells at off-diagonal?
@@kaushalsorte9870 and if suppose the cell is hexahedron then each M- Matrix size would be 7*7 ???????? means n*n Matrix with each matrix with the size of 7*7 ???????
Sorry guys, I feel like I should clear this up. The unknowns in the equations are the values at the cell centroids. Hence, there is one unknown for each cell centroid. It does not matter how many faces each cell has, what matter is the number of cell centroids. The faces determine the connectivity and the off diagonal terms. For your example of a hexahedral cell with 6 neighbours, there are a total of 6+1 = 7 cell centroids. Therefore the M matrix is 7x7 👍
Hi, I have a doubt regarding equation 18. Using 'U' with the previously calculated value seems incorrect. It feels a bit unusual to assign two different values to 'U'. Additionally, I have another query: Is the 'U' value utilized from the preceding time step, or is it sourced from the adjacent cell?
Oh yes i forgot! If you check out my video ‘Mesh Non-Orthogonality’ you should find the treatment of the diffusion term in there 😊 I just thought that ‘Mesh Non-Orthogonality’ was a more appropriate and specific title!
Hi Agung, yes you can pick up the slides for all my talks from my website: www.fluidmechanics101.com/pages/shop.html . So far i have only uploaded the first 10 talks, the second set of talks (including this one) will be up soon!
Hi Aidan,
I'm somewhat sure that the integration result in eq. 19 is incorrect. We are missing the Vp term from the RHS result.
Yes! Well spotted. Vp is missing from the RHS result 😅
I can't believe you're doing this for free. Thank you
This channel is a blessing for CFD enthusiasts. Thank you very much.
Dr. Rajesh Bhaskaran used another approach to teach CFD. But this approach gave me a new perspective. Thank you so much
Best video series in the world for a CFD beginner!!!
Instant subscribe and a die hard fan; you are amazing bro, have not met anyone who can explain these in so much detail…
Comments to educational videos often say "this helped me more than my uni lectures" but this time I wanna say this helped me more than other youtube videos. Thanks!
My first attempt to learn FVM and what a lucky person I am! :D. THANK YOU!
May you please make some videos on coding in OpenFOAM alongside these great theory videos. According to the quality of your videos and the way you teach in them, I'm sure that will be the greatest OpenFoam series in the entire TH-cam. Thanks again.
Agreed
Bro you are connecting dots in my mind. Crazy
Profoundly explained as usual, Aiden. Keep it going.
This was a wonderful video, exactly what I needed! I'm putting together some training at work to explain the math behind various methods of solving PDEs. Part of that is a basic level of how FEA and CFD work, and why it makes sense to be using these methods. My background is more in math, solids, and FEA or FD for specific solvers. I knew that CFD was going to be based in integral equations and take advantage of the divergence theorem, but I just assumed that fluxes, velocities, etc would be solved at the boundaries rather than the centroid. And that would totally make sense in 1D (where I was starting as a jumping-off point), but I'm sure solving everything at the centroid makes more sense when you go to more spatial dimensions, and it also allows for more adaptability.
This was presented in a very understandable way without shying away from the details. I also found some of your other videos on the way and often thought "This is not what I'm looking for, but is great...and I might come back when I'm done!" And I did linger on some of them when I knew it wasn't the right video for what I was looking for. Onto the interpolation schemes video! BTW, I also have a question that I'm going to post separately rather than in this rambling praise comment.
Fantastic thank you for your kind words 🙂
Wow i have been looking for this simplified explanation about finite volume method keep it up.... And good thing is your doing it for free 👍
It is impressive the quality of these videos! I wonder why are you not at NASA/ESA already!
I haven't finished watching the video yet, but one of the advantages of the FVM is numerical stability. You can insist that each finite volume has conditions that make physical sense, keeping you from going off the rails.
Thank you very much for the video. The narration is very clear and concise, keep it on!
As a kind request - it would be great to know about the diffusion term breakdown and some more details about the linear system formation.
Thank you very much.
Thank you so much for the kind feedback 😊 i will be doing the diffusion term in a separate video as it is a little more complicated. It will also give us a chance to learn a bit about orthogonality, which you will find useful for meshing!
Thanks a lot, so simple and easy to understand
This was an incredibly satisfying video.
Thank you, Aiden!! This helps me a lot!!
It is wonderful presentation. go on ahead!!!
Hello Aiden,
First of all thank you for starting such great lecture series, it is very helpful in understanding CFD in depth.
Just a request if you are able to explain the difference between steady state and transient simulation mathematical that would be great. I know the basic difference but don't understand how steady state solver uses a pseudo time step technique for convergence.
Hi Rohan, the pseudo time step technique is quite tricky to explain. I will see if i can make a good video for it in future 👍
Thank you, Gracias por las pautas muy buenas para entender la solución numérica de la ecuación de NS.
Thank you Aidan. Very helpful video!
Thanks for support
I really appreciate it! god bless you!
well explained . Thanks for making this video .
Why does diagonal dominance reduce with a positive S contribution? By definition, for a diagonal dominance, the absolute value of the element on the diagonal is considered to be greater than the sum of the absolute values of the other elements in that row. Thank you for your pricesless time and teachings about this tremendous topic.
S is on the right hand side of the equation. So if it is positive, when you move it to the left hand side (to add it to the diagonal of the matrix) the contribution is negative, which reduces diagonal dominance
Great video! Thank you!
thank you very much Dr
good introduction
Really very useful.🙏
Hi Aidan,
Thank you for such a fantastic course. When will you cover the differential terms, I look forward greatly! ?
Hi Josh, the diffusion term is covered in my ‘Non Orthogonal Correctors’ video. If you want more detail (and some specifics) you can always check out my fundamentals course on udemy/skillshare and on my website (link in the description) 😊
Great explanation, thank you :)
absolutely brilliant..
thank you from Turkey
great video series. Could you please arrange the all the videos in number series from basics to advanced, so a beginner can follow up accordingly. Thanks.
Hey Aidan! Thanks a bunch for your videos! by far the clearest explanation I've found! Quick question: were you able to post the videos on how to handle the diffusion term yet?
Hi Timma, yes! If you watch my video ‘Non-Orthogonality’, the diffusion term is described in detail. I suppose i did give it a misleading title ...
Thank you very much, exceptional lecture. Will you by chance do one on FEM ?
I am currently trying to find some good sources for the finite element method (applied to CFD of course). This has been quite difficult so far, as all the main CFD codes are FVM codes! But i do plan on doing a video when i can find some good sources 😄
@@fluidmechanics101 Hi Aidan, did you find some good references on FEM for cfd? It would be very helpful to know some of those while waiting for your video :) thanks!!!
Thank you so much.
Thank you. It helps me alot...
I have a question about adding the linear source term contribution to the LHS or RHS at 9:28. When adding it to the RHS, does this mean that we are using values U_p from the previous time step? Because how can we add a term to the RHS if we are actually trying to solve for a variable on which the term depends?
Hi, I have a question. Is there a 2nd part of this lecture where you show the development of the diffusion term part of the equation? Great video btw, very useful.
Yes! If you search for 'non orthogonal correctors', that is the video you are looking for
Hello Aidan thanks for the video it was very helpful as usual from you. you are doing a great effort and I really appreciate that. Are you planning to make a video explaining the difference between Ansys Fluent module and CFX module and if you wish also the OF. I really want to know the main differences between these Modules when I am going to solve a CFD problem.
Thanks again and look to hear from you soon.
Thanks Mohamed! There are many differences between Fluent, CFX and OpenFoam. Fluent and OpenFoam are very similar as they both are cell centred codes. CFX on the other hand calculates the variables at the nodes (rather than the centroids). For most applications you can do the same simulation in all three codes and get good results with them all. CFX tends to be easier to set up multiphase simulations, while Fluent is better for combustion and heat transfer applications. I would tens to go with whichever you feel comfortable with and prefer!
Hi Aidan, thanks for your lucid explanation of FVM . I wanted ask about your thoughts on FVM applied to unstructured (Tetrahedral, Poly) mesh versus structured mesh. What are the major differences between structured and unstructured mesh from FVM point of view ?
Good question! This is a very detailed topic and a lot goes into it (probably more than I can explain in the comment section). Basically the unstructured FVM can handle any of these cells. Cells with high skewness and non orthogonality reduce stability and slow down the calculation regardless of their shape. So the closer you get to perfect shapes the better for you. In terms of comparing cell types, without going into too much detail, if you can get a mesh with all hexes that is best, polys are in the middle and tets are worst.
@@fluidmechanics101 Thanks Aidan for your prompt reply.
Hi Aidan,
Thanks for everything. I am a master student and because of your videos I made it this far.
I was wondering how did you derive the Navier Stokes equation. It looks very different from the ones in my textbooks.
Thanks!
I tend to use the form used in CFD textbooks and theses, rather than fluid mechanics textbooks. I would have a look in Hrvoje Jasaks thesis (Google search and it should be the first link). That is probably the form I used (it has been a few years, so I can't really remember!)
Hi Aidan! Again, I'd like to say thanks for all this outstanding content coming out. As a "rookie" in the field of CFD and FLUENT, I'm a huge fan of it!
I have however one question that arises after having watched one of your previous videos (SIMPLE algorithm) and this one here, it would be much appreciated if you could cast a light upon it: how do you go about the pressure term in the momentum equation? As far as I know (correct me If I'm wrong, please), you solve for the pressure by means of the poisson equation derived from the continuity equation. However, in that equation you still have the divergence of the pressure gradient... so I'm guessing that you need to discretize this equation as well and account somehow for the pressure gradient on the faces. Am I right?
Thing is, that in FLUENT you are asked to choose a spatial discretization scheme for the pressure (PRESTO!, second order, standard...), that's why I'm kinda thrown off as to how do you go about this term.
All the best,
Alejandro
Yes, alejandro you are correct! You solve a poisson equation for pressure, which is derived from the continuity equation. The poisson equation for pressure is solved in the same way as the momentum equation and the other scalar transport equations. However, it is sometimes necessary to use a different discretisation term for the pressure on the cell faces (buoyancy driven and swirling flows for example). From experience, i usually go with body force weighted for this term in FLUENT and it usually gives good results 😊
Fluid Mechanics 101 But here we need to integrate the pressure over the volume as well, on the other hand in the simple algorithm we leave it undiscretized ( M.U = -grad(P) ) how can we make the transition from FVM matrix form to the simple algorithm matrix form?
The Best !!
Thank you so much for your content! Really useful. May I know in which video do you talk about the diffusion term? Thanks again
I talk about it in the 'Non Orthogonal Correctors' video 👍
@@fluidmechanics101 Thanks!
Hi. First of all thank you very much.
Have you ever been thought about to make a video series about laminar non Newtonian flow?
Hmm I think I have a video on Non-Newtonian flows. I can't remember if I did it specifically for laminar flows though! Maybe have a quick search on the channel homepage?
Muchas gracias
Thank you so much
Hello Aidan thanks for the new video, you are doing great job. Can you please make video on turbulence model specifically on RANS and LES?
Hi Rahul, yes definitely! I am going to do a video on RANS and LES soon, so keep watching the channel 😊
Hi Aidan,
regarding M matrix and cell connectivity (slide 22), what if our mesh is unstructured and no reordering of the cells’ numbers has been done, do we still get a sparse matrix (M)? Thank you for your response. Take care!
Yes, the matrix is still sparse. It just won't have a neat 'diagonal banded pattern'.
19:23 that smile melted me ..
Hi sir.
The Fluent software used RANS equations or The Favre averaged Navier-Stokes equations for modeling transonic turbulent flow over an airfoil?
Favre for transonic flow
@@fluidmechanics101 thx 🙏😊
Hi Aidan,
I am from FEM/mechanics field but also curious about fluid dynamics and I find your lectures quite helpful to understand the basic concepts. I have a question regarding the M matrix produced after adding all the coefficients from the volume meshes. In general, is this (sparse) matrix symmetric or asymmetric like indicated in slide 22/24? Thank you
Im not sure! Il have to get back to you on this one 😄 there may be some special cases so i will have to think quite carefully about this one
@@fluidmechanics101 thank you for your time! In mechanics the coefficient matrix is called stiffness matrix and it is usually symmetric, positive definite and sparse allowing to use LDL, LL decompositions etc. Anyway, I will watch the rest of your videos, keep up the good work!
Hi Aidan Sir, i have a doubt
if we have n cells in our mesh then we will get n*n M-matrix to solve?????
Yes, correct. The matrix has dimensions equal to the number of cells as there is one unknown for each cell centroid 👍
Not really coming from the CFD world, I'm not really familiar with the whole mixed implicit-explicit, picking on the fly methodology to maintain diagonal dominance (though I think that's a really neat approach), but I noticed something in equation (18) that had me curious.
(Please forgive my use of "^" for both superscripts and exponents.)
Why do we do S U^i-1 U^i as the linearization (assuming implicit treatment)? If we were to take a Newton's Iterations approach, we would have S [(U^i-1)^2 + 2(U^i - U^i-1)U^i-1] which is 2S U^i-1 U^i - S (U^i-1)^2. I would expect that the Newton's Iterations approach when using implicit treatment would converge more quickly, and would also double the contribution towards the diagonal dominance.
I think it is because we need the factorisation to be linear in U^i. So the factorisation needs to be: U^i * everything else. If it is not linear, we can't include the term into the left hand side as the left hand side is essentially: constant * U^i
The neat thing is it actually would still be linear. If we take our function f(U)=U*U and find the linear approximation of f(U^i) as the first two terms of the Taylor Series, we'd get f(U^i)~f(U^i-1)+(U^i - U^i-1)*df/dU(U^i-1). That would be U^i-1*U^i-1 +2U^i*U^i-1 - 2U^i-1*U^i-1. You can then add those first and last terms together, and it'd get you a term that moves to the right side of the equation, while they middle term stays on the left.
It also works for higher powers of U, which would just give you a higher factor than that 2. I think commercial FEA codes usually use this method. I do know it's the method Abaqus/Standard uses for it's heat transfer analysis (of solids). (You can look up in the Abaqus User Manual that it uses a Backward Implicit Method with Newton Iterations.) I'm not sure what the official name of the method here would be, but I guess it basically approximates f(U^i) as U^i*[f(U^i-1)/U^i-1]. It certainly should work, but I thought there was a better linear approximation available.
I would expect this method to slow down the iterations, especially for higher-power terms. But maybe that's a good thing for the stability somehow? Or, it could just be that this is easier. If you want to do Newton Iterations, you need to know the derivative of your non-linear function, and so if you put a user subroutine into Abaqus (such as user-defined internal heat generation), you actually have to give it both the function and the function's derivative to pass into the solver.
Hi Dr. Aidan,
First of all thank you so much for the wide range of CFD topics you've been covered to this day. This channel is a bless for us CFD Enthusiasts. I have a question about treating the convective term in NS with FVM. I understand that one of the U face velocity is interpolated via Upwind of some kind of Numerical scheme. How do we treat the other U that's inside of the mass flux of surface. I saw in Prof. Jasak's thesis he mentions something but he also doesn't go detailed explanation. Can you explain this to me or kindly refear to a source that explains
Hello, yes one of the velocities is treated with some form of upwind differencing, so that it can be written in terms of the velocity at the cell centroids (the unknowns in the matrix equation). The other velocity is combined with density and the face area of the cell to form the face mass flow rate. This face mass flow rate is evaluated using the velocity from the previous iteration (it is lagged) and becomes part of the coefficient in the A matrix. I am going to do this in a lot more detail soon, but hopefully this is enough to get you started
@@fluidmechanics101 Thank you for your fast reply. I've kind of an idea about it now. Can't wait for the detailed explanation
Hi man, really appreciate your lessons! Wich lesson is the One about thr modelling of diffusion term ?
Hi Alessandro, check out the video on ‘Non-Orthogonality’. This video goes through the diffusion term in detail
@@fluidmechanics101 thank you gentleman, saluti dall' Italia!
Hello Dr. Aidan, Does your course on Udemy include the zip file(which has pdf file and python coding) or we need to buy that separately from your website.
Hi Nikhil, the udemy course should have everything (pdf, python code, excel code and lecture talks). Ive tried to make everything the same and put them up on all the platforms that i know about, so that you guys can get everything in whatever way you prefer. I dont mind myself, i just know that some people have different preferences for what they like 😄 if there are any problems just drop me a comment or email and i can help you out, as i want it to be easy with no problems at all.
@@fluidmechanics101 Thanks for the info.👍
Hello Ph.D. Aidan,
I know from your videos, and Prof. Jasak thesis that if the temperature is varying linearly in a square face it a is given as
T = Tf +(Xf-X)grad(Tf);
Where (Xf-X) is the position vector of any point in the face from the centroid of the face and Tf is the temperature gradient at face centroid.
Now, if we're considering taking the gradient of the temperature, grad(T) will it be
grad(T) = grad(Tf) + (Xf-X)grad(grad(T))
as (X-Xf), even though a vector can be considered a constant as it doesn't varies with position
OR
grad(T) = grad(Tf) +grad((Xf-X)grad(Tf))as we have to cosider (X-Xf) as varying with position.
Thank you.
would you please tell me the required courses that i need to take in order to start learning CFD like math courses as calculus,algebra,fluid mechanics....and so on?!
To start learning CFD, you should probably learn some linear algebra (matrices), vector calculus and partial differential equations. Then you should be good to go! Most undergraduate mathematics courses for engineering should be sufficient for you
Cear and nice lecture
Great videos. Can you please upload videos on LBM ( Lattice Boltzmann Method). Thanks 🙏
Perfect
I have a question: in the convection term, how can the coefficients be obtained if we have the velocity squared? Do you use a velocity from a previous iteration?
Yes👍
Great videos! I have a question about equation 24, in OpenFoam documentation it says they use Gauss integration. Is that implemented at this point (equation 24) to obtain a different approximation of the surface integrals? Otherwise, where would they apply Gauss integration?
Hi Aidan,
thank you for this great video. I am missing a comment to the pressure term in the equation. Will it be on the rhs? We need one condition more for it.
Regards from Germany
Hi Miezie, the pressure gradient in the momentum equations is tricky. It requires special algorithms (like SIMPLE or PISO) to calculate it. For now, when we solve the momentum equations, it is treated as an explicit source term. You can check out my video on the SIMPLE algorithm (or PISO coming soon) if you would like to know more 😊
At 9:56, you explain implicit vs explicit treatment. I don't quite understand how it's even possible to use an explicit treatment in this case as we're solving for the Up values and the source contribution necessarily has to be in the M matrix.
If you use Up from the previous iteration instead, then it is effectively a fixed value and so the entire term is added to the right hand side instead of the M matrix
Hi Aidan
First of all thank you for the videos. They help a lot.
Secondly I would like to ask you a question: According to the Ansys Fluent UDF Manual, the DEFINE_SOURCE macro allows the user to choose the implicit solution of the source term by setting the term dS[eqn] as the derivative of the source term or to choose the explicity solution by setting dS[eqn] equal to 0. Does this implicit/explicit treatment of the UDF macro exactly match what you have commented on this video or am I misunderstanding something?
Once again thank you.
Hi Bernardo, yes you are exactly correct! The Fluent DEFINE_SOURCE UDF gives the option of specifying the derivative of the source term (implicit treatment). If you do specify the derivative then it will try and use implicit treatment, if not it will use explicit treatment 👍
best of the best
Hello,
very nice video. Thank you very much.
Are you planning on making a video on the Lattice-Boltzmann-Method?
Hi Seb, thanks for your support 😊 i probably wont be looking into the lattice boltzmann method, as it isnt used by most mainstream CFD solvers. Is there a particular application you are thinking of?
Awesome explanation, made it clear for me, thank you so much.
at the end of the video would F_{fi} be U_{fi} n_{fi} ?
U_{fi} n_{fi} A_{fi} 👍
Thank you!
anyway we can see 2D examples, and ... would 2D examples be easier to understand? or are they not worth doing
Thank you very much Aidan, your explanation made understanding the FVM very straight forward! Would you be able to point me to a resource where I can see all the steps in details applied to a simple flow problem? Thank you so much again, looking forward to more of your videos :)
Hi Yahya, unfortunately I dont have a good resource for you right now. But i am working on putting something together for you, as i think it would be really cool to see a nice working example. I have some ideas, so let me get back to you :)
@@fluidmechanics101 thank you very much Aiden :)
Hi Aidan,
Thank you for your video. This is very useful for me. I am looking for the integration of the diffusion term. Could you give me the link?
Many thanks!
Yep, if you check out my videos on 'Non Orthogonal Correctors' you will find the diffusion term there 👍
@@fluidmechanics101 Thank you very much! Have a nice day!
Could somebody please explain why does a positive S value in source term would make the matrix less diagonally dominant? We just need the diagonal elements to be heavy in magnitude right?
All terms in NS equation (eq.1) are vectors except the term -2/3mu(\Del.U) I...In this specific term all the components are scalar except "I" which is a square matrix making the whole term a matrix and not a vector. Something doesn’t serm right.
Hi Aidan Sir,
There was a doubt that for hexahedron cell, Matrix M size is going to be 7*7 ??? one for owner cell at diagonal and 6 for all six neighbor cells at off-diagonal?
Ahhh yes i always get confused with hexes well spotted 😂
@@fluidmechanics101 Thank you so much
The M matrix is for entries corresponding to different cells in the mesh. So if we have n cells, then we have a n*n M matrix.
@@kaushalsorte9870 and if suppose the cell is hexahedron then each M- Matrix size would be 7*7 ???????? means n*n Matrix with each matrix with the size of 7*7 ???????
Sorry guys, I feel like I should clear this up. The unknowns in the equations are the values at the cell centroids. Hence, there is one unknown for each cell centroid. It does not matter how many faces each cell has, what matter is the number of cell centroids. The faces determine the connectivity and the off diagonal terms. For your example of a hexahedral cell with 6 neighbours, there are a total of 6+1 = 7 cell centroids. Therefore the M matrix is 7x7 👍
Nice
Hi, I have a doubt regarding equation 18. Using 'U' with the previously calculated value seems incorrect. It feels a bit unusual to assign two different values to 'U'. Additionally, I have another query: Is the 'U' value utilized from the preceding time step, or is it sourced from the adjacent cell?
Are you going to explain the discretization of the diffusion term in a separate video ?
Yes! Check out my videos on ‘Non-Orthogonality’. These are all about the discretisation of the diffusion term
Waoh this great
amazing
Thanks!
THKS :)
Why is Eqn 4 equal to 0?? ie why is the volume integral of the momentum equation equal to 0? Thanks!
He put all the terms in the LHS, which leaves 0 on the RHS.
Merci frère
thank You Sir
No problem. Glad i could help
Hi, It looks strange as to the shear stress in NS equation (1), in slide 3.
Yes i think the shear stress has a typo here 😅 sorry!
^_^
Hi Aidan,
and the diffusion term? you haven't released the video for that yet
Oh yes i forgot! If you check out my video ‘Mesh Non-Orthogonality’ you should find the treatment of the diffusion term in there 😊 I just thought that ‘Mesh Non-Orthogonality’ was a more appropriate and specific title!
👌👌
Any chance i can get your powerpoint?
Hi Agung, yes you can pick up the slides for all my talks from my website: www.fluidmechanics101.com/pages/shop.html . So far i have only uploaded the first 10 talks, the second set of talks (including this one) will be up soon!
Fluid Mechanics 101 thankyou 👍👍👍
Barry White voice
😂😂
Thanks 😊
Hi Aidan,