
[Sponsors] 
All Mach number implicit solver with KurganovTadmore scheme  pisoCentralFoam 

LinkBack  Thread Tools  Search this Thread  Display Modes 
August 14, 2015, 09:15 
All Mach number implicit solver with KurganovTadmore scheme  pisoCentralFoam

#1 
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 
Dear OpenFOAM users!
We finished development of hybrid KurganovTadmore/PISO semiimplicit solver for allmach number flows You can download it with tutorials at github https://github.com/mkraposhin/pisoCentralFoam git link https://github.com/mkraposhin/pisoCentralFoam.git Solver description located in git archive and wiki https://github.com/mkraposhin/pisoCentralFoam/wiki Model was tested in Mach numbers from 0.01 to 6 for cases:
Model was implemented for OpenFOAM of next versions:  OpenFOAM 2.3.0  OpenFOAM 2.4.0  OpenFOAMdev (thanks to Hassan Kassem)  foamextend 3.1 Youtube video forwardStep Last edited by mkraposhin; August 29, 2015 at 14:54. 

August 14, 2015, 10:44 

#2 
Senior Member
anonymous
Join Date: Aug 2014
Posts: 205
Rep Power: 12 
Thank you very much for this solver, and all the documentation and validation developed. This is a very interesting work.
I have some questions about the solver. Do you think that using the PIMPLE algorithm could help the accuracy of the solver or if it could help to use a higher timeStep? Furthermore, is this solver suitable for small unstructured meshes? 

August 14, 2015, 10:48 

#3 
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 
This solver can't be used PIMPLE method.
This solver can be used with any grid. But, to work with nonorthogonal grids, nNonOrthogonalCorrectors must be set to 1 or higher 

August 17, 2015, 02:50 

#4 
Member
Join Date: Jun 2012
Posts: 76
Rep Power: 13 
Very interesting work!
Have you tested the dissipation at very low Mach numbers? For instance, calculate the drag coefficient of a cylinder at various Mach numbers at constant Reynolds numbers and compare it to experimental values? As far as I understood, your solver is not bound to the acoustic Courant number but rather the flow Courant number, am I correct? Kind regards, Martin 

August 17, 2015, 03:42 

#5  
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 
Hi, thank you for your opinion
Quote:
Yes 

August 17, 2015, 07:11 

#6 
Senior Member
Join Date: Oct 2013
Posts: 397
Rep Power: 18 
This is very interesting work! I haven't looked into it very much yet, but I plan do so.
A few questions: 1) Is it possible to modify this solver for use in a multiphysical problem? I have a couple of mass, impulse and energy source terms that I need to include, which in turn also depend on the flow (or on properties derived from it). As this solver is using a PISO approach, we cannot use a consistent coupling by using multiple iterations per timestep and solving the coupled equations in a segregated manner, so the coupling will use the lagged fields from the previous time step. Do you think this can still be a sensible approach? 2) I suppose that impulse source terms need to be added directly into UEqn (that is, before the momentum predictor)? 3) Which ranges for the flow Courant number are sensible to use with this solver? I would like to use an adaptive time step size using the flow Courant number. Do you see any issues here? 4) Is this solver suitable for running transient simulations where parts of the solution can have zero velocity? I have a very wide range of flow conditions (plasma simulation), high velocities (on the order of 1e31e4m/s, mostly subsonic due to higher speed of sound in plasma) and strong energy source terms leading to expansion. However, flow can be zero during some parts of the solution. Last edited by chriss85; August 17, 2015 at 09:37. 

August 17, 2015, 16:49 

#7 
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 
Hi, chriss85!
Let me answer your questions step by step 1) Yes, you can add sources to rho, U and h. I'm not sure that PIMPLE approach is appicable for such scheme. So, lagged approach is prefered. You can use fvOptions API to insert sources as it done in other OpenFOAM solvers 2) Yes, it is better to insert momentum source before momentum predictor step. 3) For subsonic flow Co must be less then 1, for transonic or supersonic Co < 0.5 4) This conditions are similar to those one, for which this solver was designed 

August 19, 2015, 03:58 

#8 
Senior Member
Join Date: Oct 2013
Posts: 397
Rep Power: 18 
Thanks for your answers, much appreciated. One more thing, how does one best implement a scalar transport equation (with a source term) in such a solver? I have read that such an equation should preferably use the central upwind schemes here: http://www.cfdonline.com/Forums/ope...equation.html .
Should the equations be implemented like the equation for rho itself, or is the default scalar transport equation sufficient? 

August 20, 2015, 07:22 

#9 
Senior Member
Hassan Kassem
Join Date: May 2010
Location: Germany
Posts: 242
Rep Power: 17 
Great work!
I will try it for inviscid transonic flow instead of rhoCentralFoam. Although rhoCentralFoam gives good results, it is really hard to maintain a stable solution. Did you published any results using this new solver? Could you please recommend any papers describe this algorithm, if available? 

August 20, 2015, 12:47 

