Visualizing Asteroid Orbits Part 1: 1. Quickly create a program that simulates the earth moving around the sun using Newtonian Gravitation.(Hopefully you have this done for your homework!) Again, you should only use the semi-major axis, eccentricity and mass of the earth and sun as inputs to your program. Use a momentum formulation rather then a kinematics formulation i.e. Gmearth M sun r sun earth Fsun earth 3 rsun earth pearth pearth Fsun earth psun psun Fsun earth The plane of the earth’s orbit is the plane of the ecliptic. Setup your program so that this is the xz plane. Create and display this plane in your program. (i.e. use a series of nested boxes to visualize the plane of the ecliptic or maybe even something more clever!) 2. Create an Asteroid of mass 6 * 106 kg and radius 4*109 meter initially located at 4*1011 m from the sun.(Note this radius is not realistic, but it will allow you to SEE your asteroid on the scale of the solar system.) Find the range of allowed orbital velocities(Bounded by a circular orbit and a parabolic orbit.) Give your asteroid an orbital velocity to create a circular orbit in the xz plane. Include this Asteroid into your program. When we make observations of an asteroid from earth there are a small number of things we can directly measure. Things we can measure. The vector from the sun to the earth. The direction from our observation point on Earth to the Asteroid (your new friend ρ̂ ) With some effort (to be discussed later) we can determine the distance from the Earth to the Asteroid. The velocity of the asteroid. 3. Since gravitation from the sun drives the asteroid, we want to find the vector from the sun to the asteroid. In your program represent the vectors from the sun to the earth and the earth to the asteroid using arrow objects. Have your program calculate and display the vector from the sun to the asteroid using an arrow object and the two vectors you determined previously. This Earth Sun VECTOR is extremely important in our orbit determination. Create a label for it and the other vectors and display them in your program. Be sure to show Prof Mason or a TA your work to this point. 3.5 If you haven’t already written a function to convert calendar dates to Julian Dates, this would be a good time to do so. The Julian day number can be considered a very simple calendar, where its calendar date is just an integer. This is useful for reference, computations, and conversions. It allows the time between any two dates in history to be computed by simple subtraction. The Julian day system was introduced by astronomers to provide a single system of dates that could be used when working with different calendars and to unify different historical chronologies. For the full Julian date, not counting leap seconds (divisions are real numbers): Where the JDN for January 1,2000 and 00:00 UTC is 2451544.5 So, for example, January 1, 2000 at midday corresponds to JD = 2451545.0 Exercise: Include in your program a function to take a calendar date, time and year and convert it JD. 4. An important part of the OD is precisely determining the Earth Sun vector. We will obtain the Earth Sun vector using the following information: June 22nd is the solstice (JD = 2455004.19), July 4th (JD = 2455016.58)is the date at which the earth is at apogee. These are NOT the same day! In 2000 they were, but since there is precession of the equinoxes, they now differ by 12.05 degrees. We will set the earth at the apogee on this date, but since the solstice (where we have coordinates of the form (0,y,0) is not the same as the date of apogee, we will have to modify our apogee according to the 12.05 degree angle.(The magnitude of the position vector should still be equal to the apogee, but it will have some x and y components.) We can then run the orbit forward in time to extrapolate any future Earth Sun vector. Have it keep track of the Julian date by adding increments of dt (in the appropriate units) to the JD. Have your program run forward to calculate the earth sun vector at JD2455025.5 (Today!) My program generates a value of 2455025.50083 <5.34968e+010, -1.42351e+011, 0> JPL reports a value of 2455025.500000000 = A.D. 2009-Jul-13 00:00:00.0000 (CT) X = 5.354875025630882E+10 Y =-1.423295261182048E+11 Z = 2.621706827625632E+05 Your values may not match exactly, but they should match to the 3rd decimal place. Note, JPL is using a more complex solar system model. (OK don’t sweat it!) Also there is some small Z value to the JPL value. Since we are measuring the coordinates relative to the ecliptic, we would expect Z to be zero BUT there is a small effect due in Z to the precession of the equinoxes. Now go ahead and run your program forward for an entire year. The Earth Sun vector should be very close to the initial earth sun vector! (What real physical reason is there for them not being the same?) The computational reason for the distance is that our integration technique is very primitive. We will look at better techniques for numerical integration on Thursday. Be sure to have someone check off your program at this point! 5. Now that we can find the earth sun vector at any point in time during the program, let us return to the asteroid. From the velocity of the asteroid, we can determine the momentum of the asteroid. Create and display the momentum vector on the asteroid. Label this vector. 6. From what you have done so far you should be able to display the angular momentum vector for the asteroid about the sun. Create and display this vector. Do things seem horribly wrong? Your angular momentum vector is so Gigantic it has made the rest of your solar system disappear!!! It is more useful to define the angular momentum per unit mass as L h m Where h is in units of m2/s Instead of displaying the angular momentum of the asteroid, display h instead. (Note you will still need to scale this so that it will fit on the screen, a factor of 10,000 or so should work) Let your program run for a while and observe the angular momentum vector. How does the magnitude of the asteroid’s angular momentum per unit mass vector change as a function of time? 6. At this point it would be handy to have a switch that you can use to turn the labels on and off. Move all of your label updating into a block that you can turn on and off with a single variable. This will help to make your animation faster and less cluttered. 7. Many Asteroid orbits are rotated at some angle from the orbital plane. This is called the inclination. inclination We now want to rotate your asteroids orbit relative to the plane of the ecliptic. Rotate your asteroids orbit by some small angle. Create a variable called inclination and then use that variable to adjust the inclination of the orbit. (Hint: you only need to adjust the initial velocity components of your asteroid.) Check the results visually for several values of inclination. h Now think about the orbit. Given the following picture, write the inclination as a function of the components of the angular momentum per unit mass. Maybe Dr. Ran got to this today in the OD lecture. If not, you i are now ahead! Check that you have implemented your rotation correctly by comparing the inclination you used with the value of the function you just derived. 8. At this point we have implemented three of the six orbital elements! (a,e and i) We will return to this project on Friday to finish the rest of the orbital elements and build a full ephemeris generation program.