externalWallHeatFluxTemperature wrong behavior when both thermal resistance and radiative heat transfer are activated
Summary
The externalWallHeatFluxTemperature boundary condition provides wrong results when dealing with both thermal resistance and external radiative heat flux. This is because of some implementation errors (from line 379 to line 408) in the original boundary condition.
Steps to reproduce
Run the attached test case named stardardBC.
Example case
Attached you can find a folder which contains the proposed fix for this boundary condition (externalWallHeatFluxTemperatureFixed) and three test cases which show the issue and that the proposed fix works correctly. The tests are performed with solidFoam solver: a 1D conductive problem with a fixed heat flux BC on one side and heat losses with the environment applied to the other side is solved.
In the test case named stardardBC, the currently implemented externalWallHeatFluxTemperature BC is applied on the interface with the environment. A virtual solid layer of thickness 0.003 m and conductivity equal to the value of the solid is modeled as a thermal resistance. The emissivity is set to 0.5 to activate external external radiative heat losses.
In the test named fullyResolved, one cell of thickness equal to 0.003 m is added to the solid domain, so the virtual solid layer modeled in the BC of the previous test case is fully resolved. The same externalWallHeatFluxTemperature BC without equivalent thermal resistance is applied on the interface with the environment.
Finally, the test case named fixedBC share the same setup of stardardBC case, but with the fixed boundary condition.
What is the current bug behaviour?
The treatment of the radiative heat flux is not correct when the external surface temperature is different than the internal face temperature because of wrong computation of the thermal resistance. The steady state temperature profile of test case named stardardBC does not match the one of the case named fullyResolved (see picture below).
What is the expected correct behavior?
The steady state temperature profile of test case named stardardBC should match the one of the case named fullyResolved (see picture below).
Relevant logs and/or images
Comparison of the Temperature profiles of the first three cells within solid domain.
Environment information
- OpenFOAM version : v2112
- Operating system : ubuntu
- Compiler : gcc
Possible fixes
The externalWallHeatFluxTemperatureFixed boundary condition provided in the attached folder shows a way to solve this issue. The radiative heat flux can be rewritten as an equivalent convective heat flux with a convection coefficient which is function of the third power of the temperature. In this format, this coefficient can be introduced in the thermal resistance to correctly estimate the temperature on the virtual external surface in contact with the ambient. As the radiative equivalent convection coefficient is a non linear function of the external surface temperature, an iterative method has to be used for find the correct value. In the provided code, this is implemented in a quite straightforward way, but which works well, with a while loop which usually converges after only one or two iterations. The fixing lines are from 383 to 429.
Just run the Allrun script in the main folder to solve the three test cases and generate the image shown in the previous section with grace software.