
[Sponsors] 
May 7, 2010, 06:25 
entropy generation with UDF

#1 
Member
mohammad
Join Date: Apr 2010
Posts: 42
Rep Power: 7 
Dear all
I want to compute entropy generation in tube with constant heat flux. I wrote a udf to compute gradient temperature: # include "udf.h" # include "math.h" DEFINE_ADJUST(adjust_gradient, domain) { Thread *t; cell_t c; face_t f; domain = Get_Domain(1); /* Fill UDS with the variable. */ thread_loop_c (t,domain) { begin_c_loop (c,t) { C_UDSI(c,t,0) = C_T(c,t); } end_c_loop (c,t) } thread_loop_f (t,domain) { if (THREAD_STORAGE(t,SV_UDS_I(0))!=NULL) begin_f_loop (f,t) { F_UDSI(f,t,0) = F_T(f,t); } end_f_loop (f,t) } } DEFINE_ON_DEMAND(store_gradient) { Domain *domain; cell_t c; Thread *t; domain=Get_Domain(1); /* Fill the UDM with magnitude of gradient. */ thread_loop_c (t,domain) { begin_c_loop (c,t) { C_UDMI(c,t,0) =(pow(NV_MAG(C_UDSI_G(c,t,0)),2)); } end_c_loop (c,t) } } //////////////////////////////// after the iteration in custom field function, i defined: dissip=(2 * ((daxialvelocitydx) ^ 2)) + ((daxialvelocitydy) ^ 2) S(generation)=((thermalconductivitylam * udm0) / temperature ^ 2) + ((viscositylam * dissip) / temperature) with this way i compute entropy generation in fluent.I can compile my code and get answer without any problem but my result is wrong(not validated with paper). I think my code for compute gradient temperature is incomplete and i need to compute gradient temperature in face too, but i dont know how can i do that? please help with this problem thanks 

May 7, 2010, 07:32 

#2 
Senior Member
Dragos
Join Date: Mar 2009
Posts: 647
Rep Power: 11 
I think you can easyly skip all the troubles by directly using the temperature gradient provided by fluent?
However, to be able to access gradients you need to tell fluent to store them (check the udf manual section 3.2.3  solve/set/expert). A suggestion: instead of Code:
C_UDMI(c,t,0) =(pow(NV_MAG(C_UDSI_G(c,t,0)),2)); Code:
C_UDMI(c,t,0) =NV_MAG2(C_UDSI_G(c,t,0)); 

May 7, 2010, 12:43 

#3 
Member
mohammad
Join Date: Apr 2010
Posts: 42
Rep Power: 7 
Dear dragos
How can i directly use gradient temperature provided with fluent? there was no gradient temperature(dT/dx) in custom field function panel to use!! I did that(solve/set/expert) but my result was not changed. I tried this code to compute gradient face temperature: # include "udf.h" # include "math.h" DEFINE_ADJUST(adjust_gradient, domain) { Thread *t; cell_t c; face_t f; domain = Get_Domain(1); /* Fill UDS with the variable. */ thread_loop_c (t,domain) { begin_c_loop (c,t) { C_UDSI(c,t,0) = C_T(c,t); } end_c_loop (c,t) } thread_loop_f (t,domain) { if (THREAD_STORAGE(t,SV_UDS_I(0))!=NULL) begin_f_loop (f,t) { F_UDSI(f,t,0) = F_T(f,t); } end_f_loop (f,t) } } DEFINE_ON_DEMAND(store_gradient) { Domain *domain; cell_t c; Thread *t; face_t f; domain=Get_Domain(1); /* Fill the UDM with magnitude of gradient. */ thread_loop_c (t,domain) { begin_c_loop (c,t) { C_UDMI(c,t,0) =(pow(NV_MAG(C_UDSI_G(c,t,0)),2)); } end_c_loop (c,t) } thread_loop_f(t, domain) { begin_f_loop(f,t) { F_UDMI(f,t,0) =(pow(NV_MAG(F_UDSI_G(f,t,0)),2)); } end_f_loop(f, t) } } ///////////////////////// but i got this error: ..\..\src\test.c(48) : error C2109: subscript requires array or pointer type ..\..\src\test.c(48) : error C2109: subscript requires array or pointer type ..\..\src\test.c(48) : error C2109: subscript requires array or pointer type ..\..\src\test.c(48) : error C2109: subscript requires array or pointer type /////////////////////////////////////////////// please help me i don't know how to solve my problem. i am reletively new to UDF. thanks 

