[Nek5000-users] Fluid-structure interaction setup

nek5000-users at lists.mcs.anl.gov nek5000-users at lists.mcs.anl.gov
Sun Jun 22 16:55:40 CDT 2014


Dear NEK Users,


I need some help in modelling fluid-structure using NEK5000. Based on the
inputs from mailing list, I am able to extract the forces on a cylinder in
laminar flow.


The physical problem I am trying to model is vortex-induced vibration (VIV)
of a circular cylinder.  I will be restricting the motion of cylinder to be
only along cross flow direction, driven by the lift,


F_L = dragy(1)   --------------------------------(1)


My next step is to use the lift force to solve dynamics of the cylinder
using:


M ddy + C dy + K y = F_L --------------------(2)


I am asking my questions first; please find additional details below the
questions.

1.       Q1. How can I assign the mesh velocity only to the portion of
boundary with identifier ‘mv’ in *.rea file?

 In my pseudo code and program structure of *.usr file below, I tried to
assign mesh velocity by calling a subroutine  in ‘u_meshv’ within the
subroutine ‘userbc’ by following the ocyl.usr example. If I do so, my
cylinder dynamics is being called for each node, since ‘usrbc’ is called
for each node. I would like to avoid this, since I would like to compute
cylinder dynamics only once per time step and assign the resulting velocity
to moving boundary.
 Q2.   How can I get the lift force for each time-step?
   Currently, I am calling the ‘torque_calc’ in ‘userchk’ and using the
common block ‘common /ctorq/’ in all the subroutine that I need the lift
force for further computation.


My program setup:


I am using the moving cylinder examples from the NEK5000 examples ‘ocyl’
and adding/modifying subroutines to accomplish solution of the cylinder
coupled with fluid & mesh motion solution in a staggered fashion. I am
providing my pseudo-code/code snippet to illustrate my approach.

1.       I will call the u_meshv from the userbc subroutine to set the mesh
velocity on the moving boundary.

***************************** usrbc*******************************

subroutine usrbc

…

…

  if (x .lt. -1.1) then

        ux=1

        uy=0.

        uz=0.

     else

        call u_meshv(ux,uy,uz,x,y,z)

    endif

***************************** **********************************



2.      In u_meshv, I will call a subroutine to ‘cyl_dynamics’ which will
solve the second-order differential equation (2) above for acceleration,
velocity, and displacement (an, vn, dn at nth time step and an1, vn1, dn1
at (n+1)th time step).



*************************u_meshv*******************************

 subroutine u_meshv(ux,uy,uz,x,y,z)

…

 common /cyldyn/  dn,vn,an,dn1,vn1,an1

…

do FSI_ITR

call cyl_dynamics

if (cyl. Dynamics is in equilibrium with fluid dynamics) then

goto XXXX !  exit the loop

else

call cyl_dynamics

endif

**********************************************************

************************* cyl_dynamics *******************************

subroutine cyl_dynamics

…

common /cyldyn/  dn,vn,an,dn1,vn1,an1

…



c Code for calculation cylinder dynamics for a given F_L



**********************************************************



Any help in implementing this fluid-structure interaction problem is much
appreciated. If there is an example which performs such fluid-structure
couple solution please let me know.  Please let me know if I need to
provide any additional details to explain my problem.


-- 
Ravi Kumar T R

University of Illinois at Urbana-Champaign
ph : +1 217 778 7538
http://lndvl.mechse.illinois.edu/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20140622/d52d9582/attachment.html>


More information about the Nek5000-users mailing list