CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   FLUENT (https://www.cfd-online.com/Forums/fluent/)
-   -   HELP!! parse error in UDF (https://www.cfd-online.com/Forums/fluent/101714-help-parse-error-udf.html)

 fevi84 May 11, 2012 15:01

HELP!! parse error in UDF

I'm using the VOF model in 3D, with water (ID=2) as primary phase and air (ID=3) as secondary phase. I made a UDF for initializing volume fraction of phase air with the Taylor bubble form (a cylinder with a half sphere at the top).

#include "udf.h"

#define Xc 0.0
#define Yc 0.0
#define Zc 0.045
#define r 0.0085

DEFINE_INIT(gas_fraction_axis,mixture_domain)
{
int phase_domain_index;
cell_t c;
Domain *sd;
real X[ND_ND];

sub_domain_loop(sd,mixture_domain,phase_domain_ind ex)
{
if (DOMAIN_ID(sd) == 3)

{
begin_c_loop_all (c,ct)
{
C_CENTROID(X,c,ct);
line 25 if (X[2]<=Zc && sqrt(ND_SUM(pow(X[0]-Xc,2),pow(X[1]-Yc,2)))<r)
C_VOF(c,ct)=1.;
line 27 else if (X[2]<=Zc && sqrt(ND_SUM(pow(X[0]-Xc,2),pow(X[1]-Yc,2),pow(X[2]-Zc,2)))>r)
C_VOF(c,ct)=1.;
line 29 else
C_VOF(c,ct)=0.0;
}
end_c_loop_all (c,ct)
}
}
}

When i interpret my UDF file, it says parse error in line 25, line 27 and line 29.

This UDF is similar to that appear in UDF manual FLUENT 12 page 333, but I don't know why it fails.

Someone knows the problem?

Thank you

 mali28 May 12, 2012 10:02

You can not have

sqrt(ND_SUM(pow(X[0]-Xc,2),pow(X[1]-Yc,2)))<r)

sqrt and , in it.

If you want to have it as power, then remove this sqrt and use pow.

 fevi84 May 14, 2012 12:48

Thank you mali28.

I found the error. The error is ND_SUM(pow(X[0]-Xc,2),pow(X[1]-Yc,2))), due to ND_SUM is setting for 3D. In the below expression lack the z component.

ND_SUM(x, y, z)
2D: x + y;
3D: x + y + z;

The correct expression in the line 25 is:

sqrt((pow(X[0]-Xc,2) + pow(X[1]-Yc,2)))<r

doing that, it works

 All times are GMT -4. The time now is 19:58.