#10  
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 
Quote:
If you want to see more examples, then you must look into the Tutorials2.3.0 folder, because it contains more examples, then Tutorials2.4.0 I sent paper with description of solver to PROCEDIA journal and i hope they will accept it until november. Anyway, i put draft version of description of alghorithm in git repository. You can find it here https://github.com/mkraposhin/pisoCe...CFDONLINE.pdf Last edited by mkraposhin; August 20, 2015 at 12:50. Reason: grammar 

August 20, 2015, 12:59 

#11 
Senior Member
Hassan Kassem
Join Date: May 2010
Location: Germany
Posts: 242
Rep Power: 17 
Thanks for sharing your solver. Please once your paper get accepted inform us so we could cite it.
I am thinking of implementing dynamicMesh in your solver but I am still studying it. Do you have an suggestions? Did you think about including a dynamic mesh is this algorithm before? 

August 20, 2015, 13:07 

#12  
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 
Quote:
Code:
fvm::ddt(rho,Y) + fvm::div(phiPos, Y) + fvm::div(phiNeg,Y)  fvm::laplacian(turbulence>muEff / Sc, Y)
But this discreete equation must be obtained with the same limiter as used for energy equation, otherwise temperature of the mixture will not conserve A better way may be in adaptation of MULES technique for this KT scheme. And i'm working on it Last edited by mkraposhin; August 21, 2015 at 02:14. 

August 20, 2015, 13:15 

#13  
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 
Quote:
First example can be forwardStep with inverted motion 

August 20, 2015, 13:27 

#14 
Senior Member
Hassan Kassem
Join Date: May 2010
Location: Germany
Posts: 242
Rep Power: 17 
That will be great, there are many tutorials for pimpleDyMFoam. The simplest one is movingCone. The movingCone is available for pimpleDyMFoam(OF2.32.4 also), sonicDyMFoam and rhoCentralDyMFoam in OpenFOAMdev


August 24, 2015, 13:37 

#15 
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 
Hello, Hassan
I made dynamic mesh version of pisoCentralFoam  pisoCentralDyMFoam and it is available for downloading in git. Can you update OpenFOAMdev version? 

August 24, 2015, 17:58 

#16  
Senior Member
Hassan Kassem
Join Date: May 2010
Location: Germany
Posts: 242
Rep Power: 17 
Quote:
I run a quick case for movingCone case for OpenFOAM2.4 vs OpenFOAMdev and I got the same results. Regarding the turbulence modelling, Does the solver use the compressible models for the whole range? 

August 25, 2015, 07:00 

#17 
Senior Member
Hassan Kassem
Join Date: May 2010
Location: Germany
Posts: 242
Rep Power: 17 
I tested the movingCone case for compressible flow using OpenFOAMdev tutorial for rhoCentralDyMFoam. The results have an excellent agreement.


August 25, 2015, 08:16 

#18  
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 
Quote:
My next step is to port solver to openfoamextend version 3.0 and 3.1 Also, i uploaded small video in youtube with results of of forwardStep test case 

August 25, 2015, 08:26 

#19 
Senior Member
Join Date: Oct 2013
Posts: 397
Rep Power: 18 
I have implemented your solver in my application and I'm seeing nice speedups compared to the sonicFoam solver. Results are a bit different, but atleast in the simple shockTube case your solver shows better results, so I'm more inclined to trust your solver
I'm still somewhat wondering about the definition of the speed of sound: In OpenFOAM (namely rhoCentralFoam and your solver) the following formula is used: c = sqrt(Cp/Cv*psi) = sqrt(Cp/Cv*p/rho) According to http://citeseerx.ist.psu.edu/viewdoc...0.1.1.215.7150 , this is equal to the frozen speed of sound, meaning the speed of sound of a fluid that doesn't change its chemical composition when pressure/temperature change. In my case I'm assuming a fluid in local thermodynamic equilibrium, meaning that chemical composition is a function of pressure and temperature. According to the paper above, speed of sound should then be defined as C = sqrt(Cp/Cv/(drho/dp)) (with constant T in the derivative) Do you agree with this modification for my case? Depending on the kind of flow, the involved reaction rates, the occuring time, temperature und pressure scales, both of these extremes may apply, or if one is unlucky, something in between. I'm not sure how the cases which lie in between may be treated properly. 

August 25, 2015, 08:47 

#20  
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 
Quote:
This formulation is true for all compressible implicit OF solvers. If you will change EOS, for example  rho = A*(p/p0)^k, then you have to change equation for pressure. for example  see sonicLiquidFoam 

Thread Tools  Search this Thread 
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
DPMFoam  Serious Error particleladen flow in simple geometric config  benz25  OpenFOAM Running, Solving & CFD  27  December 19, 2017 20:47 
foamextend_3.1 decompose and pyfoam warning  shipman  OpenFOAM  3  July 24, 2014 08:14 
Solver is finishing with huge Mach number  Fonzie  CFX  1  March 12, 2007 14:15 
High Mach number solver error  Luke  CFX  3  January 31, 2007 22:26 
TVD scheme at low Mach number  Axel Rohde  Main CFD Forum  5  August 6, 1999 02:01 