![]() |
Fluent UDF help!!!
Hi everyone
I am trying to model a moving sphere in hypersonic flow. I want the sphere to move according to the forces in experiences due to the incoming flow. It is a 2D axis symmetric case and hence i want the sphere to move in only one direction, basically 1 DOF motion. Below is my UDF, it complies alright, but when i try to run it fluent gives me a segmentation violation error, i am only defining my sphere as a rigid body in the zones with the UDF and have not defined anything else, i am using the smoothing parameter for my dynamic mesh. Any help will be much appreciated :) #include "udf.h" static real v_prev = 0.0; DEFINE_CG_MOTION(sphere,dt,vel,omega,time,dtime) { Thread *t; face_t f; real NV_VEC(A); real force, dv; /* reset velocities */ NV_S(vel, =, 0.0); NV_S(omega, =, 0.0); if (!Data_Valid_P()) return; /* get the thread pointer for which this motion is defined */ t = DT_THREAD(dt); /* compute pressure force on body by looping through all faces */ force = 0.0; begin_f_loop(f,t) { F_AREA(A,f,t); force += F_P(f,t) * NV_MAG(A); } end_f_loop(f,t) /* compute change in velocity, i.e., dv = F * dt / mass velocity update using explicit Euler formula */ dv = dtime * force / .000756; v_prev += dv; Message ("time = %f, x_vel = %f, force = %f\n", time, v_prev, force); /* set x-component of velocity */ vel[0] = v_prev; } |
| All times are GMT -4. The time now is 03:25. |