CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   SprayFoam simulation of LOX-CH4 combustion (https://www.cfd-online.com/Forums/openfoam-solving/232160-sprayfoam-simulation-lox-ch4-combustion.html)

Jaco_97 December 2, 2020 04:55

SprayFoam simulation of LOX-CH4 combustion
 
Cheers guys,
I try to briefly introduce you to the problem I am trying to investigate in OpenFOAM. The analysis is focused on a pintle injector which carries liquid oxygen (LOX) into a combustion chamber, where combustion has to occur with gaseous methane (CH4). I am using a 2D axi-symmetric mesh, where just one slot of the pintle injector is present.

LOX is introduced as liquid droplets through this slot since I make use of sprayFoam solver. These droplets have to evaporate and then burn with CH4.

I am not using any kind of detailed mechanism but just a one-step mechanism, with EDC (actually I have also tried PaSR) as combustion model and no radiation. I have employed both EulerImplicit and ODE solvers for chemistry part, as well as any possible combination of numerical schemes and linear solvers.

I just start with a sprayFoam run without any chemistry and then ignite by means of fvOptions (setting a fixed temperature of 2000 K for a short period in a specific point of the domain). The problem is that, every time I ignite, there occurs a pressure wave which makes the calculation crash after some time. I do not know how to deal with such phenomenon without messing up the simulation.

I have also tried to previously introduce some nitrogen in the domain to increase the thermal capacity of the mixture, but without any success.

Glad to let you know about further details in case someone may help me.

Thanks in advance,
Jacopo

dlahaye December 2, 2020 09:05

Possibly replace outlet patch by large container allowing flow to disperse and avoid pressure wave reflecting back from outlet patch.

Jaco_97 December 2, 2020 18:16

Hi Domenico, first of all thanks for your reply. Actually I have tried both to build a longer domain and employ a large emispherical container for the outlet patch. In any case, the pressure wave corresponding to the ignition time causes the pressure to oscillate in the entire domain for long time, until the simulation crashes (in particular, an adverse pressure gradient with respect to the upstream methane reservoir originates and this generates a reverse flow which then hits the inlet patch).

Seeking for some alternatives, I have switched from sprayFoam (based on psiThermo class) to reactingParcelFoam solver (based on rhoThermo class). This allows to limit the pressure jumps inside the domain and the calculations do not mess up. Nevertheless, I wonder whether this approach may be theoretically correct. Furthermore, the behaviour of parcels in reactingParcelFoam is quite different with respect to sprayFoam and does not perfectly handle a spray simulation.

Any help is hugely appreciated.

dlahaye December 3, 2020 07:45

Disclaimer: I am not familiar with sprayFoam or reactingParcelFoam

Question: do adverse pressure gradients persist in case of outlet patch being replaced by outlet vessel? If yes, any idea why?

I can imagine that replacing psiThermo by rhoThermo results in a numerical (not physical) dispersion of pressure waves (see below).

Not sure how to advice.

Thermodynamics in function of rho (density) or in terms of psi (compressibility)

* thermo.rho() returns a stored rho field that is calculated from pressure and temperature fields according to the selected thermophysical model in thermo.correct();
* rhothermo:*basic thermodynamic properties based on density; for fluids with low compressibility like water where the density change is mostly due to temperature variation; huge pressure jumps will not be represented correctly; solvers using rhothermo (like the buoyant solvers) use a simplified pressure equation where psi is accounted for explicitly;

Code for pEqn (as used for instance in heattransfer/buoyantPimpleFoam)
fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
+ fvc::div(phiHbyA)
- fvm::laplacian(rAUf, p_rgh)
==
fvOptions(psi, p_rgh, rho.name())


* psiThermo:*basic thermodynamic properties based on compressibility; for gas; combustion solvers and transsonic solvers use the psithermo model. They have another pressure equation where the change in time of pressure is treated implicit by dit(psi, p); larger pressure jumps are now possible. Such solvers are used when the flow is mainly driven by pressure changes and temperature change is only an effect of large compression and expansion;

Code for pEqn (as used for instance in combustion/reactingFoam)
fvm::ddt(psi, p)
+ fvc::div(phiHbyA)
- fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())

* note that alternatives above are essentially different in the ddt-terms. The code for pEqn in heat transfer/bouyantSimpleFoam contains
fvm::laplacian(rhorAUf, p_rgh) == fvc::div(phiHbyA)

* rhoSimpleFoam now instantiates the lower-level fluidThermo which instantiates either a psiThermo or rhoThermo according to the 'type' specification in thermophysicalProperties. For details, see https://develop.openfoam.com/Develop...230a8965bdb860
* References: OpenFOAM.com: OpenFOAM: https://www.openfoam.com/documentati...mophysical.php
* References: CFD Direct: OpenFOAM: https://cfd.direct/openfoam/energy-equation/

neelshah0034 July 27, 2021 09:26

Hello,

I am trying to solve for Liquid nitrogen spray and I am getting all the values as "0".

Were you able to solve for LOx, @Jaco_97?

Thank you


All times are GMT -4. The time now is 02:37.