FORCE
Aepryus Software

Jump Start
	This is a quick introduction to the FORCE program.  If you would like to see a few systems in action this section will teach you how to get started.

Preparing the Program
Insert the force disk into one of your floppy disk drives.  If you wish to copy the program to your hard drive use the following commands: (If you inserted the disk into your b: floppy drive replace the a:\*.* with a b:\*.*)
c:
cd\
md force
cd force
copy a:\*.*
If you want to run the program off the floppy drive simply move to that drive (e.g., a:), otherwise after installing the program on your hard disk make sure you are in the force directory.

Executing the Program
Once you have the force directory as your current directory, type:
force
The program should load up.

Running a Saved System
To remove the about plaque (The title screen) hit any key.

Next select the file button by either moving the mouse pointer to the button and clicking the left mouse button or by using the arrow keys to move the cursor to the file button and hitting return.

Select open by either using the mouse or the keyboard.

A list of systems will be displayed.  Select the system called KEPLER by either clicking on it with the mouse or using the keyboard to select it.

The system will be loaded into memory.

If the screen needs to be cleared, push the re-set button with the mouse or keyboard.

Hit the start button to see the system in action.

To halt the system, hit any button.  Your mouse cursor will return to the screen.

Repeat the process in order to see the rest of the saved systems.

Creating your own system
Here is a list of the commands needed to create your own system.  Items in bold italics represent screen buttons which can be selected by using the mouse or the keyboard.  The symbol '' means that the <enter> or <return> button should be hit.

file/new/particle/add/x pos/5/y pos/5/x speed/5/color/10/main menu/add/
x pos/7/y pos/5.05/color/11/main menu/main menu/dimension/accuracy/
5/clock/walls/main menu/re-set/start/

Please experiment with the system at this point.  Try turning the trace on and off.  Try changing the accuracy method to one which considers forces (method 3 for example) and then give the particles slight charge (give one 0.000015 coulombs and the other 0.00005 coulombs).  After giving the particles charge try plotting a potential map (top = 260,000; bottom = 80,000).  Make sure to change to All mode from Fixed mode on the potential control panel.  You can do this by hitting the button that says Fixed it should change to All.  After plotting the potential map plot the field lines (density = 25, color = 15).

Exiting the Program
Move to the main menu and select the exit button.

The Buttons
This section goes through each of the buttons and explains what it does and how to use it.

About
This command will bring up legal information about FORCE.  In order to remove the message plaque hit any button.

Start
Start will set the system into motion.  Hopefully, if everything is set correctly your system will evolve before your eyes.  If no system has been loaded into memory the program will warn you of that fact.

Step
The step function will move the system through a single time step.

Re-set
Re-setting the system will clear the screen and return all particles to their initial positions and velocities.

File
The file sub menu will allow you to save, retrieve and clear systems.  The menu is patterned after a standard Windows' File menu and works in the same way.

New
The new command will clear the current system from memory and prepare the program for a new system to be entered in.

Note: If you simply wish to open a saved system it is not necessary to clear the old one out of memory first.

Open
The open button will bring up a list of FORCE systems saved in the current directory.  In order to select the system that you wish to open either click on it with the mouse or use the up and down arrow keys until the cursor is located on the file you wish to load then hit the <enter> or <return> key.  The system will be loaded into memory, but will not be displayed until you hit the reset, start or step button.

Save
Saves the current system using the current file name.  If the system has never been saved before, the system will prompt the user for a file name.  The file name must be eight or fewer characters and contain no punctuation and must not start with a number.

Save As
The Save As command will prompt the user for a file name and then save the current system under that file name.  The file name must be eight or fewer characters and contain no punctuation and must not start with a number.

Main Menu
This will return you to the main menu.

Particles
The particle menu allows you to add, edit and delete the particles in the current system.  Below is a list of the parameters which must be entered for each particle.  If at any time you are unsure what you are supposed to input into a parameter, select that parameter using the mouse or keyboard and then enter in some garbage (such as text into a numeric field).  The system will bring up an instruction plaque explaining what the range of acceptable values is and what each of the values indicates.

