Boyancy

Started by
92 comments, last by Daerax 19 years, 1 month ago
Quote:Original post by Dmytry
2:the point of proof is that it is valid to use center of mass of object as point of application of force,


You mean the center of mass of the displaced water, I'm sure...

Edit: PS apologies Dmytry for my accidental misspelling of your name before!
Advertisement
Quote:Original post by MrRowl
Quote:Original post by Dmytry
2:the point of proof is that it is valid to use center of mass of object as point of application of force,


You mean the center of mass of the displaced water, I'm sure...

exactly, thanks.
Quote:

Edit: PS apologies Dmytry for my accidental misspelling of your name before!

no problem. I myself misspelled it once[grin]
@Dymtry, My original idea on subdiving into volumes is stupid, you are right Dymtry. What I thought of next though, was to populate the surfaces of the mesh or 3D object with points defining planes and trying to enclose the object within a representational volume constructed from these chosen points. The greater the density of the point spread the better. One would then integrate volumetrically, I dont know how achievable this is in reality though but I dont see how this is any worse than applying a surface integral all through dy, although it seems more difficult to implement.

But I agree with you that the center of application of the force is the center of buoyance or the center of mass of the displaced fluid. Actually my proof was based on that fact. I havent seen your proof Dymtry but will assume its correct and not post mine. (thanks for saving me the trouble, we were actually arguing the same thing Edit - It looks like you are using columns...dV? volumes? cheater! Is it me or is everyone talking the same thing at each other :p). Anyway, I end up with, based on the Center of Mass principle or law or whatever with the center of bouyancy being at :
 Cb = ∫∫∫rρdV     ∫∫∫ρdV

As for hydrodynamics, which I know very little about [grin], I think it would be best to look at it from an energy perspective and use the Lagrange equations. This just popped in my head, I dont know how applicable it really is.

[Edited by - Daerax on April 4, 2005 9:00:39 AM]
Quote:Original post by Dmytry
2Eelco: Actually, in hydrostatic case computation of submerged volume and center of it is equivalent (both complexity-wise and result-wise) to computation of pressure sum on all triangles.

i know, the result is the same, and time timecomplexity aswell. that doesnt mean they are both equaly fast or convenient though.

Quote:
In both cases you need to iterate through each triangle and actually find force acting on it (and center). With one exception, that you actually don't need to compute x and y components of force, and computation of center takes that into account.... My point is actually that it is equivalent, and that "IT IS A SAFE ASSUMPTION TO MAKE THE CENTER OF GRAVITY OF THE "IMMERSED VOLUME" AS THE POINT OF APPLICATION" (from first post) is true.

yes, all correct, except that dropping x and y components is not desired when your body of water is not a flat plane. if it is, you could drop x,y calculations from the surface integral method aswell though.

however, would you like to tell me how to actually find the volume of displaced water in a way that is easier than what i explained above for surface integrals? i dont see how it can be done easily, especially not when water is not a flat plane, but a heightfield for instance.
Quote:Original post by Eelco
Quote:Original post by Dmytry
2Eelco: Actually, in hydrostatic case computation of submerged volume and center of it is equivalent (both complexity-wise and result-wise) to computation of pressure sum on all triangles.

i know, the result is the same, and time timecomplexity aswell. that doesnt mean they are both equaly fast or convenient though.

Quote:
In both cases you need to iterate through each triangle and actually find force acting on it (and center). With one exception, that you actually don't need to compute x and y components of force, and computation of center takes that into account.... My point is actually that it is equivalent, and that "IT IS A SAFE ASSUMPTION TO MAKE THE CENTER OF GRAVITY OF THE "IMMERSED VOLUME" AS THE POINT OF APPLICATION" (from first post) is true.

yes, all correct, except that dropping x and y components is not desired when your body of water is not a flat plane. if it is, you could drop x,y calculations from the surface integral method aswell though.

however, would you like to tell me how to actually find the volume of displaced water in a way that is easier than what i explained above for surface integrals? i dont see how it can be done easily, especially not when water is not a flat plane, but a heightfield for instance.

If water is not a flat plane, it is hydrodynamics, and indeed you'll need to use surface integral of pressure. I agree that it could be clearer to do as general surface integral of pressure (so it will work with hydrodynamics aswell), but my point was that in hydrostatical case, arithma's statement was correct, as he asked if it is correct.

Also, if you drop x and y computation from pressure on surface integral, you get exactly that computation of volume, it's just matter of moving some terms out of integral (namely, that cross product in momentum computation). Actually, this computation of volume uses divergence theorem to find volume from enclosing surface, that's why it is so similar. Volume is found by computing surface integral of flow [sp?] of field with constant divergence. In this case, it is reasonable to use field F(x,y,z)=[0,y,0] that have constant divergence =1. Note that y-component of this field is very much like our pressure field f(x,y,z)=-y*density*g , except for constant multiplier. And note that vertical component of pressure force on surface is equal to y*density*g*dS , and flow of F through dS is y*dS .
Quote:Original post by Dmytry
Also, if you drop x and y computation from pressure on surface integral, you get exactly that computation of volume, it's just matter of moving some terms out of integral (namely, that cross product in momentum computation). Actually, this computation of volume uses divergence theorem to find volume from enclosing surface, that's why it is so similar. Volume is found by computing surface integral of flow [sp?] of field with constant divergence. In this case, it is reasonable to use field F(x,y,z)=[0,y,0] that have constant divergence =1. Note that y-component of this field is very much like our pressure field f(x,y,z)=-y*density*g , except for constant multiplier. And note that vertical component of pressure force on surface is equal to y*density*g*dS , and flow of F through dS is y*dS .

