[OpenFoam Tutorial 5] Turbulent Flow in a Pipe with Salome as Mesher

Поделиться
HTML-код
  • Опубликовано: 27 окт 2024

Комментарии • 97

  • @rubensimon48
    @rubensimon48 2 года назад +23

    Thank you, Cyprien. I admire people who contribute to knowledge divulgation without expecting nothing in exchange. Your efforts are contributing to development of humanity. Many thanks.

  • @nidhintmadhu9327
    @nidhintmadhu9327 Год назад +4

    I cannot thank you enough! These are the steps that I have been looking for being a beginner!!

  • @crab99727
    @crab99727 23 дня назад

    Hello Cyprien! Thank you very much! I learned a lot from your video, more than with all other tutorials combined. You provided the neccessary STP-file, all other data is in die openFOAM-installation and in text-files. Great! Many other tutorials miss the naming of shells and the corresponding names in the configuration files. 👍

    • @crab99727
      @crab99727 23 дня назад

      some things have changed:
      - in 0/nut use "type nutkWallFunction;" - mind the "k"
      - you have to use "foamRun" to start the solver

  • @peterszalai7026
    @peterszalai7026 3 года назад +3

    Thank you! ♥️👍
    Weekend, CFD, chill... ☕🙂

  • @armnfdr8248
    @armnfdr8248 3 года назад +4

    Thanks Cyprien, it is very informative tutorial video. In addition, I would like to add couple of things to this video:1- as you used wall model to emulate the fluid dynamics near the walls therefore checking Y+ is required. If Y+ is too big or too small you might end up either invalid wall model or unnecessary wall model in your calculations. 2- you might have found out why your simulation did not run faster when you used more processors, in case someone wants to know the reason, I would like to explain a bit more here, OpenFoam parallelization is done based on MPI, which means, we have to decompose the mesh into smaller size in order to assign each part of mesh to each processor. here is an example of running an application in parallel(after decomposing the mesh): mpirun -np 8 pisoFoam -parallel . If you want to run a simulation with multithreads you must check if your application is built or compiled with threading support.

  • @theomanasses4253
    @theomanasses4253 3 года назад +5

    Great job, i was about to leave openfoam because i thought it was to complicate, but i think im got give it a new chance 🖒🖒🖒

  • @beerazzkhadka9027
    @beerazzkhadka9027 3 года назад +5

    @Cyprien Rusu Loved how you cover even the basic part of simulation. More Salome + OpenFOAM combo required..Thanks

  • @DonHickory
    @DonHickory Год назад +1

    Thank you so much Cyprien, learned so many useful things, great content.

  • @panda_sung
    @panda_sung Год назад +1

    To use mpirun for this case, we have to prepare "decomposeParDict" under the system folder and modifiy the content (number of cores in use & mesh partition method). Then, run the following command:
    (1) decomposePar // Mesh partition for calculation
    (2) mpirun --np [n] pisoFoam -parallel // Designating the number core to use, and run in parallel [n]: [number of cores in use]
    (3) reconstructPar // Reconstruct the temporary processor folders (processor 0~n)
    (4) rm -r processor* // Discard all the temporary processor folders after reassembling all the temporary processor folders

  • @eda364
    @eda364 3 года назад +1

    Thank you Sir. This tutorial has been very helpful. It helped me to understand better how to use Salome with OpenFoam

  • @andreaugusto3851
    @andreaugusto3851 3 года назад +2

    thanx a lot Cyprien, I hope you make more videos about salome + openFoam.

  • @nishchaytiwari8537
    @nishchaytiwari8537 2 года назад +4

    about mpi, when your mesh is coarse, the data transfer between the processors can be slower, slower than computing the solution with just one processor, you will see significant change if you have more than a million cells. Also depends on number of processors, decomposition technique. For example my cfd takes less time with 24 processors than with 72 processors ( 9 million cells).

  • @stephenchristensen8380
    @stephenchristensen8380 Год назад

    Great work Cyprien!

  • @harmonicdevotee5186
    @harmonicdevotee5186 Год назад +3

    mpirun -np 8 pisoFoam -parallel
    incase we are running the simulation on 8 cores in parallel and this needs decomposePar in systems folder.
    Thanks a lot for the insightful video!

  •  3 года назад +2

    This is amazing! Thank you very much Cyprien.

  • @FrancoandMark
    @FrancoandMark 2 года назад +1

    Cyprien, thank you for the helpful videos. I have been trying to run an aircraft external flow simulation on OpenFOAM. I used the motorbike tutorial as a template, and have gotten results that I think are close. My issue is that I am having issues creating good quality inflation layers using snappyHexMesh. I've tried some other routes too, but getting good inflation layers was always the barrier to a good simulation. From watching Salome tutorials, it seems like it is easier to create good inflation layers compared to other meshing software.
    If you did a demo for an external flow aircraft that starts from importing a geometry (or surface mesh) and shows how to generate a far field and inflation layers, I (and I'm sure many other aerospace folks) would deeply appreciate it.

  • @gordonfreeman7775
    @gordonfreeman7775 2 месяца назад

    Amazing video. Thank you very much!!!

  • @fernandocastillovicencio9106
    @fernandocastillovicencio9106 3 года назад

    Excellent video, Cyprien, you did it again!

  • @CHENGYUEGAO
    @CHENGYUEGAO 4 месяца назад

    Very good. Thank you so much. I learned a lot.

  • @thnker
    @thnker 3 года назад

    Great video! Covers all the bases!

  • @volkanatar4232
    @volkanatar4232 3 года назад +2

    Thanks its very helpful

  • @reinhardt0731
    @reinhardt0731 6 месяцев назад

    Thank you so much, very great video

  • @bekish9679
    @bekish9679 3 года назад

    very useful video, presented very neatly step by step

  • @highvoltagefeathers
    @highvoltagefeathers Год назад

    This was great. Thank you so much.

  • @giorgianig
    @giorgianig Год назад +2

    Hello, I think the problem with MPI is that you haven't partitioned the mesh: you are actually running 4 instances of the same sequential computation instead of a parallel computation, that's why it's taking longer (there is the overhead of the communication in top of the normal computing time).

  • @AJ-et3vf
    @AJ-et3vf 2 года назад

    Great video! Thank you!

  • @ezioconner78
    @ezioconner78 2 года назад

    Great video. thanks

  • @adelsayadkooh1454
    @adelsayadkooh1454 3 года назад

    Thank you so much, very nice and helpful video!

  • @TheKappa1997
    @TheKappa1997 2 года назад +1

    Why did u use the value of the Pipe Turbulent Length Scale for the epsilon value ? Shouldn't you calculate also the epsilon value with the formula provided on Wikipedia ? thanks a lot Cyprien

  • @gubsyn59
    @gubsyn59 Год назад

    Hi, thank you very much. I learned a lot from this tutorial.
    I would also appreciate if you could do something similar focused on heat transfer.

  • @manuelffonseca
    @manuelffonseca 3 года назад

    Thank you for this video, I like a lot.

  • @gustavosilva-o2z
    @gustavosilva-o2z 3 месяца назад

    hello i can seee you incres the viscous layer in the outer fluid part, it si possible to generate a viscous leyer near to the obstable? IF i want to analize with details this? how can i do it please'

  • @pattimichellesheaffer6732
    @pattimichellesheaffer6732 2 года назад

    Thank you for the great video. Salome-platform can also create this CAD file, I'm pretty sure. I was doing both simple CAD creation and tet-meshing with SP. It would be great if you could do hex meshing of this geometry!!

  • @mohammadqasem9022
    @mohammadqasem9022 Год назад

    Thank, very helful vedio

  • @TheLuhu60
    @TheLuhu60 3 года назад

    Great video! Thanks a lot :)

  • @JavierGutierrezKAM
    @JavierGutierrezKAM 4 месяца назад

    Hi. Not sure if you're aware, but the sixth video in your openfoam tutorials playlist seems out of place haha

  • @ThinkeringThoughts
    @ThinkeringThoughts 2 года назад +2

    Thanks for the great video! I was wondering, can turbulent flow in a pipe could also be solved using a simpleFoam solver instead of pisoFoam?

  • @xsh0ked9
    @xsh0ked9 2 месяца назад

    Hey Cyprien,
    is there a way to use a structured mesh for a hollow cylinder?
    Best regards

  • @foamer2706
    @foamer2706 3 года назад

    Wonderful!!

  • @OnurCanPişkin-u6i
    @OnurCanPişkin-u6i 8 месяцев назад

    I really congratulate you, but it could have been explained this well.

  • @tiantan9555
    @tiantan9555 2 года назад

    Salut Cyprien ! Comment ça va en Chine ? Moi j'ai une petite question sur le solveur *chtMultiRegionFoam* si ça vous dérange pas. Idéalement je voudrais simuler un système de DCMD avec des flux incompressible, mais là dans ce solveur, les flux sont compressible. Comment puis-je le transformer à ce que j'attend ? Dois-je modifier le fichier .H ou .C du solveur (notamment avec le paramètre rho) ? Merci en avance pour votre réponse ! Bonne soirée :)

  • @andresporras9973
    @andresporras9973 3 года назад

    Thank you very much Cyprien!! are you planning new material? maybe coupling OpenFoam and Liggghts for beginners

  • @kasuora6233
    @kasuora6233 2 месяца назад

    45:18 Cyprien, didnt you enter wrong number for epsilon by looking turbulent length scale?

  • @larissapinheiro8236
    @larissapinheiro8236 Год назад

    Hi Cyprien, I could not find any complete course of OpenFoam in FEA for All's website. I have being looking for a course/training like this and I was not able to find any. I was wondering if you guys have a course like this. Thank you very much for you content!

    • @Feaforall
      @Feaforall  Год назад +1

      I only have those videos on RUclips, I don’t have a separate course for openfoam

  • @majedkaneo2782
    @majedkaneo2782 3 года назад +1

    that is great from you

  • @cihanyldrm5093
    @cihanyldrm5093 2 года назад +1

    Hi. Thanks for the great video. I want to ask you a questions. Did you try openMP instead of mpi? I think it may be better on single processor with multi core.

    • @Feaforall
      @Feaforall  2 года назад

      I didn’t try it… that’s something to test in the future !

  • @leninalexportalescobar5468
    @leninalexportalescobar5468 3 года назад +1

    Gracias por compartir sus conocimientos. Saludos desde PERÚ. Usted cree que tendrá tiempo para hacer un tutorial sobre el modelamiento de una Barraje fijo y su poza disipadora con el programa SALOME Y OpenFOAM. Le agradecería bastante..

  • @arulprakashm4272
    @arulprakashm4272 3 года назад

    Thank you . I need one help: When giving Explode, the following problem comes. what to do? Ubuntu 20.04. "GUI library corresponding to the user action can not be found or loaded"

    • @Feaforall
      @Feaforall  3 года назад +1

      Not sure if Salome is compatible already with Ubuntu 20.04… check on internet if others have the same problem

  • @daizongmeng9046
    @daizongmeng9046 2 года назад

    Thank you. I am wondering how to add units for the cylinder created by shaper of salome liker your step file with a mm unit? Any reply would be highly appreciated.

    • @Feaforall
      @Feaforall  2 года назад +1

      Salome is uniteless. The way it works is that you have to be consistent with the units you choose. The best is to use standard units everywhere like that you can’t be wrong, but in case you want to use mm instead of m,you can just do so but then all the other quantities of your model which have à distance unit into it will have to be converted to all use mm. For example, Pressure unit would become N/mm2 instead of N/m2 (Pa)

  • @rundizhang2253
    @rundizhang2253 Год назад

    Hi great video tutorial! May I ask at 45:15 why do you take the turbulence length scale as the initial value for epsilon? As i understand there is an equation where epsilon is calculated by the length scale and C(nu) and turbulence kinetic energy...

  • @habibmohammed4034
    @habibmohammed4034 2 года назад

    Hello It is a very helpful video Thank you
    But when I add the residual function in the controldict this error comes up
    --> FOAM FATAL IO ERROR: (openfoam-2206)
    Unexpected '}' while reading dictionary entry
    file: system/controlDict at line 50.
    From static bool Foam::entry::New(Foam::dictionary&, Foam::Istream&, Foam::entry::inputMode, int)
    in file db/dictionary/entry/entryIO.C at line 156.
    FOAM exiting
    Please help

    • @Feaforall
      @Feaforall  Год назад

      You are probably using a different openfoam version

  • @robertjackson7110
    @robertjackson7110 Год назад

    Great and helpful video. However, I had a lot of trouble getting the latest salome9.10 up and running. Have you tried installing that on a clean machine? I was a couple of days of work to figure out what was missing given that I am still only an intermediate Linux user. It looks like Salome had better install instructions in the past but not now.

    • @Feaforall
      @Feaforall  Год назад

      I didn’t try recently but I agree that it’s becoming harder. The main problem is that they are not Ubuntu users, so they are unaware when some files are missing in the Ubuntu package.
      You need to report your problems on the Salome forum to make them aware

  • @dokeun98
    @dokeun98 Год назад

    Thank you for the excellent video tutorial. In the OpenFOAM v10, I made the case be coincident with your case files with some non-orthogonality. However, I got the floating point error right after the calculation. Do you have any possible cause that makes it happen? Thank you again.

    • @luishp7372
      @luishp7372 Год назад

      Have you tried to improve the mesh quality? Is the same error he got at the first run, after improve the mesh the error was solved.

  • @garbossa
    @garbossa 3 года назад

    It is possible to give openfoam a open frontier condition from a netcdf file? For example pilar in a river and river flow from another model with netcdf water velocities?

  • @taman8675
    @taman8675 Год назад

    Hello Cyprien, good tutorials but I am missing a good and clear simulation tutorial of a centrifugal pump. i can send you a good geometry of a simple example. It can be a step or stl file.

  • @momosh59
    @momosh59 3 года назад

    Thanks very much Cyprein....I have a question
    Q......Aftet you meshed the innerflow (18:32), you create a group from geometry (and you emphasize that not from the "obstacle"...)
    Could you explain it why "obstacle" is excluded? Because the obstacle is not chosen, after you imoprt the mesh to OpenFoam, there is no boundary as "Obstacle". BUT!!! after you solved the mesh, the obstacle can be clearly seen in Paraview at the end of your video...

    • @Feaforall
      @Feaforall  3 года назад +1

      The obstacle group I created was used to refine the mesh size near the obstacle (I am using it when I mesh the domain in Salome)
      After that, I am not using it because I don’t need to define specific BCs on it in openfoam ( the wall group already contains the obstacle surface)

    • @momosh59
      @momosh59 3 года назад

      @@Feaforall Thanks for your reply Cyprien...
      Do you also have any plan to upload an MRF simulation?
      I would appreciate if you could do that....And if you could start from Geometry and run it in OpenFoam. Indeed the whole RUclips perhaps lacks such a video.
      As I mentioned in another comment in your channel, the way that you start your video (by giving a short review of the video) is great. Hence, I am sure that such a video would be very useful for many students and OpenFoam learners.

  • @davidpihet895
    @davidpihet895 3 года назад

    Hello Cyprien thanks for the tuto. Wouldn't have been better to run only the half of the model as it is symmetrical to save some simulation time, if yes how to do it?

    • @Feaforall
      @Feaforall  3 года назад

      I think it depends when you have turbulence involved. Even if the geometry is symmetric, it doesn’t necessarily mean that the flow will (I am thinking about the cylinder example in a turbulent flow in which the eddies oscillate with a certain frequency on both sides for example). In this case it’s true that the results look symmetric though!

  • @AC-zq2ny
    @AC-zq2ny 3 года назад

    thanks!!!

  • @digbylaurencebarcis7771
    @digbylaurencebarcis7771 2 года назад

    Thanks Cyprien. I can run your simulation files on my machine.. but when trying to run my own i get
    "time step continuity errors : sum local = 2.84108e-08, global = 2.69594e-09, cumulative = -6.77675e-07"
    any advice?
    Thanks!

    • @Feaforall
      @Feaforall  2 года назад +1

      Try to use a software to compare your files and mine to see where the difference lies (I use “meld” for file comparison)

    • @digbylaurencebarcis7771
      @digbylaurencebarcis7771 2 года назад

      @@Feaforall Thank Cyprien. I have got my files to work well. Took me a while to figure out that i needed to add (U p); to my residuals congif file in the openFOAM opt files.
      Now I am trying to adapt the simulation to run a specific case I have. Unfortunately no luck yet! Perhaps you may be able to point me in the right direction?
      case: a pipe 0.05m diameter some obstacles inside the pipe for mixing the fluid. the fluid water, velocity 16 m/2. length is 0.2m.
      I am able to run the geometry with good convergence when using the same settings as outlined in your tutorial. - a gas fluid at low velocity. when I change to water with my numerical data it crashes.
      "U" seems to be a significant influencer, at 16 m/2 it dose not get past the second simulation. When I drop this to 1 m/2 it manages 7 simulations before aborting. I looked into variable values to allow the simulation to stabilise - from an online forum, but this dose not seem necessary or the proper way to do it, if it would even work.
      Re = 576008 maybe a bit high and to crazy in here at theses velocities.
      Would you suggest giving on on this type of sim? was thinking about an LES simulation to understand the flow, though maybe this is very intensive computationally.
      Thanks for any points in a direction!

    • @Feaforall
      @Feaforall  2 года назад

      @@digbylaurencebarcis7771 Wow, this is a huge Reynolds number. You are sure you calculated it correctly?
      If yes, then you might need LES indeed as this is a very turbulent flow. RANS Simulation like in the tutorial is probably not appropriate for this kind of simulation.
      Remember also that more the flow is turbulent and more it is difficult to predict the behavior of the fluid... I am not an expert in highly turbulent flows, so that's all I can tell you unfortunately...

    • @digbylaurencebarcis7771
      @digbylaurencebarcis7771 2 года назад

      @@Feaforall Great Thanks Cyprien! good news i did have success with a lower flow rate about 1/4 of the proposed flow, which is is the number currently used in operation. I will try again with the high Reynolds number, I found a mesh density that works for the low flow scenario! quite a balancing act indeed!
      Thanks

    • @digbylaurencebarcis7771
      @digbylaurencebarcis7771 2 года назад

      @@Feaforall hey Cyprien, Thanks! perhaps i shall investigate an LES at a later time. I have another question! I may add another outlet to my model, its a gas inlet in reality, but we are only interested in the pressure value at this part and will change the geometry accordingly to enable the gas pressure to enter and our non return value to work etc etc. Shall i just add another face group "outlet2" for example? will "ideasUNNVtoFoam" understand this etc? cheers. Thanks for any advice!

  • @henriquecoala2723
    @henriquecoala2723 4 месяца назад

    obrigado

  • @zanelatoeb
    @zanelatoeb 3 года назад +1

    Very nice, Cyrpien! There is a possibility to simulate this same case in Code_Saturne (of course, not with that same level of details)? I will really appreciate! Thank you.

    • @Feaforall
      @Feaforall  3 года назад +1

      Yes I could do that, I’ll think about it, thanks for the idea!

  • @lucasamorimdasilva5584
    @lucasamorimdasilva5584 2 года назад

    Thanks for this video! Unfortunately, I couldn't run the simulation because I got some errors.
    1 - My mesh on Salome wasn't uniform, one side of walls was like yours and the other one was too fine.
    2 - I took the same example than you, but my system directory came with lots of files like "FOadd, FOblendingFactor, FOdiv" and some other FOs hahaha.
    When I run the simulation, I got "time step continuity errors: sum local = 2.02142e+215, global = 4.06063e+198, cumulative = 1.21819e+199"
    I would be thanks if you could help me. Btw, one more time, thanks to share your knowledges with us.

    • @lucasamorimdasilva5584
      @lucasamorimdasilva5584 2 года назад

      Add
      I tried to delete these files on system, but when I done it I got an error for ideasUnvToFoam: Cannot open include file ".../cavity/system/FOfieldAverage" while reading dictionary "system/controlDict.functions"

    • @Feaforall
      @Feaforall  2 года назад

      Maybe the version of OpenFoam you use is not the same… either much older or more recent. A lot can change over the years…

  • @ikekdm
    @ikekdm 2 года назад

    Hi Cyprien!
    How do i generate a STEP file?

    • @Feaforall
      @Feaforall  2 года назад +1

      With a CAD software… or with the Geom module of Salome

  • @TomasSab3D
    @TomasSab3D Год назад

    If I wanted your services - do you do freelancing jobs?

  • @mairasahar9282
    @mairasahar9282 3 года назад

    Sir please can you tell me how we get mesh at any cross section in paraview openfoam???

    • @Feaforall
      @Feaforall  3 года назад +2

      Not sure I understand your question correctly… if you want to display the results at any cross section then you can just clip the model like I did in this video and then use a probe to check the results. You can also use 2 clip filters to get a thin layer of the model and then use an extract filter to export only those elements.

    • @mairasahar9282
      @mairasahar9282 3 года назад

      Sir my question is that if we want to get mesh information at any cross section in paraview then what we do for it ???

    • @Feaforall
      @Feaforall  3 года назад +2

      Just like I said, apply a clip filter, then you can select the nodes and elements and if you open a new window you can choose to open it into a spreadsheet. That way you get the mesh info and fields associated in a spreadsheet that you can export in csv or xslx format

    • @Feaforall
      @Feaforall  3 года назад +2

      Watch this video: [Paraview Tutorial 4] How to display node and elements data in Paraview

    • @mairasahar9282
      @mairasahar9282 3 года назад

      Oky thank you Sir

  • @astafzciba
    @astafzciba 2 года назад

    this is why ANSYS charges a lot of money

  • @arulprakashm.1165
    @arulprakashm.1165 2 года назад +1

    I am getting this error, while running foamMonitor.
    plot
    ^
    "/tmp/tmp.B7Nsar" line 8: function to plot expected
    /opt/openfoam9/bin/foamMonitor: 211: kill: No such process
    arulhome@ubuntu:~/OpenFOAM/arulhome-9/RUN_My_Cases/InnerFLOW_cyprien-rusu/Turbulent_Flow_in_Pipe$

  • @francootaola9172
    @francootaola9172 3 года назад

    hello cyprien! thanks for the videos! as always your tutorials are great! tetra meshes are not recommended but you have the polyDualMesh application that transforms a tetra mesh to a polyhedral one this could help a lot :) (www.openfoam.com/documentation/guides/latest/man/polyDualMesh.html) the only issue with this workflow is that it is not possible to parallel it (as neither the meshing with salome is multithreading and neither polydual...).
    normally, the new vr of salome 9.7 just went out and it should support this feature but for the moment I did not find how to do it.... if you play with that and you find it I am interested at least in a small text mail :)!
    the parallel execution, in minute 58:43 it is not correctly done, if you look at the header of the log you have nProc =1, thats because you used mpirun pisoFoam, it should be mpirun -np X pisoFoam -parallel (with X the number of domains) but you need to decompose your case previously to do parallel, (the division of the mesh in each domain that will be allocated in each processor). www.openfoam.com/documentation/guides/latest/man/decomposePar.html for this you need another dictionary in the system folder, decomposeParDict where you clarify the decomposition method etc etc.... in this geometry i would go with hierarchical. (if you need extra indications dont hesitate to send me an email)
    would love if you could make a video of doing an hexa dominant mesh with salome. like figure 6 in the boucher files.salome-platform.org/Salome/Common/Brochures/SALOME9-brochure.pdf
    best regards!
    franco

    • @Feaforall
      @Feaforall  3 года назад +1

      Thank you again Franco for those very useful comments! I was sure I did something wrong with the mpi… I’ll dig a bit in the links you sent whenever I have time, thanks!

    • @francootaola9172
      @francootaola9172 3 года назад +1

      ​@@Feaforall it is a pleasure to help!
      for the parallel runing, it is quiet easy, you should follow the following steps:
      1. have a decomposParDict (with the deffinition of the numbers of subdomains, and if you do not want to think how to divide the mesh, use the method scotch it is automatically, you only need to specify the number of domains the division will be take care by the scotch method, (other methods requiere more inputs...but give better results)).
      2. use the command decomposePar
      3. if you want to run from the terminal you shoudl use:
      mpirun -np "numbersOfProcessors" pisoFoam -parallel (and the numberOfProcessors should be the same as the one in decomposeParDict)
      one thing I would recomend is create a running bash script (.sh), the famous "allrun" files....
      there if you import the tutorial functions (aca.
      ". ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions")
      you can use runParallel and you dont need to give the number of processors to mpirun neither the -parallel flag. EG.
      runParallel pisoFoam (way easier to automatise...)
      best regards cyprien!