SimFlowCFD / RapidCFD-dev

RapidCFD is an OpenFOAM fork running fully on CUDA platform. Brought to you by
https://sim-flow.com
Other
325 stars 94 forks source link

discretization Schemes: gradScheme #27

Open KingKraut opened 7 years ago

KingKraut commented 7 years ago

Dear all, I am glad, my test Case with a custom Solver now produces consistent results with OF231 and RapidCFD! However, I have the problem, that for my mesh I require a discretization scheme which seems to be missing in RapidCFD. OF231 works fine if I set in fvSchemes gradSchemes { default cellLimited leastSquares 1;//for example } With RapidCFD I get the error message, that only one scheme (Gauss) can be applied! However with Gauss linear (and here it doesn't make any difference if I choose linear limited or anything else) my case does not converge... Am I correct, that no other discretization schemes are implemented in RapidCFD apart from Gauss? Or is there another way to call these? Thanks.

Zymorui commented 7 years ago

Dear KingKraut, did you clarify this issue? I'm having the same problem as my case needs a cellLimited gradient scheme otherwise it blows up.

KingKraut commented 7 years ago

Dear Zymorui,

this limiter was not ported to RapidCFD, so it won’t work, I am sorry. I used Gauss linear limited phi; Instead, which made most simulations run. Maybe this helps?

Best wishes Johannes

Von: Zymorui [mailto:notifications@github.com] Gesendet: Montag, 24. Juli 2017 15:29 An: Atizar/RapidCFD-dev Cc: Martens, Johannes; Author Betreff: Re: [Atizar/RapidCFD-dev] discretization Schemes: gradScheme (#27)

Dear KingKraut, did you clarify this issue? I'm having the same problem as my case needs a cellLimited gradient scheme otherwise it blows up.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/Atizar/RapidCFD-dev/issues/27#issuecomment-317422487, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AXJjmAZd5NpZ7CtjObllAi4m4rsf3Ff6ks5sRJwugaJpZM4LGoy1.

Daniel-Molinero commented 4 years ago

Dear All,

Recently I have been struggling to reach convergence of a case with a non-structured and non-orthogonal mesh, which I can not modify or replace (time consuming). I think I found that the reason the simulations do not converge and blow up is the type of gradient calculation.

Detailed description of grad schems

https://www.youtube.com/watch?v=oeA1Bg9GqQQ&t=585s https://www.youtube.com/watch?v=7ymFkxx2R_k https://www.youtube.com/watch?v=tF_vrB3YLls&t=239s

Discretisation strategies

https://wiki.openfoam.com/Finite_Volume_Discretization_by_Hrvoje_Jasak

Has anyone been able to use more accurate and stable interpolation schemes for gradient calculations intended for non-structured and non-orthogonal meshes? More precisely Gauss node based gradient calculation (pointLinear).

I checked src/finiteVolume/Make/files and only the Gauss cell based approach is listed (linear), so pointLinear was not compiled. It is intended this way or it was forgotten at writing?

Gradient calculation using lestSquares scheme is listed along with fourth and the limited gradient calculation schemes like faceLimited and cellLimited in the above mentioned file but all they were commented and of course not compiled. Are this schemes not working at all or just does not behave quite well if compiled?

Best Regards Daniel

TonkomoLLC commented 4 years ago

Hi, Daniel,

You're right, only the Gauss approach is compiled, and looking into the source code the schemes that are commented out have not been setup for GPU computation.

I suspect that the methods you need are not setup for GPU calculation because it's an exercise left to the future (or to us, the fans of RapidCFD). However, this said, I do not know if there are fundamental limitations with other schemes that make GPU calculation difficult or impossible.

My opinion after reading your note and looking at the source is that if you need any of the schemes that are commented out in the Make/files list, you will need to do the conversion from CPU to GPU yourself. If you uncomment the compilation of the missing schemes, either they won't compile, or if they do compile, calculations will take place on the CPU, not the GPU.

If someone reading this reply has more knowledge on the subject, I welcome feedback to this assessment.

Best regards,

Eric