[CFD] The PISO Algorithm

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ย. 2024

ความคิดเห็น • 180

  • @chaoyan6097
    @chaoyan6097 4 ปีที่แล้ว +33

    Thanks for the vedio, it is really nice explaination. But few things I think you didn't mentioned in the loop of SIMPLE and PISO. If following the step from (23) to (26), step (26) seems doing nothing, because in the right beginning of the next loop, you are using the new calculated pressure from last (25) to start your computation in new (23) to get a new predict velocity. I think you properly missed the explaination about the calculation between cell-wise data and the data on the cell surfaces, which will make this explaination perfect, in my opinion.

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +27

      Hi Chao, yes you are right. I didnt talk about the face interpolation here as the video is already quite long and I just wanted to capture the essence of the algorithm. Thanks for pointing this out though, i have pinned the comment so everyone can see 👍

    • @147258369ist
      @147258369ist 3 ปีที่แล้ว +4

      That was exactly my question thanks for the comment, and nicely explained Aiden thanks a lot

    • @sangal666
      @sangal666 3 ปีที่แล้ว +4

      So Eq 26 is supposed to be using face values. I am sorry I'm new to this.

    • @fluidmechanics101
      @fluidmechanics101  3 ปีที่แล้ว +3

      Hi Aman, sorry for the late reply. I have sent you an email with some points which should help 🙂

    • @sangal666
      @sangal666 3 ปีที่แล้ว +13

      @@fluidmechanics101 Thanks a lot Aidan for clearing that asap.
      Quote Aidan
      """
      1) The velocity in equation 26 is used to evaluate the mass flux across the faces of the cells (recall mass flux = density * velocity * area). Yes, this requires the velocity
      on the faces of the cells, rather than the velocity at the cell centroids, so some interpolation is required. If you are using a collocated grid, this is Rhie-Chow interpolation.
      If you are using a staggered grid, this is linear interpolation.
      2) The mass flux across the faces is then used in the next iteration loop to evaluate the coefficients of the A matrix for the momentum equations. Recall for example
      that for upwind differencing, we need the mass flux across the faces of the cell. This mass flux comes from equation 26 in the previous iteration. In this way, you can
      think of the mass flux as 'staggered' from the previous iteration, which allows us to get around the non-linearity of the convection term in the momentum equations.
      """

  • @x.y.8707
    @x.y.8707 25 วันที่ผ่านมา +1

    Amazing video. Well explained what's behind the simple in openfoam!

  • @pabloroderopostigo
    @pabloroderopostigo 4 ปีที่แล้ว +2

    Best explanation EVER... I am learning about cfd on my own and your videos are being of great help. Thank you !!!!!!

  • @TahsinEngin-Akademi
    @TahsinEngin-Akademi 4 ปีที่แล้ว +6

    Great job again. Thank you.
    Pls change dynamic viscosity to kinematic viscosity in Eq. 3, since you have divided momentum eq. by the density.

  • @sandeepvishwakarma7784
    @sandeepvishwakarma7784 3 ปีที่แล้ว +4

    That is a nice presentation. Please upload the video on the acoustical equations, their discretization and methods for their solution. I am consistently visiting on your channel for the update in this regard.

  • @amansinghal4884
    @amansinghal4884 4 ปีที่แล้ว +7

    Thanks for the video. It was very informative and helpful. I would request you to make a video on PIMPLE algorithm as well because in most of the OpenFoam solvers that is used and I am finding it difficult to understand.

  • @buzzb7848
    @buzzb7848 3 ปีที่แล้ว +1

    That was the best explaination about PISO that I have seen so far! Thank you very much. It would be very nice to see another video from you about the Rhie-Chow interpolation and how it is done in OpenFOAM.

  • @karanmudaliar4211
    @karanmudaliar4211 2 ปีที่แล้ว +1

    Thanks for lecture, I will be comparing this in my thesis ,as I have used SIMPLE for my problem and the results were very similar to PISO. Now, it makes sense to me.

  • @РассадинАлександр-к6к
    @РассадинАлександр-к6к 8 หลายเดือนก่อน +1

    Hello, Aidan. I am extremely grateful for your video lectures! They are very clear and informative. I think you have a good skill of teaching people.
    As a student, who makes many reports and so on, I can understand how much effort it takes to prepare such lectures.
    Again, I just want to say thank you for your TH-cam channel! You are very cool :)

  • @richard9906
    @richard9906 4 ปีที่แล้ว +1

    Really fantastic. clear to me!!!!Thanks a lot. hope you make more and more videos.

  • @arashgmn
    @arashgmn 4 ปีที่แล้ว +12

    Thanks mate!
    How about another one for PIMPLE?

  • @AJ-et3vf
    @AJ-et3vf 2 ปีที่แล้ว +1

    Great video! Thank you! So informative and enlightening as usual!

  • @JBHACKSAW
    @JBHACKSAW 3 ปีที่แล้ว +1

    Thanks for your explanations. The videos are really great addition to reading the papers and books that are relevant to my PhD. This is with regards to what you said at 29:10 .Technically as the fields are coupled, isn't under relaxing the fields (for example pressure), indirectly affecting the matrices of source term in the discretized momentum equations. I think conceptually this is the reason for under-relaxation to begin with. The incorrect values can lead to incorrect coefficients and incorrect sources that could be additive and lead to divergence. To limit the fluctuations from one iteration to the next, we kind of weigh it down towards the previous value.

    • @fluidmechanics101
      @fluidmechanics101  3 ปีที่แล้ว

      I'm pretty sure you are correct with this one. Thanks for the extra explanation! I hadn't thought about it that way. Yes as the equations are coupled, under relaxing the fields will indirectly affect the matrix coefficients, which can lead to incorrect values

  • @harishsubramaniangopal6463
    @harishsubramaniangopal6463 ปีที่แล้ว +1

    Thanks for the awesome video !

  • @nabekary
    @nabekary 3 ปีที่แล้ว +1

    Always enjoyed your videos. Thanks

  • @jeifrymoisesmoyahernandez669
    @jeifrymoisesmoyahernandez669 4 ปีที่แล้ว +1

    I m happy this guy exists

  • @chinmayakumar5572
    @chinmayakumar5572 5 หลายเดือนก่อน +1

    Excellent teaching

  • @arsenalrony
    @arsenalrony 4 ปีที่แล้ว +1

    Stupendous explanation !!!

  • @ufuksenturk8196
    @ufuksenturk8196 4 ปีที่แล้ว +1

    Wow! Thank you a lot. This was very helpful.

  • @thortt515
    @thortt515 4 ปีที่แล้ว

    Excellent presentation as always! Falling in love!

  • @engyong1646
    @engyong1646 4 ปีที่แล้ว

    It is really helpful. 1 thumb up is not enough to express my appreciation.

  • @ΌθωναςΒαλεράς
    @ΌθωναςΒαλεράς ปีที่แล้ว +1

    In the Simple algorithm, lets say at 20:53. We want to update U, in order to update H. We calculate U by solving (17) and we use that U to calculate H. Then we solve the momentum equation and update p. Why do we need to calculate a new U using (20)? After all we dont use that "value" of U anywhere.
    Can someone answer this question?

  • @GiacomoUmbertoCapoferri
    @GiacomoUmbertoCapoferri ปีที่แล้ว +1

    Hi Aidan, thank you for your massive effort; you are always clear and concise!
    I have two questions:
    1) What kind of interpolation is used for (1/A) and (H/A) reconstruction at interfaces? Would linear interpolation be ok?
    2) What value should i give to (1/A) and (H/A) at Wall boundary interfaces?
    Thank you very much in advance for your reply!
    Giacomo

    • @fluidmechanics101
      @fluidmechanics101  ปีที่แล้ว

      Hi Giacomo,
      Linear interpolation is fine for 1/A and H/A. At the wall boundary we have to be quite careful. It would take me a long time to explain, so it is easier if you look up 'Greenshields and Weller, Notes on Computational Fluid Dynamics, Chapter 5'. There is an online version, so you should be able to find it and find the information you are looking for

    • @GiacomoUmbertoCapoferri
      @GiacomoUmbertoCapoferri ปีที่แล้ว +1

      thank you so much!

  • @Krafeli
    @Krafeli ปีที่แล้ว +1

    Nice and straightforward presentation of the algorithm. However, consider referring to H as a vector and not a matrix. In Eq. (9) A*U is a vector, so H is one. And since H = (M-A)U, H is indeed closely connected to the remaining matrix, call it R=M-A.

  • @SuperBehrang
    @SuperBehrang 4 ปีที่แล้ว +1

    It was a very good video. thank you

  • @lovish5696
    @lovish5696 3 ปีที่แล้ว +1

    Thanks a lot buddy . I was really fucked up doing 5k iterations for eact time step for unsteady cases. Seems PISO and PIMPLE would solve the case.

  • @shahakibsarwar8345
    @shahakibsarwar8345 3 ปีที่แล้ว +1

    This is a fantastic video! Helped me a lot to understand the two algorithms.
    But I had a question regarding using the SIMPLE algorithm to solve for unsteady flows. Can we not specify a small number of outer-corrector loops instead of using a larger number of these loops to fully converge? In other words, why do we need to fully converge in case of the SIMPLE algorithm before moving on to the next time step, while we decide to only partially converge in case of the PISO loop?

    • @fluidmechanics101
      @fluidmechanics101  3 ปีที่แล้ว

      Yep, you are right here! What we want to do with transients is to do 'less iterations within a timestep and not fully converge'. You could do this with SIMPLE or PISO. Most people tend to prefer PISO as the you can get tighter convergence within a few 'inner iterations'. So you can choose either (ANSYS Fluent lets you choose). Most people tend to go with PISO

  • @experimentalandnumericalfl7370
    @experimentalandnumericalfl7370 4 ปีที่แล้ว +5

    Thank you very much. Could you please speak about pimple Algorithm in openfoam

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +7

      Maybe in the next video .... 👀

    • @jasonchu852
      @jasonchu852 4 ปีที่แล้ว

      @@fluidmechanics101 looking forward to it !

    • @ben2415
      @ben2415 4 ปีที่แล้ว

      @@fluidmechanics101 awesome. looking forward to it!

  • @tennisfreak312
    @tennisfreak312 ปีที่แล้ว +1

    Hi Adan. Is there a source to show how to decompose the initial momentum into matrix forms?

    • @fluidmechanics101
      @fluidmechanics101  ปีที่แล้ว

      Yes! I have a full course on the SIMPLE algorithm, which goes through all of the detail. If you search my channel you should find some videos giving you the details and how to find it

  • @sivaaero92
    @sivaaero92 4 ปีที่แล้ว +1

    Nice video once again.. keep it up. One small request. Can u put a video by taking an example to fill out semi discrediting form of momentum equation.

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +1

      Hi siva, i havent made a video about this yet but there is a full worked example in my online courses. You can get them from my website, udemy or skillshare 😊

    • @arshibanu1129
      @arshibanu1129 4 ปีที่แล้ว

      Your web address please

    • @arshibanu1129
      @arshibanu1129 4 ปีที่แล้ว

      Your class names in Skillshare or Udemy

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +1

      They are in the video description 😊

  • @ursamajorable
    @ursamajorable 3 ปีที่แล้ว +1

    Hi
    This is a great video. It would have been wonderful if you could present PIMPLE algorithm that is used in OpenFOAM. Thanks.

  • @doctor99267
    @doctor99267 ปีที่แล้ว +1

    Hi, very nice video, but i am very confused on what it actually means to solve for pressure in that equation, do you have a video/will you make a video/ do you know of anywhere that actually goes into detail to solve the Div(A^-1 Grad(p)) = Div(A^-1 H). also, is grad(p) a vector? or a matrix.

    • @fluidmechanics101
      @fluidmechanics101  ปีที่แล้ว

      Yes, this topic is quite confusing. I am working on some detailed content for the SIMPLE and PISO algorithms which will show you exactly what it means to solve for pressure, and to calculate these other terms. In short, this is a matrix equation AP = B. Div(A-1 H) becomes the right hand side (B vector) and the divergence of A-1 becomes the coefficients in the A matrix. Coming soon, so stay tuned to the channel!

  • @moizar2667
    @moizar2667 6 หลายเดือนก่อน

    I am a little confused at the H matrix. If H is the residual matrix of M after extracting diagonal elements, shouldn't it be H = MU - AU ?

  • @leaner33
    @leaner33 4 ปีที่แล้ว +1

    Great video! Thank you!
    How does the rhoPimpleFoam solver (running with 1 corrector so running as PISO) differ from normal PISO please? As in, is the rhoPIMPLE solver pressure-based with the introduction of a density term or is it now density-based? Or to rephrase the question again, where in the process is the density equation added?

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว

      Off the top of my head im not sure 🤔 you could always check the source code (rhoPimpleFoam.C) ...

  • @nightwalker4397
    @nightwalker4397 4 ปีที่แล้ว

    Great explanation , keep going

  • @locorocozhong3941
    @locorocozhong3941 2 ปีที่แล้ว

    Thanks for your video. 32:47, when you are saying that we need Co

    • @fluidmechanics101
      @fluidmechanics101  2 ปีที่แล้ว

      Co limits really seem to depend on the type of flow you are solving. Multiphase and buoyancy driven flows seem to be a bit more sensitive and I try and keep the max below 1 (in some cases 0.5). Aerodynamic flows seem to be a bit more forgiving and can take higher Co

  • @hulala6097
    @hulala6097 2 ปีที่แล้ว

    Hi Aidan. Sorry for a very dumb question. From 23:50 to 24:06, you mentioned that during transient flow, the right hand side of equation(31) Up/deltaT will be big if deltaT is very small. My confusion is the right hand side of equation(31) is (Upi+1) - (Upi). If deltaT gets smaller, the Up difference between time steps gets smaller, too, correct? if so, then why the terms with time derivative dominate the equations then?

    • @fluidmechanics101
      @fluidmechanics101  2 ปีที่แล้ว +1

      You can see the effect when you arrange the equations into matrix form. I should be doing a video on this soon (pseudo transients) where you should be able to see this in more detail! It should be out in a few weeks

  • @kaushalsorte9870
    @kaushalsorte9870 3 ปีที่แล้ว

    Could you make videos on multiphase flows?

  • @yasiruranaweera3888
    @yasiruranaweera3888 4 ปีที่แล้ว

    Wow. Thank you ❤️
    🎉🎉🎉👏
    ( 13:30 )

  • @costinioancosoiu
    @costinioancosoiu 3 ปีที่แล้ว

    Hello, Aidan! Very good lecture! I have a question related to equation (32). U_N denotes velocity in the neighboring cells?

    • @fluidmechanics101
      @fluidmechanics101  3 ปีที่แล้ว +1

      Yes, its the velocity at the neighbouring cell centroid. If you think of a face in the mesh, each face has an owner and a neighbour cell that the face belongs to. UP is the velocity at the centroid of the owner and UN is the velocity at the centroid of the neighbour 👍

    • @costinioancosoiu
      @costinioancosoiu 3 ปีที่แล้ว +1

      @@fluidmechanics101 Thank you!

  • @Porter-Morgan
    @Porter-Morgan 4 ปีที่แล้ว +1

    Does anyone know of any resources for understanding how the M matrix is actually computed? I just can't figure it out. Also wouldn't the matrix equations be of size 2n because you have to solve for the x and y components of velocity for each cell? (in 2d of course)

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +1

      Hi Porter, if you watch my video for ‘The Finite Volume Method’ that should give you a good introduction to how the M matrix is calculated. If you want to give it a go for yourself, you can check out my fundamentals course on my website which goes into more detail than i can cover in a youtube video (there is also a free trial version which you can check out).
      There is a separate M matrix for each velocity component. Each M matrix is n x n in size. Sorry, i realise this probably wasn’t clear in the video

    • @Porter-Morgan
      @Porter-Morgan 4 ปีที่แล้ว

      @@fluidmechanics101 Aiden, I went through your Udemy course and it was very helpful I now have a very good understanding of how the M matrix is generated. In the course you used the scalar temperature field as an example, and I assume you apply pretty much the same concepts to other things like x and y velocity.
      One more question though, do you typically generate separate matrices for x and y velocity components and solve for each velocity component separately then? As in, solve two separate matrix equations for the x and y velocity. Or could you generate one huge matrix equation of size (2n)^2 to solve for both velocity components simultaneously? Although, the latter solution will probably have greater memory requirements... (even if storing data in CSR format it would still take double the memory)

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +1

      Yes! Everything you said above is correct. I used Temperature in the Udemy course, as Temperature is an easy variable that we all understand, so it is easier to follow along with the process. The process of assembling the M matrix (by discretisation) is the same for all the other flow variables. This is often why CFD Solvers offer a ‘generic scalar transport equation’ option, so it doesnt even matter what the transported variable is! The process is the same.
      Yes, in most solvers (OpenFOAM and fluent) we assemble and solve matrices for the x and y components of velocity separately. This is called a ‘segregated solver’ and was developed because old computers had poor memory! In modern solvers you can solve a big matrix for all the velocity components (and pressure) together. This is called a ‘coupled solver’. The coupled solver is used as a default in ANSYS CFX and can be enabled in ANSYS Fluent through the ‘coupled solver’ option in the pressure-velocity coupling schemes.
      I hope this helps 😊

    • @Porter-Morgan
      @Porter-Morgan 4 ปีที่แล้ว +1

      @@fluidmechanics101 Wow that is incredible I had no idea you could solve for almost all of the flow data in one matrix equation! I know what I'm gonna be messing around with for the next month.
      Thanks so much for the super helpful videos and responses!

  • @pattimichellesheaffer103
    @pattimichellesheaffer103 4 ปีที่แล้ว

    COOL video! It would be really nice to see how compressibility affects the iterations (and the equations). I believe some solvers in OF use both PISO and SIMPLE in its iterations. (PISO for p and U and SIMPLE/SIMPLEC for species?) Also, two different fonts for *H* which seem to be just slide-errors?
    How are (42) and (43) different from (41)? (I assume the H's are different? "updated source term")

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว

      Yes the H terms are just typo differences. Getting the fancy looking H is quite tricky in latex 😂

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว

      Also yes, the source terms are updated in 42 and 43

    • @doctor99267
      @doctor99267 ปีที่แล้ว

      @@fluidmechanics101 how are the source terms updated without calculating new velocity

  • @rohanverma4145
    @rohanverma4145 4 ปีที่แล้ว +1

    Superlike....

  • @ridhimabhardwaj7862
    @ridhimabhardwaj7862 2 ปีที่แล้ว

    CFD with OpenFOAM workshop PAANDUV

  • @Tyrim
    @Tyrim 2 ปีที่แล้ว +12

    Hey man. I just wanted to write a big thank you for all your videos. I have learned more from your videos than all my Bachelors professors combined. Thank you for your work, and please keep up the good content.

    • @fluidmechanics101
      @fluidmechanics101  2 ปีที่แล้ว +4

      Thank you for your kind words. I'm glad my video have helped you out in your studies 😊

  • @prabhakaranveeramani4505
    @prabhakaranveeramani4505 4 ปีที่แล้ว +7

    AIDAN - A Savior for whoever studies CFD. Brilliant but SIMPLE explanations.

  • @riddhideepbiswas1895
    @riddhideepbiswas1895 4 ปีที่แล้ว +7

    This video is really awesome and I found it very useful, got to know a lot of things previously unknown.
    Please make videos on understanding OpenFOAM codes also. It will be very helpful

  • @sulimanabdelwahid8043
    @sulimanabdelwahid8043 4 ปีที่แล้ว +16

    This guy deserves unlimited support! That's what I have been asked in my CFD exam to explain the PISO algorithm. Fortunately, it went well :)
    Thank you Aidan !

  • @nikhilnick8886
    @nikhilnick8886 4 ปีที่แล้ว +5

    After a long time, counting days to see your video. Great tutorial. Thanks, Dr.Aidan

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +4

      I know its been a while! Hopefully it was worth the wait 😊

  • @milansekularac6196
    @milansekularac6196 4 ปีที่แล้ว +2

    Could you please comment on the following: using PISO or SIMPLE, as the Velocity field U is updated and proceeded to recompute H(U) or back to MU=-grad(p), does OpenFoam recompute or reassemble the matrix M, and thus A, or H, which is again just an AU-MU ? I believe it should, simply because we are solving a nonlinear problem here and the information in U is contained in the coeff.matrix M (though convective fluxes) and thus in H too. I understand it could be controlled by the user to save iterations where justified but my feeling is this is slipery ground. But this question remained unclear to me even after attending an OF training, or listening to your video. ☺️ So, are coeff.matrices M and A updated EACH time U is updated and proceeded to recompute H, or no? Thanks, great work.

  • @zeinabnoorpoor6489
    @zeinabnoorpoor6489 2 ปีที่แล้ว +1

    Hi dear,
    Would you please send me the video file mentioning the source, ie your channel address?

  • @sambitkumarbiswal3976
    @sambitkumarbiswal3976 3 ปีที่แล้ว +1

    Please upload a video on PIMPLE algorithm

  • @jimeshpitroda937
    @jimeshpitroda937 2 ปีที่แล้ว +2

    can you please explain SIMPLEC and COUPLED scheme?

  • @soroushsepahyar
    @soroushsepahyar 7 หลายเดือนก่อน +1

    excellent video like always! @fluid mechanics 101, have you published the handouts for this in any of the UDEMY courses or elsewhere? I could not find these lectures.

    • @fluidmechanics101
      @fluidmechanics101  7 หลายเดือนก่อน

      They are on my website: fluidmechanics101.com

  • @rasikabanait3166
    @rasikabanait3166 4 ปีที่แล้ว +2

    How we are getting updated value just by repeating the pressure equation in non-orthogonal corrector. Does repeating mean, we are solving the loop 2 times more.?

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +3

      We use the solution of the pressure equation to update the volume flux across the cell faces (so that the velocity field satisfies the continuity equation). But this flux is a source term in the pressure equation, so we can just continue to loop the pressure equation, updating the flux each time. Dont worry if you find this confusing, it is one of the hardest parts of CFD!

    • @rasikabanait3166
      @rasikabanait3166 4 ปีที่แล้ว +1

      @@fluidmechanics101 Thank you very much sir 🙂

    • @IRC2005
      @IRC2005 4 ปีที่แล้ว +1

      @@fluidmechanics101 No, that's not correct ... well, except for the last sentence is right - it IS hard to understand! The non-orthogonal correction is on the pressure Laplacian term, and is an explicit source term "correction" to the implicit orthogonal part. Being explicit, it is based on the previous iteration's value of pressure, and so each time around the non-orthogonal correction loop it gets updated (and hopefully improved) and tweaks the pressure slightly. The div(HbyA) term, i.e. the "volume fluxes" as you referred to them, are unchanged ... until you get to the final non-orthogonal correction, at which point the fluxes are finally corrected (your eqn 44), and the solution moves on.

  • @yongqiangchen7593
    @yongqiangchen7593 2 ปีที่แล้ว +1

    i love this accent

  • @nerosmart5926
    @nerosmart5926 ปีที่แล้ว +1

    do you know both compressible+unsteady openfoam file?

    • @fluidmechanics101
      @fluidmechanics101  ปีที่แล้ว

      Compressible and unsteady flows will need a slightly modified algorithm to what I presented here. If I get time, this should be coming soon!

  • @ivanpg5091
    @ivanpg5091 4 ปีที่แล้ว +1

    Thanks a lot for the video. These collection of videos are by far the best videos regarding CFD that I've ever seen. Really straightforward explanations while keeping it "simple" [ ;) ] and does connect all concepts very well.
    It would be amazing to give more code examples using OpenFOAM.

  • @ucanhvan4557
    @ucanhvan4557 21 วันที่ผ่านมา

    Hi Dr, this is the great explaination again! Thank you so much for your contribution to the CFD community. However, I still confuse about decomposing matrix M from MU = -grad(p). You mentioned that MU = AU -H with A is diagonal matrix which is not generated from diagonal element of M. So how can we get A? In my opinion, if I have 3 element M U= [[ 1,2, 0], [2,3,4], [0,3,4] ] [u1, u2, u3]. Then MU = AU - H=[ [1, 0, 0] , [0,3,0], [0,0,4] ] U - [ [0, 2, 0] , [2,0,4], [0,3,0] ]* U_previous ? How do you think about this? I am not sure about this as well.

  • @trinerd
    @trinerd 3 ปีที่แล้ว +1

    At around 9-10 minutes, I think it is a bit confusing. In OF notation: if MU=B, then AU = B - CU . With A being the diagonal members of the matrix, C the non-diagonal members then H = B-CU and not H = CU as it seems to be explained in the video.

    • @fluidmechanics101
      @fluidmechanics101  3 ปีที่แล้ว

      Ah thanks for pointing this out. I think they may have updated their notation over the past few versions. The algorithm should still remain the same 👍

    • @trinerd
      @trinerd 3 ปีที่แล้ว

      @@fluidmechanics101 agreed, thanks.

  • @shubhamsangodkar6992
    @shubhamsangodkar6992 4 ปีที่แล้ว +2

    Hey Aidan, Thank you for this video. A couple of questions from the slide at 21:18 and 36:33 where we have the SIMPLE algorithm equations
    1) In eq 26 we have the corrected velocity --> U_correc which comes from pressure correction (P_correc). Once we go back to eq 23, MU = grad(p) , I assume we are finding a velocity field, therefore what value of pressure are we using here ? (the one obtained via pressure correction(P_correc) ? )
    2) Where are we using the U_correc values in the SIMPLE algorithm ? (in which step or which equation ?)
    3) In going from eq 41 to 42 , how does the source term gets updated ? (i.e source term depends on H --> U_explicit, but we have not moved yet to the next iteration to get a new U_explicit , so what value of U_explicit is used?)
    P.S : I'm still trying to understand these equations.. sorry if my questions have obvious answers, but i', just trying to critically think.

    • @isaacenyogoi9004
      @isaacenyogoi9004 4 ปีที่แล้ว +2

      Thanks for asking. Have the same question too. Just looked through the comments to find comment about it and found your question.

    • @shubhamsangodkar6992
      @shubhamsangodkar6992 4 ปีที่แล้ว +1

      @@isaacenyogoi9004 isaac enyogoi yeah wait for the reply from Mr.Aidan..

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +5

      Sorry for the late reply guys! In answer to your questions:
      1) Yes, the pressure we are using here is the pressure obtained from the presure correction.
      2) The U_corr values are the ones that are reported to the user! This is the velocity field that we see in the solution, the post-processor and is reported to the user. The reason that we use U_corr, is that this velocity field satisfies the continuity equation, while the predictor U_predictor does not. However, U_corr is not used again in the SIMPLE loop. It is overwritten when we calculate MU = - nabla p (the information is looped back through the pressure field, so we can overwrite U_corr).
      3) Ah yes, I see why this is confusing. This is a simplification of slide 18. Equations 28, 29 and 30 are used to update H (the source term).
      I hope this helps :)

    • @shubhamsangodkar6992
      @shubhamsangodkar6992 4 ปีที่แล้ว

      @@fluidmechanics101 Thank you for those answers Aidan. Looking forward to new videos soon

    • @michaelli8523
      @michaelli8523 4 ปีที่แล้ว

      @@fluidmechanics101
      Hi Aidan,
      Nice video! Thanks for answering the questions.
      I am still confused with (3). I do not see the procedures (28,28,30) are repeated to update from the code.
      OpenFOAM only repeated solving pressure equation in the loop and only update phi at the final non-orthogonal iteration. So how does it make H and p different?
      // Non-orthogonal pressure corrector loop
      while (simple.correctNonOrthogonal())
      {
      fvScalarMatrix pEqn
      (
      fvm::laplacian(rAtU(), p) == fvc::div(phiHbyA)
      );
      pEqn.setReference(pRefCell, pRefValue);
      pEqn.solve();
      if (simple.finalNonOrthogonalIter())
      {
      phi = phiHbyA - pEqn.flux();
      }
      }

  • @zidane17063
    @zidane17063 2 ปีที่แล้ว +1

    I have a question. In a simple method loop, we already get the corrected velocity by pressure field, then we go back to the momentum predictor again. Do we use this corrected velocity to bring in the momentum predictor? or just use the new pressure field to get a new velocity field in momentum predictor?
    thank you for your help!

    • @fluidmechanics101
      @fluidmechanics101  2 ปีที่แล้ว

      Yes, when we go back to the momentum predictor we use both the corrected velocity and pressure fields. The pressure field is used in the pressure gradient (as a source term) and the velocity is used in the advection term (it appears as a coefficient in the A matrix)

    • @zidane17063
      @zidane17063 2 ปีที่แล้ว +1

      I am grateful to you for replying my question. A very clearly replying! Thank you a million

  • @manjunathbm6991
    @manjunathbm6991 2 ปีที่แล้ว +1

    Can u make a video on piso application in your daily life

    • @manjunathbm6991
      @manjunathbm6991 2 ปีที่แล้ว

      Sir I want it tomorrow piso it wark in the computer or wifi

  • @m0nzderr1
    @m0nzderr1 3 ปีที่แล้ว +1

    Superb! Very well done. Showing the OF code alongside equations is brilliant. Looking forward for similar approach for other algorithms.

  • @ZioTribbu
    @ZioTribbu 4 ปีที่แล้ว +2

    I found this video extremely useful. I'm prepairing an exam of CFD at Politecnico of Milan and this will definitely help with my notes. You are the best!

  • @mohamedelmalah6716
    @mohamedelmalah6716 10 หลายเดือนก่อน +1

    Thanks a lot for these great videos. Keep on. I believe you helped and supported many by this channel.

  • @rohitkeshri5427
    @rohitkeshri5427 3 ปีที่แล้ว +1

    I was struggling to decode the piso algorithm in OpenFoam, it helped alot to understand the source code 👍👍. Thanks brother.....

  • @dudiek12
    @dudiek12 3 ปีที่แล้ว +1

    27:09 One thing I dont understand, why we add to the both sides this term with alpha, u_p etc when the U on the both sides are different, on one side its "new" U_p and on the Right hand side it's old U_p

    • @fluidmechanics101
      @fluidmechanics101  3 ปีที่แล้ว +1

      I have to admit that I haven't explained this very well, so don't worry if you are confused. I will be doing a more complete explanation of relaxation and pseudo time stepping soon, which should clear up this confusion. Keep watching this space, hopefully I will have the video out soon!

    • @dudiek12
      @dudiek12 3 ปีที่แล้ว

      @@fluidmechanics101 Great to hear that, I'm watiting for it then

  • @ashutoshsingh-et7vm
    @ashutoshsingh-et7vm 3 ปีที่แล้ว +1

    Great nobody explain such crystal clear so in LES piso would be best

  • @ShanZhou-e5m
    @ShanZhou-e5m 7 หลายเดือนก่อน

    Thanks for the wonderful vedio, it is really helpful to me. And i wonder if you can add record some vedioes about the algorithm of two or multiple phase flows. Aush as the interFoam in Openfoam, the difference between isoAdvector and mules, and so on. Thank you very much.

  • @parasghumare5502
    @parasghumare5502 2 ปีที่แล้ว +2

    This video explains about the simple algorithm better than the lone video on simple algorithm itself.

    • @fluidmechanics101
      @fluidmechanics101  2 ปีที่แล้ว +1

      Well it has been a while since I made the original video, so it sounds like my explanation has improved! Fantastic ☺️

    • @parasghumare5502
      @parasghumare5502 2 ปีที่แล้ว +2

      I felt the simple algorithm video missed on some intermediate steps. I am glad they were covered here in the first part.
      Your explanation has always been great. Never doubt that. 💯

  • @yatinsuri185
    @yatinsuri185 4 ปีที่แล้ว +1

    Thanks for the informative videos with such an easy explanation.

  • @anikshah8796
    @anikshah8796 3 ปีที่แล้ว +1

    These videos are really good resources to revisit the fundamentals! Thank you!

  • @qutadahrababah6644
    @qutadahrababah6644 2 ปีที่แล้ว

    I dont understand why would we need ~5000 iterations of the simple algorithm for each timestep for unsteady state if the the only difference between simple and piso is skipping the momentum predictor loop? Thanks.

  • @jeremiebisson9024
    @jeremiebisson9024 3 ปีที่แล้ว +1

    Really useful and really clear. Thank you for that video!

  • @mohammadjadidi233
    @mohammadjadidi233 3 ปีที่แล้ว +1

    fantastic!Thank you very much ;-)

  • @athanasiosniotis9607
    @athanasiosniotis9607 4 ปีที่แล้ว +1

    Well Done!! The video explains clearly what is going on!

  • @kaushalsorte9870
    @kaushalsorte9870 3 ปีที่แล้ว +1

    Thanks a lot. Pristine clarity.

  • @maurotortora5317
    @maurotortora5317 3 ปีที่แล้ว +1

    Hello doctor Aidan,
    thanks again for the great video lecture! Simple and clear to undestand.
    I have a doubt though: by looking at equation (9): M U = A U - H;
    H looks like a vector and not a matrix to me, because A U is a vector. Am I wrong?
    Thanks,
    Mauro

    • @TheBloerp
      @TheBloerp 3 ปีที่แล้ว

      Yes that ist correct.

    • @jacks.554
      @jacks.554 ปีที่แล้ว +1

      Hi, I think that a clearer way would be to put MU = AU - H(U) since H is dependent on the velocity. Basically, A and H are both matrices, but H is calculated with the velocity from the previous iteration. It is just a decomposition of MU to AU and H(U) by substracting 2 matrices. Hope that helps!

  • @sudhaupadhyay8080
    @sudhaupadhyay8080 3 ปีที่แล้ว +1

    very informative video.thanks

  • @EjazAhmed-xe2bn
    @EjazAhmed-xe2bn 3 ปีที่แล้ว +1

    I've a confusion about the decomposition of M matrix. Isn't that supposed to be MU=AU+H instead of MU=AU-H as A is the diagonal matrix & H comprises of off-diagonal components of M? I'll be really happy if someone clears my confusion.

    • @fluidmechanics101
      @fluidmechanics101  3 ปีที่แล้ว

      You could have either +H or -H. (Just multiply the coefficients by -1). I usually try and follow the explanation and derivation given by the OpenFOAMers so that the video is consistent with other sources you might find if you do a google search

  • @abdel-gq9po
    @abdel-gq9po 4 ปีที่แล้ว +1

    Great explanation. Thank you!

  • @stanleywong9004
    @stanleywong9004 3 ปีที่แล้ว +1

    Hi awesome video, any chance you will also cover linear solvers and how to use them? Ansys fluent and OF has linear solvers options to select but I have no clue how to set them.

    • @fluidmechanics101
      @fluidmechanics101  3 ปีที่แล้ว

      Hi Stanley, for ANSYS Fluent the defaults should be fine. I wouldn't change them. If you are using OF, probably best to look at the tutorial case which is closest to your case and then use the same solver

  • @mateusalves9558
    @mateusalves9558 4 ปีที่แล้ว +1

    Thanks for this video man, I was really waiting for that.
    I just didn't understand the difference of the SIMPLE and PISO according to thekind of loop, because don't make sense to me as we already have calculated the pressure in equation (25) and correct the velocity in equation (26), why do we have to do the momentum predictor again? I saw the Chao's question but did'nt get it too.
    Hope to see your reply!

    • @mateusalves9558
      @mateusalves9558 4 ปีที่แล้ว

      Could tou help me understanding this Aiden? It would be great

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +2

      Hi Mateus, here is another way of thinking about it: when we solve the momentum predictor U satisfies the momentum euqation but does not satisfy the continuity equation. When you correct the velocity field it satisfies the continuity equation but does not satisfy the momentum equation. This is why you have to go back and solve the momentum equation again 😊 you have to keep solving them both until they are both satisfied. I hope this help!

  • @perzetterlund1805
    @perzetterlund1805 ปีที่แล้ว

    Thanks for a great video!
    How is PISO (and SIMPLE) related to the Projection Method ( en.wikipedia.org/wiki/Projection_method_(fluid_dynamics) ) ? Is SIMPLE/PISO variants of the Projection Method or something else? Is the Projection Method used for CFD nowadays?

    • @fluidmechanics101
      @fluidmechanics101  ปีที่แล้ว

      PISO and SIMPLE are arguably 'an example of a projection type method', because we calculate a velocity field and then 'project out' the divergence producing component of the field, with the mass flux correction.
      This is covered in Ferziger and Peric, 'Computational Methods for Fluid Dynamics', if you would like more detail 👍 but really this is just a semantic point

  • @jasonchu852
    @jasonchu852 4 ปีที่แล้ว +1

    great tutorial (Y)

  • @arts5852
    @arts5852 2 ปีที่แล้ว +1

    Your explanation is really good 👍. Can you also explain how to construct the [M] matrix ?

    • @fluidmechanics101
      @fluidmechanics101  2 ปีที่แล้ว +1

      Yes! If you check out my video 'The Finite Volume Method' that should help you get most of the way there

    • @arts5852
      @arts5852 2 ปีที่แล้ว +1

      @@fluidmechanics101 Thanks

  • @danielbotezelli
    @danielbotezelli 9 หลายเดือนก่อน +1

    Do the Pressure Equation solves for p' ou p?

    • @fluidmechanics101
      @fluidmechanics101  9 หลายเดือนก่อน +1

      It depends. OpenFOAM solves for p. I can't be sure for other proprietary codes like Fluent (because you can't see the source code). It tends to be older codes that solve for p'

    • @danielbotezelli
      @danielbotezelli 9 หลายเดือนก่อน +1

      @@fluidmechanics101 hmmmmm, So, it must have a reference p value (Corner cell in liddriven)? Thanks very much for your attention!

    • @fluidmechanics101
      @fluidmechanics101  9 หลายเดือนก่อน +1

      Yes exactly. Closed domains always have to have a reference pressure somewhere (regardless of whether you solve for p or p')

    • @danielbotezelli
      @danielbotezelli 9 หลายเดือนก่อน

      @@fluidmechanics101 So, solving for p, there is no need for p += p' ? This seems faster, but more unstable. The boundary conditions for p changes? I was following Moukalled book. Cant find a book that address this direct p. Your videos are great tho!

    • @fluidmechanics101
      @fluidmechanics101  9 หลายเดือนก่อน +1

      If you check out 'Notes on Computational Fluid Dynamics: General Principles' you should be able to find the algorithm for p

  • @stanleywong9004
    @stanleywong9004 3 ปีที่แล้ว

    Awesome Video, any chance you will be covering PIMPLE algorithm from OF and if ANSYS fluent can replicate this in anyway?

  • @margotsteely3585
    @margotsteely3585 3 ปีที่แล้ว

    do you have a pressure based coupled algorithm video?

  • @rohanverma4145
    @rohanverma4145 4 ปีที่แล้ว

    Thanks for uploading this vedio lecture, it clearly explains the main difference between these two algorithms.

  • @AeroDZ
    @AeroDZ 4 ปีที่แล้ว

    Great video if you please add two more videos about the simplec and coupled and maybe even pimple Algorithms That would be super Great (y)

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว

      Yes! Pimple is coming next (to complete the set) and then i will do coupled algorithm after that 😊 i am so glad to finally get this one (PISO) out, as it was confusing me for a long time!

  • @Pengochan
    @Pengochan 4 ปีที่แล้ว

    H (i.e. in eq 9) is a vector, not a matrix.

  • @arijitsaha1472
    @arijitsaha1472 3 ปีที่แล้ว

    Hi Aidan, I have a doubt in the decomposition of the M matrix. Isn't after decomposition it should A.U + H. U and not A. U + H?

    • @fluidmechanics101
      @fluidmechanics101  3 ปีที่แล้ว

      I will have to check this, you might be right. If you have a look in Hrvoje Jasak's thesis, you should find the answer (just give a quick Google search and you should find it)

  • @leonardohenao7646
    @leonardohenao7646 4 ปีที่แล้ว

    Excellent video and excellent Channel. I don't believe that find a better explanation in other web site. An question, do you have made any video about Coupled Algorithm? I understand that for the latest versions of Ansys fluent (R2, R3), it is the default algorithm

    • @fluidmechanics101
      @fluidmechanics101  4 ปีที่แล้ว +1

      Hi Leonardo, i havent done the coupled algorithm yet. But definitely will do soon! Thanks for the support 😊

    • @leonardohenao7646
      @leonardohenao7646 3 ปีที่แล้ว +1

      @@fluidmechanics101 Aidan, would like be great if you explain The Pressure-based Coupled solver+Pseudotransient model and its application with VOF model. Thank you!

  • @zongshidong4287
    @zongshidong4287 4 ปีที่แล้ว +2

    Hey man, Thank you very much for all of your videos, I really learned a lot from them. Starting from the differences between the PISO and SIMPLE Algorithm, can you also make a video explaining physically the main differences between steady-state and transient flow phenomenon? And of course better to relate the physics to the equations. I think that will be cool!