convective bc based on mixed
Thanks for the comment.
Is the implementation of convective bc by mixed type in the following way? refValue = Tinf refGradient = 0 valueFraction = 1/(1+k/(h*mag(delta()))) value = ??? |
You can find the description here, just read more careful
|
Problem when formulating the energy equation with enthalpy
Hi Foamers
Following the discussions above, I implemented the groovyBC for simple 2D heat conduction problem. The problem is the cooling of plate by imposing a convective bc from one side. My results seem to be reasonable when I formulate the energy equation with temperature, I mean Density*Cp*(dT/dt) = k(d2T/dx2) But when I am formulating it vs enthalpy as Density* (dh/dt) = k(d2T/dx2), the temperature reach values less than Tinf, which is wrong. Any ideas? |
Do you make correction loops for each time step?
|
makaveli_lcf thanks fro reply
Well this is the main part of the code fvScalarMatrix TEqn ( Density*fvm::ddt(h) - Cond*(fvc::laplacian(T)) ); TEqn.solve(); forAll( T, celli) { T[celli] = (h[celli]-(gL.value()*Latent.value()))/(Cp.value()); } is this what you ask for? |
Ok then you should put a coupling loop (like pimple e.g.) around it, because temperature values which you use in the energy equation for the enthalpy are from the previous iteration and do not meat the energy equation after you calculate them from enthalpy.
|
Do you mean previous time step? My formulation is explicit and I am not concerned about using the previous time step values for T in energy equation. By the way, with the same formulation, I get reasonable results when I use constant temperatures as the boundary condition. So I am almost sure that the problem is in the way I have applied the boundary conditions.
|
No I mean previus ITERATION:
Step #1: you take T from old time step (at least OpenFOAM does it for you in any case) and use them to solve dh(@_new_time_step)/dt=k*laplacian(T(@_old_time_step)) Step #2: update T from new calculated h values Step #3: since T does not fullfil dh/dt = k*laplacian(T) calculate h using T from Step #2 a) If you pretend, that your solver is transient, you have to make coupling loops Step #1-#2 so many times, that T will correspond to the energy equation. Low temperature values can be explained (if you speak about some transient point in your calculation) by the fact that your system h-T is not converged for the current time step. b) If you use transient way to get a steady state solution it is not necessary. But do not try to explain intermediate T values then |
Thanks for your comments, but I still think that there is a problem in implementing boundary conditions and not in the solver, because the solver gives good results with fixed value bc for temperature.
|
You are trying to compare Dirichlet and Robin boundary conditions. First one is fixing your solution to some values, the second contains gradients and nonlinearity, so can couse oscilations around final solution and needs some iterative process if you treat it explicit way and not implicitly... But Ok, it is your choise how check it...
|
limit of applicability of the 1st order approx.
Dear all,
I'm now interested in such a boundary condition (applied to other phenomena). I first must thank you all for your work! I'm sure it will be very useful I just want to mention that the 1D approach is valid for small enough values of Biot number. And NOTE THAT BIOT=1/C!!!!! For planar surfaces, typically Bi<0.1 is enough. This means that wall tangential temperature gradients does not alter the heat flux (what in fact just states that the boundary and internal nodes are close enough to consider 1D conduction) For 1D conduction in planar geometries, with no thermal production and constant thermal conductivity, the temperature difference that appears in Fourier's Law is, definitely, first order. |
changing htot value did not affect the results
Dear All,
Thanks for the good information provided here. I am solving the heat equation (enthalpy) for a food sphere with phase change. I implemented the groovyBC for my problem and in the first glance it seemed to work fine. But when I tried to change the convective heat transfer coefficient (htot) no change in the results occurred and I got the same results. I have tried all the suggestions in this post except the wallHeatTransfer which did not work for me. Any ideas? best SA |
Difference between parameter in groovyBC
Dear all, Thanks for the useful discussion, but I still did not understand the groovyBC completely.
1. What is the difference between the parameters? valueExpression to set Dirichlet-condition, gradientExpression to set Neumann and what is then fractionExpression? The explanation from http://openfoamwiki.net/index.php/Contrib_groovyBC doesn't help me... 2. Still I did not understand the derivation of: type groovyBC; variables "htot=1000.0;Tinf=20.0;rho=800.0;cp=385.0;k=DT*rho *cp;"; valueExpression "Tinf"; fractionExpression "1.0/(1.0 + k/(mag(delta())*htot))"; , but it works in my case. So I want to know why :) GroovyBC is such a powerful tool, so I finally want to understand the tool in detail. Any hints? Thanks a lot in advance :) |
This is a life saver!!!
|
Thank you for the explanation. But, how can I use the 1/deltaCoeff() in the BC file T ??
Many thanks. Alfonso C |
I'm new in openfoam. I'm willing to implement this bc:
k (Tf - Tc)/x + h (Tf - Tinf) = 0 k, Tc, x, Tinf are given values. I want to find Tf, but h is not constant, h should be calculated in each step based in the temperature gradient (-k dT/dy) / (Tf-Tinf). Is it possible to be done? How could I implement it? ps. I would give initial values for Tf and h. |
Fixed Heat Flux In OpenFOAM
I have introduced Temperature equation in icofoam , finally it compiled successfully. Now i am going to solve laminar pipe flow, so i need to implement a constant heat flux on wall. i have heard fixedgradient boundary condition does not implement a constant heat flux.
has any one know how i can improve this problem?:confused: do i need groovy Bc? i dont know how to work whit groovy Bc?:( |
Changing heat transfer coefficient
Hello,
due to your posts I was able to approximate the heat loss in a rectangular bubble column which consists of acrylic glass and is insulated with styropor. At t=0 the bubble column contains water with a temperature of 46°C. As time progresses, the bubble column is fed with air which has a temperature of 18°C. The direct consequence is that the water temperature drops. In order to simulate this heat loss I used groovybc: Quote:
Greetings P_P |
Quote:
Thank you for your great explanation for the use of groovyBC. Could you explain the use of 'refGrad' term in the expression. Thanks again. Saurabh |
Hi Saurabh,
refGrad has a similar meaning than refValue and it is used depending on the Boundary Condition itself. In the case you mention proposed by argonaut its value is 0. However, if the same case had included an extra constant heat flux, for instance a known radiative heat flux, you should have used refGrad in the definition of the Tface expression. To get a better understanding of what I am talking about, please, take a look at this document. Hope it helps. Best regards, Alex |
All times are GMT -4. The time now is 05:35. |