|
[Sponsors] |
OpenFOAM - Questions about rigidBodyMotion of floating object tutorial |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
Member
Join Date: Aug 2018
Posts: 47
Rep Power: 8 ![]() |
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. |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Join Date: Sep 2013
Posts: 353
Rep Power: 20 ![]() |
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. |
|
![]() |
![]() |
![]() |
![]() |
#3 |
Member
Join Date: Aug 2018
Posts: 47
Rep Power: 8 ![]() |
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? |
|
![]() |
![]() |
![]() |
![]() |
#4 | |
Member
Himanshu
Join Date: Jan 2017
Posts: 34
Rep Power: 9 ![]() |
Quote:
will this center of rotation and Center of Mass change during simulation and as we see in COG changes during sixDOF simulation? |
||
![]() |
![]() |
![]() |
![]() |
#5 |
Member
Sachin
Join Date: Aug 2014
Location: India
Posts: 84
Rep Power: 12 ![]() |
Does anyone know how the transform is to be defined in the floatingobject tutorial case?
|
|
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Join Date: Sep 2013
Posts: 353
Rep Power: 20 ![]() |
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); 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); |
|
![]() |
![]() |
![]() |
![]() |
#7 | |
Member
Sachin
Join Date: Aug 2014
Location: India
Posts: 84
Rep Power: 12 ![]() |
Quote:
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. |
||
![]() |
![]() |
![]() |
![]() |
#8 | |
Member
Sachin
Join Date: Aug 2014
Location: India
Posts: 84
Rep Power: 12 ![]() |
Quote:
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 |
||
![]() |
![]() |
![]() |
|
|
![]() |
||||
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 16:16 |
Is OpenFOAM capable to simulate a floating object with variable density? | Idosar | OpenFOAM | 0 | September 29, 2015 16:13 |
Compilation error OF1.5-dev on Suse10.3 | darenyang | OpenFOAM Installation | 0 | April 29, 2009 04:55 |
[blockMesh] BlockMeshmergePatchPairs | hjasak | OpenFOAM Meshing & Mesh Conversion | 11 | August 15, 2008 07:36 |
Adventure of fisrst openfoam installation on Ubuntu 710 | jussi | OpenFOAM Installation | 0 | April 24, 2008 14:25 |