Real Gas EOS - putting critical coefficients as zero

54 views
Skip to first unread message

Omkar Kedge

unread,
Jan 22, 2026, 9:00:25 PMJan 22
to Cantera Users' Group

Hi all,

I'm working with a large mechanism and need to use a real gas equation of state. However, many species in my mechanism (radicals, intermediates etc) don't have published critical properties.

My question is: if I want to use a real gas EOS but lack critical property data for some species, is there a recommended way to make those species behave as ideal gas within the real gas framework?

Mathematically, setting a=0 and b=0 should cause the cubic EOS to converge to ideal gas behavior (PV=nRT), but I'm encountering NaN errors when I try this approach. I've tested this with both Peng-Robinson (with a=0, b=0, and acentric-factor=0) and Redlich-Kwong (with a=0, b=0), and both return NaN errors. I'm using Cantera 3.1.

Looking at the source code for RedlichKwongMFTP (https://github.com/Cantera/cantera/blob/main/src/thermo/RedlichKwongMFTP.cpp), I noticed that calcCriticalConditions() has explicit guards for b <= 0 and a <= 0 cases, returning early with placeholder values. However, other functions like hresid() divide by m_b_current directly, which causes division by zero when b=0.

One workaround I've seen is using a=1 and b=1 for radicals. While this avoids the division by zero, it introduces errors in the mixing rules at higher species concentrations. For trace species like radicals at ppm levels the error is negligible, but for species that can reach significant mole fractions (like biomass surrogates during pyrolysis), the error in b_mix can be several percent.

I have a few questions for the community:

  1. Is there a recommended approach for handling species without critical property data in a real gas phase?
  2. Would it be feasible to add limit-handling in the departure functions (hresid, sresid, etc.) similar to what exists in calcCriticalConditions()?

Thanks in advance for any guidance.
Omkar

Z. Weng

unread,
Jan 23, 2026, 9:58:39 AMJan 23
to canter...@googlegroups.com
Hi, Omkar

There are some empirical correlations based on the Lennard-Jones parameters to predict the critical temperature and pressure, such as https://pubs.acs.org/doi/10.1021/acs.jcim.9b00620https://www.sciencedirect.com/science/article/pii/S0010218022003339. The Lennard-Jones parameters are usually available in the transport data of a mechanism.

Limit-handling of departure functions might be possible. In the reference mechanism (nDodecane_Reitz.yaml), a, b are on the order of 1E10, 1E1~1E2, respectively. So setting them to a small value (above 0) should be helpful to recover the ideal-gas limit.

Best
Z.

Omkar Kedge <kedgeo...@gmail.com> 于2026年1月23日周五 10:00写道:
--
You received this message because you are subscribed to the Google Groups "Cantera Users' Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cantera-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cantera-users/44c17085-7df3-4a8d-9213-72c415f6f1b2n%40googlegroups.com.

Omkar Kedge

unread,
Feb 2, 2026, 4:30:06 PMFeb 2
to Cantera Users' Group
Thank you for replying Z. 

I don't think estimating Lennard-Jones parameters to predict the critical temperature and pressure would be appropriate in my case, I am using a surrogate gas to mimic a solid. 

I did think about setting a and b to very small values, I am not sure how much the computational load increases. Curious if you have tried this approach?

Thanks!

Z. Weng

unread,
Feb 3, 2026, 6:34:34 AMFeb 3
to canter...@googlegroups.com
Hi, Omkar,

I didn’t try setting a and b to small values. But the computation load would be similar regardless of the values of a and b. Compared to an ideal gas, the computation time can be ~5 times longer. But this difference varies with the number of species. If the high-pressure transport model is used, then much more computation would be required.

Best
Z.

Reply all
Reply to author
Forward
0 new messages