Pressure and torque in water without external gravity

AI Thread Summary
Calculating torque on an air object submerged in water without external gravity presents unique challenges, as pressure is uniform unless the water is accelerating. The air object cannot experience torque in a rigid sense; it will deform and potentially rupture under gravity or form a sphere due to surface tension in the absence of gravity. The discussion highlights the complexity of modeling forces and torques in a fluid environment, especially when considering the interaction between water and air. The provided code aims to simulate these forces and calculate torque based on the geometry of the air object and surrounding water. Ultimately, the consensus is that without external gravity, the air object cannot maintain a stable torque due to its deformable nature.
Gh778
Messages
419
Reaction score
0
I would like to calculate the torque on the air object under water. The pressure is only give from water (water attrack itself), there is no other gravity (like Earth for example) or other object around. Without air, in the center the gravity is 0 I think. With asymetric air volume, I think the pressure at left is lower than at right like it's impossible I would like to calculate this torque. How can I do ?
 

Attachments

  • wa2.png
    wa2.png
    3.5 KB · Views: 458
Physics news on Phys.org
Hi Gh778

Now this geometry is simple and no 3D imagination is required!
But without gravity, pressure is the same everywhere through the water unless the water is acceleration. Furthermore what keeps the air region in that geometry? there must be a rigid container containing the air. Your problem becomes the simple case of an arbitrary rigid object withing a uniform pressure.
 
For example, take a planet (1000 km of diameter) of water with big air object inside. Like that we can calculate the torque because the gravity is not small.
 
The air object cannot experience a torque as it isn't rigid. It will deform and rupture under gravity, or if there is no gravity, it would form a sphere due to surface tension. As it does form a sphere I guess you would get boundary layers of air moving with the water as the interface evolves, but there can't be torque because the air has no resistance to such a shear stress.
 
I think the water and the object would separate and the water form a perfec sphere after pushing out the air/object.
 
My question is to know if there is a torque or not, at start the object was small but some people don't see gravity effect. You can imagine an object big enough for have some gravity effect and small enough to be attach on Earth, 1km for example. A sphere with water inside, the air object seems to have a torque.

My program, the torque is big compared to water force:

#include <stdio.h>
#include <math.h>

//tab for contain all point, a point = a molecule of water for example
double t[1000][1000];

