1 / 37

# - PowerPoint PPT Presentation

Earth’s Tides Simulation. Craig Brubaker Union College 2/28/04. Agenda. Introduction Purpose Tidal Force Tidal Bulges Orbits Simulation Overview Inputs Outputs Example Simulation Configurations Under the hood Classes Code Snapshots Additional Work (features excluded).

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about '' - clio

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Earth’s Tides Simulation

Craig Brubaker

Union College

2/28/04

• Introduction

• Purpose

• Tidal Force

• Tidal Bulges

• Orbits

• Simulation Overview

• Inputs

• Outputs

• Example Simulation Configurations

• Under the hood

• Classes

• Code Snapshots

To produce an application that helps students understand the tidal forces and the effects of orbital cycles on the tidal forces.

To be used especially as a demonstration for introductory level courses.

Simplifications of real system:

• Assume Earth covered by a shallow ocean.

• Parts of the system should be able to be turned on and off.

Recall Force of Gravity:

• Proportional to the product of the masses over the square of the distance.

Tidal Force:

• Proportional to the product of the masses over the CUBE of the distance.

The gravitational attraction between two bodies is determined by Newton’s law of gravitation:

A = gravitational attractive force.

m1 and m2 = masses of the bodies attracting each other.

r = distance between the centers of the two bodies.

G = the gravitational constant.

The tide generating force is derived from Newton’s law. This force is related to the difference between the gravitational attraction at Earth’s center and surface.

F = the effective tidal force.

µ = proportional to.

Though much more massive than the moon, the sun is so much farther away that its tidal influence is less than half.

• Tidal Bulge

• Tidal Force produces TWO high tide points.

• Point on Earth closest to orbital body.

• Point on Earth farthest from orbital body.

• Tidal Force produces a low tide line equidistant to both high tide points.

• The greater the high tide points, the lesser the low tide line.

• Interaction of lunar and solar tides

• At any point it is a simple sum.

If we pretend that the moon does not orbit the Earth, gravitational attraction would raise a tidal bulge directed toward the moon.

The gravitational forces are directed exactly toward the moon’s center.

The centrifugal and gravitational tidal vectors are shown resolved over the Earth’s surface. The vectors show that water is drawn into the tidal bulges, reaching maximum bulge elevation at points nearest and farthest from the moon. The lower diagram shows how, in a simple-minded model, two low and two high tides are expected daily.

Recall that the tidal bulges are identical on the sides of the Earth facing or opposite the moon. The same is true of the tides raised by the sun, except the solar tides are only ~46% as large as those of the lunar tides.

• Kepler’s Laws of Planetary Motion

I. The orbits of the planets are ellipses, with the Sun at one focus of the ellipse.

• Kepler’s Laws of Planetary Motion

II. The line joining the planet to the Sun sweeps out equal areas in equal times as the planet travels around the ellipse.

• Kepler’s Laws of Planetary Motion

III. The ratio of the squares of the revolutionary periods for two planets is equal to the ratio of the cubes of their semimajor axes:

The orbits of the moon around Earth and of the Earth around the sun are ellipses. The Earth-moon orbital distance varies from 375,200 to 405,800 km, so the lunar tidal effect varies by 11.8% over a lunar month (inverse cube law, remember). The Earth-sun distance varies from 148,500,000 to 152,200,000 km, so the solar tidal effect varies by 3.7% over a year.

• Inputs

• EARTH ORBIT(in hours 0 to 8760):

• 24 hours * 365 days

• LUNAR ORBIT(in hours 0 to 708):

• 24 hours * 29.5 days

• Turn on/off (for Earth orbit and Lunar orbit)

• Update orbits to entered orbit time values (again, for both)

• Input sets

• Advance by day or hour

• Outputs

• Tidal display

• Displays resulting tide levels (tidal bulges)

• Blue (low tide)  Green  Red (high tide)

• %DISPLACEMENT

• Orbiting body goes from a minimum distance to a maximum distance.

• %DISPLACEMENT is the percent distance that the orbiting body is from its minimum distance.

• Orbit times (for both)

Overlapping solar and lunar tides at maximum magnitudes

Overlapping solar and lunar tides at maximum magnitudes

Turn OFF Earth orbit

Update Earth

Overlapping solar and lunar tides at maximum magnitudes

Turn OFF lunar orbit

Update Moon

Solar and lunar tidal forces at right angles.

Solar and lunar tidal forces at right angles.

Turn OFF Earth orbit

Solar and lunar tidal forces at right angles.

Turn OFF lunar orbit

Input Set Two

Input Set Two

ADVANCE DAY 3 times (or add 72 to orbit inputs and update each).

Input Set Two

ADVANCE DAY 6 times (or add 144 to orbit inputs and update each).

Input Set Two

ADVANCE DAY 9 times (or add 216 to orbit inputs and update each).

• Java applet created in BlueJ:

• Classes:

• EarthTides (applet)

• Buttons, labels, event handling

• start method, paint method

• Sun

• Polar coordinates to Sun – geocentric: Earth at (0,0,0), rotate the Sun

• Get magnitude of solar force

• Advance function – geocentric: rotate the Sun

• Moon

• As Sun class, but for moon

• Advance function: accounts for inclination of orbital plane

• Pcoords

• Polar coordinates: 2 directions and a distance

• EarthPoint

• Contains the directions that correspond to this point on the Earth and the magnitude of the tide.

• Testing classes

• TestSun, TestStart, TestPaint, RectTest.

