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/)
-   -   NOX (https://www.cfd-online.com/Forums/openfoam-solving/60296-nox.html)

skherad March 5, 2006 12:45

Dear all, I am going to add N
 
Dear all,
I am going to add Nox prediction (zeldowich) to achen bomb.
Is it neccessary to edit the source code? (is it possible by just editing dictionaries?)
thank you for your time.
regards
saeid

niklas March 6, 2006 02:11

This is a very weird question.
 
This is a very weird question.
You are going to add a NOx mechanism to
a case??? So will you be able to use it
on only the aachen bomb case then?
Anyways.....

If you are planning to use dieselFoam,
then you will use the chemkin-interface and
in that case it has already been done.
If you look at the mechanism chem.inp_15
you'll find its already in there.

skherad March 6, 2006 03:45

Dear Dr Nordin Thank you for
 
Dear Dr Nordin
Thank you for your answer
I dont want to use mechanism like chem.inp-15 (I have used it and it worked).
I am going to use a one step reaction
fuel+oxidant=co2+h2o
and
a simplified Nox mechanism that d(NO)/dt depeneds on O2 and N2.
sorry for the weird questions(cases like achen bomb)
regards
saeid

niklas March 6, 2006 04:01

Ok, so you do not want to use
 
Ok, so you do not want to use Zeldovich,
since you're planning to bolt on NOx to the
global fuel conversion rate.

Then I'd suggest you just
use 2 reactions in chem.inp.
one for the fuel conversion rate
and one for the NO, like
NO + NO = N2 + O2

skherad March 6, 2006 04:19

thank you very much. I will d
 
thank you very much.
I will do that and compare with complex mechanism.
than you

barane_iran September 30, 2013 13:54

how to calculate fuel nox in openfoam

flowAlways May 25, 2015 17:27

Hello everyone,

I would like to post-process NOx formation by considering only the global species concentrations for 1-step irreversible methane combustion.

From what I have understood and read I came to the following conclusion.
The formation of thermal NO_x according to the extended Zeldovich mechanism is given by
O + N_2 \rightleftharpoons  N + NO  \quad k_f^1 = 1.8*10^8 e^{-38370/T} \quad  k_b^1 = 3.8*10^7 e^{-425/T} \\

N + O_2 \rightleftharpoons  O + NO \quad  k_f^2 = 1.8*10^4 T e^{-4680/T} \quad  k_b^2 = 3.81*10^3 T e^{-20820/T} \\

N + OH \rightleftharpoons   H + NO \quad  k_f^3 = 7.1*10^7 e^{-450/T} \quad  k_b^3 = 1.7*10^8 e^{-24560/T} \\
with rate constants in m^3/mol-s

The rate of formation of [NO] is then given by
\frac{d[NO]}{dt} \: = \: k_f^1 [O] [N_2] +  k_f^2 [N] [O_2] + k_f^3 [N] [OH] - k_r^1 [NO] [N] - k_r^2 [NO] [O] - k_r^3 [NO] [H]

which under the quasi-steady assumption for [N] can be simplified to
\frac{d[NO]}{dt} \quad = \quad 2 \: k_f^1 \: [O] \: [N_2] \quad  \frac{\left(1-\frac{k_b^1 \: k_b^2 \: {[NO]}^2}{k_f^1 \: [N_2] \: k_f^2  \: [O_2]}\right)}{\left(1+\frac{k_r^1 \: [NO]}{k_f^2 \: [O_2] \: + \:  k_f^3 \: [OH]}\right)} \quad (mol/m^3-s)

with equilibrium concentration of [O] given by [O] = 3.97*10^5 T^{-1/2} e^{-31090/T}\: [O_2]^{1/2} mol/m^3
and the concentration of [OH] is given by [OH] = 2.129*10^2 \:  T^{-0.57} \: e^{-4595/T} \: [O]^{1/2} \: [H_2O]^{1/2} mol/m^3 using partial equilibrium approach.

Therefore, the concentration of [NO] can be obtained by solving the following scalar transport equation with \phi = [NO] and S_{[NO]} = M_{NO} \frac{d[NO]}{dt}
\underbrace{ \frac{\partial{\rho \phi}}{\partial t}}_{Transient \ term} +   \underbrace{ \nabla \cdot (\rho \vec u \phi )}_{Convection \ term}   =\underbrace {\nabla \cdot (\rho D \nabla \phi )}_{Diffusion \ term} +   \underbrace {S_{\phi}}_{Source \ term}\\

So, basically to successfully post-process NOx formation in OpenFOAM we need to solve the scalar transport equation for [NO] with a spatially varying source term which depends upon the concentration of [NO].
Can someone suggest a possible way of doing this. This is a non linear equation and would need to be solved iteratively. I want to implement this in OF but do not know where to start from. Any ideas please ??

flowAlways June 18, 2015 04:14

Hello, I have successfully implemented thermal NOx formation using scalarTransportFoam. The results are qualitatively very good when compared to Fluent, however quantitatively they differ by a constant factor. I am not able to understand where I go wrong. Any suggestions ??

arvindpj June 3, 2016 13:39

Quote:

Originally Posted by flowAlways (Post 550875)
Hello, I have successfully implemented thermal NOx formation using scalarTransportFoam. The results are qualitatively very good when compared to Fluent, however quantitatively they differ by a constant factor. I am not able to understand where I go wrong. Any suggestions ??

@flowAlways: Where you able to fix the bug? Is there a better way to compute the PromtNOx and Thermal NOx?

randolph September 11, 2020 11:35

Quote:

Originally Posted by flowAlways (Post 547606)
Hello everyone,

I would like to post-process NOx formation by considering only the global species concentrations for 1-step irreversible methane combustion.

From what I have understood and read I came to the following conclusion.
The formation of thermal NO_x according to the extended Zeldovich mechanism is given by
O + N_2 \rightleftharpoons  N + NO  \quad k_f^1 = 1.8*10^8 e^{-38370/T} \quad  k_b^1 = 3.8*10^7 e^{-425/T} \\

N + O_2 \rightleftharpoons  O + NO \quad  k_f^2 = 1.8*10^4 T e^{-4680/T} \quad  k_b^2 = 3.81*10^3 T e^{-20820/T} \\

N + OH \rightleftharpoons   H + NO \quad  k_f^3 = 7.1*10^7 e^{-450/T} \quad  k_b^3 = 1.7*10^8 e^{-24560/T} \\
with rate constants in m^3/mol-s

The rate of formation of [NO] is then given by
\frac{d[NO]}{dt} \: = \: k_f^1 [O] [N_2] +  k_f^2 [N] [O_2] + k_f^3 [N] [OH] - k_r^1 [NO] [N] - k_r^2 [NO] [O] - k_r^3 [NO] [H]

which under the quasi-steady assumption for [N] can be simplified to
\frac{d[NO]}{dt} \quad = \quad 2 \: k_f^1 \: [O] \: [N_2] \quad  \frac{\left(1-\frac{k_b^1 \: k_b^2 \: {[NO]}^2}{k_f^1 \: [N_2] \: k_f^2  \: [O_2]}\right)}{\left(1+\frac{k_r^1 \: [NO]}{k_f^2 \: [O_2] \: + \:  k_f^3 \: [OH]}\right)} \quad (mol/m^3-s)

with equilibrium concentration of [O] given by [O] = 3.97*10^5 T^{-1/2} e^{-31090/T}\: [O_2]^{1/2} mol/m^3
and the concentration of [OH] is given by [OH] = 2.129*10^2 \:  T^{-0.57} \: e^{-4595/T} \: [O]^{1/2} \: [H_2O]^{1/2} mol/m^3 using partial equilibrium approach.

Therefore, the concentration of [NO] can be obtained by solving the following scalar transport equation with \phi = [NO] and S_{[NO]} = M_{NO} \frac{d[NO]}{dt}
\underbrace{ \frac{\partial{\rho \phi}}{\partial t}}_{Transient \ term} +   \underbrace{ \nabla \cdot (\rho \vec u \phi )}_{Convection \ term}   =\underbrace {\nabla \cdot (\rho D \nabla \phi )}_{Diffusion \ term} +   \underbrace {S_{\phi}}_{Source \ term}\\

So, basically to successfully post-process NOx formation in OpenFOAM we need to solve the scalar transport equation for [NO] with a spatially varying source term which depends upon the concentration of [NO].
Can someone suggest a possible way of doing this. This is a non linear equation and would need to be solved iteratively. I want to implement this in OF but do not know where to start from. Any ideas please ??

Hi,

I ran into similar problems. I post some lesson learned for people like me who was not familiar with the reaction modeling.

An immediate and easy implementation is just using the concentration of [NO] of previous to calculation the source term and then solve the transport equation. If this is how the solver implemented, then the solver may have some potential issue. Typically, I found the reliable solution requires very small time step ~1e-4. This limited by the reaction term.

So here is what is typically done in a spirit of time split scheme to couple the transport and reaction at a different times scales

1. First, solve the nonlinear (can be stiff) ODE of the source/sink term of d[NO]/dt = f (NO). The ODE solves that implemented in OpenFOAM can be used. Notice this step, one may want the ODE to be solved with some accuracy. For low order explicit scheme, most time, it takes large number of time step to solve this ODE within certain accuracy.

2. Once you solve the ODE you will have the concentration at new time [NO]_n+1. Then the sink term can be estimated as ([NO]_n+1 - [NO]_n)/ deltaT. Plug this term into the scalarTransport and solve the transport equation.

3. Iterate above steps.

Note that with time split, the solution should allow a much large time step. However, depends on the problem and treatment of the time split scheme (i.e., order accuracy), one may still need some fair small time step.


A good discussion on the different split schemes can be found in this conference paper https://arc.aiaa.org/doi/10.2514/6.2020-2139

Also, there is very good discussion in another post: https://www.cfd-online.com/Forums/ma...equations.html

Thanks,
Rdf


All times are GMT -4. The time now is 07:42.