![]() |
externalWallHeatFluxTemperature when combining radiation and conduction
2 Attachment(s)
Hi foamers,
There is a problem when applying both external radiation and solid heat resistance when using externalWallHeatFluxTemperature. I'm simulating a combustion process in a horizontal cylindrical furnace using chtMultiRegionFoam in OpenFOAM-v5.0. This furnace is located outside and the wall of the furnace loses its heat to the environment via thermal radiation and convection. Since the solid wall region surrounds the cylindrical gas region, the solid could be replaced by the advanced boundary condition externalWallHeatFluxTemperature, and then you only have to simulate the gas region. So with a solid region the BC for the outer wall patch is: Code:
wallExternal And without the solid region (but wall thermal resistance included), the BC at the inner wall patch is: Code:
wallInternal However, for the case without the solid region. The gas temperature increases dramatically compared to the case with solid region, which doesn't make sense at all. I attached two plots of temperature against # of iterations for both cases to illustrate the difference in average outlet temperature. When looking at the source code I find it difficult to understand how the solid thermal resistance is incorporated when thermal radiation is activated. Can someone please explain to me what is happening here (second if-scope)? I think that something is wrong here. Code:
if (emissivity_ > 0) Mohamed |
If I exclude radiation (emissivity = 0) and make the convective heat transfer coefficient big enough (say h = 20), then I get the same result with and without the solid region. Also in the source code it makes sense and we see the familiar composition of convection and conduction to determine the overall heat transfer coefficient hp.
Code:
case fixedHeatTransferCoeff: |
I had the same problem with OpenFOAM-8. The radiation term of the BC seem to not work well. I used the classic approach of considering that the heat transfer coefficient from radiation if given by:
qrad = h_rad (Ta-Tp), where h_rad = sigma*emissivity*(Ta^4-Tp^4)/(Ta-Tp) The total heat flux is then given by: q = h (Ta-Tp) + h_rad (Ta-Tp) = (h + h_rad)*(Ta-Tp) We can then replace h by (h+h_rad). This approach should work fine if the difference between Ta and Tp is no very high. Using this approach, I have replaced the following code: // scalarField hp(1/(1/h_ + totalSolidRes)); // // const scalar Ta = //Ta_->value(this->db().time().timeOutputValue()); // scalarField hpTa(hp*Ta); // if (emissivity_ > 0) // { // // Evaluate the radiative flux to the environment // // from the surface temperature ... // if (totalSolidRes > 0) // { // // ... including the effect of the solid wall thermal // // resistance // scalarField TpLambda(h_/(h_ + 1/totalSolidRes)); // scalarField Ts(TpLambda*Tp + (1 - TpLambda)*Ta); // scalarField lambdaTa4(pow4((1 - TpLambda)*Ta)); // // hp += emissivity_*sigma.value()*(pow4(Ts) - lambdaTa4)/Tp; // hpTa += emissivity_*sigma.value()*(lambdaTa4 + pow4(Ta)); // } // else // { // // ... if there is no solid wall thermal resistance use // // the current wall temperature // hp += emissivity_*sigma.value()*pow3(Tp); // hpTa += emissivity_*sigma.value()*pow4(Ta); // } // } by const scalar Ta = Ta_->value(this->db().time().timeOutputValue()); scalarField hp(1/( 1/( h_+emissivity_*sigma.value()*(pow4(Ta)-pow4(Tp))/(Ta-Tp+VSMALL) ) + totalSolidRes ) ); scalarField hpTa(hp*Ta); |
externaWallHeatFluxtemperature problem
from my experience with openFoam7, it is impossible to submit radiative flux and convective flux at the same time on a patch with externaWallHeatFluxtemperature.
it's a pity. Such a BC corresponds to a standard case: A heated solid in air exchanging both with radiation and convection. With such BC , it would be possible to calculate the exchange with air without meshing the air region |
All times are GMT -4. The time now is 21:41. |