/**

* advance method - advances the position of the Sun (geocentric) by hours

* many hours.

*

* @param hours the amount of time to advance in hours

*/

{

double degMove = 360.0/(MAXTIMEEO + 1); // degrees to move each hour

while ((hours > 0) && (orbitOn)) {

// advance position for 1 hour

if(timeEO == MAXTIMEEO)

coords.dir1 = 0; // reset to correct small fraction that crops up

else if( (coords.dir1 + degMove) < 360 )

coords.dir1 += degMove;

else

coords.dir1 = (coords.dir1 - 360) + degMove;

coords.dist = MINDIST +

timeEO++;

if(timeEO > MAXTIMEEO) timeEO = 0;

hours--;

}

}

• Approximation:

for each time interval the change in angle that the Earth makes with the Sun (DegMove) is the same.

• Accuracy?

• The distance between the Earth and Sun is inversely proportional to the change in angle that the Earth makes with the Sun in a given time interval.

• Recall Kepler’s 2nd law: equal areas swept in equal times.

• MAXIMUM_DISTANCE = 152,104,980 km

• MINIMUM_DISTANCE = 147,085,800 km.

• % difference between distances =

(MAXIMUM_DISTANCE - MINIMUM_DISTANCE /MAXIMUM_DISTANCE) * 100%

=

3.29 %

/**

* advance method - advances the position of the Sun (geocentric) by hours

* many hours.

*

* @param hours the amount of time to advance in hours

*/

{

double degMove = 360.0/(MAXTIMEMO + 1); // degrees to move each hour

while ((hours > 0) && (orbitOn)) {

// advance position for 1 hour

if(timeMO == MAXTIMEMO)

coords.dir1 = 0; // reset to correct small fraction that crops up

else if( (coords.dir1 + degMove) < 360 )

coords.dir1 += degMove;

else

coords.dir1 = (coords.dir1 - 360) + degMove;

if(coords.dir2 < 0)

coords.dir2 += 360;

coords.dist = MINDIST +

timeMO++;

if(timeMO > MAXTIMEMO) timeMO = 0;

hours--;

}

}

Part ofEarthTides start() method

// determine which points to draw and assign corresponding directions

pointSize = 5; // the size in pixels of each dimension for a point,

// so pointSize = 5 represents 5x5 pixels

double i = 0; // holds a shifted coordinate value

double j = 0; // holds an angle, which may need to be made positive

for(int x = 0; x < 100; x++)

for(int y = 0; y < 100; y++) { // for each possible point

// if this point is part of the filled circle to draw

// note: distance = sqrt(deltax^2 + deltay^2),

// and circle center has coordinates (49.5,49.5)

{

points[x][y].tideMag = 0; // include this one

// calculate dir1:

// leftmost x is 270 degrees, center is 0, rightmost is 90

i = x - 49.5;

j = Math.toDegrees(Math.asin(i/49.5));

if (j >= 0)

points[x][y].dir1 = j;

else points[x][y].dir1 = 360 + j;

// calculate dir2:

// top y is 90, center is 0, bottom is 270 degrees

i = y - 49.5;

j = Math.toDegrees(Math.asin(i/49.5));

if (j > 0)

points[x][y].dir2 = 360 - j;

else points[x][y].dir2 = -1 * j;

}

else points[x][y].tideMag = -1; // discard this one

}

/**

* paint - paints the tidal display area.

*

*/

public void paint(Graphics g) {

super.paint(g); // removes flicker effect

for(int x = 0; x < 100; x++)

for(int y = 0; y < 100; y++) {

if(points[x][y].tideMag >= 0) { // if point is within filled circle

// calculate tide magnitude for point[x][y]

points[x][y].tideMag = 0;

double angDist = 0;

// solar tide

// calculate change in each direction

if (Math.abs(sun.coords.dir1 - points[x][y].dir1) <= 180)

else // look the other way

Math.abs(sun.coords.dir1 - points[x][y].dir1);

if (Math.abs(sun.coords.dir2 - points[x][y].dir2) <= 180)

else // look the other way

Math.abs(sun.coords.dir2 - points[x][y].dir2);

// currect for deltaDir's that are too large

// angDist: angular distance to solar high tide

angDist =

// if angDist = 0 or 180, at a high tide point

// if angDist = 90 or 270, at a low tide point

points[x][y].tideMag += ( sun.getRelMag() *

((Math.cos(Math.toRadians(angDist*2)) + 1) / 2) );

// lunar tide

… similar to solar tide calculation

// select color

double mag = (int)points[x][y].tideMag;

int red,green,blue = 0;

if (mag < 500) {

red = 0;

blue = (int)(((500-mag)/500) * 255);

green = (int)((mag/500) * 255);

}

else {

red = (int)(((mag-500)/500) * 255);

blue = 0;

green = (int)(((1000/mag)-1) * 255);

}

theColor = new Color(red,green,blue);

// draw the point

g.setColor(theColor);

g.fillRect(x*(pointSize), (y*(pointSize)) + OFFSET,

pointSize, pointSize);

• Moon’s precessions

• Precession of the lunar orbital ellipse = 8.93 years.

• Precession of the lunar orbital plane = 18.6 years.

• Point Tracking

• User selects a point on the Earth and the system dynamically displays a graph of the tidal level at that point.

• Impact: until now, spin of the Earth not necessary.

• The tidal bulge would look the same from a fixed view angle if the Earth spun or not.

• Multiple View angles

• Current simulation has only one.