CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM

OpenFOAM - Questions about rigidBodyMotion of floating object tutorial

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes
  • 1 Post By Sachin m

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   May 7, 2019, 11:51
Default OpenFOAM - Questions about rigidBodyMotion of floating object tutorial
  #1
Member
 
Join Date: Aug 2018
Posts: 47
Rep Power: 8
foamF is on a distinguished road
Hi, everyone. I just started to a look at the tutorial of floating object using the rigidBodyMotion solver in OpenFOAM. There are two points that I don't understand:

1. Based on my understanding, the keyword "transform" defines the centre of rotation, and the rotation axes for the calculation of inertia. Please correct me if I am incorrect.

My question is why the centre of rotation is not defined to be the same as the centre of mass. Any advice how the centre of rotation and the rotation axes are determined?

2. In the sub-section of joint to describe the degree of freedom, the composite type of joint is chosen. And, it uses Py and Ry to constraint the translation and rotation to be moved only along y-axis.

I presume the case is setup to simulate the free moving motion of a floating object. Why its motion is constrained in the computation?

Indeed, I tried to change the constraint to Pxyz and Rxyz so that there is actually no constraint (please correct me if I am wrong). But, the model crashes after some time steps. What is the problem?

I have one more question on this topic. Is there any difference of Rxyz, Ryxz and Rzyx?

looking forward to the valuable advice from experts!! Thanks in advance.
foamF is offline   Reply With Quote

Old   May 13, 2019, 09:00
Default
  #2
Senior Member
 
Join Date: Sep 2013
Posts: 353
Rep Power: 21
Bloerb will become famous soon enough
1) The center of mass is not the same as the center of rotation. If i hold a pencil at one end and rotate it, it will clearly not rotate around it's center of mass, but around that end.
2) This is a 6DoF solver. And hence solves for 6 Degrees of freedom. You have to limit those since you are calculating a 2D case on a 2D mesh. Any error in the third dimension crashes your calculation, because moving it by 10^-30 in the third dimension makes your mesh not 2D anymore. Hence it is much more reasonable to solve a 3DoF (or less) rigid body motion in the first place. This is done with the restraints. Changing it to Pxyz allows three movements hence 3DoF, but it does not allow any rotation. Rxyz or the other variants of it (the difference here is simply input and output order, which might be more convenient for some users) would add the other 3 Dof to reach 6.
Bloerb is offline   Reply With Quote

Old   May 14, 2019, 02:36
Default
  #3
Member
 
Join Date: Aug 2018
Posts: 47
Rep Power: 8
foamF is on a distinguished road
Bloerb, many thanks to your reply.

Maybe, I am not clear on my post. My questions are specific to the tutorial "floating object" in OF.

1. for a cuboid object floating on water, why the centre of rotation and centre of mass are not the same in that tutorial?

2. the tutorial should be a 3D case. why use the constraints Py and Ry?
foamF is offline   Reply With Quote

Old   February 10, 2021, 06:17
Default
  #4
Member
 
Himanshu
Join Date: Jan 2017
Posts: 34
Rep Power: 9
Himanshu_Shrivastava is on a distinguished road
Quote:
Originally Posted by Bloerb View Post
1) The center of mass is not the same as the center of rotation. If i hold a pencil at one end and rotate it, it will clearly not rotate around it's center of mass, but around that end.
2) This is a 6DoF solver. And hence solves for 6 Degrees of freedom. You have to limit those since you are calculating a 2D case on a 2D mesh. Any error in the third dimension crashes your calculation, because moving it by 10^-30 in the third dimension makes your mesh not 2D anymore. Hence it is much more reasonable to solve a 3DoF (or less) rigid body motion in the first place. This is done with the restraints. Changing it to Pxyz allows three movements hence 3DoF, but it does not allow any rotation. Rxyz or the other variants of it (the difference here is simply input and output order, which might be more convenient for some users) would add the other 3 Dof to reach 6.
hello Bloerd,

will this center of rotation and Center of Mass change during simulation and as we see in COG changes during sixDOF simulation?
Himanshu_Shrivastava is offline   Reply With Quote

Old   March 16, 2021, 03:20
Default
  #5
Member
 
Sachin
Join Date: Aug 2014
Location: India
Posts: 84
Rep Power: 12
Sachin m is on a distinguished road
Does anyone know how the transform is to be defined in the floatingobject tutorial case?
Sachin m is offline   Reply With Quote

Old   March 16, 2021, 05:48
Default
  #6
Senior Member
 
Join Date: Sep 2013
Posts: 353
Rep Power: 21
Bloerb will become famous soon enough
Yes, those can change, depending on how you constrain your part.



transform can be used to define your inertia inside a different coordinate system.

