Calculate integrallll!!!!!!!!

 Register Blogs Members List Search Today's Posts Mark Forums Read

 August 5, 2012, 04:37 Calculate integrallll!!!!!!!! #1 New Member   fatyma Join Date: Apr 2012 Location: Iran Posts: 13 Rep Power: 6 I want to calculate an integral spatial. One of the following variables in integral is a UDS function of time and place(UDSI(X,t)).I want to calculate this Integral in every time step in a preprocessing stage. But i confused! Do FLUENT UDS information saves at everyTIME step? What should I do??? HOW call info????????? Here, I attached my UDF file. Maybe you can find the problem and help me! Thank you very much! #include "udf.h" DEFINE_ON_DEMAND(on_demand) { Domain *d; Thread *t; cell_t c; real sum_diss=0.; real sum_dissa=0.; d = Get_Domain(1); thread_loop_c(t,d) { begin_c_loop(c,t) { for(CURRENT_TIME =15.491; CURRENT_TIME > 0.001; CURRENT_TIME--) sum_diss += C_UDSI(c,t,0) * C_R(c,t) * C_VOLUME(c,t); sum_dissa += C_UDSI(c,t,0) * C_VOLUME(c,t); end_c_loop(c,t) } begin_c_loop(c,t) { C_UDMI(c, t, 1) = sum_diss/sum_dissa; } end_c_loop(c,t) } }

 August 5, 2012, 11:39 #2 Senior Member     Amir Join Date: May 2009 Location: Montreal, QC Posts: 739 Blog Entries: 1 Rep Power: 15 Dear Fatemeh, Your implemented algorithm doesn't make sense! you cannot march in time like that; you have to choose a proper macro such as DEFINE_ADJUST which executed each time step and use global variables to store accumulative ones. __________________ Amir

August 6, 2012, 01:37
#3
Senior Member

Ji Junjie
Join Date: Feb 2010
Location: Shanghai, China
Posts: 109
Rep Power: 8
You should use DEFINE_EXECUTE_AT_END so as to sum up the variables you need at the end of each time step. Declare the sum_diss and sum_dissa as global variables(outside the DEFINE_EXECUTE_AT_END macro range).

real sum_diss=0.;
real sum_dissa=0.;
DEFINE_EXECUTE_AT_END(execute_at_end)
{
Domain *d;
cell_t c;

d = Get_Domain(1);
{
begin_c_loop(c,t)
{
sum_diss+=C_UDSI(c,t,0)*C_R(c,t)*C_VOLUME(c,t);
sum_dissa+=C_UDSI(c,t,0)*C_VOLUME(c,t);
C_UDMI(c, t, 1) = sum_diss/sum_dissa;
}
end_c_loop(c,t)
}
Message0("current time=%f,sum_diss=%f,sum_dissa=%f\n",CURRENT_TIME,s um_diss,sum_dissa);
}

Quote:
 Originally Posted by fatemeh chitgarha I want to calculate an integral spatial. One of the following variables in integral is a UDS function of time and place(UDSI(X,t)).I want to calculate this Integral in every time step in a preprocessing stage. But i confused! Do FLUENT UDS information saves at everyTIME step? What should I do??? HOW call info????????? Here, I attached my UDF file. Maybe you can find the problem and help me! Thank you very much! #include "udf.h" DEFINE_ON_DEMAND(on_demand) { Domain *d; Thread *t; cell_t c; real sum_diss=0.; real sum_dissa=0.; d = Get_Domain(1); thread_loop_c(t,d) { begin_c_loop(c,t) { for(CURRENT_TIME =15.491; CURRENT_TIME > 0.001; CURRENT_TIME--) sum_diss += C_UDSI(c,t,0) * C_R(c,t) * C_VOLUME(c,t); sum_dissa += C_UDSI(c,t,0) * C_VOLUME(c,t); end_c_loop(c,t) } begin_c_loop(c,t) { C_UDMI(c, t, 1) = sum_diss/sum_dissa; } end_c_loop(c,t) } }

August 8, 2012, 18:56
#4
New Member

fatyma
Join Date: Apr 2012
Location: Iran
Posts: 13
Rep Power: 6
tnx For YOUR REPLY! if i put C_UDMI in inside loop, integral is soleved for each cell, but i need vloume integral in intire domain in each time step!!!! what do I do?
tnx for help.

Quote:
 Originally Posted by gearboy You should use DEFINE_EXECUTE_AT_END so as to sum up the variables you need at the end of each time step. Declare the sum_diss and sum_dissa as global variables(outside the DEFINE_EXECUTE_AT_END macro range). real sum_diss=0.; real sum_dissa=0.; DEFINE_EXECUTE_AT_END(execute_at_end) { Domain *d; Thread *t; cell_t c; d = Get_Domain(1); thread_loop_c(t,d) { begin_c_loop(c,t) { sum_diss+=C_UDSI(c,t,0)*C_R(c,t)*C_VOLUME(c,t); sum_dissa+=C_UDSI(c,t,0)*C_VOLUME(c,t); C_UDMI(c, t, 1) = sum_diss/sum_dissa; } end_c_loop(c,t) } Message0("current time=%f,sum_diss=%f,sum_dissa=%f\n",CURRENT_TIME,s um_diss,sum_dissa); }

August 8, 2012, 18:59
#5
New Member

fatyma
Join Date: Apr 2012
Location: Iran
Posts: 13
Rep Power: 6

Quote:
 Originally Posted by Amir Dear Fatemeh, Your implemented algorithm doesn't make sense! you cannot march in time like that; you have to choose a proper macro such as DEFINE_ADJUST which executed each time step and use global variables to store accumulative ones.

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Odusseas Tecplot 2 January 26, 2012 06:52 kiran OpenFOAM Post-Processing 2 September 12, 2010 12:59 sbar OpenFOAM Pre-Processing 5 August 16, 2010 04:10 manish CFX 4 March 15, 2007 03:57 chinthakindi Main CFD Forum 0 February 23, 2004 07:36

All times are GMT -4. The time now is 18:41.