CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   FLUENT (https://www.cfd-online.com/Forums/fluent/)

 shunahshep March 6, 2005 21:06

Hi,

I am just trying to write a simple property UDF and it is not converging (blowing up on energy). i am cut-pasting the complete UDF. can someone pls tell me what i'm doing wrong?

thanks

#include "udf.h"

DEFINE_PROPERTY(cell_viscosity, cell, thread) { real eta_carreau; real eta_carreau1; real temp = C_T(cell, thread); real pressure = C_P(cell, thread); real strain_mag1 = C_STRAIN_RATE_MAG(cell,thread); real strain_mag; real strain_term; real index_1; real tg0 = 362.82; real a1 = 0.29e-06; real c1g = 13.276821; real c2g = 48.52984; real a2 = (-c1g*(temp - tg0)); real a3 = c1g*a1; real a4 = c2g+temp-tg0; real n = 0.294539187; real a = 2.; real eta_inf = 0.0; real eta_zero = 10000.0; real lambda = 0.1;

real ap1 = (a2 + a3*pressure)/(a4 - a1*pressure); real ap = pow(10,ap1);

strain_mag = (strain_mag1)/(ap);

index_1 = (n-1.)/a;

strain_term = pow((lambda*strain_mag),a);

eta_carreau1 = eta_inf + (eta_zero - eta_inf)*pow((1+strain_term),index_1);

eta_carreau = eta_carreau1/(ap);

return eta_carreau; }

 Melaku Habte March 8, 2005 06:39

Hi,

If everything is Ok i.e. the equation that you has no errors in it and you didn't make any typo somewhere in this code then check the following:

1. Units! - just a 5min check will save you hours of headache - I cant stress this more.

2. Check the correlation/empirical equation for what RANGE it is applicable - eg temp range? intermediate values of either pressure or temperature might cause this error. As much as possible try to stay within the range by forcing a good convergence even during the initial iteration.

I included some more below #include "udf.h" DEFINE_PROPERTY(cell_viscosity, cell, thread)

{

/* its always good idea to initialize values if they are needed at first iteration */

real eta_carreau; real eta_carreau1;

real temp = C_T(cell, thread); real pressure = C_P(cell, thread); /* remember your are getting guage pressure here - and am not sure your if equation is based on that */

real strain_mag1 = C_STRAIN_RATE_MAG(cell,thread); real strain_mag; real strain_term;

real index_1; real tg0 = 362.82; real a1 = 0.29e-06; /* 0.29e-6 ? just in case */

real c1g = 13.276821; real c2g = 48.52984; real a2 = (-c1g*(temp - tg0)); real a3 = c1g*a1;

real a4 = c2g+temp-tg0; /* u may check this eqn again */

real n = 0.294539187; real a = 2.; real eta_inf = 0.0; /* you might just omit this if it is always zero */

real eta_zero = 10000.0; real lambda = 0.1; real ap1 = (a2 + a3*pressure)/(a4 - a1*pressure); real ap = pow(10,ap1); /* make sure it is not the other way round pow(ap1,10) */

strain_mag = (strain_mag1)/(ap); index_1 = (n-1.)/a; strain_term = pow((lambda*strain_mag),a);

eta_carreau1 = eta_inf + (eta_zero - eta_inf)*pow((1+strain_term),index_1); eta_carreau = eta_carreau1/(ap);

return eta_carreau;

}

test it and let me know. Also u may get beeter help if you write the coorect equation up here.

regards

Melaku Habte

 shunahshep March 8, 2005 19:45