Jump to content
  • Advertisement
Sign in to follow this  
skyblu

planetary motion simulation

This topic is 5407 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hello, i am in the design stages of creating a solar system simulator. i have a solid understanding how i am going to simualate orbits and gravitational forces with Kepler's and Newton's laws. The only thing i can't quite figure out is how to determine is the climate of a planet/moon. n The only idea i have had is that i could have each orbiting body have an atmosphere with serveral properties describing green house effect, ray absorbtion, etc., and then based on distance from the sun, determine tempurature at night and day or to precise longitude/latitude locations based on ray angles. Then with all these variables come up with a lookup table of sorts of climate types. Any suggestions resources, etc. would be helpful. thanks.

Share this post


Link to post
Share on other sites
Advertisement
Maybe you can use this link. It's not about climates or anything, but it's about rendering planets and more...

http://astronomy.swin.edu.au/~pbourke/

look under Modeling - Terrain...

Share this post


Link to post
Share on other sites
You beauty, I loves astrophysics [grin]. Set seat belts to maximum buckling cause here we go. The trick to finding a planets surface temperature is the find when the energy radiated away by the planet and the energy the planet receives are in equilibrium. For sake of argument lets say we're talking about Earth and Sol. To make things easier (read humanly possible) we assume all radiators to be BlackBody. The rate of energy radiated by a spherical black body is given by:

4.pi.R^2.F

where R is the radius and F is the flux given by:

omega.T^4

T being temperature and omega is 5.67x10^(-8). Since energy is conserved the same rate of energy flowing at Sols surface must also flow through a sphere of any radius centred at Sol:

4.pi.R(sol)^2.F(sol) = 4.pi.R(any)^2.F(any)

hence if we set the 'any' radius to the Sol-Earth distance, after a little rearranging, we can find the flux at the Earth radius due to Sol:

F(re) = (R(sol) / r(earth))^2.F(sol)

where r(earth) is the distance between Sol and Earth. The surface area of the Earth which intercepts this flux can be estimated as a circle. However the Earth's atmosphere reflects some of the radiation which we'll model with the Albedo A which represents the fraction reflected (0 < A < 1). Hence the amount of energy absorbed is given by:

(1 - A).pi.R(earth)^2.F(re)

where R(earth) is the radius of the Earth. The earth will also readiate its own energy just like we calculated for the sun above, note that the atmosphere also reflects energy leaving the Earth's surface. The enegy absorbed and that radiated are always in equilibrium, hence:

(1 - A).pi.R(earth)^2.F(earth) = (1 - A).pi.R(earth)^2.F(re)

Then its just a case of simple subbing in and rearranging to find Earths surface temp. This will only give you an estimated day temp however. For more accurate results you may want to include the Earths internal heat generation, model the flux intercepting area as a sphere instead of a circle so you can find the heat gradient with latitude, take time as a factor and model atmospheric convection to find the night time temp, etc etc. Hope this has given you a good starting point.

Share this post


Link to post
Share on other sites
I wouldn't try too hard to make this accurate. If you look at the planet we know most about the climate system is incredibly complex. In particular there's a lot of evidence now that it's not a stable, steady-state system. Instead it is partly chaotic, with temperature and other conditions varying significantly over tens of thousands of years as we move into and out of ice ages, without changes in inputs.

I.e. the Earth has mutiple steady states for it's inputs. Exactly what they are and what triggers changes in them is something we don't understand, and this is the planet we know by far the most about. There are also many other significant inputs to this system: as well as the ones you list there's heat from the core, the effects of the Earth's magnetic field, volcanic activity, the influence of the moon, heat stored and moved by the ocean, etc..

And this is our own planet. Whether and how these can be applied to other planets is largely unknown today - scientists are struggling now to answer basic questions such as whether there's any water on Mars, our nearest neighbour and the most visited planet in the solar system.

I would initially set up some sensible initial values and ranges (day/night and seasons) based on whatever planetary missions have discovered, or if the info's not there guess. Going beyond this will require more guesswork than science, i.e. whatever you come up with will probably be fine.

Share this post


Link to post
Share on other sites
Quote:

