using System; namespace Science.Physics.GeneralPhysics { /// /// MaxwellEquation /// public class MaxwellEquation { public MaxwellEquation() { } private ElectricField e; public ElectricField E { get{return e;} set{e = value;} } private MagneticField b; public MagneticField B { get{return b;} set{b = value;} } private Scalar.Field rho; public Scalar.Field ChargeDensity { get{return rho;} set{rho = value;} } private Vector.Field J; public Vector.Field CurrentDensity { get{return J;} set{J = value;} } private Time t; private Position r; public Time AtTime { get{return t;} set{t=value;} } public Position AtPosition { get{return r;} set{r=value;} } private string result; public string Result { get{return result;} } public void CheckGaussLaw() { double zero = VectorCalculus.Divergence(e,r,t).Magnitude - rho(r,t).Magnitude/Constant.PermittivityOfFreeSpace; if(Math.Abs(zero) < 0.000001) result +="Good in Gauss Law!"+"\r\n"; else result += Convert.ToString(VectorCalculus.Divergence(e,r,t)) +" "+ Convert.ToString(rho(r,t).Magnitude) +" Violation in Gauss Law!"+"\r\n"; } public void CheckGaussLawInMagnetism() { double zero = VectorCalculus.Divergence(b,r,t).Magnitude; if(Math.Abs(zero) < 0.000001) result +="Good in Gauss Law In Magnetism!"+"\r\n"; else result += Convert.ToString(VectorCalculus.Divergence(b,r,t)) +" Violation in Gauss Law In Magnetism!"+"\r\n"; } public void CheckFaradayLaw() { Vector zero = VectorCalculus.Curl(e,r,t)+VectorCalculus.TimePartialDerivative(b,r,t); if(zero.Norm < 0.000001) result += "Good in Faraday Law!"+"\r\n"; else result += Convert.ToString(VectorCalculus.Curl(e,r,t).Norm) +" "+Convert.ToString(VectorCalculus.TimePartialDerivative(b,r,t).Norm) +" Violation in Faraday Law!"+"\r\n"; } public void CheckAmpereLaw() { Vector zero = VectorCalculus.Curl(b,r,t) -Constant.PermittivityOfFreeSpace *Constant.PermeabilityOfFreeSpace *VectorCalculus.TimePartialDerivative(e,r,t) -Constant.PermeabilityOfFreeSpace*J(r,t); if(zero.Norm < 0.000001) result += "Good in Ampere Law!"+"\r\n"; else result += Convert.ToString(VectorCalculus.Curl(b,r,t).Norm) +" "+Convert.ToString(VectorCalculus.TimePartialDerivative(e,r,t).Norm) +" "+Convert.ToString(J(r,t).Norm) +" Violation in Ampere Law!"+"\r\n"; } } }