using System; using GP = Science.Physics.GeneralPhysics; namespace ScienceTest.PhysicsTest.GeneralPhysicsTest { /// /// PotentialEnergyTest /// public class PotentialEnergyTest { public PotentialEnergyTest() { } private string result; public string Result { get{return result;} } public void Compute() { GP.Scalar.FunctionOfPosition func = new GP.Scalar.FunctionOfPosition(xtoe); GP.PotentialEnergy U = new GP.PotentialEnergy(); U.ScalarFunctionOfPosition = func; GP.Position r = new GP.Position(); r.X = 1.0; r.Y = 3.0; r.Z = 0.0; U.At(r); result += U.ToString()+"\r\n"; GP.Position rf = new GP.Position(); rf.X = 1.0; rf.Y = 2.0; rf.Z = 40.0; result += U.Difference(r,rf).ToString()+"\r\n"; GP.Vector.FunctionOfPosition fa = new GP.Vector.FunctionOfPosition(xtof); GP.Force f = new GP.Force(); f.VectorFunctionOfPosition = fa; GP.PotentialEnergy reference = new GP.PotentialEnergy(); reference.J = 10.0; GP.PotentialEnergy NU = new GP.PotentialEnergy(f,r,reference); result += NU.ValueAt(rf).ToString(); } private GP.Scalar xtoe(GP.Position x) { GP.Scalar s = new GP.Scalar(); s.Magnitude = 0.5*10.0*x.X*x.X+13.0*x.Y; return s; } private GP.Vector xtof(GP.Position x) { GP.Vector f = new GP.Vector(); f.X = -0.5*x.X; f.Y = -0.5*x.Y; f.Z = -0.5*x.Z; return f; } } } /* 44 +/- 0 (J) -13 408.749999999822 */