Name	This is a nine character text string used to identify the particle.	
Mass	This is the mass of the particle measured in kilograms.  For a free particle the mass must be greater than zero.  For a fixed particle the mass must be greater than or equal to zero.	
Charge	This is the electric charge of the particle measured in coulombs.  The charge of a particle may be either positive or negative (or zero).	
Radius	This is the radius of the particle measured in meters.	
X Position	This is the initial X position of the particle measured in meters from the left edge of the particle window.  (See Area)	
Y Position	This is the initial Y position of the particle, measured in meters from the bottom edge of the particle window.  (See Area)	
X Speed	This is the initial horizontal speed.  Positive values indicate motion to the right, negative values, motion to the left	
Y Speed	This is the initial vertical speed.  Positive values indicate motion upwards, negative values, motion downwards.	
Fix/Free	This button toggles the particle between fixed and free.  A fixed particle does not move, but can hold mass and charge which allow for the creation of fixed potentials.  The particle is assumed to have infinite mass when calculating collisions with free particles.  A free particle will move around the screen as applicable.	
Color	This allows you to select the color in which a particle and its trace are displayed.
0 - Light Gray        1 - Dark Blue
2 - Dark Green       3 - Dark Cyan
4 - Dark Red          5 - Dark Purple
6 - Black                7 - Light Gray
8 - Dark Gray         9 - Light Blue
10 - Light Green    11 - Light Cyan
12 - Light Red        13 - Light Purple
14 - Yellow            15 - White	

Add
Add allows you to add a new particle to the current system.  After hitting this button you will be given access to the particle modification control panel.  In order to edit any of the parameters, hit the button with the appropriate name and enter in the new data.

Edit
Upon hitting this button you will be presented with a list of all of the existing particles.  Either by clicking on the name of the particle by using the mouse or by moving the cursor to the particle and hitting enter you will be able to bring that particle up and edit its parameters.

Note: Either by hitting 'C' or clicking 'Cancel' with the mouse while using the particle selection panel you will be able to return to the particle menu.

Delete
Like the edit button, delete will also present you with a list of current particles.  Select the particle you wish to delete using either the mouse or the keyboard.  That particle will then be removed from the system.

Note: Either by hitting 'C' or clicking 'Cancel' with the mouse while using the particle selection panel you will be able to return to the particle menu.

Main Menu
This will return you to the main menu.

Dimension
The dimension menu is where variables pertaining to the entire system can be viewed and modified.  The values of each of the following variables is displayed in the little window below the control buttons.  In order to change these variables, hit the button with the name of the variable on it.

Area
The area is the distance in meters from the bottom edge of the particle window to the top edge of the particle window.  It must be greater than zero.

The area variable represents the distance from the bottom edge of the particle window to the top edge of the particle window in meters.  The above shows an example where area is equal to 10 meters.  There is a particle placed at (5,5).  Notice that the right edge is about 12 meters from the left edge.		

Strobe
Strobe sets the time step length.  The time step is measured in seconds.  The smaller the time step the more accurate the system will be, however, the slower it will move.

Accuracy
There are a number of different techniques that FORCE can use to estimate the motion of systems.  In order to select one of these methods, hit the accuracy button.  You will be prompted for input.  Enter the number corresponding to the accuracy method you want to use.

#	Name	Calcs/Step	Accuracy	Forces?	Collisions?	
1	Euler	1	O(1)	Yes	No	
2	Runge-Kutta 2	2	O(2)	Yes	No	
3	Modified Euler	1	O(2)*	Yes	Yes	
4	Runge-Kutta 4	4	O(4)	Yes	No	
5	Collision	0	O(2)*	No	Yes	
6	Collision 2	0*	O(2)*	No	Yes	

The above table shows a list of the six different methods available to FORCE.  The Calcs/Step column shows the number of times per time step that a slope calculation is made per free particle.  The more calculations per time step, the more time it takes to complete a single time step.  The Accuracy column represents the order of the error in each time step.  The Forces? column tells whether or not the gravitational or coulomb forces are used in the calculation.  The Collisions? column indicates whether the method checks for collisions.

