Boyancy

Started by
92 comments, last by Daerax 19 years ago
I have an object partly immersed in water. The result is a boyant force pushing upward. So far am cool with that. But in some cases the boyant force causes moment (analogical for force in the world of rotation)... In the act of calculating that moment I need to know the resultant POINT OF APPLICATION of the boyant forces. IS IT A SAFE ASSUMPTION TO MAKE THE CENTER OF GRAVITY OF THE "IMMERSED VOLUME" AS THE POINT OF APPLICATION? PLEASE HELP
[ my blog ]
Advertisement
Quote:Original post by arithma
IS IT A SAFE ASSUMPTION TO MAKE THE CENTER OF GRAVITY OF THE "IMMERSED VOLUME" AS THE POINT OF APPLICATION?


Unfortunately not really. The boyancy force is directly proportional to the volume of water displaced by the object. In reality the force is evenly distributed across the objects surface and is at any one point proportional to the volume displaced by the object directly above that point. To solve this exactly would require integrals, however this can be approximated by solving for evenly distributed points along the objects submerged surface. For each point cast a ray upward to the water surface to get the length of displacement and treat the segment as a cuboid with width and depth equal the spacing between points and height equal to the length of the ray above to give you the volume. You can then calculate the buyoncy force to apply at each point from here which should lead to the rotational behaviour you'd expect.

Hope this helps
[size="1"] [size="4"]:: SHMUP-DEV ::
The forces are not evenly distributed over the surface since pressure increases as depth increases, so upthrust at the buttom is greater than closer into the surface... Did I get something mixed up here?
[ my blog ]
But unless your dealing with objects which are extremely volumous its safe to disregard the pressure difference. And I've just realised that i shouldn't have said evenly distributed. Rather what I mean is that the force is distributed across the submerged surface but is not even because it is proportional to the submerged volume directly above it as I go on to say.
[size="1"] [size="4"]:: SHMUP-DEV ::
Indeed, force is applied on surface, as well as weight is applied to every particle. But in sum, force is the same as if it would be applied to single point.
As about disregarding pressure difference, damnit, as all buoyant force is result of pressure difference, don't you know that?

In hydrostatical case (that is, no turbulence/something), force is applied to center of mass of displaced volume of water, and if i understood arithma's post right, exactly as guessed.

It is very easy to prove ala Archimedes theorem. Water in water doesn't spin, and there's no turning force. All forces is compensated. If we have water in the bag, we can assume in computations that weight is applied to center of mass. And bag with water doesn't turn in water, therefore buoyant force neutralizes weight, and to do that it have to in sum be applied to center.

In summary:
1: Sum of forces applied acts exactly as one force applied to center of mass of displaced volume of water. (well, almost exactly, if you gonna to take curvature of Earth and non-linearity of gravitation field into account, you'll get some extremely small difference)
2: Motorherp's idea about disregarding pressure difference is completely incorrect.
My bad. I had it in my head you were refering to applying the force at the objects centre of mass. Totally missed the submerged volume centre of mass thing. However, computationaly speaking, unless you are dealing with very simple shapes you'll find it difficult to approximate this 'submerged volume' and harder still to find its centre of mass. Hence for complex shapes you might be better sticking with an idea like I said where the buyancy force is approximated at points distributed accross the submerged surface.

Quote:Original post by Dmytry
2: Motorherp's idea about disregarding pressure difference is completely incorrect.


Not exactly. What I was refering to is that in most cases the pressure difference between two points on the bottom of the submerged surface, where in my example the force is approximated, is negligable.
[size="1"] [size="4"]:: SHMUP-DEV ::
Quote:Original post by Motorherp
My bad. I had it in my head you were refering to applying the force at the objects centre of mass. Totally missed the submerged volume centre of mass thing. However, computationaly speaking, unless you are dealing with very simple shapes you'll find it difficult to approximate this 'submerged volume' and harder still to find its centre of mass. Hence for complex shapes you might be better sticking with an idea like I said where the buyancy force is approximated at points distributed accross the submerged surface.

Quote:Original post by Dmytry
2: Motorherp's idea about disregarding pressure difference is completely incorrect.


Not exactly. What I was refering to is that in most cases the pressure difference between two points on the bottom of the submerged surface, where in my example the force is approximated, is negligable.

not neligable. Buoyancy force is result of pressure difference.

And if you properly compute surface integral of force (for every submerged triangle of mesh), it will be the same as computing submerged volume and center of mass of that volume. It is relatively easy.
Quote:Original post by Dmytry
not neligable. Buoyancy force is result of pressure difference.

Yes....between a point on the top of the object and a point on the bottom it is very significant. However in my method where the force is approximated at points across the bottom, the pressure difference between any two points on the bottom when compared to the pressure difference between top and bottom is negligable. Because of this the pressure diff at force application points can be taken as constant, ie: the variation is negligable (at least enough of the time to make a convincing if not completely physicaly accurate simulation).

Out of interest, since we're talking about simulations for real time applications, just how practical is it to properly compute the surface integral of force for every submerged triangle of the mesh, every frame for every submerged object? I'm not splitting hairs.....I honestly don't know.
[size="1"] [size="4"]:: SHMUP-DEV ::
if you gonna to make any physics, you anyway will have to do many things on per-triangle basis, and will have to have low-poly models for physics anyway. So probably not that costly. Integral for every triangle is analitical, you need to check every triangle of mesh, and pseudocode:

Vector3 sum(0,0,0);
Float distlaced_mass;
for every triangle{
if triangle is completely underwater, compute effect of volume of water enclosed by this triangle and it's projection onto water surface, kinda prism-like. That is, find mass of water in that volume and add to displaced_mass, find center of mass of that volume, add coordinate of center of mass multiplied by mass to the sum
else
if triangle is partially underwater
cut triangle with water plane leaving unly underwater part, do the same as above with that cut surface.
}
center_of_mass_of_underwater_volume=sum*(1/total_mass)

Note: For clockwise or counterclockwise looking-from-top triangles, volume in calculations must be negative. That way, it should work even with concave mesh.
Take this example and you will immediatly know where I want to take you regarding the resultant point of application (used for converting forces in angular uses):

A cylinder is immersed perpendicularly with respect to the surface of water. Since the forces on the (curved) sides of the cylinder cancel each other out, the resultant force is exclusively the pressure applied to the base surface. This in other words leads us to the conclusion that the point of application is also in that plane (containing the button surface). In conclusion, we cannot take the center of mass of displaced water as the point of application.

Any way I would like to thank Dmytry for his explanation on volumes and such (very insightful).
And thank Motorhep for doing mistakes so that Dmytry can point them out and warn us about them :)
Please Continue to help
[ my blog ]

This topic is closed to new replies.

Advertisement