int main(void)
{

int i,j,x,y; // used for loops

double
d=0,
Fx=0, // local force x
Fy=0, // local force y
angle=0,
R=0, // radius
xx=0, // local x force
yy=0, // local y force
id=0, // simulate the gravity formula: 1/d²

// forces on water
TFx1=0, // Torque on left vertical line from direct force
TFy1=0, // Torque on left vertical line from pressure
TFx2=0, // Torque on right vertical line from direct force

// forces on air object
TFy2=0, // Torque on right vertical line from pressure
TFx3=0, // Torque on slope line from direct force
TFy3=0; // Torque on slope line from pressure

printf("\nStart\n"); // put 1 in tab t if there is a molecule of water
for(i=0;i<1000;i++)
{
for(j=0;j<1000;j++)
{
//in the circle put 1
if(((i-500)*(i-500)+(j-500)*(j-500))<=250000)
t[j]=1;
else // outside the circle put 0
t[j]=0;
// put 0 for the air block part of circle
if(((i-500)*(i-500)+(j-500)*(j-500))>=78400 && ((i-500)*(i-500)+(j-500)*(j-500))<=90000 && i>500 && i<750 && j>500)
{
t[j]=0;
}

}
}

// put 0 in the vertical volume
for(i=480; i<520; i++)
for(j=500; j<800;j++)
t[j]=0;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Caculate force and torque for x=480, y from 500 to 800
// this is the left vertical line
x=480;
for(y=500;y<800;y++)
{
Fx=0;Fy=0;
for(i=0; i<1000; i++)
{
for(j=999; j>=0;j--)
{
d=sqrt(pow(fabs(i-x),2.0)+pow(fabs(j-y),2.0));
if(d!=0)
{
id=(double)(t[j])/d/d;
angle=fabs(atan((fabs(j-y)/fabs(i-x))));
if(i>=x && j>=y)
{
xx=id*fabs(cos(angle));
yy=id*fabs(sin(angle));
}
else if(i<x && j>=y)
{
xx=-id*fabs(cos(angle));
yy=id*fabs(sin(angle));
}
else if(i<=x && j<y)
{
xx=-id*fabs(cos(angle));
yy=-id*fabs(sin(angle));
}
else if(i>x && j<y)
{
xx=id*fabs(cos(angle));
yy=-id*fabs(sin(angle));
} Fx+=xx;
Fy+=yy;
}
//printf("\nx=%i, y=%i, i=%i, j=%i, d=%f, id=%f, s=%f, xx=%f, yy=%f, angle=%f, Fx=%f, Fy=%f", x, y, i, j, d, id, s, xx, yy, angle, Fx, Fy);
//system("Pause");
}
// printf("\nx=%i, y=%i, i=%i, j=%i, d=%f, id=%f, s=%f, xx=%f, yy=%f, angle=%f, Fx=%f, Fy=%f", x, y, i, j, d, id, s, xx, yy, angle, Fx, Fy);
// system("Pause");
}
R=((double)y-500.0)/10000.0;
TFx1+=Fx*R;
TFy1=TFy1+(TFy1+Fy)*R;
//printf("\nFy=%f, R=%f, TFy=%f", Fy, R, TFy);
//system("Pause");
}

printf("\nTFx=%f, TFy=%f", TFx1, -TFy1);

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Calculate forces and torque for x=520, y from 500 to 780
// This is the right vertical line
x=520;
for(y=500;y<780;y++)
{
Fx=0;Fy=0;
for(i=0; i<1000; i++)
{
for(j=999; j>=0;j--)
{
d=sqrt(pow(fabs(i-x),2.0)+pow(fabs(j-y),2.0));
if(d!=0)
{
id=(double)(t[j])/d/d;
angle=fabs(atan((fabs(j-y)/fabs(i-x))));
if(i>=x && j>=y)
{
xx=id*fabs(cos(angle));
yy=id*fabs(sin(angle));
}
else if(i<x && j>=y)
{
xx=-id*fabs(cos(angle));
yy=id*fabs(sin(angle));
}
else if(i<=x && j<y)
{
xx=-id*fabs(cos(angle));
yy=-id*fabs(sin(angle));
}
else if(i>x && j<y)
{
xx=id*fabs(cos(angle));
yy=-id*fabs(sin(angle));
} Fx+=xx;
Fy+=yy;
}
//printf("\nx=%i, y=%i, i=%i, j=%i, d=%f, id=%f, s=%f, xx=%f, yy=%f, angle=%f, Fx=%f, Fy=%f", x, y, i, j, d, id, s, xx, yy, angle, Fx, Fy);
//system("Pause");
}
// printf("\nx=%i, y=%i, i=%i, j=%i, d=%f, id=%f, s=%f, xx=%f, yy=%f, angle=%f, Fx=%f, Fy=%f", x, y, i, j, d, id, s, xx, yy, angle, Fx, Fy);
// system("Pause");
}
R=((double)y-500.0)/10000.0;
TFx2+=Fx*R;
TFy2=TFy2+(TFy2+Fy)*R;
// printf("\ny=%i, Fx=%f, Fy=%f", y, Fx, Fy);
// system("Pause");
}
printf("\nTFx=%f, TFy=%f", TFx2, TFy2);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// x=750, y from 126 to 165
// This is theslope right line of air block
x=750;
for(y=626;y<665;y++)
{
Fx=0;Fy=0;
for(i=0; i<1000; i++)
{
for(j=999; j>=0;j--)
{
d=sqrt(pow(fabs(i-x),2.0)+pow(fabs(j-y),2.0));
if(d!=0)
{
id=(double)(t[j])/d/d;
angle=fabs(atan((fabs(j-y)/fabs(i-x))));
if(i>=x && j>=y)
{
xx=id*fabs(cos(angle));
yy=id*fabs(sin(angle));
}
else if(i<x && j>=y)
{
xx=-id*fabs(cos(angle));
yy=id*fabs(sin(angle));
}
else if(i<=x && j<y)
{
xx=-id*fabs(cos(angle));
yy=-id*fabs(sin(angle));
}
else if(i>x && j<y)
{
xx=id*fabs(cos(angle));
yy=-id*fabs(sin(angle));
} Fx+=xx;
Fy+=yy;
}
//printf("\nx=%i, y=%i, i=%i, j=%i, d=%f, id=%f, s=%f, xx=%f, yy=%f, angle=%f, Fx=%f, Fy=%f", x, y, i, j, d, id, s, xx, yy, angle, Fx, Fy);
//system("Pause");
}
// printf("\nx=%i, y=%i, i=%i, j=%i, d=%f, id=%f, s=%f, xx=%f, yy=%f, angle=%f, Fx=%f, Fy=%f", x, y, i, j, d, id, s, xx, yy, angle, Fx, Fy);
// system("Pause");
}

R=((double)y-500.0)/10000.0;
TFx3+=Fx*R;

TFy3=TFy3+(TFy3+Fy)*R;

// printf("\nTFx=%f, TFy=%f, T=%f", TFx, TFy, T);
// system("Pause");

}

printf("\nTFx=%f, TFy=%f", TFx3, TFy3);
system("Pause");
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
return 0;
}
 
Last edited:
Hi there, im studying nanoscience at the university in Basel. Today I looked at the topic of intertial and non-inertial reference frames and the existence of fictitious forces. I understand that you call forces real in physics if they appear in interplay. Meaning that a force is real when there is the "actio" partner to the "reactio" partner. If this condition is not satisfied the force is not real. I also understand that if you specifically look at non-inertial reference frames you can...
I have recently been really interested in the derivation of Hamiltons Principle. On my research I found that with the term ##m \cdot \frac{d}{dt} (\frac{dr}{dt} \cdot \delta r) = 0## (1) one may derivate ##\delta \int (T - V) dt = 0## (2). The derivation itself I understood quiet good, but what I don't understand is where the equation (1) came from, because in my research it was just given and not derived from anywhere. Does anybody know where (1) comes from or why from it the...
Back
Top