/// <summary> /// This calculates the downward force(Weight that you feel) due to Acceleration due to "pushing forward" in your own time gradient /// This assumes the massBody is not in any other Time Gradients except for the one produced by acceleration /// Where? At the Center of Mass? /// </summary> /// <param name="massBody">This is the "inertial mass"</param> /// <param name="accelerationMetersPerSecondSquared"></param> /// <returns></returns> public static double WeightForceDueToAcceleration(this MassBody massBody, double accelerationMetersPerSecondSquared = 0, double initialVelocity_ms = 0) { var lorentzFactor = LorentzFormula.IncreaseDueToVelocity_LorentzFactor_Gamma(initialVelocity_ms);//at low speeds, this is 1, at close to C, this approaches infinity //This insinuates that as you get closer to C, you can't accelerate very fast or you'll get crushed return(massBody.Mass * lorentzFactor * accelerationMetersPerSecondSquared); }
/// <summary> /// This will return the time dilation factor compared to 1 second. /// </summary> /// <param name="velocity"></param> /// <returns></returns> public static double GetTimeDilationFactorDueToVelocity(double velocity) { //As far as we know, it isn't possible to go the speed if (velocity > Constants.SPEED_OF_LIGHT_ms) { throw new Exception("As far as we know it isn't possible to go the speed of light"); } //only things with 0 Mass like Photons can go the speed of light, and Time stops //This won't return the correct answer at speeds really close to C, but good enough for now if (velocity.Equals4DigitPrecision(Constants.SPEED_OF_LIGHT_ms)) { return(0); } return(1 / LorentzFormula.IncreaseDueToVelocity_LorentzFactor_Gamma(velocity)); }
/// <summary> /// This calculates the momentum that you have from a constant speed. you won't feel "weight" unless you are in another time gradient /// </summary> /// <param name="massBody"></param> /// <param name="velocity_ms"></param> /// <returns></returns> public static double MomentumForceDueToVelocity(this MassBody massBody, double velocity_ms) { var lorentzFactor = LorentzFormula.IncreaseDueToVelocity_LorentzFactor_Gamma(velocity_ms);//at low speeds, this is 1, at close to C, this approaches infinity return(massBody.Mass * lorentzFactor * velocity_ms); }