<div dir="ltr"><p class="MsoNormal">Dear NEK Users, <br></p><p class="MsoNormal"><br></p>

<p class="MsoNormal">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.</p><p class="MsoNormal"><br></p>

<p class="MsoNormal">The physical problem I am trying to model is vortex-induced
vibration (VIV) of a circular cylinder. <span> </span>I
will be restricting the motion of cylinder to be only along cross flow
direction, driven by the lift,</p><p class="MsoNormal"><br></p>

<p class="MsoNormal">F_L = dragy(1)<span>  
</span>--------------------------------(1)</p><p class="MsoNormal"><br></p>

<p class="MsoNormal">My next step is to use the lift force to solve dynamics of
the cylinder using:</p><p class="MsoNormal"><br></p>

<p class="MsoNormal">M ddy + C dy + K y = F_L --------------------(2)</p><p class="MsoNormal"><br></p>

<p class="MsoNormal">I am asking my questions first; please find additional
details below the questions.</p>

<p><span><span>1.<span style="font:7pt "Times New Roman"">      
</span></span></span>Q1. How can I assign the mesh velocity only to the
portion of boundary with identifier ‘mv’ in *.rea file?</p>

<p style="text-indent:0.5in"><span> </span>In my pseudo code and program structure of
*.usr file below, I tried to assign mesh velocity by calling a subroutine <span> </span>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.</p> <span><span>Q2.<span style="font:7pt "Times New Roman"">  
</span></span></span>How can I get the lift force for each time-step?
<br>   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.<br><br><p class="MsoNormal"><br></p><p class="MsoNormal">My program setup:</p>

<p class="MsoNormal"><br></p><p class="MsoNormal">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. </p>

<p><span><span>1.<span style="font:7pt "Times New Roman"">      
</span></span></span>I will call the u_meshv from the userbc
subroutine to set the mesh velocity on the moving boundary.</p>

<p class="MsoNormal">*****************************
usrbc*******************************</p>

<p class="MsoNormal">subroutine usrbc</p>

<p class="MsoNormal">…</p>

<p class="MsoNormal">…</p>

<p class="MsoNormal"><span>  </span>if (x .lt. -1.1)
then</p>

<p class="MsoNormal"><span>        </span>ux=1</p>

<p class="MsoNormal"><span>        </span>uy=0.</p>

<p class="MsoNormal"><span>        </span>uz=0.</p>

<p class="MsoNormal"><span>     </span>else</p>

<p class="MsoNormal"><span>        </span>call
u_meshv(ux,uy,uz,x,y,z)</p>

<p class="MsoNormal"><span>    </span>endif</p>

<p class="MsoNormal">***************************** **********************************</p>



<p class="MsoNormal"> </p>

<p><span><span>2.<span style="font:7pt "Times New Roman"">      </span></span></span>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). </p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">*************************u_meshv*******************************</p>

<p class="MsoNormal"><span> </span>subroutine
u_meshv(ux,uy,uz,x,y,z)</p>

<p class="MsoNormal">…</p>

<p class="MsoNormal"><span> </span>common /cyldyn/<span>  </span>dn,vn,an,dn1,vn1,an1<span>   </span></p>

<p class="MsoNormal">…</p>

<p class="MsoNormal">do FSI_ITR</p>

<p class="MsoNormal">call cyl_dynamics</p>

<p class="MsoNormal">if (cyl. Dynamics is in equilibrium with fluid dynamics)
then</p>

<p class="MsoNormal">goto XXXX !<span>  </span>exit the
loop</p>

<p class="MsoNormal">else </p>

<p class="MsoNormal">call cyl_dynamics</p>

<p class="MsoNormal">endif</p>

<p class="MsoNormal">**********************************************************</p>

<p class="MsoNormal">************************* cyl_dynamics *******************************</p>

<p class="MsoNormal">subroutine cyl_dynamics</p>

<p class="MsoNormal">…</p>

<p class="MsoNormal">common /cyldyn/<span>  </span>dn,vn,an,dn1,vn1,an1<span>   </span></p>

<p class="MsoNormal">…</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">c Code for calculation cylinder dynamics for a given F_L</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">**********************************************************</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">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. <span> </span>Please let me know if I need to provide any
additional details to explain my problem.</p><br clear="all"><br>-- <br>Ravi Kumar T R<br><br>University of Illinois at Urbana-Champaign<br>ph : +1 217 778 7538<br><a href="http://lndvl.mechse.illinois.edu/">http://lndvl.mechse.illinois.edu/</a>
</div>