[Nek5000-users] (no subject)
nek5000-users at lists.mcs.anl.gov
nek5000-users at lists.mcs.anl.gov
Sun Jun 22 16:54:24 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/0d4b7898/attachment.html>
More information about the Nek5000-users
mailing list