using System; namespace Science.Physics.GeneralPhysics { /// /// Fluid /// public class Fluid { private Density rho; public Fluid(Density rho) { this.rho = rho; } public Force BuoyantForce(Volume V) { Force f = new Force(); f.Z = rho.kgPERmCUBE*V.mCUBE*Constant.AccelerationOfGravity; return f; } public Pressure PressureAtDepth(Length h) { Pressure p = new Pressure(); p.Pa = p.Atmosphere + rho.kgPERmCUBE*Constant.AccelerationOfGravity*h.m; return p; } public void SolveBernoulliEquation(Velocity v1, Length h1, Pressure P1, Velocity v2, Length h2, Pressure P2) { double sum = 0.0; if(!v1.XVariableQ) sum+=0.5*rho.kgPERmCUBE*v1.X*v1.X; if(!v1.YVariableQ) sum+=0.5*rho.kgPERmCUBE*v1.Y*v1.Y; if(!v1.ZVariableQ) sum+=0.5*rho.kgPERmCUBE*v1.Z*v1.Z; if(!h1.VariableQ) sum+=rho.kgPERmCUBE*Constant.AccelerationOfGravity*h1.m; if(!P1.VariableQ) sum+=P1.Pa; if(!v2.XVariableQ) sum-=0.5*rho.kgPERmCUBE*v2.X*v2.X; if(!v2.YVariableQ) sum-=0.5*rho.kgPERmCUBE*v2.Y*v2.Y; if(!v2.ZVariableQ) sum-=0.5*rho.kgPERmCUBE*v2.Z*v2.Z; if(!h2.VariableQ) sum-=rho.kgPERmCUBE*Constant.AccelerationOfGravity*h2.m; if(!P2.VariableQ) sum-=P2.Pa; if(v1.XVariableQ) v1.X = Math.Sqrt(2.0/rho.kgPERmCUBE*(-sum)); if(v1.YVariableQ) v1.Y = Math.Sqrt(2.0/rho.kgPERmCUBE*(-sum)); if(v1.ZVariableQ) v1.Z = Math.Sqrt(2.0/rho.kgPERmCUBE*(-sum)); if(h1.VariableQ) h1.m = -sum/rho.kgPERmCUBE/Constant.AccelerationOfGravity; if(P1.VariableQ) P1.Pa = -sum; if(v2.XVariableQ) v2.X = Math.Sqrt(2.0/rho.kgPERmCUBE*sum); if(v2.YVariableQ) v2.Y = Math.Sqrt(2.0/rho.kgPERmCUBE*sum); if(v2.ZVariableQ) v2.Z = Math.Sqrt(2.0/rho.kgPERmCUBE*sum); if(h2.VariableQ) h2.m = sum/rho.kgPERmCUBE/Constant.AccelerationOfGravity; if(P2.VariableQ) P2.Pa = sum; } } }