# UDF for Vortex-Induced Vibrations debug

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

May 7, 2014, 08:54
UDF for Vortex-Induced Vibrations debug
#1
New Member

AFM
Join Date: Nov 2013
Posts: 14
Rep Power: 12
Hello to everybody;

Now I am investigating about VIV using tappered cylinders (3D); I am using 2-way FSI but the calculations are so slow (LES-WALE model in CFD and non-linear calculation in Transient Structural). I really need to do these calculations faster, so I think in use an UDF for VIV.

Searching in the web, I found the next code, originally for a 2D problem:

Quote:
 #include "udf.h" static real v_prev = 0.0; DEFINE_CG_MOTION(osc, dt, vel, omega, time, dtime) { Thread *t; Domain *d = Get_Domain(1); real x_cg[3], force[3], moment[3]; real accl, dv; real mass = 0.022; real wn = 3.0; real k = mass*wn*wn; real c = 2*mass*wn*0.0; /*no damping*/ int i; NV_S(vel, =, 0.0); NV_S(omega, =, 0.0); t = DT_THREAD(dt); for (i=0;i<3;i++) x_cg[i]=DT_CG(dt)[i]; Compute_Force_And_Moment(d, t, x_cg, force, moment, TRUE); force[1] += -k*x_cg[1] - c*vel[1]; accl = -force[1]/mass; dv = accl*dtime; v_prev+=dv; vel[1] = v_prev; printf("Computed force: %g \n", force[1]; printf("Velocity: %g \n", vel[1]); } DEFINE_CG_MOTION(osc_inert, dt, vel, omega, time, dtime) { vel[0] = 0.0; vel[1] = v_prev; }
First of all, when I try to interpret this UDF in my 3D problem the debugger send me a parse error on the line 2; I think that it is not possible to have any error on this line (I wrote all the code by myself using the original file as a reference, so I think that there is not any syntax bug), so it will be greatfull if any could help me about this point.

The second issue is a simple question: Is it possible to use this code in my 3D problem, or I will have to adapt the code?

Thank you very much.

Bests regards.

February 22, 2016, 06:50
#2
Member

N B Khan
Join Date: Jan 2014
Posts: 39
Rep Power: 11
Quote:
 Originally Posted by Entwistle Hello to everybody; Now I am investigating about VIV using tappered cylinders (3D); I am using 2-way FSI but the calculations are so slow (LES-WALE model in CFD and non-linear calculation in Transient Structural). I really need to do these calculations faster, so I think in use an UDF for VIV. Searching in the web, I found the next code, originally for a 2D problem: First of all, when I try to interpret this UDF in my 3D problem the debugger send me a parse error on the line 2; I think that it is not possible to have any error on this line (I wrote all the code by myself using the original file as a reference, so I think that there is not any syntax bug), so it will be greatfull if any could help me about this point. The second issue is a simple question: Is it possible to use this code in my 3D problem, or I will have to adapt the code? Thank you very much. Bests regards.
Dear Friend
I am also looking for UDF for 2D and 3D case... If you found the solution please share... n_bkhan@yahoo.com
Thanks
Regards
Niaz

 March 15, 2016, 19:07 #3 New Member   esho Join Date: Mar 2016 Posts: 1 Rep Power: 0 Hi, I know this is an old problem, but the problem you may have had is trying to interpret the udf. Some macros such as those for dynamic meshes do not interpret, but rather are compiled. On that note, if you got it to work, could you please share your UDF with me? I am attempting this problem as well to get familiar with dynamic meshing. Thank you in advance.

March 16, 2016, 00:02
#4
Member

N B Khan
Join Date: Jan 2014
Posts: 39
Rep Power: 11
Quote:
 Originally Posted by esho_adelaide Hi, I know this is an old problem, but the problem you may have had is trying to interpret the udf. Some macros such as those for dynamic meshes do not interpret, but rather are compiled. On that note, if you got it to work, could you please share your UDF with me? I am attempting this problem as well to get familiar with dynamic meshing. Thank you in advance.

I used the UDF

#include "udf.h"

static real v_prev = 0.0;

DEFINE_CG_MOTION(osc,dt,vel,omega,time,dtime)
{
Domain *d = Get_Domain(1);
real x_cg[3], force[3], moment[3];
real accl, dv;
real mass = 0.2;
real wn = 12.0;
real k= mass * wn*wn;
real c = 2*mass*wn*0.00;
int i;

NV_S(vel, =, 0.0);
NV_S(omega, =, 0.0);
for(i=0;i<3;i++)
x_cg[i]=DT_CG(dt)[i];

Compute_Force_And_Moment(d, t, x_cg, force, moment, TRUE);
force[1] += -k*x_cg[1] - c*vel[1];

accl = force[1]/mass;
dv = accl*dtime;
v_prev+=dv;
vel[1] = v_prev;
printf("Computed force: %g \n", force[1]);
printf("Velocity: %g\n", vel[1]);
}

DEFINE_CG_MOTION(osc_inert,dt,vel,omega,time,dtime )
{
vel[0] = 0.0;
vel[1] = v_prev;
}

Yes you are right the issue is with the intrepret. I successfully run the udf using compiler for 2D problem but i dont know whether it will run on 3D or not. I have 2 more questions
1. how to change the above UDF to forced oscillation to find VIV forces

2. How to measure amplitude and forces... I know the above mentioned UDF calculate the forces(printf("Computed force: %g \n", force[1];
printf("Velocity: %g \n", vel[1]) but I dont know where it will be available in FLUENT ...

I am also very beginner to the dynamic mesh study. My problem is exactly same like your problem.

We can share study with each other if you agree.
My name is niaz and email n_bkhan@yahoo.com

Best Regards
Niaz

 May 19, 2016, 03:49 #5 New Member   Rahil Join Date: Mar 2016 Posts: 5 Rep Power: 9 Hi esho_adelaide, were you able to get this working? I am trying this udf for VIV of a 2D cylinder but the cylinder is not moving?

November 23, 2017, 14:46
#6
New Member

Naeem Ur Rahman
Join Date: Nov 2017
Posts: 6
Rep Power: 8
Quote:
 Originally Posted by Entwistle Hello to everybody; Now I am investigating about VIV using tappered cylinders (3D); I am using 2-way FSI but the calculations are so slow (LES-WALE model in CFD and non-linear calculation in Transient Structural). I really need to do these calculations faster, so I think in use an UDF for VIV. Searching in the web, I found the next code, originally for a 2D problem: First of all, when I try to interpret this UDF in my 3D problem the debugger send me a parse error on the line 2; I think that it is not possible to have any error on this line (I wrote all the code by myself using the original file as a reference, so I think that there is not any syntax bug), so it will be greatfull if any could help me about this point. The second issue is a simple question: Is it possible to use this code in my 3D problem, or I will have to adapt the code? Thank you very much. Bests regards.
Sir how you are simulating this project with fluent and transient structural. If so then what constraint are you using for transient structural for fsi?

 Tags 3d problem, fsi, udf, viv