# UDF "running frequency"

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

 March 22, 2011, 10:54 UDF "running frequency" #1 New Member   Join Date: Mar 2011 Posts: 10 Rep Power: 7 Hello everyone, I'm using the UDF DEFINE_CG_MOTION for simulating a check valve. i want the UDF to run one time per time step. Currently, the UDF runs four times per time step what is not appropriate for this case. As I've noticed this UDF "running frequency" does not depend on the max iterations per time step but I have no clue where to change it. Thanks for any answers Daniel

 March 24, 2011, 04:44 #2 New Member   Join Date: Mar 2011 Posts: 10 Rep Power: 7 I solved my problem using the UDF DEFINE_EXECUTE_AT_END. Regards Daniel

 October 13, 2011, 03:50 Regarding DEFINE_EXECUTE_AT_THE_END #3 New Member   Josy Join Date: Mar 2009 Location: India Posts: 29 Rep Power: 9 Hi, I have a DEFINE_CG_MOTION UDF which has a sin function to move the walls of the geometry in my problem. But like you said, the UDF is running 4 times per time step. I want it to run one time each timestep. How do you input the DEFINE_EXECUTE_AT_END in this case? Thank you.

 October 14, 2011, 05:05 #4 New Member   Join Date: Mar 2011 Posts: 10 Rep Power: 7 At the meantime, I found out, that DEFINE_CG_MOTION is repeated for every wall you want to move (in your case you have also 4 walls, I guess). Define the velocity of your walls as a global variable and calculate it within a void function. Call the void function with DEFINE_EXECUTE_AT_END. Example: #include /* Define Constants */ #define amplitude 0.02; #define pi 3.14; /* Define Global Variables */ real vel /* velocity */ void fun_velocity(real flowtime) { vel = amplitude * 2 * pi * cos(2*pi*flowtime); /* calculating current velocity */ } DEFINE_EXECUTE_AT_END(yourUDFname) { real flowtime = CURRENT_TIME; /* Passing current flow time from solver to udf */ fun_velocity(flowtime); /* Calling void function 'fun_velocity' and passing current flowtime */ } DEFINE_CG_MOTION(yourUDFname2,dthread,velocity,ang ular_velocity,ftime,dtime) { velocity[0] = vel; /* passing value of vel to x-component of 'velocity'*/ } I didn't test this small UDF but I hope it will make it clear to you. Regards d

 October 14, 2011, 06:57 #5 New Member   Join Date: Mar 2011 Posts: 10 Rep Power: 7 I should add to my previous comment, that I solve a equation of motion numerically to gain the angular velocity of the flap. Thus, the velocity depends on the current pressure field. If I put this calculation within the DEFINE_CG_MOTION UDF, every wall would receive a slightly different angular velocity, as the pressure field changes during the iterations. At some point of time my model would break apart. This is the reason, why I use DEFINE_EXECUTE_AT_END to get one velocity for all walls. If you calculate the velocity, say with a sin function, the velocity depends only from the flow time. As the flow time remains equal during the iterations of one time step, the velocity will be the same for all walls. To cut a long story short, the use of DEFINE_EXECUTE_AT_END is not necessary for case, Josyula. DEF_CG_MOTION runs 4 times, because you probably have 4 walls to move. Regards d

 October 21, 2011, 00:39 #6 New Member   Josy Join Date: Mar 2009 Location: India Posts: 29 Rep Power: 9 D, Thanks for the reply. My geometry is a straight rectangular microchannel. There are only 2 walls which need to be moved i.e. the top and bottom. Left and Right are specified as Pressure inlet and Pressure outlet B.C. respectively. I have a question though: Is there a way we can decide the amplitude based on the time step size? Because, the wall movement is visible only when I give A = 0.1 or A = 0.5. The time step size I am specifying is 1e-07 s. But being a microchannel channel, the phase lag i.e. +ve to -ve will happen after a very long time. Instead, what I am looking for is this: for one time step I need a +ve phase lag (i.e. the walls expand) and the next time step, I need a -ve phase lag (i.e. the walls contract). Sinusoidal profile is really not working well for this. Any suggestions?

 October 21, 2011, 10:20 #7 New Member   Join Date: Mar 2011 Posts: 10 Rep Power: 7 I'm not quite sure whether I fully understand your intention. Basically speaking, you can obtain information about the current time step, flow time etc. with the "time dependent macros" . You can use this information in your UDF within an if-condition or whatever to control the amplitude or the velocity of the walls. I don't know if that really answers your question but keep in mind, that the path that the moving walls will pass during one time step, might be pretty tiny due to your very small time step.

 Tags frequency, time steps, udf

 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 shankara.2 Fluent UDF and Scheme Programming 1 January 16, 2012 23:14 kim FLUENT 3 October 26, 2011 21:38 Qureshi FLUENT 1 December 2, 2009 01:27 Luc SEMINEL FLUENT 0 November 25, 2002 05:03 Luc SEMINEL Main CFD Forum 0 November 25, 2002 05:01

All times are GMT -4. The time now is 10:09.