|
[Sponsors] |
January 18, 2011, 02:02 |
Low Mach Number for Combustion
|
#1 |
Senior Member
Seyyed Ali H.M.
Join Date: Nov 2009
Location: Utah
Posts: 107
Rep Power: 17 |
Hi everyone, Especially Foamers.
I want to know if anybody tried to simulate combustion using low mach number model in OpenFOAM. I would really appreciate if anybody can help as I have some problems. Mostly the problem is with the pressures.
__________________
SAHM |
|
January 18, 2011, 03:12 |
|
#2 |
Senior Member
Karl-Johan Nogenmyr
Join Date: Mar 2009
Location: Linköping
Posts: 279
Rep Power: 21 |
Hi!
I and a friend did some work on that starting from the reactingFoam solver in OF1.5. I do not have the solver ready right now, but I can upload if you want. Anyway, if you are using newer version of OF you are probably better off rewriting their reactingFoam solvers, as the thermodynamics implementation is different. All the neccessary info is available here: http://web.student.chalmers.se/group...SlidesOFW5.pdf If you use the XiFoam solver, I would guess that cancelling the dpdt term and implementing the pressure eq as above should work. This is for constant pressure environment. If you are working with, for instance, piston engines, you need to rewrite. /Kalle |
|
January 18, 2011, 03:34 |
Thanksb
|
#3 |
Senior Member
Seyyed Ali H.M.
Join Date: Nov 2009
Location: Utah
Posts: 107
Rep Power: 17 |
Hi, thank for your link. I'll try to use that.
I`m working with OF1.7 and am trying to use reactingFoam and K-Epsilon Model. the thermophysical models are a little complicated, but I know what is the difference between the two codes. I think the pressure equation should be the same, but let me see first. My application is constant pressure too. Can I contact you later, if I have more questions?
__________________
SAHM |
|
January 18, 2011, 08:53 |
|
#4 |
Senior Member
Karl-Johan Nogenmyr
Join Date: Mar 2009
Location: Linköping
Posts: 279
Rep Power: 21 |
Sure, of course. Good luck implementing!
K |
|
January 19, 2011, 22:17 |
Detailed
|
#5 |
Senior Member
Seyyed Ali H.M.
Join Date: Nov 2009
Location: Utah
Posts: 107
Rep Power: 17 |
Hi Karl
Right now, I'm trying to use the equations from the paper below: "Numerical Simulation of Low Mach Number Reactive Flows" Toboulides Et all. Journal of scientific computing V12 N2 1997 The Equation set 1.1 in that paper, is very similar to what you have used in your project, but my problem is with the pressure definition: I can add two pressure terms in createFields.h to be used for dynamic pressure and hydrostatic ( thermodynamic ) pressure. But in openfoam 1.7 there's class thermo that does all the definitions and calculations for pressure and rho, T, h .... I do not want to get into this class to change its source, do you have any idea how I can feed the pressure into it? I think if I change the pEqn file to calculate for dynamic pressure and try to fix the pressure in that class with my value, that should work. another question: what is dpdt term? SAHM.
__________________
SAHM |
|
January 20, 2011, 03:46 |
|
#6 |
Senior Member
Karl-Johan Nogenmyr
Join Date: Mar 2009
Location: Linköping
Posts: 279
Rep Power: 21 |
Hi again,
I am not sure how things are done in 1.7, but what I did in 1.5 was to leave the p-field as it was, and initialize it with the global thermodynamic pressure. Then I introduced a new volScalarField, pd. That scalar I used as (dynamic) pressure in the momentum equation and in pEqn.H, the pressure correction. The dpdt term is a source/sink term for enthalpy, which should be removed completely. If you keep it you will find pseudo pressure waves bouncing around in your domain. Leaving the p field untouched, it will remain a constant uniform value throughout the simulation, and it will assist in calculating density. By this way you do not need to enter into the thermodynamics code. Regards, Kalle |
|
January 20, 2011, 20:12 |
|
#7 |
Senior Member
Seyyed Ali H.M.
Join Date: Nov 2009
Location: Utah
Posts: 107
Rep Power: 17 |
Hi
I totally omitted the dpdt term in all files, and had to do some changes for the fluxes, so that they use pHydro for pressure. Also I put a p=p_Operational Term in the code, to keep the p fixed. this one is feeding this pressure into termodynamics. My question is do I have to change the compressibleCourantNo into CourantNo so that the code uses larger time steps ( DeltaT) or it does'nt change at all? I`m trying what I said above to see what it will be like.
__________________
SAHM |
|
January 21, 2011, 03:06 |
|
#8 |
Senior Member
Karl-Johan Nogenmyr
Join Date: Mar 2009
Location: Linköping
Posts: 279
Rep Power: 21 |
Hi!
Continue using the compressible version, as your flux, phi, is still including density. In some sense, one would like the compressibleCoNo to be based on sound speed to correctly capture the evolution of pressure waves... this is however not the case in OF. Regards, Kalle |
|
January 28, 2011, 02:59 |
|
#9 |
Senior Member
Seyyed Ali H.M.
Join Date: Nov 2009
Location: Utah
Posts: 107
Rep Power: 17 |
Hi, Sorry for updating this thread late.
My Question is If I use compressible courant number, then how does openfoam calculate the time steps for the case, shouldn't the time steps be bigger?
__________________
SAHM |
|
May 5, 2011, 09:12 |
|
#10 |
Senior Member
Karl-Johan Nogenmyr
Join Date: Mar 2009
Location: Linköping
Posts: 279
Rep Power: 21 |
Please let me correct myself. Some solvers in OF, like rhoCentralFoam, do determine the Co-number from wave speed rather than convective velocity. This is implemented in a solver-specific compressibleCourantNo.H.
Sorry for the misinfo. K |
|
October 11, 2013, 21:43 |
Pressure solver for low mach number solver
|
#11 |
New Member
Join Date: Sep 2013
Posts: 9
Rep Power: 13 |
Hi All,
I have two questions following up on this low mach number solver thread: I have changed the pressure equation to look as below to use the dynamic pressure "pd": fvScalarMatrix pdEqn ( fvc::ddt(psi, p) + fvc::div(phi) - fvm::laplacian(rho*rUA, pd) ); pdEqn.solve(); if (nonOrth == nNonOrthCorr) { phi += pdEqn.flux(); } But if i start with a zero initial velocity field and impose a flame (density jump), it does not produce any velocity field nor any changes in dynamic pressure. On the other hand if i change the line "fvc::ddt(psi, p)" to "fvc::ddt(rho)", I do see a velocity field and changes in dynamic pressure. Does this mean that my "psi" implementation has something wrong with it? I do try to update the "psi" field to reflect changes in temperature due to the the flame. The second question is after implementing "fvc::ddt(rho)", the solution diverges quickly and crashes. I have tried different pressure solvers (GAMG,PCG,ICCG) with and without pre-conditioners. Any ideas on getting this to run in a stable manner!? Thanks in advance! |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Exporting results and Mach number calculation | pawan1989 | CFX | 0 | July 14, 2010 14:05 |
Strong oscillation at transonic mach number | martingariepy | FLUENT | 2 | May 12, 2009 12:40 |
[blockMesh] BlockMeshmergePatchPairs | hjasak | OpenFOAM Meshing & Mesh Conversion | 11 | August 15, 2008 08:36 |
acoustics and low mach number | George | Main CFD Forum | 42 | November 3, 2005 07:05 |
compressible at low Mach number with uniteration | ricklee | Main CFD Forum | 2 | October 21, 2005 00:15 |