CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Fluent UDF and Scheme Programming (https://www.cfd-online.com/Forums/fluent-udf/)
-   -   Temperature gradient macros on face (https://www.cfd-online.com/Forums/fluent-udf/71613-temperature-gradient-macros-face.html)

qwerty753 January 9, 2010 03:54

Temperature gradient macros on face
 
How to obtain a temperature gradient directly from the solver for the UDF purposes? Does any macro exist to compute temperature gradient on a face?
my aim i to extract heat flux on a face!
Thank you

gearboy March 8, 2010 23:54

Quote:

Originally Posted by qwerty753 (Post 241952)
How to obtain a temperature gradient directly from the solver for the UDF purposes? Does any macro exist to compute temperature gradient on a face?
my aim i to extract heat flux on a face!
Thank you

If your face is a wall boundary, then use WALL_HEAT_FLUX(face_t f,Thread*tf) to directly report the heat flux

qwerty753 March 11, 2010 07:35

Thanks, but i don't need of a heat flux, i want to know dt/dn i.e. gradient.
Bye.

gearboy March 12, 2010 00:08

Quote:

Originally Posted by qwerty753 (Post 241952)
How to obtain a temperature gradient directly from the solver for the UDF purposes? Does any macro exist to compute temperature gradient on a face?
my aim i to extract heat flux on a face!
Thank you

You can define a UDS. loop over all the cells and let its UDS value equal to the temperature gradient , C_UDSI(c,t,0)=C_T_G(c,t).
Then use the UDS gradient on cell, distance vector to compute the temperature gradient on face.

#include "udf.h"
DEFINE_ON_DEMAND(test)
{
face_t f;
cell_t c0;
Thread *tf,*t0;
Domain*domain=Get_Domain(1);
real NV_VEC(dist_vector);
real f_centoid[ND_ND],c_centroid[ND_ND];
real face_value,cell_value;
thread_loop_f(tf, domain)/* loops over all face threads in a domain*/
{
begin_f_loop(f, tf) /* loops over faces in a face thread */
{
F_CENTROID(f_centoid,f,tf); //centroid of a face
c0=F_C0(f,tf);
t0=THREAD_T0(tf);
C_CENTROID(c_centroid,c0,t0); //centroid of the neighbour cell
NV_DD(dist_vector,=,f_centoid[0],f_centoid[1],0,-,c_centroid[0],c_centroid[1],0);
face_value=C_UDSI(c0,t0,0)+NV_DOT(C_UDSI_G(c0,t0,0 ),dist_vector);
cell_value=C_UDSI(c0,t0,0);
Message0("x coord.=%g,face value=%g,cell value=%g\n",f_centoid[0],face_value,cell_value);
}
end_f_loop(f, f_thread)
}
}

kayihana June 16, 2010 03:38

convective boundary condition
 
after writing a similar face gradient, i have to give a mass convection boundary condition with the face and air, but i couldn't manage to put the cell (for air) and face (for solid face) together. can you help me?

Rahul123 March 12, 2013 07:20

I am solving a 2D problem. I want to calculate temperature gradient (and also write it) on the surface(line) whose end points I know. Can anyone tell me how to do it
Thank you

s.m.saad jamil July 31, 2016 11:13

udf for temperature gradient
 
I want x and y component of temperature gradient, please tell me how can i be able to get it.
i have done solve/set/expert to retain various gradients.
but when i am try to run the simulation fatal error occurs.
I am writing my code below.

#include "udf.h"
DEFINE_ADJUST(my_adjust,domain)
{
Thread*t;
cell_t c;
real vol_tot, tavg;
tavg=0.;
vol_tot=0.;
domain=Get_Domain(1);
thread_loop_c(t,domain)
{
begin_c_loop(c,t)
{
vol_tot += C_VOLUME(c,t);
tavg += (C_T(c,t)*C_VOLUME(c,t));
end_c_loop(c,t)
}
tavg= tavg/vol_tot;
printf("Volume integral of temperature:%g\n", tavg);
}
thread_loop_c(t,domain)
{
begin_c_loop(c,t)
{
C_UDMI(c,t,0)=tavg;
C_UDSI(c,t,0)= C_T_G(c,t)[0];
}
end_c_loop(c,t)
}
}
DEFINE_SOURCE(mom_source,c,t,dS,eqn)
{
real x[ND_ND];
real source;
C_CENTROID(x,c,t);
source= 1.0+5.33*(C_T(c,t)-C_UDMI(c,t,0));
dS[eqn]= 0.0;
return source;
}


All times are GMT -4. The time now is 06:08.