using System; namespace Science.Physics.GeneralPhysics { /// /// PlaneElectromagneticWave /// public class PlaneElectromagneticWave : SinusoidalWave { double cp = Constant.SpeedOfLightInVacuum; public PlaneElectromagneticWave() { this.Speed = cp; } private double Emax; public double ElectricFieldMaximum { get{return Emax;} set{Emax=value;} } public double MagneticFieldMaximum { get{return Emax/cp;} } private ElectricField e = new ElectricField(); private MagneticField b = new MagneticField(); private Velocity cv = new Velocity(); public void Set(Position x, Time t) { double k = this.AngularFrequency/cp; e.Y = Emax*Math.Cos(k*x.X-this.AngularFrequency*t.s); b.Z = Emax/cp*Math.Cos(k*x.X-this.AngularFrequency*t.s); cv.X = cp; } public ElectricField E { get{return e;} } public MagneticField B { get{return b;} } public Velocity c { get{return cv;} } public Vector PoyntingVector { get{return 1.0/Constant.PermittivityOfFreeSpace*(e % b);} } } }