CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Fluent UDF and Scheme Programming (https://www.cfd-online.com/Forums/fluent-udf/)
-   -   Beam deflection UDF in 2D (https://www.cfd-online.com/Forums/fluent-udf/198498-beam-deflection-udf-2d.html)

aero_cfd February 8, 2018 08:24

Beam deflection UDF in 2D
 
1 Attachment(s)
Hi,

I am trying to apply the udf found in the manual for beam deflections in 2D
Code:

/**********************************************************
  node motion based on simple beam deflection equation
  compiled UDF
 **********************************************************/
 #include "udf.h"
 
 DEFINE_GRID_MOTION(beam,domain,dt,time,dtime)
 {
    Thread *tf = DT_THREAD(dt);
    face_t f;
    Node *v;
    real NV_VEC(omega), NV_VEC(axis), NV_VEC(dx);
    real NV_VEC(origin), NV_VEC(rvec);
    real sign;
    int n;
    /* set deforming flag on adjacent cell zone */
    SET_DEFORMING_THREAD_FLAG(THREAD_T0(tf));
    sign = -5.0 * sin (26.178 * time);
    Message ("time = %f, omega = %f\n", time, sign);
    NV_S(omega, =, 0.0);
    NV_D(axis, =, 0.0, 1.0, 0.0);
    NV_D(origin, =, 0.0, 0.0, 0.152);
    begin_f_loop(f,tf)
    {
      f_node_loop(f,tf,n)
      {
        v = F_NODE(f,tf,n);
        /* update node if x position is greater than 0.02   
        and that the current node has not been previously
        visited when looping through previous faces */
        if (NODE_X(v) > 0.020 && NODE_POS_NEED_UPDATE (v))
        {
        /* indicate that node position has been update
        so that it’s not updated more than once */
        NODE_POS_UPDATED(v);
        omega[1] = sign * pow (NODE_X(v)/0.230, 0.5);
        NV_VV(rvec, =, NODE_COORD(v), -, origin);
        NV_CROSS(dx, omega, rvec);
        NV_S(dx, *=, dtime);
        NV_V(NODE_COORD(v), +=, dx);
        }
    }
  }
  end_f_loop(f,tf);
 }

The problem is that the dx is always evaluated as 0 , I tried the code for a 3d case and it gave large random deformations even though I adapted the values .
Attached is the example I am trying to run.

Does anyone know how to solve this ?

thank you !


All times are GMT -4. The time now is 03:56.