# udf velocity profile

 Register Blogs Members List Search Today's Posts Mark Forums Read

 May 20, 2013, 14:47 udf velocity profile #1 New Member   hilla tor Join Date: Nov 2012 Posts: 22 Rep Power: 6 hi I am trying to write a udf function that use the index number in order to put a value from array. I wrote the following function that isn't working Code: ```#include"udf.h" DEFINE_PROFILE(unsteady_velocity, thread, position) { real x[ND_ND]; /* this will hold the position vector */ real y;real A[251]={8,7,6,5,4,3,2,1}; real t = CURRENT_TIME; face_t f; begin_f_loop(f, thread) { F_CENTROID(x,f,thread); c0 = F_C0(f,thread); y = x[1]*2000; F_PROFILE(f, thread, position) =A[c0];} end_f_loop(f, thread)} ``` for example the first y , index=1 so u=A[1]=8; thanks for the help

 May 21, 2013, 01:13 #2 Senior Member   Join Date: Aug 2011 Posts: 315 Rep Power: 14 Are you sure that the range of c0 is in [0, 250] and at least one of these values are in [0,7] ? By the way, c language is zero-based so that A[0] = 8 and A[1] = 7.

 May 21, 2013, 15:23 yes #3 New Member   hilla tor Join Date: Nov 2012 Posts: 22 Rep Power: 6 at my grid the velocity inlet border is the line x=0, -0.01

 May 21, 2013, 20:46 #4 Senior Member   Join Date: Aug 2011 Posts: 315 Rep Power: 14 Try this: #include"udf.h" DEFINE_PROFILE(unsteady_velocity, thread, position) { real x[ND_ND]; /* this will hold the position vector */ real y;real A[251]={8,7,6,5,4,3,2,1}; real t = CURRENT_TIME; face_t f; int ind; begin_f_loop(f, thread) { F_CENTROID(x,f,thread); c0 = F_C0(f,thread); y = 250*(x[1]*50+0.5); ind = (int) (y+0.5); F_PROFILE(f, thread, position) =A[ind]; } end_f_loop(f, thread) }

 May 21, 2013, 22:51 ... #5 New Member   hilla tor Join Date: Nov 2012 Posts: 22 Rep Power: 6 my problem is that my grid is note uniform, there is a why to know the index from the grid? thanks for the help

 May 21, 2013, 23:28 #6 Senior Member   Join Date: Aug 2011 Posts: 315 Rep Power: 14 It is easy to hard-coded your udf file. Print the value of c0. If the value of c0 is contiguous then shift the value so that c0 is in the range [0,250]. Or #include"udf.h" DEFINE_PROFILE(unsteady_velocity, thread, position) { real x[ND_ND]; /* this will hold the position vector */ real y;real A[251]={8,7,6,5,4,3,2,1}; real t = CURRENT_TIME; face_t f; int ind=0; begin_f_loop(f, thread) { F_CENTROID(x,f,thread); c0 = F_C0(f,thread); F_PROFILE(f, thread, position) =A[ind++]; } end_f_loop(f, thread) } if the values of array A is assigned according to its appearance in the thread loop.

 May 23, 2013, 12:10 when i wrote the code #7 New Member   hilla tor Join Date: Nov 2012 Posts: 22 Rep Power: 6 it was written to me the following message will running : Divergence detected in AMG solver: x-momentum thanks for the help

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Oli Fluent UDF and Scheme Programming 6 October 24, 2016 10:38 egge24 Fluent UDF and Scheme Programming 2 May 10, 2012 13:03 cfdworker Fluent UDF and Scheme Programming 0 April 23, 2009 19:09 Anant FLUENT 1 February 27, 2008 15:54 William177 FLUENT 1 February 3, 2008 07:47

All times are GMT -4. The time now is 01:26.