CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Fluent UDF and Scheme Programming (https://www.cfd-online.com/Forums/fluent-udf/)

 rachana December 28, 2012 17:19

Hi, I am trying to define unsteady temperature profile in Fluent. The same profile has to be repeated everyday, where the temperature linearly increases from 300 K to 305 K for 1st 8 hours, then linearly decreases back to 300 K in the next 8 hours and then remains constant at 292 K for the last 8 hours. I am using the following code for the udf. But the result I am getting shows the temperature to increase continuously using the 1st profile (but it doesn't stop at 305 and just keeps increasing). Please help me out here. I had been struggling with this for days.

#include "udf.h"

{
face_t f;
int n;
real t = CURRENT_TIME;

{

for (n=1; n<=31; n+=3)

{

if (CURRENT_TIME <= 3600*8*n)
F_PROFILE(f, thread, position) = 300.0 + 5.0 * (t/8.0/3600.0);

else if(CURRENT_TIME <= (3600*8*(n+1)))
F_PROFILE(f, thread, position) = 305.0 - 5.0/8.0 * (t/3600.0-8.0);

else
F_PROFILE(f, thread, position) = 292.0 + 0.0 * t;

}

}

}

 Sixkillers December 29, 2012 04:59

Obviously your solution through for cycle isn't working as you want. I think that much more easier solution is just to simply subtract number of days from current time and then use it in your "decision tree". So here is my approach:

PHP Code:

``` #include "udf.h" DEFINE_PROFILE(unsteady_temperature, thread, position) {   face_t f;   int days;   real t = CURRENT_TIME;      days = (int)(t /(24.0*3600.0));   t = t - 24.0*3600.0*days;   begin_f_loop(f, thread)   {     if (t <= 3600*8)       F_PROFILE(f, thread, position) = 300.0 + 5.0 * (t/8.0/3600.0);     else if(t <= (3600*16))       F_PROFILE(f, thread, position) = 305.0 - 5.0/8.0 * (t/3600.0-8.0);     else        F_PROFILE(f, thread, position) = 292.0 + 0.0 * t;   }   end_f_loop(f, thread) }  ```
I did not test it too much, so it is up to you :)

 rachana December 29, 2012 10:16

Thank you very very much. It worked. I had done 2 days analysis by subtracting 24 hours in 2nd day profile. But didn't know how to extend it for longer period of time. Thanks a lot.

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