View Issue Details

IDProjectCategoryView StatusLast Update
0003363OpenFOAMContributionpublic2019-10-09 14:18
ReportervijayAssigned Towill 
Status closedResolutionno change required 
PlatformLinuxOSOpenSuSEOS Version15.1
Product Version6 
Fixed in Versiondev 
Summary0003363: Solved unphysical temperature fields in multi-species gas tranport solver
While simulating multiple species gas transport with solver "reactingFoam" (also applicable to other solvers in the same family), unphysical temperature fields were found. This affected the solver stability in many cases. This issue was already reported in the ""

On examining, the unphysical temperature field was due to three major bugs
- Ignoring enthalpy transport due to species diffusion.
- Wrong formulation of "Heat conduction term"
- A minor problem in the algorithm (applicable to "reactingParcelFoam" solver only)

Corrections were made in the solver "modifiedReactingFoam" and the improvement is shown via a "mixingChannel" case with two gas species (Steam and Helium) at Isothermal temperature (300 K). Two inlets (Left) and one outlet (right). Helium gas at the top inlet and Steam at the bottom inlet. A mixing layer is formed inside the channel. The temperature diverges from the initial isothermal value with the "reactingFoam" solver, whereas isothermal temperature field is maintained with the "modifiedReactingFoam" solver.

Detailed documentation can be found in the paper "Development and verification of a multi-species gas transport solver" by Vijaya Kumar. G et. al. presented in OpenFoam workshop 14, Duisburg.

The following files are attached
- Test case (mixingChannel.tar.gz)
- Modified solver (modifiedReactingFoam.tar.gz)
- Temperature field (correct vs incorrect)
Steps To Reproduce- Compile "modifiedReactingFoam"
- Run the mixingChannel case with "reactingFoam" and "modifiedReactingFoam"
Additional InformationNone
TagsNo tags attached.



2019-10-08 16:57


mixingChannel.tar.gz (628,487 bytes)
Temperature.png (31,237 bytes)
Temperature.png (31,237 bytes)
modifiedReactingFoam.tar.gz (5,771 bytes)


2019-10-08 16:58

reporter   ~0010815

Development and verification of a multi-species gas transport solver" by Vijaya Kumar. G et. al. presented in OpenFoam workshop 14, Duisburg

Development_and_verification_of_a_multi_species_gas_transport_solver.pdf (1,413,144 bytes)


2019-10-08 17:47

manager   ~0010817

Have you tried dev? We recently made a change to the diffusivity of species fractions that should resolve this.


2019-10-09 08:47

reporter   ~0010819

Two points.
1) I checked the dev and there Lewis number = 1 formulation is adapted i.e. Thermal diffusivity = Mass diffusivity (alphaEff). This method gives the correct temperature field when the specific heat capacity of individual species (Cpi) is constant with temperature. Is this method applicable to cases where Cpi is a function of temperature? In other words, in regions of strong temperature gradients, there is a possibility of gradients of Cpi to be significant. Can this bug fix handle that?
2) In the "reactingFoam" solver, the continuity equation (rhoEqn.H) is solved at the start of each pimple iteration. But in the "reactingParcelFoam" solver, the continuity equation is not solved at the start of each pimple iteration. There is an "if" condition that prevents this. This inconsistency in the "reactingParcelFoam" solver gives rise to unphysical temperature fields and affects solver stability.


2019-10-09 11:34

manager   ~0010820

I've run your case in dev and the resulting temperature field is uniform, so I consider this bug report resolved.

Regarding your additional points:

1) My understanding is that dev should be correct for variable Cp. Judging it would be very tricky, though. If you create a significant enough temperature change to affect Cp you're unlikely to be able to identify a much smaller temperature error resulting from the energy transport. If you can find a way of testing it, and you observe an error, please upload another report.

2) I don't know the origin of this if condition. It's only in this solver and chtMultiRegionFoam. I agree that it does not look correct; the density equation should always be solved before the pimple loop to make sure that the flux and the density derivative are consistent within the first pimple iteration. I will remove it and see how the tutorials react. Feel free to open another bug report if you want to discuss/track the issue or if you have a case to upload which demonstrates the effect.


2019-10-09 14:17

manager   ~0010823

Last edited: 2019-10-09 14:18

View 2 revisions

On further investigation it was concluded that the "if" condition in reactingParcelFoam and chtMultiRegionFoam was not correct. It has been removed/corrected in dev by the following commit.

Issue History

Date Modified Username Field Change
2019-10-08 16:57 vijay New Issue
2019-10-08 16:57 vijay File Added: mixingChannel.tar.gz
2019-10-08 16:57 vijay File Added: Temperature.png
2019-10-08 16:57 vijay File Added: modifiedReactingFoam.tar.gz
2019-10-08 16:58 vijay File Added: Development_and_verification_of_a_multi_species_gas_transport_solver.pdf
2019-10-08 16:58 vijay Note Added: 0010815
2019-10-08 17:47 will Note Added: 0010817
2019-10-09 08:47 vijay Note Added: 0010819
2019-10-09 11:34 will Assigned To => will
2019-10-09 11:34 will Status new => closed
2019-10-09 11:34 will Resolution open => no change required
2019-10-09 11:34 will Fixed in Version => dev
2019-10-09 11:34 will Note Added: 0010820
2019-10-09 14:17 will Note Added: 0010823
2019-10-09 14:18 will Note Edited: 0010823 View Revisions