Euler/Runge-Kutta
The Euler method is essentially useless, because of its inaccuracy, but available for pedagogic reasons.  It is often quite informative to compare the Euler method with Runge-Kutta methods to see how the accuracy improves with order.  The diagram to the right shows how the Euler method might be used to estimate a function f(x).  If you happen to know the slope of a function at all points and you have an initial point, it then becomes possible to estimate the next point of that		
function.  In the case of this program the force on each particle is known given any system of particles.  From that information the program estimates the change in velocity and then estimates the change in position.  All of the other methods are simply improvements on the Euler method.  For example the Runge-Kutta 2 method uses the current slope to estimate a midpoint between time steps.  Then it calculates the slope at that mid point.  The program then uses the midpoint slope to jump from the initial point to the final point.  Runge-Kutta 4 checks the slopes at four points and then uses a weighted average scenario in order to make the step.

Modified Euler
This is somewhat of an odd estimation method, it was originally discovered accidentally (as was the case for this programmer) by making an error in the setup of the Euler method.  The order of inaccuracy is a bit weird.  For stable systems such as binary stars or planetary orbits, where the paths are closed, the Modified Euler method will sometimes outperform Runge-Kutta 2 in accuracy.  However, in unstable systems Modified Euler falls apart.  Depending on your system this might be a good method to use because of its relative speed.

Collision
The collision method does not perform the costly force calculations, so if your system does not depend on gravitational or coulomb forces this is an excellent method to use.  Each particle has an initial velocity and position.  If the distance between two particles ever becomes less than the sum of their radii then a collision has occurred.  The system uses conservation of momentum and conservation of energy to calculate the new velocities of each of the particles involved and sends them on their way.

If the walls are turned on then the system will also check to see if any particle's position is closer than their radius to any wall, if so then the system again calculates the new velocity of the particle.  In either the case where a particle collides with a wall or collides with a fixed particle the systems assumes that the wall or particle have infinite mass.  (i.e., they don't absorb any of the energy)		

All collisions are 100% elastic.  The system is programmed such that when particles hit a sound emanates.  Of course in a real system this would reduce the energy of the system.  In a real elastic collision no sound would be emitted, but the program neglects that little fact.

Note: If three particles or two particles and a wall should happen to collide with each other simultaneously, problems will occur.  In order to get around these problems you should reduce the step size in order to try to separate the collisions in to different time steps.

In general collisions of small and fast moving particles are very unstable and highly dependent on the step size of the system, some of these problems are solved in the Collision 2 method, but the results are still not satisfactory.  If someone has any ideas on how to increase the accuracy of collisions (or anything else for that matter) I would be happy to hear it.

Collision 2
This method is basically the exact same as the Collision method above except that it has an adaptive step size.  As the distance of any two particles of the system shrinks, the system reduces the time step accordingly.  The problem with this method is that the rate at which a particle moves across the screen may change in real time even though its velocity has not changed at all.  The effect is entirely unsatisfying.

Each of the four following variables is binary, meaning they can be turned either on or off.

Shell
If the shell option is on then the particle shells will be displayed on the screen.  If it is off they will not be displayed.  The displaying of the shells can take up quite a bit of graphics interface time.

Note: If the shell is off you probably will want to turn the trace on.  If both the shell and the trace are off nothing will appear on the screen.

Trace
The trace will draw a line indicating the path that a particle has traveled through.  Either the trace or the shell should be on.  If neither is on then nothing will display on the screen.  If both the trace and the shell are on some of the trace will be erased by the back end of the shell.  If the particle is traveling very slowly in relation to the time step (one or fewer pixels per time step) then the entire trace will be erased.

Clock
While the clock is on it will display the number of seconds that have passed since initial setup.  In systems where each time step is very quick the updating of the clock can become a significant percentage of the total processing time.  In these systems it is best to turn the clock off.

Walls
Turning the walls on will only have an effect in Accuracy mode 3, 5 and 6.  While the walls are on any particle that touches any wall of the particle window will bounce back elastically, obeying the laws of conservation of momentum and conservation of energy.

