Vortex induced vibration (cylinder vibration)

Hello,everyone,
I am going to calculate the vibration of cylinder expericing the flow,Can anyone tell me how to achieve it using the FEnics.

Please be more specific with your question. First of all, what kind of fluid flow (Stokes or Navier-Stokes) and what kind of material (linear elasticity or non-linear elasticity).
See for instance TurtleFSI for fluid structure interaction using fenics.

Thank you very much for your reply, I will study the link you gave me carefully.
In addition, I recently study the two-dimensional cylindrical vortex-induced vibration, which belongs to the NS equation. I only consider the movement of a two-dimensional cylinder, not the deformation of the structure.
At present, I don’t know how to apply the pressure of the flow field to the cylinder, and then make the cylinder produce lateral displacement. How to implement this model through fenics, are there any related similar tutorials?
Thanks again for your reply!

You need to compute the displacement given the pressure field over the obstacle, and then use the ALE.move command to do so. See for instance: https://bitbucket.org/fenics-project/dolfin/src/946dbd3e268dc20c64778eb5b734941ca5c343e5/python/demo/undocumented/submesh/demo_submesh.py and https://bitbucket.org/fenics-project/dolfin/src/master/python/demo/undocumented/ale/demo_ale.py

Thank you very much for your guidance and reply, I will try to solve this problem according to the method you said. https://github.com/jerabaul29/Cylinder2DFlowControlDRL
Thank you very much again

Hello , how should I integrate the pressure on the cylindrical surface to get the lift in the vertical direction?

If I get the lift, then the displacement of the cylinder can be calculated, and then the vibration of the cylinder can be realized according to the method you have mentioned above.

This is straightforward,
assemble(p*n[1]*ds(cylindermarker)
Where ds is a measure with subdomain markers marking the cylinder with a given tag.

I would suggest familiarizing yourself with dolfin, through the demos and for instance: https://zenodo.org/record/3564206#.X3Bcdvd4UlQ where I have code for computing drag and lift coefficients for the DFG benchmark.

thank you very much for your guidence, i will try this method :grin:

Hello, Professor Dokken, I am sorry to bother you for solving problem for me again.

            # Translate Solid's domain
            # dsf = Measure("ds", domain=front_mesh, subdomain_data=outfunc)
            Drag = t_s_hat[0] * dsf
            Lift = t_s_hat[1] * dsf

            drag = assemble(Drag)
            lift = assemble(Lift)
            print(type(Lift))
            front_mesh.translate(Point(0.0, Frequency * Amplitude * float(cos(Frequency * t)) * float(dt)))

Above, I have get the lift formulation, the type of the lift is “<class ‘ufl.form.Form’>”, how can I use this type to calculate the displacement of the cylinder.(using the second order differential equation of the cylinder to solve the displacement.)
Could you tell me what is the usage of the “Lift”.
Thank you so much for helping me!

You can assemble the lift into a scalar value, ‘lift’.
I do not know what kind of relation you would like to have between the lift and the displacement.

Thank you for your reply, here I explain my task for the problem.
image
In the above picture, the term in red line box represents the lift of the cylinder, so if I get the scalar value lift, I can use this value to take place the Ff. Then, I can calculate the displacement y.
Professor Dokken,could you tell me how to convert the “Form” lift to a scalar value, I would really appreciate it, thank you!

As I have already said, lift is a scalar value, while Lift is a ufl.form. Please read carefully through my answers before asking more questions.

Thank you for your help, your answ has given me a lot of help, and I will do it as you said. :grin:thank you!

Hello Orangewang,

Have you been able to complete this task? just wondering about the results.

Thanks,
Evgeny.