using System; namespace Science.Physics.GeneralPhysics { /// /// ElectricPotentialDifference /// public class ElectricPotentialDifference : Scalar { private void SetDim() { this.DimensionMass = 1; this.DimensionLength = 2; this.DimensionTime = -2; this.DimensionCharge = -1; } public ElectricPotentialDifference() { SetDim(); } public ElectricPotentialDifference(ElectricCharge Q, Capacitance C) { SetDim(); this.V = Q.C / C.F; } public double V { get{return this.Magnitude;} set{this.Magnitude=value;} } public ElectricPotentialDifference(Resistance R, ElectricCurrent I) { SetDim(); this.Magnitude = R.Ohm*I.A; } private Scalar.FunctionOfTime ft; public ElectricPotentialDifference(MagneticFlux Phi, Time t) { SetDim(); ft = Phi.ScalarFunctionOfTime; Calculus.Function func = new Calculus.Function(ff); this.Magnitude = - Calculus.Differentiation(func, t.s); } private double ff(double t) { Time tt = new Time(); tt.s = t; return ft(tt).Magnitude; } public ElectricPotentialDifference(Inductance L, ElectricCurrent I, Time t) { SetDim(); ii = I; this.Magnitude = -L.H * Calculus.Differentiation( new Calculus.Function(dIdt), t.s); } private ElectricCurrent ii; private double dIdt(double t) { Time tt = new Time(); tt.s = t; ii.Set(tt); return ii.A; } public override string ToString() { return base.ToString() + "(V)"; } } }