May 8, 2010, 04:19 

#4 
Senior Member
Dragos
Join Date: Mar 2009
Posts: 647
Rep Power: 11 
It seems either I missunderstood again your problem, or you mixed up concepts.
To clarify: if you need temperature gradient only as a field function, then you don't need udf's. To get the temperature gradient available in field function you have to tell fluent to store it after each iteration (presuming that you have enabled the energy equation first). If you had red the manual page I suggested, you would have found, that storing the gradients is straight forward: Code:
/solve/set/expert ... Keep temporary solver memory from being freed? [no] yes ... 

May 9, 2010, 17:12 

#5 
Member
mohammad
Join Date: Apr 2010
Posts: 42
Rep Power: 7 
Dear dragos
you solved my problem, thank for your help. As you said there is no need to write udf, i just used "/solve/set/expert". After that i changed criteria of energy from 1e6 to 1e12 and my solution was validated. thanks again 

March 12, 2013, 08:14 

#6 
Member
Satish Gupta
Join Date: Jun 2012
Posts: 30
Rep Power: 5 
Hi,
I am solving a 2D problem. I want to write the value of temperature gradient on a surface (I need the values). Can anyone tell me how to do it......I think a udf is to be written but I dont understand which macro to use. I have the end point coordinates of the surface(line) 

March 12, 2013, 10:39 

#7 
Member
mohammad
Join Date: Apr 2010
Posts: 42
Rep Power: 7 
you don't need to write udf for calculating the gradient. you should just keed the data by typing a command in the console. I can't remember the command but you can find it in the UDF PDF file.


March 12, 2013, 13:41 

#8 
Member
Satish Gupta
Join Date: Jun 2012
Posts: 30
Rep Power: 5 
I want the gradient value on a wall i.e, surface.....will it be possible


March 14, 2013, 16:35 

#9 
Member
mohammad
Join Date: Apr 2010
Posts: 42
Rep Power: 7 
I think it is possible. And the command to keep the memory is :
/solve/set/expert ... Keep temporary solver memory from being freed? [no] yes good luck 

February 13, 2014, 13:50 

#10 
Member
Satish Gupta
Join Date: Jun 2012
Posts: 30
Rep Power: 5 
hi,
could you please write the custom field function for entropy generation 

February 24, 2014, 15:20 

#11 
Member
mohammad
Join Date: Apr 2010
Posts: 42
Rep Power: 7 
Dear Rahul,
Custom field function can be written based on the formula that I have attached in the first post. For adding gradient temperature you need to type the following statement in the cosole: /solve/set/expert...Keep temporary solver memory from being freed? [no] yes...Good luck 

August 30, 2014, 13:03 
Regarding Entropy generation

#12 
New Member
Ashok
Join Date: Aug 2014
Posts: 1
Rep Power: 0 
I tried to calculate the entropy generation using the command: solve/set/expert
Now, I got the reconstructed dTdx, dTdy and dTdz. Can these values directly be used in my custom Field function to compute entropy. Can any one help me out mail me: ashok_iit@hotmail.com 

September 12, 2014, 13:18 
how i enter attached equation in custom filed function?

#13  
New Member
Abdul Sattar Dogonchi
Join Date: Sep 2014
Posts: 1
Rep Power: 0 
Quote:
Hi mohammad how i enter equation that you attached in custom filed function? please help me about this thnx 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
UDF  volumetric heat generation  Thiago Castro  FLUENT  0  February 5, 2008 20:09 
Entropy Generation in compressible flow  Dave  FLUENT  0  January 5, 2004 08:12 
Latest News in Mesh Generation  Robert Schneiders  Main CFD Forum  1  February 18, 2000 01:48 
Latest new in mesh generation  Robert Schneiders  Main CFD Forum  0  February 16, 2000 08:12 
Latest news in mesh generation  Robert Schneiders  Main CFD Forum  0  March 2, 1999 05:07 