(1 - A).pi.R(earth)^2.F(earth) = (1 - A).pi.R(earth)^2.F(re)


ooo...


This is what i was looking for. This gives me a good starting point to come up with a temperature function based on solar positioning.

much appreciated.

Quote:

Going beyond this will require more guesswork than science


very true. I actually had not planned to make it terribly accurate, as i mainly wanted to set up my own solar systems and watch them just go... elapse time for thousands of years and see what happens :) So coming up with educated outcomes based on what we already know about astrophysics is what im after.

Share this post


Link to post
Share on other sites
I looked at this a while back for my solar system simulator (which is still a work in progress), and it is incredibly complex. Using the black body equation posted by Motorherp is a good simple start. When it gets more complex than that, it gets REALLY complex. Add an atmosphere, and suddenly you have to track atmospheric currents moving warm/cold air around. Add water, and you have to track water currents affecting that air. Land absorbs and radiates heat at a different rate from water, and the distribution of land and water on a planet can have a huge impact on climate.

When you get to this level, there are too many feedback loops to keep track of. Some compound the effects of a change, making equilibrium difficult to achieve. Others reduce the effects of a change, causing equilibrium to be found quickly after a change.

A good example of a compounding feedback loop is the ice at a planet's poles. The more ice a planet has, the higher its albedo is. White ice reflects more of the sun's energy back into space where land and water absorb more of it. So a small change that causes the ice to grow (like a minute change in the planet's orbit) starts a feedback loop that feeds itself into an ice age. A small change in the other direction (like an increase in the levels of CO2 in the atmosphere) also accelerates itself, which is why many scientists are very worried about global warming.

Here's a really good link on "Daisyworld":
http://www.acad.carleton.edu/curricular/GEOL/DaveSTELLA/Daisyworld/daisyworld_model.htm

It's still a very simplified view, but it gives you enough background information to get started.

Share this post


Link to post
Share on other sites
Looks like I got carried away and made an arse of that last equation. The Earth radiates away its energy like a sphere, not a circle like I put in the equation. Also the albedo only needs including once otherwise it just cancels itself out. Doh. Anyway heres what it should look like:

4.pi.R(earth)^2.F(earth) = (1 - A).pi.R(earth)^2.F(re)

and just incase you're in any doubt this subs and rearranges to:

T(earth) = (1 - A)^(1/4).(R(sol) / 2.r(earth))^(1/2).T(sol)

where temp is in Kelvins. Hope that mess up didn't confuse you too much, god knows I am [grin].

PS: I agree with everyone that getting absolute accuracy will be humanly and computationally impossible. Like has been said, these systems just aren't understood well enough. Also when dealing with chaotic systems, floating point errors are just going to keep shafting you with run away calculations. However I think you'll at least be able to model general effects to increase the simulations accuracy at various lattitudes and times of day.

Share this post


Link to post
Share on other sites
Quote:
Original post by Motorherp
Looks like I got carried away and made an arse of that last equation.


That's why I prefer to link to some more official scientific publication for questions like these. ;-)

Share this post


Link to post
Share on other sites
Quote:
Original post by s_p_oneil
Here's a really good link on "Daisyworld":
http://www.acad.carleton.edu/curricular/GEOL/DaveSTELLA/Daisyworld/daisyworld_model.htm


Sorry for quoting myself. Apparently I can still make an ass of myself, even when I link to someone else's work. ;-) Make sure you follow the link in the Introduction on the "Gaia theory". It gives even more useful information. No one will expect you to come up with something mathematically accurate, but if you can fake some of those things, it will be really impressive.

Share this post


Link to post
Share on other sites
yes. thanks again, all. i have a good idea where to start.

Quote:
Original post by s_p_oneil
Here's a really good link on "Daisyworld":
http://www.acad.carleton.edu/curricular/GEOL/DaveSTELLA/Daisyworld/daisyworld_model.htm


i havent had much time to check this site but it looks like a good resource-- ill check it out after i get off work..thanks.

Quote:

T(earth) = (1 - A)^(1/4).(R(sol) / 2.r(earth))^(1/2).T(sol)


i was wondering about that other one dividing to 1.

thanks

sky

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!