|
[Sponsors] |
All Mach number implicit solver with Kurganov-Tadmore scheme - pisoCentralFoam |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
August 14, 2015, 10:15 |
All Mach number implicit solver with Kurganov-Tadmore 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 Kurganov-Tadmore/PISO semi-implicit solver for all-mach 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 - OpenFOAM-dev (thanks to Hassan Kassem) - foam-extend 3.1 Youtube video forwardStep Last edited by mkraposhin; August 29, 2015 at 15:54. |
|
August 14, 2015, 11:44 |
|
#2 |
Senior Member
anonymous
Join Date: Aug 2014
Posts: 205
Rep Power: 13 |
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, 11: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 non-orthogonal grids, nNonOrthogonalCorrectors must be set to 1 or higher |
|
August 17, 2015, 03:50 |
|
#4 |
Member
Join Date: Jun 2012
Posts: 76
Rep Power: 14 |
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, 04: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, 08:11 |
|
#6 |
Senior Member
Join Date: Oct 2013
Posts: 397
Rep Power: 19 |
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 1e3-1e4m/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 10:37. |
|
August 17, 2015, 17: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, 04:58 |
|
#8 |
Senior Member
Join Date: Oct 2013
Posts: 397
Rep Power: 19 |
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.cfd-online.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, 08:22 |
|
#9 |
Senior Member
Hassan Kassem
Join Date: May 2010
Location: Germany
Posts: 242
Rep Power: 18 |
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, 13: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 Tutorials-2.3.0 folder, because it contains more examples, then Tutorials-2.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 13:50. Reason: grammar |
||
August 20, 2015, 13:59 |
|
#11 |
Senior Member
Hassan Kassem
Join Date: May 2010
Location: Germany
Posts: 242
Rep Power: 18 |
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, 14: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 03:14. |
||
August 20, 2015, 14: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, 14:27 |
|
#14 |
Senior Member
Hassan Kassem
Join Date: May 2010
Location: Germany
Posts: 242
Rep Power: 18 |
That will be great, there are many tutorials for pimpleDyMFoam. The simplest one is movingCone. The movingCone is available for pimpleDyMFoam(OF2.3-2.4 also), sonicDyMFoam and rhoCentralDyMFoam in OpenFOAM-dev
|
|
August 24, 2015, 14: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 OpenFOAM-dev version? |
|
August 24, 2015, 18:58 |
|
#16 | |
Senior Member
Hassan Kassem
Join Date: May 2010
Location: Germany
Posts: 242
Rep Power: 18 |
Quote:
I run a quick case for movingCone case for OpenFOAM-2.4 vs OpenFOAM-dev and I got the same results. Regarding the turbulence modelling, Does the solver use the compressible models for the whole range? |
||
August 25, 2015, 08:00 |
|
#17 |
Senior Member
Hassan Kassem
Join Date: May 2010
Location: Germany
Posts: 242
Rep Power: 18 |
I tested the movingCone case for compressible flow using OpenFOAM-dev tutorial for rhoCentralDyMFoam. The results have an excellent agreement.
|
|
August 25, 2015, 09: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 openfoam-extend version 3.0 and 3.1 Also, i uploaded small video in youtube with results of of forwardStep test case |
||
August 25, 2015, 09:26 |
|
#19 |
Senior Member
Join Date: Oct 2013
Posts: 397
Rep Power: 19 |
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, 09: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 |
||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
DPMFoam - Serious Error --particle-laden flow in simple geometric config | benz25 | OpenFOAM Running, Solving & CFD | 27 | December 19, 2017 21:47 |
foam-extend_3.1 decompose and pyfoam warning | shipman | OpenFOAM | 3 | July 24, 2014 09:14 |
Solver is finishing with huge Mach number | Fonzie | CFX | 1 | March 12, 2007 15:15 |
High Mach number solver error | Luke | CFX | 3 | January 31, 2007 23:26 |
TVD scheme at low Mach number | Axel Rohde | Main CFD Forum | 5 | August 6, 1999 03:01 |