[Nek5000-users] Fluid-structure interaction setup
nek5000-users at lists.mcs.anl.gov
nek5000-users at lists.mcs.anl.gov
Sun Jun 22 17:22:25 CDT 2014
Hi Ravi,
I have a couple of ideas about this - but they likely need some development.
Can you contact me off-list?
Paul Fischer
________________________________
From: nek5000-users-bounces at lists.mcs.anl.gov [nek5000-users-bounces at lists.mcs.anl.gov] on behalf of nek5000-users at lists.mcs.anl.gov [nek5000-users at lists.mcs.anl.gov]
Sent: Sunday, June 22, 2014 4:55 PM
To: nek5000-users at lists.mcs.anl.gov
Subject: [Nek5000-users] Fluid-structure interaction setup
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/84ea2b61/attachment-0001.html>
More information about the Nek5000-users
mailing list