CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   FLUENT (http://www.cfd-online.com/Forums/fluent/)
-   -   parse error in transient udf (http://www.cfd-online.com/Forums/fluent/77822-parse-error-transient-udf.html)

spring July 5, 2010 10:32

parse error in transient udf
 
Hey guys,

when I try to interprete the following transient udf, I always get two parse errors.

Here is my UDF:


#include "udf.h" /* must be at the beginning of every UDF */

/* constants: */
#define R 8. /* inlet radius [mm] (with actual scaling in Fluent applied!) */
#define VFLOW 15. /* effective volume flow [l/min] */
#define POWER 1./7. /* 1/7 power law defining turbulent profile */
#define f 15. /* breathing frequency */
#define tidal 0.5 /* tidal volume */


DEFINE_PROFILE(unsteady_velocity,thread,index)
{
double PI;
real Umax; /* maximal inlet velocity */
real x[ND_ND]; /* this will hold the position vector every single face centroid */
real r;
real U;
real breath;
face_t f;

real t = CURRENT_TIME;

PI = acos(-1.);
Umax = pow(10.,3.)*VFLOW/PI/pow((R),2.)/49.;
breath = tidal/PI/f*sin(2*PI*f*t);

begin_f_loop(f,thread) /* loops over all faces in the thread passed
in the DEFINE macro argument */
{
F_CENTROID(x,f,thread);
r = sqrt(pow((1000*x[0]),2.)+pow((1000*x[2]),2.));
U = Umax*pow((1.-r/R),POWER);

if (breath > 0.0)
{F_PROFILE(f,thread,index) = U*breath;}
else
{F_PROFILE(f,thread,index) = 0.0;}
}
end_f_loop(f,thread)
}


The errors are in the red lines.

Errors:

Error: \UDFprofile3D_tansient.c: line 26: parse error.
Error: \UDFprofile3D_tansient.c: line 28: parse error.
Error: \UDFprofile3D_tansient.c: line 32: t: undeclared variable


I dont't know how to remove this errors, because I can't find any fault in my udf. But maybe your eyes are better than mine, and you can help me and tell me where my fault is :)
And I dont' think that's a problem caused be interpreting the UDF, because I've made the right steps:
1. activate "transient" under General
2. and interprete the udf as usual; Define->User Defined->Functions->Interpreted

Thank you very much in advance!

spring

spring July 6, 2010 06:26

Hi,

I've found my errors. I used the variable f twice: once as a frequence and the second time in the expression face_t f. That's once too much, hehe.
I also forgot to ad an f in the expression F_CENTROID(x,thread) ...

Bye!


All times are GMT -4. The time now is 12:30.