Energy balance in solid using chtMRSF
Hi all,
I simulate a heat exchanger using chtMultiRegionSimpleFoam and OF 2.4.0. The results are somewhat realistic but I think there might be a problem with thermal convergence in the SOLID because the heat balance doesn't sum up. heat balance solid: The heat transferred at water side (blue) fluctuates and tops the heat transferred from exhaust gas side (red) which makes no sense for me http://s24.postimg.org/606fppoqd/resq.png Other parameters as global temperature increase, pressure drop and the residuals point to a converging solution (become constant) although the maximum temperature in the fluid rises continously. I measure the transferred heat with a functionObject Code:
energyAbsorbedSOLID |
Another thing are the high time step continuity errors, which decrease but are still quite high
http://s12.postimg.org/l5kezoi71/Scr...5_13_45_37.png Could somebody point me to a good definition of those values so I can understand them better? |
It seems to be a matter of convergence.
If I continue the run it becomes constant with a small difference. Increasing nNonOrthCorrectors in the Solid was also helpful, since more iterations are done for the solid then, which let the case converge faster. |
Quote:
Check your residuals (v2.4.0 has a neat function object for this). If there is no change check the log file if the h equation does iterate. You might want to use minIter 1 to be safe. The residuals alone however are often misleading. Always use the wallHeatFlux utility to check if the heatflux from one region to the next is the same. Then check again in paraview. If the heat flux isn't smooth your mesh might just be to coarse (always check the y+ value. I'd recommend a value below 1). Problems arise if the mesh isn't identical on bothsides which can be significant. Using prism layers helps alot. Temperature on a few patches or min/max values should also be checked. For all of those there are function objects to use. In your case it is probably the relaxation factor. The relaxation factor for h (or e depending on your thermoPhysicalProperties) has a huge influence on convergence speed. I only use them to stop the simulation from crashing in the first few timesteps. I'd fully remove them if possible (in both regions). Another reason might be your mesh or discretisation. |
Hi Stephan,
I am using OF 3.0 now, just to avoid confusion. fvSchemes for WATER Code:
ddtSchemes Code:
solvers fvSchemes for SOLID Code:
ddtSchemes Code:
solvers |
My residuals go down and become constant. For h at 1e-6 but it takes sometime.
I also monitored pressure drop, temperature increase and maximum temperature in fluid and solid which become constant as well. Heat flux I checked with a functionObject for the SOLID region Code:
energyAbsorbedWATER The average yPlus is below one for all walls. |
I also wanted to check the heat balance in the fluid.
And to obtain the enthalpy flow difference between IN- and OUTLET I used Code:
energyOutlet But there seems to be some difference between what is going into the water and what I get from subtracting enthalpy flow for inlet and outlet. |
If your residuals become constant (in one region) make sure that this is not due to not solving anymore.
Code:
Solving for h, Initial residual = .., Final residual = .., No Iterations 0 Code:
solvers Do the same problems occur whitout using polynomial transport? |
1) Number of iterations
Quote:
You are right, thats what happens after some time. Code:
Solving for solid region SOLID Code:
residualControl Or how I can add a minimum number of iterations? |
This is done as mentioned above. You just need to lower your tolerance or add minIter (again highlighted below) in your fvSolution files. This is one of the reasons heat transfer simulations should not be judged by residual alone. Much more import are the temperature values or the heat fluxes. Residual Control only aborts a calculation once the inital residual reaches a certain value. The solver on the other side stops solving once the tolerance or the relative tolerance from one time step to the next is reached . It is however correct that residual control is not implemented in this solver, maybe in part for this reason.
Code:
solvers |
Hi,
your suggestions have been pure gold as they worked out for my case pretty good. But now I am having another question: It seems like I am using a significant amount of energy (17 W) when coupling solid and fluid region with compressible::turbulentTemperatureCoupledBaffleMix ed. Some loss makes sense since I have Arbitrary Mesh Interfaces (AMI) which I couple using nearestPatchFaceAMI. But 17 W is too much and not confirmed by CFX calculations. So I wonder whether it is a matter of thermophysicalProperties I am using temperature dependent values for heat capacity (hPolynomial) and coupling is specified as Code:
{ Is solidThermo temperature dependent or should I use the lookup entry? Description of coupling condition Code:
Description Mixed boundary condition for temperature, to be used for heat-transfer on back-to-back baffles. |
solidThermo is correct for solid regions and fluidThermo correct for fluid regions. This means that kappa is determined via the thermophysical model used. (In your case the polynomial ones) Since the "turbulentTemperatureCoupledBaffleMixed" boundary condition can be used with other solvers and solvers written by yourself it has the lookup functionality. lookup sets kappa to the value specified in the kappa file. (You need to create one and probably modify the chtmultiregion solvers to use it). The name of the file needs to be set by the kappaName entry. Which is why it right now is set to none. If no file is present lookup should however be the same as solidThermo.
One way to check where your looses occur is to use the mapFields utility to map one boundary field to the neighbour region and afterwards subtract them with foamCalc. With that you should see problematic areas. The syntax for this is a bit complicated but you could give it a try. Are the results using the nearestPatchFaceAMI better than with the other options available or why did you switch? And can you post a closeup of the boundary between the regions so I can get a feeling for the differences between the mesh points of the two regions? I do not expect your polynomial to influence your losses. |
All times are GMT -4. The time now is 19:17. |