CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   FLUENT (https://www.cfd-online.com/Forums/fluent/)
-   -   6dof model - floating body (https://www.cfd-online.com/Forums/fluent/126471-6dof-model-floating-body.html)

flinde November 18, 2013 13:41

6dof model - floating body
 
Hi,
I would like to use Fluent to simulate the movement of a floating body. I am currently experimenting with dynamic mesh and a "simple" model (2D): I use a rigid rectangular body of 1.54*0.08m in a box of 7.7*0.34m. For the boundary conditions I use the same parameters as Fluent tutorial "Solving a 2D Box Falling into Water". The only difference are the dimensions and the fact that my body is already immerse (by 0.04m) in the water (water height is 0.18m). I meshed the whole domain with trias and used the following UDF to parameter the 6dof model:

#include "udf.h"

DEFINE_SDOF_PROPERTIES(sdof_properties, prop, dt, time, dtime)
{
prop[SDOF_MASS] = 61.49;

prop[SDOF_IXX] = 129.6296;
prop[SDOF_IYY] = 111.1111;
prop[SDOF_IZZ] = 129.6296;

prop[SDOF_ZERO_TRANS_X] = TRUE;
prop[SDOF_ZERO_ROT_Z] = TRUE;


printf ("\n updated 6DOF properties");
}

Before using dynamic mesh I started the calculation with the body fixed in order to get hydrostatic pressure. Then I allowed the body to move but after roughly 5 time steps, I get the error:

"Warning: non-positive volumes exist.

Error: Update-Dynamic-Mesh failed. Negative cell volume detected.
Error Object: #f"

And when i display the mesh, I can see that the body has moved out of the box... If I stop the calculation after 2 or 3 time steps and display the pressure, I can see that I get huge values. If I calculate the lift force on the body, the force is also bigger than what it should be. If i look at the lift force history, when the body is fixed, I get 610.13984 N but after I allow the body to move it is oscillating with amplitude such as -2468606 N, 1.2394356e+08 N, ... until I get the error message.

From what could this instability come from? I really don't understand why it does something like that... Could someone help me solve this problem?

Thanks

flinde December 9, 2013 04:40

Could someone help me?
Thanks.

Albino December 9, 2013 04:54

Hi,

I'm kind of new to fluent and deal with the same issue myself at times. Here are a few things you can try (have given me some success):

1. Lower your timestep. Try 0.001 or 0.0001 if you haven't already.

2. Enable remeshing under dynamic mesh. Then press on "use defaults" (make sure local cell is enabled). This is under the remeshing tab.

3. Use relaxation factors. In the tutorial you mentioned, they used relaxation for the body forces (if i'm not misstaking). Try to lower the values for, say, pressure etc and see if that helps. Dont go overboard with lowering these as the calculations will/can take alot longer.

Again, I'm new to this and hope someone more experienced can help you.

flinde December 11, 2013 14:33

Hi,
First, thanks for your answer.
I actually already tried all the things you suggested me and it did not work. I also tried to use the udf allowing to take water compressibility into account (given in the "Solving a 2D Box Falling into Water" tutorial) and I obtained the stability. However, this is stable only for small time steps (1e-5 s) and if I try to increase the time step, it is unstable again.

I also tried to understand from what this instability could come from. I took the fluent tutorial case but instead of letting the box fall, I put water up to the middle height of the box and then I run the 6dof model without water compressibility UDF for a 1e-3s time step. In this case the calculations worked. However, I modified the case by taking a box twice larger (did not change any other geometrical parameters) and kept the same numerical parameters, but this time the calculation was not stable. It would seem that decreasing the distance between the moving body and the box wall causes this instability. What I don't understand is how increasing the moving body size can create an instability on the pressure calculation.

Another thing that I also tried with this case is using a CGmotion udf and giving the moving body a constant speed. And with a constant speed, there no pressure instability. Well actually you can see that after the first time step the pressure field is wrong but after a few more time steps, the pressure field is corrected. However, if I use the same udf with a varying speed, each time the velocity changes, the pressure field becomes wrong... What could possibly cause that?

Thanks again for your help.

youiithe March 26, 2015 21:49

Hi,I got exactly the same problem of instability of pressure
 
In my simulation case, I set a solid sphere (lighter) immersed in liquid, which is supposed to float. The pressure is true when the mesh motion is turned down while the opposite is a mess. I think I got the same question as you. Have you got an solution to this?

hamidcfd May 4, 2016 12:19

2d-falling-box udf
 
Hi everyone

I confused about falling-box tutorial udf.

DEFINE_SDOF_PROPERTIES(test_box, prop, dt, time, dtime)
{
prop[SDOF_MASS] = 666.66;
prop[SDOF_IXX] = 129.6296;
prop[SDOF_IYY] = 111.1111;
prop[SDOF_IZZ] = 129.6296;

printf ("\n2d_test_box: Updated 6DOF properties");
}

as i know moments of inertia of cubic is ((m.d^2)/6) about all axis. since d=1 in this case then moments of inertia is equal 111.111.
then why IZZ= IXX = 129.6296.:confused:

is there anyone can help me..........
thanks a lot

Hossein1 January 11, 2017 10:56

Quote:

Originally Posted by hamidcfd (Post 598666)
Hi everyone

I confused about falling-box tutorial udf.

DEFINE_SDOF_PROPERTIES(test_box, prop, dt, time, dtime)
{
prop[SDOF_MASS] = 666.66;
prop[SDOF_IXX] = 129.6296;
prop[SDOF_IYY] = 111.1111;
prop[SDOF_IZZ] = 129.6296;

printf ("\n2d_test_box: Updated 6DOF properties");
}

as i know moments of inertia of cubic is ((m.d^2)/6) about all axis. since d=1 in this case then moments of inertia is equal 111.111.
then why IZZ= IXX = 129.6296.:confused:

is there anyone can help me..........
thanks a lot

Does anyone know how to calculate Ixx and Iyy correctly?

SJSW June 29, 2017 02:55

I wonder that since SDOF_IXX, SDOF_IYY and SDOF_IZZ are constant all the time, will the object continue to rotate all the time? @@

That is to say: will the value of SDOF_IXX,, SDOF_IYY and SDOF_IZZ not change?
In this way, will the object not stop rotating?
--
Sorry...
in 2D case, Izz should be given value.

CarlaOC July 1, 2017 21:29

Quote:

Originally Posted by flinde (Post 465987)
Hi,
First, thanks for your answer.
I actually already tried all the things you suggested me and it did not work. I also tried to use the udf allowing to take water compressibility into account (given in the "Solving a 2D Box Falling into Water" tutorial) and I obtained the stability. However, this is stable only for small time steps (1e-5 s) and if I try to increase the time step, it is unstable again.

I also tried to understand from what this instability could come from. I took the fluent tutorial case but instead of letting the box fall, I put water up to the middle height of the box and then I run the 6dof model without water compressibility UDF for a 1e-3s time step. In this case the calculations worked. However, I modified the case by taking a box twice larger (did not change any other geometrical parameters) and kept the same numerical parameters, but this time the calculation was not stable. It would seem that decreasing the distance between the moving body and the box wall causes this instability. What I don't understand is how increasing the moving body size can create an instability on the pressure calculation.

Another thing that I also tried with this case is using a CGmotion udf and giving the moving body a constant speed. And with a constant speed, there no pressure instability. Well actually you can see that after the first time step the pressure field is wrong but after a few more time steps, the pressure field is corrected. However, if I use the same udf with a varying speed, each time the velocity changes, the pressure field becomes wrong... What could possibly cause that?

Thanks again for your help.

were you able to solve this issue? I'm facing the same problem

nidhids January 11, 2018 17:06

Quote:

Originally Posted by SJSW (Post 655237)
I wonder that since SDOF_IXX, SDOF_IYY and SDOF_IZZ are constant all the time, will the object continue to rotate all the time? @@

That is to say: will the value of SDOF_IXX,, SDOF_IYY and SDOF_IZZ not change?
In this way, will the object not stop rotating?
--
Sorry...
in 2D case, Izz should be given value.

Please tell me if you found an answer to the problem. I am also trying to understand where to put the origin and about what axis the moments of inertia need to be calculated.

ram_call January 12, 2018 07:26

Quote:

Originally Posted by flinde (Post 462430)
Hi,
I would like to use Fluent to simulate the movement of a floating body. I am currently experimenting with dynamic mesh and a "simple" model (2D): I use a rigid rectangular body of 1.54*0.08m in a box of 7.7*0.34m. For the boundary conditions I use the same parameters as Fluent tutorial "Solving a 2D Box Falling into Water". The only difference are the dimensions and the fact that my body is already immerse (by 0.04m) in the water (water height is 0.18m). I meshed the whole domain with trias and used the following UDF to parameter the 6dof model:

#include "udf.h"

DEFINE_SDOF_PROPERTIES(sdof_properties, prop, dt, time, dtime)
{
prop[SDOF_MASS] = 61.49;

prop[SDOF_IXX] = 129.6296;
prop[SDOF_IYY] = 111.1111;
prop[SDOF_IZZ] = 129.6296;

prop[SDOF_ZERO_TRANS_X] = TRUE;
prop[SDOF_ZERO_ROT_Z] = TRUE;


printf ("\n updated 6DOF properties");
}

Before using dynamic mesh I started the calculation with the body fixed in order to get hydrostatic pressure. Then I allowed the body to move but after roughly 5 time steps, I get the error:

"Warning: non-positive volumes exist.

Error: Update-Dynamic-Mesh failed. Negative cell volume detected.
Error Object: #f"

And when i display the mesh, I can see that the body has moved out of the box... If I stop the calculation after 2 or 3 time steps and display the pressure, I can see that I get huge values. If I calculate the lift force on the body, the force is also bigger than what it should be. If i look at the lift force history, when the body is fixed, I get 610.13984 N but after I allow the body to move it is oscillating with amplitude such as -2468606 N, 1.2394356e+08 N, ... until I get the error message.

From what could this instability come from? I really don't understand why it does something like that... Could someone help me solve this problem?

Thanks

I guess the problem is assigning the DM features to the boundaries. refer to dynamic mesh settings not mesh or time step. in a case, I entered the mass center of the rotor wrong, so the rotor moved to cased after some iterations and made the negative volume error!

EnriqueP June 11, 2018 05:08

Hello, i'm trying to impose a fixed velocity to the body but i am not able.
My UDF is the following

DEFINE_CG_MOTION(OW_fall, dt, vel, omega, time, dtime)
{
vel[1] = -5;

}

but when the simulation begins the body does not move at any time.

Cny suggestions? Thank you.

Hossein1 June 11, 2018 20:09

1 Attachment(s)
I used the 'Dynamic Mesh Zones' window in Ansys GUI for inserting the velocity and location of the particle. Please note that it would be the initial velocity and location and both of these parameters will start changing according to the problem definition as the simulation proceeds. Please see the attachment.

vava10 March 6, 2021 14:32

half geometry
 
Hey,

I am simulating a ship. Due to symmetry I am only working with half of the geometry. for Dynamic mesh I have following doubts

1. centre of mass - the centre of half or full geometry
2. moment of inertia -moment of inertia of half geometry or (moment of inertia of full geometry)/2


Thanks in advance
vava10


All times are GMT -4. The time now is 04:05.