You are on page 1of 7

3/21/2014

Viscosity UDFs -- CFD Online Discussion Forums

[Sponsors]

Home News Forums Wiki Links Jobs Books Events Tools Feeds About Search

Home > Forums > Fluent UDF and Scheme Programming

Viscosity UDFs
REGISTER BLOGS C OMMUNITY NEW POSTS

User Name User Name Password UPDATED THREADS

Remember Me Log in SEARCH

LINKBACK April 21, 2009, 12:22 Viscosity UDFs

THREAD TOOLS

DISPLAY MODES #1

Supernova
New Member Richard Join Date: Apr 2009 Posts: 3 Rep Power: 6

Dear all, I am trying to get some udfs for variable viscosity working in Fluent 6.3, although I'm having a great deal of problems in doing so... I want to interpret the following code: #include "udf.h" //Works Casson DEFINE_PROPERTY(cell_viscosity,c,t) { double mu_lam double double double double double double tiny = 0.0000000001; tauy = 0.01083; muinf = 0.0031; m = 200; strain; first;

strain = pow(C_DUDX(c, t),2)+ pow(C_DVDY(c, t),2)+ pow(C_DWDZ(c, t),2)+ 2*pow(C_DUDY(c, t)+ C_DVDX(c, t),2)+ 2*pow(C_DUDZ(c, t)+ C_DWDX(c, t),2)+ 2*pow(C_DVDZ(c, t)+ C_DWDY(c, t),2); strain = pow(strain, 0.5); first = 1-exp(-pow(m*strain,0.5)); mu_lam = pow(muinf,0.5) + pow(tauy/(strain + tiny),0.5)*first; mu_lam = pow(mu_lam, 2); if(cell==100){printf("viscosity = %f",mu_lam);} return mu_lam; } However, when I read my case file, and try to interpret this, I get the following error:
http://www.cfd-online.com/Forums/fluent-udf/63840-viscosity-udfs.html 1/7

3/21/2014

Viscosity UDFs -- CFD Online Discussion Forums

Error: c:\fluent.inc\fluent6.3.26/src/dpm.h: line 1192: parse error. I would greatly appreciate any help I could get on this. Many thanks in advance. Richard

April 22, 2009, 12:13

#2

Supernova
New Member Richard Join Date: Apr 2009 Posts: 3 Rep Power: 6

Can anyone please help me with this? My final year project depends on this, and I don't know much about programming... Thank you.

April 23, 2009, 06:36

#3

Supernova
New Member Richard Join Date: Apr 2009 Posts: 3 Rep Power: 6

Actually forget it, I figured it out in the end: I had my header file in the same folder as my code, so it didn't work!

May 11, 2009, 02:30

#4

Jane

Hi, Supernova strain = pow(C_DUDX(c, t),2)+ pow(C_DVDY(c, t),2)+ pow(C_DWDZ(c, t),2)+ 2*pow(C_DUDY(c, t)+ C_DVDX(c, t),2)+ 2*pow(C_DUDZ(c, t)+ C_DWDX(c, t),2)+ 2*pow(C_DVDZ(c, t)+ C_DWDY(c, t),2); may i know how do you difine the C_DUDX (c,t) and the rest in your UDF??

New Member Jane Join Date: Mar 2009 Posts: 18 Rep Power: 7

May 11, 2009, 04:37

#5

coglione

hello Jane, C_DUDX(c,t) is a predefined macro which returns the derivative of x-velocity with respect to x-coordinate. You do not have to define it by yourself. However there is also a macro C_STRAIN_RATE_MAG(c,t) to access the strain rate for

Senior Member Max Join Date: Mar 2009 Posts: 130 Rep Power: 7

each cell itself, thus there is no reason to compute this value by hand. cheers

http://www.cfd-online.com/Forums/fluent-udf/63840-viscosity-udfs.html

2/7

3/21/2014
May 11, 2009, 05:14

Viscosity UDFs -- CFD Online Discussion Forums


#6

Jane

Hi, coglione Thank you for your reply. for example if i wan to code the equation as show in figure. below is the equation that i code for UDF.

New Member Jane Join Date: Mar 2009 Posts: 18 Rep Power: 7

