|
[Sponsors] |
June 16, 2011, 19:45 |
UDF Data access problems
|
#1 |
New Member
Aaron Mosher
Join Date: Jun 2011
Location: St. Louis
Posts: 5
Rep Power: 15 |
I'm fairly new to Fluent, and as part of teaching myself the UDF structure I made a small UDF to read area and flow at the boundary.
However, when I printed the data to the screen it gave me nothing but nonsense values. Also, when I directly printed the "M_PI" function, the output was somewhere above 1.6 trillion. Has anyone encountered similar problems, or have any thoughts about what might be going wrong? For reference, here is the small UDF I wrote. I applied it as a pressure outlet boundary condition for laminar flow in an axi-symmetric pipe. /************************************************** ************************************** Test function to debug Fluent/UDF operations ************************************************** **************************************/ #include "udf.h" /*Test Axisymmetric Floow and Area*/ DEFINE_PROFILE( area_test, t, i ) { /*Variables*/ real r = 0; real ri[ND_ND]; real q = 0; face_t f; /*Loop Over Faces*/ begin_f_loop( f, t ) { q += 2*M_PI*F_FLUX( f, t ); F_AREA(ri,f,t); r += NV_MAG(ri); F_PROFILE(f,t,i) = 0; printf( "Inside Loop area: %d\n", F_AREA(ri,f,t) ); printf( "INside LOop flux: %d\n", F_FLUX(f,t) ); } end_f_loop( f, t ) /*Print out data*/ printf( "Outlet Area is: %d\n", r ); printf( "Outlet flow is: %d\n", q ); printf( "Fluent thinks pi is %d\n", M_PI); } |
|
June 17, 2011, 04:37 |
|
#2 |
Senior Member
Max
Join Date: Mar 2009
Posts: 133
Rep Power: 17 |
printf("%d",x) outputs data as integer numbers. Your variables are defined as real = floating numbers! The correct format is %g.
cheers |
|
June 17, 2011, 10:52 |
|
#3 |
New Member
John Palmore
Join Date: Jun 2010
Posts: 8
Rep Power: 16 |
One thing to add. I have had problems with UDFs that use FLEUNT builtin functions. Many of the values are not defined until after you initialize your solution. Make sure you initialize your solution before hooking in your UDF. Not sure if this is your error, but if you do this it will help you out in the future.
|
|
June 17, 2011, 12:35 |
Issue Resolved
|
#4 |
New Member
Aaron Mosher
Join Date: Jun 2011
Location: St. Louis
Posts: 5
Rep Power: 15 |
Thanks everyone for the suggestions, switching the printf statements from %d to %g fixed the issue. I thought the output values looked like min or max integer values, and I was very confused.
As a separate question, does anyone have any suggestions for tracking and updating a user defined variable between iterations? I'm trying to model an autoregulation response in the arteries and then adjust a pressure boundary condition accordingly. The closest thing I have found so far is the F_UDMI function. ~Aaron |
|
June 17, 2011, 14:16 |
|
#5 | |
Member
Pranab N Jha
Join Date: Nov 2009
Location: Houston, TX
Posts: 86
Rep Power: 17 |
Quote:
You can use the value stored at the memory location in the next time step (supposing you are doing this way) and then store the new value back in the memory. Always, start with a steady state solver, read in the UDF and then run the steady state solver for 1/2 iterations atleast, even if you dont want a steady solution at that instant. Then load the UDF on your boundary or wherever you want it. Then switch to unsteady mode and start your calculation. This method worked for me. Earlier I used to start my job in batch mode right after reading in the UDFs and used to get memory errors. |
||
Tags |
data access, debugging, udf error |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
I/O of a real value by "DEFINE_RW_FILE" (UDF) | Pietro Asinari | Fluent UDF and Scheme Programming | 1 | August 15, 2015 20:08 |
How can I get access to all flowfield properties throughout the domain by UDF | behrang2009 | Fluent UDF and Scheme Programming | 1 | August 6, 2010 15:03 |
Use of Experimental Data in fluent using UDF | anvitaa.sharma | FLUENT | 2 | February 18, 2010 11:46 |
UDF Data Access Macro | Woo Meng Wai | FLUENT | 0 | November 6, 2007 21:23 |
UDF (write a data file) problem | lichun Dong | FLUENT | 2 | July 29, 2005 12:39 |