I had a code for defining new viscousity for blood, but when I interpret it, it says:
C:\Users\NoneStop\Desktop\viscous.c: line 18: function returning double returns float.
the code is here:
# include "udf.h"
# define n 0.67
# define alpha 1.0
# define muo 0.0042
for(i=0; i<3; i++)
u[i] = C_U_G(cell,thread)[i];
v[i] = C_V_G(cell,thread)[i];
w[i] = C_W_G(cell,thread)[i];
trace = 0.5*(2*pow(u,2) + pow(v+u,2) + 2*pow(v,2) + pow(v+w,2) + 2*pow(w,2) + pow(w+u,2));
visc = 0.5*muo*pow(1+alpha*trace,0.67);
what should I do?
please help me...
You don't have to worry about this.
You are running Fluent in double precision, but the udf you wrote returns a value in single precision. The interpreter gives a warning about this, but for viscosity it is no problem to use single precision.
If you want to get rid of this warning, you can:
- Run Fluent in single precision (probably not preferred)
- Change the variable "visc" to a double (define it as "double visc" instead of "float visc".
- Explicitly cast the result into a double: change "return visc;" into "return (double)visc;"
disclaimer: I did not test these options, my syntax may be slightly wrong.
But you can also choose to ignore the warning.
thank u so much Mr PaKK
The error went away!!
I want to run my case
but when I initialize it, says:
FLUENT received fatal signal (ACCESS_VIOLATION)
1. Note exact events leading to error.
2. Save case/data under new name.
3. Exit program and restart to continue.
4. Report error to your distributor.
Error Object: ()
why is this error for?
|All times are GMT -4. The time now is 23:16.|