'Exact position in km and motion (velocity km/s) of sun and major planets as extracted 'by Jon Bain from Horizon Ephemeris in 2019 AD 'all masses have simply added masses of the respective moons to the parent planet 'see full article on Newtonian 3d-n-body-gravity algorithm: 'http://www.flight-light-and-spin.com/n-body/gravity.htm '0=sun, 5=jupiter, 6=saturn, 7=uranus, 8=neptune, 4=mars, 3=earth-moon barycenter, 2=venus, 1=mercury 'SoX(0) is x position of Sun, MoY(1) is y motion of Mercury, etc 'Gee = 6.6725 'all positions are barycenters in km in relation to the center of the Sun (0,0,0) when scenario starts 'the sun is not fixed to 0,0,0 after evolution begins 'computer code is visual basic 6 SoY(0) = 0: SoX(0) = 0: SoZ(0) = 0: MoY(0) = (0): MoX(0) = (0): MoZ(0) = (0) NG(0) = 1 'mass of sun (1.98855*10^30kg) '------------------------------------------------------------------------------------------------------------- NG(5) = 0.000956535 'mass of jupiter as a proportion of the sun 'Origi = the Origin Year ' there are small variations for some scenarios, where 'Index' = scenario number - this is ' because of the size of the time quanta sometimes influences the start momentum (see mercury) ' but also regards Jupiter because given avgs by nasa are not specified for how many orbits ' so i check both 20 & 77 orbit avgs (see main article section on Jupiter) If Origi = 1900 Then SoX(5) = 667817758.075912: SoY(5) = 450264937.001505: SoZ(5) = -12817742.751093 MoX(5) = 1.00203492256304E-03: MoY(5) = -1.59997354738091E-03: MoZ(5) = 3.1821461666577E-05 End If If Origi = 1773 Then SoX(5) = -191559472.916034: SoY(5) = -714970748.531347: SoZ(5) = 16841040.6018676 MoX(5) = -1.98451050886537E-03: MoY(5) = 5.28951101205703E-04: MoZ(5) = -3.99709139618809E-06 ' bcos 20 orbit avg <> 77orbit avg see website for more If Index = 29 Or Index = 39 Then MoX(5) = -1.98452563273621E-03: MoY(5) = 5.28955132319723E-04: MoZ(5) = -3.99712185785294E-06 End If If Index = 20 Or Index = 30 Then MoX(5) = -1.98450027844639E-03: MoY(5) = 5.28948374391526E-04: MoZ(5) = -3.99707079064353E-06 'ditto End If End If If Origi = 1940 Then SoX(5) = -196593889.517728: SoY(5) = -713648586.212141: SoZ(5) = 16809256.4338929 MoX(5) = -1.97898695653345E-03: MoY(5) = 5.46553419147569E-04: MoZ(5) = -4.1451960087159E-06 End If 'in order that the system does not drift off-screen the sun must have a counter-momentum. 'so a proportion of Jupiter's momentum is distributed to the sun in equal but opposite amounts. 'this is proportional to the mass of jupiter as a proportion of the sun. 'this is why i measure planetary mass here as a proportion of the sun. 'before the evolutionary algorithm runs the masses must be multiplied into kg. 'NG() * 1.98855*10^30 ' <---- very important ..... only do this after this sub is complete MoX(0) = -MoX(5) * NG(5) MoY(0) = -MoY(5) * NG(5) MoZ(0) = -MoZ(5) * NG(5) MoX(5) = MoX(5) - MoX(0) MoY(5) = MoY(5) - MoY(0) MoZ(5) = MoZ(5) - MoZ(0) '------------------------------------------------------------------------------------------------------------- NG(6) = 0.000285824445 If Origi = 1900 Then SoX(6) = 1504742246.67174: SoY(6) = 54104027.1064011: SoZ(6) = -28629811.3872253 MoX(6) = 5.82624652955482E-05: MoY(6) = -1.36723320245969E-03: MoZ(6) = 5.31738018123428E-05 End If If Origi = 1773 Then SoX(6) = -170708001.73564: SoY(6) = 1397769071.1652: SoZ(6) = -52198076.9583392 MoX(6) = 1.44166095239835E-03: MoY(6) = 2.54952900078463E-04: MoZ(6) = -3.58043037434599E-05 End If If Origi = 1940 Then SoX(6) = -733677486.150907: SoY(6) = -1176809928.48552: SoZ(6) = 59548910.5364934 MoX(6) = -1.22527149131594E-03: MoY(6) = 8.42673529057291E-04: MoZ(6) = -1.19716548541497E-05 End If 'saturn's equal but opposite momentum as regards the sun as a mass-proportion JoX = -(MoX(6) * NG(6)): MoX(0) = MoX(0) + JoX JoY = -(MoY(6) * NG(6)): MoY(0) = MoY(0) + JoY JoZ = -(MoZ(6) * NG(6)): MoZ(0) = MoZ(0) + JoZ MoX(6) = MoX(6) - JoX MoY(6) = MoY(6) - JoY MoZ(6) = MoZ(6) - JoZ '------------------------------------------------------------------------------------------------------------- NG(7) = 0.000043660833 If Origi = 1900 Then SoX(7) = 2671066684.35819: SoY(7) = 968731177.37089: SoZ(7) = -2649376.04253054 MoX(7) = 3.95890218285037E-04: MoY(7) = -9.52255664832994E-04: MoZ(7) = 1.38686364059004E-05 End If If Origi = 1773 Then SoX(7) = -2513481045.27537: SoY(7) = -1471305340.8637: SoZ(7) = 9705148.22950554 MoX(7) = -4.69989054431042E-04: MoY(7) = 8.89668415986957E-04: MoZ(7) = -1.33832135836594E-05 End If If Origi = 1940 Then SoX(7) = -2298556340.23868: SoY(7) = -1822138935.96292: SoZ(7) = 15132836.2027054 MoX(7) = -5.879282766668E-04: MoY(7) = 8.07301463415136E-04: MoZ(7) = -1.26652680994069E-05 End If JoX = -(MoX(7) * NG(7)): MoX(0) = MoX(0) + JoX JoY = -(MoY(7) * NG(7)): MoY(0) = MoY(0) + JoY JoZ = -(MoZ(7) * NG(7)): MoZ(0) = MoZ(0) + JoZ MoX(7) = MoX(7) - JoX MoY(7) = MoY(7) - JoY MoZ(7) = MoZ(7) - JoZ '------------------------------------------------------------------------------------------------------------- NG(8) = 0.000051522667 If Origi = 1900 Then SoX(8) = -4461866447.73686: SoY(8) = -226153681.013123: SoZ(8) = 97095767.717041 MoX(8) = -4.57619994068896E-05: MoY(8) = 8.18838248039506E-04: MoZ(8) = -1.78988653400844E-05 End If If Origi = 1773 Then SoX(8) = -640719339.290117: SoY(8) = 4473441736.91111: SoZ(8) = -89828383.3886378 MoX(8) = 8.01481712570676E-04: MoY(8) = 1.20861931166838E-04: MoZ(8) = -1.93164785218417E-05 End If If Origi = 1940 Then SoX(8) = -419521425.134661: SoY(8) = 4501281051.80048: SoZ(8) = -95061636.7772237 MoX(8) = 8.06445023621561E-04: MoY(8) = 8.11009320414128E-05: MoZ(8) = -1.85104560415287E-05 End If JoX = -(MoX(8) * NG(8)): MoX(0) = MoX(0) + JoX JoY = -(MoY(8) * NG(8)): MoY(0) = MoY(0) + JoY JoZ = -(MoZ(8) * NG(8)): MoZ(0) = MoZ(0) + JoZ MoX(8) = MoX(8) - JoX MoY(8) = MoY(8) - JoY MoZ(8) = MoZ(8) - JoZ '------------------------------------------------------------------------------------------------------------- NG(4) = 3.227034774E-07 If Origi = 1900 Then SoX(4) = 201497565.523224: SoY(4) = -67211213.1462665: SoZ(4) = 5880378.64960347 MoX(4) = -1.45963490686088E-03: MoY(4) = -3.58553933380355E-03: MoZ(4) = 5.83783153097304E-05 End If If Origi = 1773 Then SoX(4) = 206534727.800252: SoY(4) = -53220931.2063585: SoZ(4) = 5644333.0275518 MoX(4) = -1.21562427043459E-03: MoY(4) = -3.6613701400185E-03: MoZ(4) = 6.6406780391394E-05 End If If Origi = 1940 Then SoX(4) = -177668927.93679: SoY(4) = -132257632.062074: SoZ(4) = -450544.247712374 MoX(4) = -2.47746356556418E-03: MoY(4) = 2.77340236502389E-03: MoZ(4) = -1.20378881902798E-04 End If JoX = -(MoX(4) * NG(4)): MoX(0) = MoX(0) + JoX JoY = -(MoY(4) * NG(4)): MoY(0) = MoY(0) + JoY JoZ = -(MoZ(4) * NG(4)): MoZ(0) = MoZ(0) + JoZ MoX(4) = MoX(4) - JoX MoY(4) = MoY(4) - JoY MoZ(4) = MoZ(4) - JoZ '------------------------------------------------------------------------------------------------------------- NG(3) = 3.04032586558E-06 If Origi = 1900 Then SoX(3) = -143560654.758969: SoY(3) = 32026882.1783247: SoZ(3) = -31912.9107688218 MoX(3) = 9.8946808839975E-04: MoY(3) = 4.43529419384138E-03: MoZ(3) = 3.15930087468377E-07 End If If Origi = 1773 Then SoX(3) = -147138872.897878: SoY(3) = 477503.613163102: SoZ(3) = -75721.3447181433 MoX(3) = 3.03318216162955E-05: MoY(3) = 4.54041889622179E-03: MoZ(3) = 1.95171401635711E-07 End If If Origi = 1940 Then SoX(3) = -122521009.476437: SoY(3) = 81682166.1363532: SoZ(3) = -15645.4178289846 MoX(3) = 2.49526682871518E-03: MoY(3) = 3.79069187465756E-03: MoZ(3) = 3.84299853925236E-07 End If JoX = -(MoX(3) * NG(3)): MoX(0) = MoX(0) + JoX JoY = -(MoY(3) * NG(3)): MoY(0) = MoY(0) + JoY JoZ = -(MoZ(3) * NG(3)): MoZ(0) = MoZ(0) + JoZ MoX(3) = MoX(3) - JoX MoY(3) = MoY(3) - JoY MoZ(3) = MoZ(3) - JoZ '------------------------------------------------------------------------------------------------------------- NG(2) = 0.000002447748359 If Origi = 1900 Then SoX(2) = 26044417.3363954: SoY(2) = -105451475.654257: SoZ(2) = 6444151.14254382 MoX(2) = -5.07628112136223E-03: MoY(2) = -1.23247887994513E-03: MoZ(2) = 3.27677375978542E-06 End If If Origi = 1773 Then SoX(2) = -58351951.6463156: SoY(2) = -91149356.3510495: SoZ(2) = 4516358.99702748 MoX(2) = -4.39944817080729E-03: MoY(2) = 2.84771284470999E-03: MoZ(2) = -2.22236814758525E-04 End If If Origi = 1940 Then SoX(2) = -47309091.7644335: SoY(2) = -97404847.6906059: SoZ(2) = 4988464.7014909 MoX(2) = -4.6697908760266E-03: MoY(2) = 2.37037592615472E-03: MoZ(2) = -1.99983634913395E-04 End If JoX = -(MoX(2) * NG(2)): MoX(0) = MoX(0) + JoX JoY = -(MoY(2) * NG(2)): MoY(0) = MoY(0) + JoY JoZ = -(MoZ(2) * NG(2)): MoZ(0) = MoZ(0) + JoZ MoX(2) = MoX(2) - JoX MoY(2) = MoY(2) - JoY MoZ(2) = MoZ(2) - JoZ '------------------------------------------------------------------------------------------------------------- NG(1) = 0.00000016600739 If Origi = 1900 Then SoX(1) = 27998042.4224917: SoY(1) = 57072248.6793079: SoZ(1) = -2969704.88884478 MoX(1) = 6.23501537193477E-03: MoY(1) = -1.71123139193458E-03: MoZ(1) = 6.66023928106012E-04 If TimeQuanta < 5 Then 'more accurate if iterations are < 5 seconds else use amounts above MoX(1) = 6.2350738097922E-03: MoY(1) = -1.71124743049907E-03: MoZ(1) = 6.66030170434064E-04 End If End If If Origi = 1773 Then SoX(1) = -44733757.3186985: SoY(1) = -10397980.7486417: SoZ(1) = -2680610.44642309 MoX(1) = -1.93672037465729E-03: MoY(1) = 8.57687574873958E-03: MoZ(1) = -9.49850057033586E-04 End If If Origi = 1940 Then SoX(1) = 64182585.9087826: SoY(1) = -19664425.7055777: SoZ(1) = 7045975.37774363 If TimeQuanta < 5 Then (for less than 5 seconds per quanta of time) MoX(1) = -2.51486294947062E-03: MoY(1) = -5.52153446555927E-03: MoZ(1) = 3.02408129210802E-04 Else MoX(1) = -2.51487458280801E-03: MoY(1) = -5.5215600072586E-03: MoZ(1) = 3.02409528100469E-04 End If End If JoX = -(MoX(1) * NG(1)): MoX(0) = MoX(0) + JoX JoY = -(MoY(1) * NG(1)): MoY(0) = MoY(0) + JoY JoZ = -(MoZ(1) * NG(1)): MoZ(0) = MoZ(0) + JoZ MoX(1) = MoX(1) - JoX MoY(1) = MoY(1) - JoY MoZ(1) = MoZ(1) - JoZ If Origi = 1900 Then DayFrac = 8 / 1440: YearFrac = DayFrac / 365.242189 DaStart = "jan/02/1900" YDStart = 1900 + YearFrac TXstartdate.ToolTipText = "00:08 begin time" End If If Origi = 1940 Then DayFrac = 0: YearFrac = DayFrac / 365.242189 DaStart = "jan/24/1940" YDStart = 1940.0617185 TXstartdate.ToolTipText = "00:00 begin time" End If If Origi = 1773 Then DayFrac = (773 / 1440): YearFrac = DayFrac / 365.242189 DaStart = "dec/18/1773" YDStart = 1773.9631145358 TXstartdate.ToolTipText = "12h53 begin time" End If