Slow convergence of chtMultiRegionSimpleFoam
I have a rather simple chtMultiRegionSimpleFoam problem that I am using to verify and validate a natural convection simulation. Unlike the chtMultiRegionSimpleFoam tutorial, I have applied a fixed gradient bc of q/k instead of a fixed temperature. I would expect that the solid would heat up much quicker than it does. Instead, the temperature rises very slowly and is still nowhere near the back-of-the-envelope calculation after a time of 10000.
I've attached the case, in case someone would like to see what the problem is.
Although, I've given up hope for the cht solver working with all flux inputs, I can obtain the desired solution iteratively by applying a temperature and monitoring the flux at the interfacial boundary by setting the debug flag
in the master or home (~/.OpenFOAM/1.7.0/controlDict) controlDict.
I am attaching a case in which I model the aluminum frame of a thin LED light fixture nearly flush against the ceiling. To generate the mesh, I have a written a small python program to generate the blockMeshDict file.
From inspection of the coupling patch code, it appears that only the calculated wall temperature is exchanged. Thus if I start the solid at 300 deg and the fluid at 300 deg, the wall temperature will be 300 deg. Considering that q = delta_T/R_tot where R_tot is the thermal resistance, the expected delta_T will be very small.
If instead of sharing the wall temperature, we instead calculate the flux at the interface and apply a fixed gradient to the solid and the harmonic mean of Ts, Tf to the wall for the fluid, then the initial fixed gradient will be zero (adiabatic). In this way, I think the temperature convergence problem can be solved when applying only a directGradient to the solid. I will be pursuing creating and/or funding such a boundary condition. A cursory literature search has indicated that this has been done before in OpenFOAM. I will start with compressible::turbulentTemperatureCoupledBaffle and extend from there.
In the interim, I have found that I can iterate a few times with applied temperature while monitoring the interfacial wall flux to determine the applied temperature that produces the desired flux. Not optimum, but workable.
The solution was in OpenFOAM I think since 1.6.
Steps for a chtMultiRegionSimpleFoam solution:
1.) Apply the heatFlux with solidWallHeatFluxTemperature
2.) Couple the fluid and solid with solidWallMixedTemperatureCoupled. This requires copying and modfying the solidWallMixedTemperatureCoupled in applications/solvers/heatTransfer/chtMultiRegionFoam/derivedFvPatchFields/solidWallMixedTemperatureCoupled to applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/derivedFvPatchFields/solidWallMixedTemperatureCoupled
3.) Make changes to the solid solution similar to this post
I have pushed a git branch of OpenFOAM 1.7.x to git://github.com/crmccreary/chtMultiRegionSimpleFoam-example.git as well as the sample problem git://github.com/crmccreary/chtMultiRegionSimpleFoam-example.git
|All times are GMT -4. The time now is 16:50.|