using System; namespace Science.Physics.GeneralPhysics { /// /// AngularAcceleration /// public class AngularAcceleration : Vector { private void SetDim() { this.DimensionMass = 0; this.DimensionLength = 0; this.DimensionTime = -2; } public AngularAcceleration() { SetDim(); } public double radPERsSQUARE { get{return this.Norm;} } public AngularAcceleration(AngularVelocity final, AngularVelocity initial, Time t) { SetDim(); this.X = (final.X - initial.X) / t.s; this.Y = (final.Y - initial.Y) / t.s; this.Z = (final.Z - initial.Z) / t.s; } public AngularAcceleration(MomentOfInertia I, TotalTorque tau) { SetDim(); Tensor iI = I.Inverse; Vector v = new Vector(); v.X = tau.X; v.Y = tau.Y; v.Z = tau.Z; Vector p = iI * v; this.X = p.X; this.Y = p.Y; this.Z = p.Z; } public AngularAcceleration(AngularVelocity omega, Time t) { SetDim(); Vector v = VectorCalculus.TimeDerivative(omega,t); this.X = v.X; this.Y = v.Y; this.Z = v.Z; } public override string ToString() { return base.ToString() + "(rad/s^2)"; } } }