While the walls are on it is important to make sure your free particles are fully on the screen or fully off the screen, otherwise weird things will happen.  Fixed particles can be half on and half off, as long as no edge of the particle coincides exactly with a wall.  For particles that start off the screen it is important that their edge does no coincide exactly with any walls because any particle colliding at such a location will trigger two collisions and cause the particle to do something unphysical.

Main Menu
This will return you to the main menu.

Potential
This function allows you to plot potential maps for electric or gravitational systems.  The potential map is very analogous to a relief map which shows the relative heights of different areas of land by using different colors to represent different elevations.  In a way a relief map is a kind of gravitational potential map because objects located on the top of a mountain will have a greater potential energy than objects located on a beach situated next to the Pacific Ocean.

The value of a potential map represents the magnitude of the force a test particle would feel if it were located at that position.  The test particle is assumed to have a mass of one kilogram and a charge of plus one coulomb.

Plot
The plot command will start the plotting of the potential map.  In order to cease the plotting, hit any button.

Electric/Gravity
This button will toggle between the mapping of gravitational and electrical potentials.

Fixed/All
While in Fixed mode the system will only pay attention to the potential due to Fixed particles.  In the All mode the system will take the potential caused by all particles into account.

Analyze
The Analyze tool will be helpful when setting the scale of the map.  Analyze makes a quick sweep of the screen checking for the maximum and minimum potential locations.  It will than display the results in the legend box.  While in Electric mode the potential will be measured in Volts (Newtons/Coulomb); in Gravity mode the potential will be measured in Newtons/Kilogram.

Top
This represents the potential of the upper most map color.  Any potential that is higher than this number will be colored in red.

This also helps determine the scale size of each additional color.  Each color is assigned an equal length of potential ranges which is determined by the Top and Bottom values.

Bottom
This represents the potential of the lower most map color.  Any location that has less potential than this value will be colored in purple.

Resolution
This sets how often the potential will be checked on the screen.  The values should range between 1 and 9.  One is the most accurate resolution mode and means that every single pixel in the particle window will have its potential checked.  In resolution mode 2 the screen will be divided into 2 by 2 boxes, each containing 4 pixels.  The potential of the upper left pixel will be checked and the entire box will be colored with that pixel's potential color.  For resolution mode n, the screen will be divided in to n by n boxes containing n2 pixels...

Main Menu
This will return you to the main menu.

FieldLine
While the potential option will display the magnitude of the force that a test particle will feel at a certain location.  The FieldLine option will illustrate the direction of the force that a test particle would feel at that location.  The FieldLine option only works for electrical systems.

Note: Some problems may arise if a field line enters an area where the magnitude of the field goes to zero.  If you are having problems with this, simply increase or reduce the density by one.

Plot
This will start the plotting of the field lines into motion.  In order to stop the plotting hit any key.  The field lines will either terminate on a particle with negative charge or be sent off to infinity.  If all of the field lines have terminated the plotting will automatically cease, however if some of the lines have escaped off to infinity then you will have to manually terminate the plotting.

Density
This is the number of field lines that will emanate from the particle with the greatest potential.  The field lines will emanate only from particles with positive charge.

Step Size
This is the length in meters that each field line travels before checking the direction of the field again.  The larger that this is the more inaccurate the field lines become, however the default value seems to be rather accurate and fairly speedy.

Color
This determines the color in which the field lines should be plotted.

Main Menu
Main menu returns you to the main menu.

Exit
As the name implies, this will exit you from the program back to where you came from (i.e., DOS or Windows)

Sample Systems
	I have set up 10 systems for the program.  I would like to give a small discussion about each system and what I discovered in observing these systems.

BINARY
Short Description:	A binary star system
Discussion:
This system is the classic two body problem.  In this system each particle has the same mass.  The two particles will orbit around each other in perfect elliptical paths.

PRIMARY
Short Description:	The three body problem
Discussion:
In physics the three body problem has been quite elusive.  No analytic solution has ever been found.  However using FORCE it is possible to find a numeric solution.  This particular system has been setup so that it is almost in equilibrium, but the equilibrium is unstable.  After about 20 system seconds the bodies will fly off in various directions.  It becomes quite obvious why no analytic solution has ever been found and also obvious why you don't see any triple stars up in the sky.

