CFD Online Discussion Forums

CFD Online Discussion Forums (
-   CFX (
-   -   FSI Modeling (

kimiaghalam June 22, 2011 17:54

FSI Modeling
Hi Everyone

I am trying to simulate the opening motion of a heart valve during systolic phase in an artificial heart valve design. I am using immersed solid model for valves. In this case the opening velocity of the valve should be a function of the torque exerted on the valve by the fluid. I was trying to calculate the torque in each time step using experession torque_z@Locator in CFX Pre and then calcute the angular velocity by another simple expression. But CFX-Solver stops at the beginning of the run without any specific Errors! I am pretty sure that the problem is related to using this torque expression. Do you guys have any idea where the problem comes from ?

Appreciate your help

stumpy June 23, 2011 09:05

Rather than calculating the motion yourself use the 6-DOF rigid body solver to calculate the motion, then apply this motion to the immersed solid.

kimiaghalam June 23, 2011 17:48

Hi Stumpy

Originally Posted by stumpy (Post 313267)
Rather than calculating the motion yourself use the 6-DOF rigid body solver to calculate the motion, then apply this motion to the immersed solid.

I am using Ansys CFX 12 and I could not find anything about 6-DOF rigid body solver. Could you please help me find some tutorials or some help on this solver?

Thanks for your consideration

ghorrocks June 23, 2011 19:00

The 6DOF solver had has considerable updates and improvements going into V13. In V12 it was just a beta feature. Sounds like it is time to update to the current version.

kimiaghalam July 1, 2011 19:37

I have updated my Ansys to Ansys 13. Rigid Body solver seems to be a really helpful module. But now there is this Error occuring in ansys solver:

********* WARNING ********* |
| There are 118921 interpolation points ( 36.56%) that are not properly mapped onto a source domain. This will likely introduce incorrect terpolated values on the immersed boundary. If this is due to a slight difference in mesh, please increase the expert parameter "octree bndbox tolerance". Boundary Patch Name : Left_Leaflet Default |

Can you help me with this error. After this warning I run out of memory and I can not increase the memory factor any further than 1.3 and I can not find the "octree bndbox tolerance"

Appreciate your help

kimiaghalam July 2, 2011 00:19

I can run the model in 2D mode but I want to know how to make the valves stop moving when they touch the wall ? Right now they just pass the wall !!!

stumpy July 4, 2011 09:21

That's expected, there's no contact modelling in CFX. You can try applying an external force/torque when the contact criteria is met, but that's probably going to produce chatter. you could use an interrupt control to stop the run when contact is made, then restart the run after turning off the rigid body solver (or just set 'solve meshdisp = f' to turn of moving mesh).

kimiaghalam July 6, 2011 16:50

Is there any way I can turn of the rigid body solver when it reaches a certain angle !?

Zymon October 12, 2011 03:16


Originally Posted by kimiaghalam (Post 315016)
Is there any way I can turn of the rigid body solver when it reaches a certain angle !?

I have the same question right now. Has anybody solved this problem yet? I am also dealing with artificial heart valves. Due to the large deformations the immersed solid approach is quite promising. But the motion of the valves should stop after about 90 degrees. Furthermore, I still have the problem that the flow passes through the rigid body (streamlines just change direction at the valve slightly). I already set the Momentum Source Scaling Factor to 400 (together with the command 'smooth inside ims = t'). Is there any other option to handle this?

stumpy October 12, 2011 16:52

You can stop the simulation when a certain angle is reached using the solver interrupt controls together with an expression like rbstate(Euler Angle X)@RigidBody. You can't turn off the rigid body solver without stopping, but I guess your boundary condition that uses the displacements calculated by the rigid body solver could contain some logic to ignore the displacement if rbstate(Euler Angle X)@RigidBody (for example) exceeded some value.

Zymon October 14, 2011 05:47

Hi stumpy, thanks a lot! I think this is working.

The flow still passes through the solid. At least it seems so when I look at the streamlines. I guess one problem is that the valves are quite thin. I already use a very fine mesh of the flow field, but maybe this is not enough. Furthermore, the flow is partly relative slow. So the momentum scaling factor has little effect. Still it looks quite nice already. Most likely with the mesh deformation approach this is not possible yet due to the large deformations.

stumpy October 14, 2011 14:23

Yes, I've seen that problem with slow/stationary flows - if you scale zero by a large number it is still zero! You could try adding a fixed momentum sink via a subdomain and make use of an expression like:
so that you are getting a larger momentum sink in the immersed solid.

Zymon October 17, 2011 11:03

Can you please explain this in more detail? Where exactly should I add the expression?

Zymon October 27, 2011 04:25

I have a question concerning the restart of the simulation. When I restart the simulation with switching off the rigid body solver (immersed solid to stationary) the flow is in its initial condition but the rigid bodies are in its very first position of the first simulation. Do I have to rotate them manually for the restart? Or can I somehow initialize them as well?

belgacem May 22, 2012 08:56

Hi friend
First, I have the same problem right now. Please, can you explain more how to added a fixed momentum sink via subdimain and to make this expression if(inside()@ImmersedSolidDomain,1,0)*MomentumSrc
Also, I am studying immersed boundary method and and try to simulate a block falling in the water. I am using "immersed solid" then rigid body 6DOF and I let it fall freely but it can't stoped in the bottom where the velocity must be zero. I give a density to the block and i let it fall freely under gravity. Noted that the rigid body is defined as an immersed solid. i have specified a stationary coordinate frame that has its origin at the center of mass of the physical rigid body. Another fixed coordinate frame was specified related to the water at rest.
What can I do to stopped the rigid body in the bottom where the potentiel energy must be zero?

thank you!

All times are GMT -4. The time now is 20:49.