shear_rate = sqrt (SQR(C_DUDX(c,t))+ SQR(C_DVDY(c,t) + SQR(C_DWDZ(c,t));


may i know the equation that i code into UDF is correct or not?

May 11, 2009, 20:46

#7 Quote:

Jane

New Member Jane Join Date: Mar 2009 Posts: 18 Rep Power: 7

Originally Posted by Jane Hi, coglione Thank you for your reply. for example if i wan to code the equation as show in figure. below is the equation that i code for UDF.

shear_rate = sqrt (SQR(C_DUDX(c,t))+ SQR(C_DVDY(c,t) + SQR(C_DWDZ(c,t));


may i know the equation that i code into UDF is correct or not?

Help me please... i'm just a UDF beginner...please tell me

May 12, 2009, 02:57

#8

coglione

Hello Jane, the correct equation for strain rate is given by supernova in the first message of this thread. Use his coding or simply the macro C_STRAIN_RATE_MAG(c,t). It will return excactly the same and is much more efficient in terms of cpu-time. cheers

Senior Member Max Join Date: Mar 2009 Posts: 130 Rep Power: 7

May 12, 2009, 03:46

#9 Quote:

Jane

New Member Jane Join Date: Mar 2009 Posts: 18 Rep Power: 7

Originally Posted by coglione Hello Jane, the correct equation for strain rate is given by supernova in the first message of this thread. Use his coding or simply the macro C_STRAIN_RATE_MAG(c,t). It will return excactly the same and is much more efficient in terms of cpu-time. cheers

http://www.cfd-online.com/Forums/fluent-udf/63840-viscosity-udfs.html

3/7

3/21/2014

Viscosity UDFs -- CFD Online Discussion Forums

Hi coglione, thank you for your reply i've tried macro C_STRAIN_RATE_MAG(c,t) in the UDF, the problem occurs when i simulate using this predefined strain rate. the continuity graph increase until fluent show errors message. i suspect my shear rate equation caused the increase of continuity, but i still cannot find the solution. can you give me some idea?

May 12, 2009, 07:44

#10

coglione

Senior Member Max Join Date: Mar 2009 Posts: 130 Rep Power: 7

Hello Jane, non-newtonian fluids are always prone for numerical problems due to the highly nonlinear nature of the momentum equation involved. I usually start the simulation with a moderate shear dependency of the viscosity (or even constant one) and switch to the actual rheological model when the approximate solution has converged. This provides a realistic and quite smooth strain field and may help convergence. If instability is still observed lower your relaxation, use first order discretization and if nothing helps at all switch to transient simulation using a small time-step. Hope this helps

May 12, 2009, 08:00

#11 Quote:

Jane

New Member Jane Join Date: Mar 2009 Posts: 18 Rep Power: 7

Originally Posted by coglione Hello Jane, non-newtonian fluids are always prone for numerical problems due to the highly non-linear nature of the momentum equation involved. I usually start the simulation with a moderate shear dependency of the viscosity (or even constant one) and switch to the actual rheological model when the approximate solution has converged. This provides a realistic and quite smooth strain field and may help convergence. If instability is still observed lower your relaxation, use first order discretization and if nothing helps at all switch to transient simulation using a small time-step. Hope this helps Thank you for your advice, finally i get the stable continuity. Thank you very much I found my UDF unable to print the numbers to console. Below is my "message" in UDF. /*Message("UDF: time=%f,shear_rate=%f");*/

May 13, 2009, 11:06

#12

Daniel Tanner
Member

Leave out the outer quotation marks. "Message("UDF: time=%f,shear_rate=%f");"


4/7

http://www.cfd-online.com/Forums/fluent-udf/63840-viscosity-udfs.html

3/21/2014
Daniel Tanner Join Date: Apr 2009 Posts: 54 Rep Power: 6

Viscosity UDFs -- CFD Online Discussion Forums

should be of the form Message("UDF: time=%f,shear_rate=%f", X, Y); where X and Y are the time and shear_rate variables, i.e., you have not told the MESSAGE macro where to find the time and shear rate variables.

May 13, 2009, 20:49

#13 Quote:

Jane

New Member Jane Join Date: Mar 2009 Posts: 18 Rep Power: 7

Originally Posted by Daniel Tanner Leave out the outer quotation marks. "Message("UDF: time=%f,shear_rate=%f");" should be of the form Message("UDF: time=%f,shear_rate=%f", X, Y); where X and Y are the time and shear_rate variables, i.e., you have not told the MESSAGE macro where to find the time and shear rate variables. Thank you very much

March 4, 2011, 10:53

Help Quote:

#14

maple

New Member Join Date: Mar 2011 Posts: 1 Rep Power: 0

Originally Posted by coglione hello Jane, C_DUDX(c,t) is a predefined macro which returns the derivative of xvelocity with respect to x-coordinate. You do not have to define it by yourself. However there is also a macro C_STRAIN_RATE_MAG(c,t)

to access the strain rate for each cell itself, thus there is no reason to compute this value by hand. cheers
Hi Coglione, Your input here has been very useful in my project. I would like to ask a few questions: C_STRAIN_RATE_MAG(c,t) deos it give a dimensionless value? or just the strain rate? This is me code for my model: #include"udf.h" DEFINE_PROPERTY(c_effective_viscosity, cell, thread) { double e_viscos; double m = 200; double a_viscos = 0.0031; double y_stress = 0.01082; double strain; double a; double b; double c; strain = C_STRAIN_RATE_MAG(cell,thread); a = y_stress/strain;
http://www.cfd-online.com/Forums/fluent-udf/63840-viscosity-udfs.html 5/7

3/21/2014

Viscosity UDFs -- CFD Online Discussion Forums

b = m*strain; c = 1-exp(-pow(b,0.5)); e_viscos = pow(a_viscos,0.5)+(pow(a,0.5)*c); e_viscos = pow(e_viscos,2); return e_viscos; } However, when I try to run it, Fluent does not start iterating and shows the following error message. Error: Floating point error: invalid number Error Object: () Can you please help? Regards, Maple

April 10, 2011, 11:03

#15

wendywu
Member xianghong wu Join Date: Mar 2009 Posts: 57 Rep Power: 6

Hello, I am writing a nonNewtonian viscosity model of my own, in the myViscosityModel.c, I wrote shearrate=max(minshearrate, sqrt(2.0*(symm(fvc::grad(u)))&&(symm(fvc::grad(u)) )/3.0); when I compile it with "wmake", error is given as : arguments in max()function has different dimensions [0 0 -1 0 0 0 0] and [0 0 0 0 0 0 0], then I tried to delete one argument, as: shearrate= sqrt(2.0*(symm(fvc::grad(u)))&&(symm(fvc::grad(u)) )/3.0; wmake it, still one error exist, but I didn't found out the error, then I changed it back, as original: shearrate=max(minshearrate, sqrt(2.0*(symm(fvc::grad(u)))&&(symm(fvc::grad(u)) )/3.0); then I wmake it, still one error ,but this time the output is much more than the first time, I can not find where the error is, I am confused, the same code, leads to different output, what is the problem? I checked the dimensions of the two arguments of max(), there are both 1/second, why it thinks the second argument 's dimension is [0 0 0 0 0 0 0]? anybody has any idea? thank you. and sorry for disturbing. wendy

April 11, 2011, 03:08

#16

coglione

Senior Member Max Join Date: Mar 2009 Posts: 130 Rep Power: 7

Are you sure this is the right forum for this question? It sounds pretty much like OpenFoam which has its own userforum here on cfdonline. cheers

April 12, 2011, 09:08

#17 Quote:

wendywu
Member

Originally Posted by coglione


6/7

http://www.cfd-online.com/Forums/fluent-udf/63840-viscosity-udfs.html

3/21/2014
xianghong wu Join Date: Mar 2009 Posts: 57 Rep Power: 6

Viscosity UDFs -- CFD Online Discussion Forums

Are you sure this is the right forum for this question? It sounds pretty much like OpenFoam which has its own userforum here on cfd-online. cheers yeah, Thank you for reminding.

Previous Thread | Next Thread Posting Rules You You You You may may may may not not not not post new threads post replies post attachments edit your posts

BB code is On Smilies are On [IMG] code is On HTML code is Off Trackbacks are On Pingbacks are On Refbacks are On Forum Rules

Similar Threads
Thread Unsteady and Flux UDFs for UDSs Turbulence viscosity limited kinematic viscosity at diff temperatures,pressures Turbulent viscosity in a riser Problem of Turbulent Viscosity Ratio Limited Thread Starter tom Madhukar Rapaka Mecobio ap David Yang FLUENT FLUENT Main C FD Forum FLUENT FLUENT Forum Replies 0 0 0 8 3 Last Post February 13, 2009 10:27 June 26, 2006 03:17 November 7, 2005 12:55 April 19, 2003 08:00 June 3, 2002 06:13

All times are GMT -4. The time now is 02:48. Contact Us - CFD Online - Top

CFD Online

http://www.cfd-online.com/Forums/fluent-udf/63840-viscosity-udfs.html

7/7

You might also like