yeah..

but still: how do you plan to go about calculating submerged volume? clipping the tetraeder formed by a triangle and some arbitrary point against the waterplane doesnt seem too trivial to me. the fact that this point is arbitrary screams reduncancy to me anyway: dropping it will get you back at the surface integral. clipping a triangle against a plane woud be easier no matter what i believe.
2Daerax : i used columns in proof, but it would not be good to use them to compute things. In proof you can use infinitely many infinitely small columns :-) but not in actual computations.

As about both sides arguing about same thing... Not really.
I agree with both physical validity of use of integral of pressure acting on surface(and practical validity if it is implemented well), AND with validity of Archimedes theorem (in hydrostatical case). Also, i said and say that *physically*, buoyant force is a net force of pressure of liquid acting on surface.

And I disagree with claims on invalidity of either method (in hydrostarical case), (or claims that i'm is 100% wrong). Indeed, it leaves impression that both sides argues about same thing, but it is not. In summary, I agree with validity of some A and some B, and disagree with claims that "A is wrong and B is the only right way", or clamis that "B is wrong and A is the only right way" or "A is wrong and B is wrong".

[Edited by - Dmytry on April 4, 2005 12:15:17 PM]
Quote:Original post by Eelco
Quote:Original post by Dmytry
Also, if you drop x and y computation from pressure on surface integral, you get exactly that computation of volume, it's just matter of moving some terms out of integral (namely, that cross product in momentum computation). Actually, this computation of volume uses divergence theorem to find volume from enclosing surface, that's why it is so similar. Volume is found by computing surface integral of flow [sp?] of field with constant divergence. In this case, it is reasonable to use field F(x,y,z)=[0,y,0] that have constant divergence =1. Note that y-component of this field is very much like our pressure field f(x,y,z)=-y*density*g , except for constant multiplier. And note that vertical component of pressure force on surface is equal to y*density*g*dS , and flow of F through dS is y*dS .

yeah..

but still: how do you plan to go about calculating submerged volume? clipping the tetraeder formed by a triangle and some arbitrary point against the waterplane doesnt seem too trivial to me. the fact that this point is arbitrary screams reduncancy to me anyway: dropping it will get you back at the surface integral. clipping a triangle against a plane woud be easier no matter what i believe.

I have already explained how volume of submerged portion can be computed without using pyramids.

You find volume contained between triangle and it's projection onto water sirface. For completely submerged triangle with points ABC, it is simply
(1/12)*((B-A)×(C-A)).y*(A.y+B.y+C.y)

(y is directed to up)

Note that you actually get very similar thing for y-component of pressure force, (and when you finally compute force from that volume, equaltion will be the same).

Piramids method use field F(x,y,z)=[x,y,z] with constant divergence = 3 , and that method use field F(x,y,z)=[0,y,0] with constant divergence =1.
Volume of mesh is equal to sum of "flow" through all triangles, and that formula above is equal to flow through single triangle.

For partly submerged triangle, just clip it, you get quad (in general case), split it into 2 triangles, and do as above.

[Edited by - Dmytry on April 4, 2005 12:27:23 PM]
Quote:Original post by Dmytry
Quote:Original post by Eelco
Quote:Original post by Dmytry
Also, if you drop x and y computation from pressure on surface integral, you get exactly that computation of volume, it's just matter of moving some terms out of integral (namely, that cross product in momentum computation). Actually, this computation of volume uses divergence theorem to find volume from enclosing surface, that's why it is so similar. Volume is found by computing surface integral of flow [sp?] of field with constant divergence. In this case, it is reasonable to use field F(x,y,z)=[0,y,0] that have constant divergence =1. Note that y-component of this field is very much like our pressure field f(x,y,z)=-y*density*g , except for constant multiplier. And note that vertical component of pressure force on surface is equal to y*density*g*dS , and flow of F through dS is y*dS .

yeah..

but still: how do you plan to go about calculating submerged volume? clipping the tetraeder formed by a triangle and some arbitrary point against the waterplane doesnt seem too trivial to me. the fact that this point is arbitrary screams reduncancy to me anyway: dropping it will get you back at the surface integral. clipping a triangle against a plane woud be easier no matter what i believe.

I have already explained how volume of submerged portion can be computed without using pyramids.

sorry, i missed that its quite a lengthy thread.

Quote:
You find volume contained between triangle and it's projection onto water sirface. For completely submerged triangle with points ABC, it is simply
(1/12)*((B-A)×(C-A)).y*(A.y+B.y+C.y)

(y is directed to up)

Note that you actually get very similar thing for y-component of pressure force, same except for constant multiplier.

Piramids method use field F(x,y,z)=[x,y,z] with constant divergence = 3 , and that method use field F(x,y,z)=[0,y,0] with constant divergence =1.
Volume of mesh is equal to sum of "flow" through all triangles, and that formula above is equal to flow through single triangle.

For partly submerged triangle, just clip it, you get quad (in general case), split it into 2 triangles, and do as above.

yeah thats a good solution indeed.
I know Dmytry, I was just messing around, hehe. Anyway it looks like this thread it wrapping to a close so I will summarize for those who ever encounter this thread.

The Conclusion First

Anyway Id like to thank all that participated in this thread especially Arithma Dmytry and Anonymous Poster. I will now better appreciate my soups with all the vegetables and meats floating inside it; and I will never look at washing the dishes the same way again…Thanks All [grin]. Also if I made any mistakes please correct me and I will fix them, this summation was for my benefit and for any who come across this thread.

Basics of Buoyancy

Dmytry is not 100% Wrong but neither was the Anonymous Poster. But Dmytry is correct in that the most general method is that involving pressure. Both methods suggested are more or less equivalent in the hydrostatic case. The centre of buoyancy does not always coincide with the centre of gravity or mass. The center of buoyancy is the center of mass of the displaced mass and when it does not match the center of buoyancy a torque is experienced. An object in a fluid (which even air is) weighs less than in a vacuum as long as the object is a gravitational field at both times. The amount that the object’s weight is reduced is equal to the weight of the body of water that was displaced.

Archimede’s Principle

One way to calculate how this object actually feels this force is to use Archimedes’s principle to calculate the buoyant force by finding the volume of the displaced fluid and using certain equations listed above and easily found elsewhere. Often times the center of mass matches that of gravity and thus there is no torque, one can simply apply the calculated force at the centre of mass. Such is not always the case however so it is best to find the centre of buoyancy. Here is where the confusion was injected into the thread. As the level of the complexity of the volume increased so also did the methods required to find the torque on the mass due to displaced centres of masses (between object and water)..

When Pressure creates Torque

The most general method is to find the torque by taking the surface integral of the submerged volume. This tells us the torque that is felt throughout our surface in terms of the pressure felt by the surface. I will return to this point later because using Gauss’s Divergence theorem one can write Torque in terms of volume integrals which lead to a far simpler formulation which I found after much work. But first I will describe my steps. One method was to stick with the basic idea of Archimedes’s principle and integrating through the volume of the submerged section of the mass. A method to find the volume of the submerged volume by attempting to create a representational enclosing volume by defining a set of planes or surfaces actually based on points specified all along the object. This method is actually not very viable and is overly complicated (by the end of it I was thinking of splines…urgh). Although if one develops some kind of editor for the job the complexity is reduced by several orders of magnitude for the human.

The Divergance Thereom for the Center of Buouyancy

A method which may actually be viable and just might be the simplest method is to represent the volumes using spheres, simply fill the complex object with spheres. Clipping with the water plane is trivial, one can introduce scalability, more and smaller spheres could more accurately represent the volume. It is still not readily apparent though, where the center of buoyancy is.

As I said earlier, the divergence thereom allows us to rewrite the surface integral as a volume integral, using this fact the definition of pressure and its relation to mass and a bit of fancy calculus one can find the center of buoyancy.
 Cb = ∫∫∫rρdV     ∫∫∫ρdV

Remembering that T= F x R it becomes evident that the pressures across some surface S is equivalent to a force at some point Cb (assuming we define r in terms of a radial length defined from an origin - found using the triple integral) which is the center of mass of our liquid. And keeping in mind that if we sum through the infinitesimal volumes with density ρ we get the mass:
 T  = Cb x g∫∫∫ρdV  

This gives us a torque as the force that is applied at point Cb.

Methods for representing volume

Personally I think the best way to represent volumes is, in order of complexity through the use of a set of spheres, arbitrary volumes or enclosing planes. The more complex methods can be designated manually through the use of a tool.

For games though, where speed is most important I would suggest a simple bounding volume about the submerged portion of the object. Since however, these will not always be accurate representations I also think including a set of parameters that will scale the volume appropriately based on a set of heuristics will be good, for example if the volume is too big scale it down by a certain amount based on how much space is used. This method could be as simple as simple geometric methods to complex surfaces of revolution [no?]. Dmytry suggested a method involving projecting the triangles but I think this method does not scale well with the complexity of the object and its orientation increases. But I could be wrong. And if I am please clarify Dmytry [I don’t like ascii math, it hurts my eyses [sad]].

A method for Moving water?

For hydrodynamics the volume method does not work, one must integrate over the surface, but also in addition to the force of the water one must also consider that there is an additional force due to an accelerating body. This extra force can be calculated using different methods, dividing the water into different sectors each with mass and a certain amount of energy, appropriate evolution equations can be used to calculate the parameters of each sector. These will the be used to calculate the extra forces and torques to give our object.

Actually I will come back later and summarize Dmytry’s method for volumes and take a better look at its scalability... Unless I’m beating to it.



[Edited by - Daerax on April 5, 2005 5:53:06 AM]

This topic is closed to new replies.

Advertisement