Code:
transform       (1 0 0 0 1 0 0 0 1) (2.929541 0 0.2);
The first part is the roation matrix. the second a vector by which to move it.


Hence:
1 0 0

0 1 0

0 0 1



is the unit matrix. Meaning no rotation. And (2.929541 0 0.2) is a translation by that vector. You can hence always use

Code:
transform       (1 0 0 0 1 0 0 0 1) (0 0 0);
but you need to make sure to calculate your moment of inertia correctly
Bloerb is offline   Reply With Quote

Old   March 17, 2021, 02:05
Default Multiple floating body simulation
  #7
Member
 
Sachin
Join Date: Aug 2014
Location: India
Posts: 84
Rep Power: 12
Sachin m is on a distinguished road
Quote:
Originally Posted by Bloerb View Post
Yes, those can change, depending on how you constrain your part.



transform can be used to define your inertia inside a different coordinate system.

Code:
transform       (1 0 0 0 1 0 0 0 1) (2.929541 0 0.2);
The first part is the roation matrix. the second a vector by which to move it.


Hence:
1 0 0

0 1 0

0 0 1



is the unit matrix. Meaning no rotation. And (2.929541 0 0.2) is a translation by that vector. You can hence always use

Code:
transform       (1 0 0 0 1 0 0 0 1) (0 0 0);
but you need to make sure to calculate your moment of inertia correctly


https://ibb.co/tqfHZ7v
This is the image of my case set up.
It consists of a domain and two floating objects.
I have to specify center of mass and transform for both the objects.
Dimension of the bodies are Lx=0.3 , Ly=0.2 , Lz=0.5.
Iam confused on how to specify the Center of mass and transform.
In another thread regarding the transform i read that the center of mass has to be specified based on the local co ordinate of the body. So COM will be (0,0,0.25) for both the body, assuming the local co ordinate system to be at the bottom of either bodies.(Correct me if iam wrong)
I presume the center of rotaion to be at 0.1 m above the center of mass, Which has to be defined in the global co ordinate system (Correct me if iam wrong).
Both bodies are identical.
Domain size is (1 1 1) (-1 -1 -1).
COM for first body with respect to Global Co ordinate system is (-0.5,0.45,0.35)
COM for second body with respect to Global Co ordinate system is (0.5,0.45,0.35)
Please help me on how to specify the center of mass and transform. Iam using Openfoam V 2006.
How can we find the Local co ordinate system values using paraview?



https://ibb.co/m4Q9z90
Sketch of Domain and body.
Sachin m is offline   Reply With Quote

Old   March 18, 2021, 07:40
Default
  #8
Member
 
Sachin
Join Date: Aug 2014
Location: India
Posts: 84
Rep Power: 12
Sachin m is on a distinguished road
Quote:
Originally Posted by foamF View Post
Hi, everyone. I just started to a look at the tutorial of floating object using the rigidBodyMotion solver in OpenFOAM. There are two points that I don't understand:

1. Based on my understanding, the keyword "transform" defines the centre of rotation, and the rotation axes for the calculation of inertia. Please correct me if I am incorrect.

My question is why the centre of rotation is not defined to be the same as the centre of mass. Any advice how the centre of rotation and the rotation axes are determined?

2. In the sub-section of joint to describe the degree of freedom, the composite type of joint is chosen. And, it uses Py and Ry to constraint the translation and rotation to be moved only along y-axis.

I presume the case is setup to simulate the free moving motion of a floating object. Why its motion is constrained in the computation?

Indeed, I tried to change the constraint to Pxyz and Rxyz so that there is actually no constraint (please correct me if I am wrong). But, the model crashes after some time steps. What is the problem?

I have one more question on this topic. Is there any difference of Rxyz, Ryxz and Rzyx?

looking forward to the valuable advice from experts!! Thanks in advance.
Hi,

Have you found an answer to this?

If so let me know. Iam also working on floating body tutorial I had tried the same as you said Pxyz and Rxyz.
Simulation crashes.

Regards
Sachin
gcampana likes this.
Sachin m is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to create a function object in OpenFoam that runs properly ? mkhm OpenFOAM Programming & Development 1 October 20, 2018 17:16
Is OpenFOAM capable to simulate a floating object with variable density? Idosar OpenFOAM 0 September 29, 2015 17:13
Compilation error OF1.5-dev on Suse10.3 darenyang OpenFOAM Installation 0 April 29, 2009 05:55
[blockMesh] BlockMeshmergePatchPairs hjasak OpenFOAM Meshing & Mesh Conversion 11 August 15, 2008 08:36
Adventure of fisrst openfoam installation on Ubuntu 710 jussi OpenFOAM Installation 0 April 24, 2008 15:25


All times are GMT -4. The time now is 18:51.