using System; namespace Science.Physics.GeneralPhysics { /// /// CircuitRC /// public class CircuitRC { private Resistance r; private Capacitance c; private ElectricPotentialDifference e; private ElectricCharge q; private bool charging = true; public CircuitRC() { } public CircuitRC(Resistance R, Capacitance C, ElectricPotentialDifference E) { r = R; c = C; e = E; } public CircuitRC(Resistance R, Capacitance C, ElectricCharge Q) { r = R; c = C; q = Q; charging = false; } public double Charge(Time t) { if(charging) return c.F*e.V*(1.0 - Math.Exp(-t.s/TimeConstant)); else return q.C*Math.Exp(-t.s/TimeConstant); } public double Current(Time t) { if(charging) return e.V/r.Ohm*Math.Exp(-t.s/TimeConstant); else return -q.C/r.Ohm/c.F*Math.Exp(-t.s/TimeConstant); } public double TimeConstant { get{return r.Ohm*c.F;} } } }