View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003363||OpenFOAM||Contribution||public||2019-10-08 16:57||2019-10-09 14:18|
|Status||closed||Resolution||no change required|
|Fixed in Version||dev|
|Summary||0003363: 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 "https://bugs.openfoam.org/view.php?id=3186#c10351"
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"
|Tags||No tags attached.|
mixingChannel.tar.gz (628,487 bytes)
Temperature.png (31,237 bytes)
Temperature.png (31,237 bytes)modifiedReactingFoam.tar.gz (5,771 bytes)
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)
||Have you tried dev? We recently made a change to the diffusivity of species fractions that should resolve this.|
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.
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.
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.
|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|