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/)
-   -   problem with real number in udf (https://www.cfd-online.com/Forums/fluent-udf/132492-problem-real-number-udf.html)

amr mobarez April 1, 2014 15:38

problem with real number in udf
 
hi guys i'm making udf for unsteady inlet velocity ( step train ) with certain value
with respect to time but i having problem with direction and magnitude as some of the flow goes into the reverse direction here is the code i wrote i hope someone can tell me what is wrong with it


#include "udf.h"

DEFINE_PROFILE(unsteady_x_velocity, thread, position)
{
face_t f;

real t = CURRENT_TIME;
if(t < 0.1)
{
F_PROFILE (f, thread, position)= 8.479;
}
if(0.1 < t > 0.2)
{
F_PROFILE (f,thread,position)= 1.357;
}
if(0.2 < t <0.3)
{
F_PROFILE (f,thread,position)= 8.479;
}
if(0.3 < t > 0.4)
{
F_PROFILE (f,thread,position)= 1.357;
}
if(0.4 < t < 0.5)
{
F_PROFILE (f,thread,position)= 8.479;
}
if(0.5 < t < 0.6)
{
F_PROFILE (f,thread,position)= 1.357;
}
if(t > 0.6)
{
F_PROFILE (f, thread, position)= 0;
}
}

diamondx April 2, 2014 17:57

I think you should have a loop !!

amr mobarez April 3, 2014 19:14

you are right diamond x i tried the loop and it corrected the direction , still have problems with values but thanks for helping

upeksa April 4, 2014 07:03

You have ambiguous instructions, for example t>0.4 is defined twice:
in (0.3 < t >0.4) and (0.4 < t < 0.5).

And t=0.1, t=0.2... is not defined.

Check that, is an error you made several times.

User diamondx is right, you need a loop.

Cheers

amr mobarez April 4, 2014 18:01

i fixed it and it worked and here is the right code in case someone needed it

#include "udf.h"

DEFINE_PROFILE(unsteady_x_velocity12, thread, position)
{
face_t f;
real tm = CURRENT_TIME;
begin_f_loop (f,thread)
{
if(tm < 0.1)
{
F_PROFILE (f,thread,position)= 8.479;
}
if(tm > 0.1)
{
F_PROFILE (f,thread,position)= 1.36;
}
if(tm > 0.2)
{
F_PROFILE (f,thread,position)= 8.479;
}
if(tm > 0.3)
{
F_PROFILE (f,thread,position)= 1.36;
}
if(tm > 0.4)
{
F_PROFILE (f,thread,position)= 8.479;
}
if(tm > 0.5)
{
F_PROFILE (f,thread,position)= 1.36;
}
}
end_f_loop (f,thread)
}


All times are GMT -4. The time now is 21:33.