GRAVITY
Short Description:	Balls in the Earth's gravitational field
Discussion:
Often in first year college physics courses the following question is posed: "If you are in a tree, hunting a monkey who is in another tree at the same height and the monkey drops from the tree.  If you are pointing your gun horizontally should you fire before the monkey drops, after the monkey drops or as the monkey drops?"  Well, if you're not sure about the answer try running this system.

Three balls are elevated above the surface of the earth at equal heights.  Two of the balls have an initial horizontal component of velocity the third is stationary.  When you start the system the balls begin to fall in the Earth's gravitational field.  The answer to the above question should become obvious.

(Note the fourth particle of this system, the Earth does not appear on the screen, but it is there)

KEPLER
Short Description:	Satellites revolving around a planet
Discussion:
This is a simple planetary like system.  It illustrates well Kepler's laws (at least the first two).

MARS	
Short Description:	The four inner planets revolving around the sun
Discussion:
This shows the orbits of the four inner most planets around the sun.  It is sometimes quite amusing to see what would happen if the sun were suddenly to disappear.  If you run the system for a couple of years (system years) and then delete the sun and re-start the system you will be able to see what will happen.

PLUTO
Short Description:	The nine planets revolving around the sun
Discussion:
This is a rough depiction of our solar system.  As the systems gain particles they slow down exponentially.  However if you switch this system to estimation method 3, you can get a fairly quick representation of the solar system.

EIGHT
Short Description:	Planets in a binary system
Discussion:
This system is somewhat artificial, in that the stars that the planets are orbiting around are fixed.  However, the closed orbits around this binary star system are quite interesting.

AIRTRACK
Short Description:	Three particles on an air track
Discussion:
Most first year physics students have experience playing with an air track in order to study one-dimensional collisions.  This system will simulate that experience.

BILLIARD
Short Description:	Four pool balls
Discussion:
This system is similar to the air track system except that it operates in two dimensions.

GASMODEL
Short Description:	Gas molecules in a jar
Discussion:
In general a jar of a gas will have on the order of 1023 molecules in it.  I'm not sure how good a representation a system is if it only contains 14 particles, but at least it should get the conceptual ideas of thermodynamics across.

PINBALL
Short Description:	 A particle bouncing around many obstacles
Discussion:
This system contains one free particle which bounces around many fixed particles.  The system illustrates some of the possibilities in creating collision systems.  Systems modeling diffusion and osmosis could be handled pretty well if your system has enough pep.

YOYO
Short Description:	 A positively charged particle trapped between two 		positively charged fixed particles
Discussion:
This system does not display true harmonic motion, but for small displacements the harmonic formulas give a good estimation of the motion.

TRAP
Short Description:	 A positively charged particle trapped between 	four positively charged fixed particles
Discussion:
This is the two-dimensional analog of YOYO.  This system really illustrates how very simple systems can have very chaotic motion.  To illustrate this fact load this system up and set it in motion.  The path of the center particle will be traced out.  When about 100 seconds pass stop the system.  Now without hitting the re-set button re-load the system, but this time edited the central particle, modify its color and modify its initial position slightly and see what happens.  As you can see this system is very dependent on initial conditions.

COULOMB
Short Description:	 A number of fixed charged particles
Discussion:
This system is different from all of the previous systems because nothing moves.  The system was created to be used with the potential map and field line plotting functions.  In order to look at the plots, load this system up.  Once loaded hit re-set/potential/plot then wait for the map to plot out.  This may take a while.  When it's finished hit main menu/fieldline/color/15/density/25/plot.  You should have a pretty interesting plot.

SYSTEM
Short Description:	 A sun, a couple of planets and a moon
Discussion:
In our solar system the planets have slight precession due to the gravitational influences of other planets in the solar system.  This system illustrates these processional effects.

The system is a bit different because one of the planets has a moon orbiting it while the planet is orbiting the sun.

Correspondence
	If you have any suggestions or complaints or bugs please drop me a letter.  Also, if you have created any interesting systems I would love to see them.

Aepryus Software
ATTN: Joe Charlier
4310 South Regal Manor Drive
New Berlin, Wisconsin 53151

or use the internet

jjc3@midway.uchicago.edu