Example #1
0
            public void GetAngularVelocity()
            {
                Mass     massSM          = Mass.FromEarthMasses(1.0);
                Length   radiusKM        = Length.FromKilometers(10000.0);
                Density  densityGCC      = Density.FromGramsPerCubicCentimeter(2.0);
                Length   semiMajorAxisAU = Length.FromAstronomicalUnits(1.0);
                bool     isGasGiant      = false;
                Mass     largeMassSM     = Mass.FromSolarMasses(1.0);
                Duration largeAgeYears   = Duration.FromYears365(1e10);

                Assert.AreEqual(Env.AngularVelocity(massSM.SolarMasses,
                                                    radiusKM.Kilometers,
                                                    densityGCC.GramsPerCubicCentimeter,
                                                    semiMajorAxisAU.AstronomicalUnits,
                                                    isGasGiant,
                                                    largeMassSM.SolarMasses,
                                                    largeAgeYears.Years365),
                                _phy.Dynamics.GetAngularVelocity(massSM,
                                                                 radiusKM,
                                                                 densityGCC,
                                                                 semiMajorAxisAU,
                                                                 isGasGiant,
                                                                 largeMassSM,
                                                                 largeAgeYears).RadiansPerSecond,
                                LowDelta);
            }
Example #2
0
        public void ConversionRoundTrip()
        {
            Mass kilogram = Mass.FromKilograms(1);

            AssertEx.EqualTolerance(1, Mass.FromCentigrams(kilogram.Centigrams).Kilograms, CentigramsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromDecagrams(kilogram.Decagrams).Kilograms, DecagramsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromDecigrams(kilogram.Decigrams).Kilograms, DecigramsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromEarthMasses(kilogram.EarthMasses).Kilograms, EarthMassesTolerance);
            AssertEx.EqualTolerance(1, Mass.FromGrains(kilogram.Grains).Kilograms, GrainsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromGrams(kilogram.Grams).Kilograms, GramsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromHectograms(kilogram.Hectograms).Kilograms, HectogramsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromKilograms(kilogram.Kilograms).Kilograms, KilogramsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromKilopounds(kilogram.Kilopounds).Kilograms, KilopoundsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromKilotonnes(kilogram.Kilotonnes).Kilograms, KilotonnesTolerance);
            AssertEx.EqualTolerance(1, Mass.FromLongHundredweight(kilogram.LongHundredweight).Kilograms, LongHundredweightTolerance);
            AssertEx.EqualTolerance(1, Mass.FromLongTons(kilogram.LongTons).Kilograms, LongTonsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromMegapounds(kilogram.Megapounds).Kilograms, MegapoundsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromMegatonnes(kilogram.Megatonnes).Kilograms, MegatonnesTolerance);
            AssertEx.EqualTolerance(1, Mass.FromMicrograms(kilogram.Micrograms).Kilograms, MicrogramsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromMilligrams(kilogram.Milligrams).Kilograms, MilligramsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromNanograms(kilogram.Nanograms).Kilograms, NanogramsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromOunces(kilogram.Ounces).Kilograms, OuncesTolerance);
            AssertEx.EqualTolerance(1, Mass.FromPounds(kilogram.Pounds).Kilograms, PoundsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromShortHundredweight(kilogram.ShortHundredweight).Kilograms, ShortHundredweightTolerance);
            AssertEx.EqualTolerance(1, Mass.FromShortTons(kilogram.ShortTons).Kilograms, ShortTonsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromSlugs(kilogram.Slugs).Kilograms, SlugsTolerance);
            AssertEx.EqualTolerance(1, Mass.FromSolarMasses(kilogram.SolarMasses).Kilograms, SolarMassesTolerance);
            AssertEx.EqualTolerance(1, Mass.FromStone(kilogram.Stone).Kilograms, StoneTolerance);
            AssertEx.EqualTolerance(1, Mass.FromTonnes(kilogram.Tonnes).Kilograms, TonnesTolerance);
        }
            public void TestAtmosphereComposition()
            {
                var star = new Star();
                var seed = new Seed(Length.FromAstronomicalUnits(1.0), Ratio.FromDecimalFractions(1.0), Mass.FromEarthMasses(1.0), Mass.FromEarthMasses(1.0), Mass.Zero);

                var layers = new List <Layer>()
                {
                    new BasicSolidLayer(Length.FromKilometers(10000.0), Mass.FromEarthMasses(1.0), new (Chemical, Ratio)[0]),
Example #4
0
            public void GetPeriod()
            {
                Length separation = Length.FromAstronomicalUnits(1.0);
                Mass   smallMass  = Mass.FromEarthMasses(1.0);
                Mass   largeMass  = Mass.FromSolarMasses(1.0);

                Assert.AreEqual(Env.Period(separation.AstronomicalUnits, smallMass.SolarMasses, largeMass.SolarMasses),
                                _phy.Astronomy.GetPeriod(separation, smallMass, largeMass).Days,
                                LowDelta);
            }
Example #5
0
            public void GetHillSphere()
            {
                Mass   sunMass         = Mass.FromSolarMasses(1.0);
                Mass   massSM          = Mass.FromEarthMasses(1.0);
                Length semiMajorAxisAU = Length.FromAstronomicalUnits(1.0);

                Assert.AreEqual(Env.SimplifiedHillSphereAU(sunMass.SolarMasses, massSM.SolarMasses, semiMajorAxisAU.AstronomicalUnits),
                                _phy.Astronomy.GetHillSphere(sunMass, massSM, semiMajorAxisAU).AstronomicalUnits,
                                LowDelta);
            }
Example #6
0
            public void GetEscapeVelocity()
            {
                Mass   massSM = Mass.FromEarthMasses(2.0);
                Length radius = Length.FromKilometers(10000.0);

                Assert.AreEqual(Env.EscapeVelocity(massSM.SolarMasses,
                                                   radius.Kilometers) / 1e5,
                                _phy.Dynamics.GetEscapeVelocity(massSM,
                                                                radius).KilometersPerSecond,
                                VeryHighDelta);
            }
Example #7
0
            public void GetChangeInAngularVelocity()
            {
                Density densityGCC      = Density.FromGramsPerCubicCentimeter(2.5);
                Mass    massSM          = Mass.FromEarthMasses(0.75);
                Length  radiusKM        = Length.FromKilometers(2500.0);
                Length  semiMajorAxisAU = Length.FromAstronomicalUnits(1.4);
                Mass    largeMassSM     = Mass.FromSolarMasses(1.5);

                Assert.AreEqual(Env.ChangeInAngularVelocity(densityGCC.GramsPerCubicCentimeter,
                                                            massSM.SolarMasses,
                                                            radiusKM.Kilometers,
                                                            semiMajorAxisAU.AstronomicalUnits,
                                                            largeMassSM.SolarMasses),
                                _phy.Dynamics.GetChangeInAngularVelocity(densityGCC,
                                                                         massSM,
                                                                         radiusKM,
                                                                         semiMajorAxisAU,
                                                                         largeMassSM).RadiansPerSecond,
                                LowDelta);
            }
Example #8
0
 public static Mass EarthMasses <T>(this T value) =>
 Mass.FromEarthMasses(Convert.ToDouble(value));
Example #9
0
 public void NumberToEarthMassesTest() =>
 Assert.Equal(Mass.FromEarthMasses(2), 2.EarthMasses());
            private SatelliteBody GetMockPlanet(Func <IEnumerable <Layer> > mockAtmoGen)
            {
                var star = new Star();

                var seed = new Seed(Length.FromAstronomicalUnits(1.0), Ratio.FromDecimalFractions(1.0), Mass.FromEarthMasses(1.0), Mass.FromEarthMasses(1.0), Mass.FromEarthMasses(0.000001));

                var planet = new Planet(seed, star, star, mockAtmoGen());

                //planet.RecalculateGases(mockAtmoGen());
                return(planet);
            }
            private SatelliteBody GetTestPlanetNoAtmosphere()
            {
                var seed   = new Seed(Length.FromAstronomicalUnits(1.0), Ratio.FromDecimalFractions(1.0), Mass.FromEarthMasses(1.0), Mass.FromEarthMasses(1.0), Mass.Zero);
                var star   = GetTestStar();
                var planet = new Planet(seed, star, star, new List <Layer>()
                {
                    new BasicSolidLayer(Length.FromKilometers(10000.0))
                });

                return(planet);
            }