/// <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);
        }
Example #2
0
        /// <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);
        }