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 Morteza |
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.
|
Hi Stumpy
Quote:
Thanks for your consideration |
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.
|
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 |
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 !!!
|
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).
|
Is there any way I can turn of the rigid body solver when it reaches a certain angle !?
|
Quote:
|
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.
|
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. |
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:
if(inside()@ImmersedSolidDomain,1,0)*MomentumSrc so that you are getting a larger momentum sink in the immersed solid. |
Can you please explain this in more detail? Where exactly should I add the expression?
|
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?
|
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 12:14. |