The person mainly responsible for this ongoing project is Dr. Harter,
whose work is covered at length below. Recently, however, Dr. Gea-Banacloche
has also joined in this effort by developing a couple of instructional
Java applets: a vector addition applet
and a Kinetic Theory
demo. If your browser supports Java, you can check them out right
now!
Over the past ten years Dr. Harter
has undertaken two major projects to improve the teaching of physics
using computer animations, simulations, and demonstrations. The first
project called LearnIt is for non-programmers and computer
neophytes, while the second and more recent project CodeIt
is for students beginning to learn the art of scientific simulation
programming.
LearnIt consists a 'library' of fifteen
or twenty 'user-friendly' graphical animation programs. Some of these
are described in a feature article in Computers in Physics (Sept
1993). They have been used as classroom demonstrations by instructors
and laboratory projects for students in a wide range of classes at a
number of universities and colleges in the U.S. and Europe. They contain
powerful and intriguing lecture demonstrations but they minimize arcane
aspects of computer which would otherwise interfere with teaching or
learning.
CodeIt consists of 'trees' of different
programming shell projects each with a multitude of powerful simulation
tools in the form of C++ source code. They provide students
with an 'industrial strength' development environment equal or better
than any they will encounter in academic research labs or high tech
workplaces. Some of the better results of the CodeIt project
become part of the LearnIt library, but the main idea is to
let students learn by doing both the physics and the programming.
List of LearnIt Simulations
WaveIt
(Pascal) shows bitmap animation of n-coupled oscillators (n=2,3...25)
and 1-dimensional complex wave motion using phasors, waveform, envelope,
and space-time diagrams. It is designed to demonstrate dispersion relations,
phase velocity, group velocity, node velocity, standing wave ratios,
acoustical modes, optical modes, galloping waves, umklapp waves, backward
waves, square waves, delta waves, and mechanics of the Brillouin zone.
It has a graphical "click&set" phasor control for complex Fourier
transform or inverse transform which may be used to set initial conditions
of a mode or wave. Spreadsheet transform editing can be done, as well.
RelativIt
(Pascal) features a spaceship freighter passing between two lighthouses
to enter a galactic harbor. It produces bitmap animations of space-space
and space-time views of ship, lighthouse and expanding light waves in
order to help develop relativistic transformations. Minkowski graphs
are developed and used in animations of space-time and energy-momentum
plots. It shows relativistic geometry of invariants, Lorentz contraction,
Doppler shifts, collision 4-vectors, current-charge, and uniformly accelerating
frames. Includes a striking description of a super-luminal "butler"
who manages to appear briefly in three places at one time! ('Butlers'
are realized physically by wave nodes in WaveIt.)
BandIt
(FORTRAN) is a bitmap animation of 1-dimensional wavefunctions propagating
through media of variable complex index. It is intended to show either
quantum mechanical or optical wavefunctions, resonance, and scattering.
A zoom-view spectral plot allows graphical selection of resonant peaks
for subsequent wavefunction animation. It demonstrates barrier tunneling,
reflection, non-reflecting coating, impedance matching, Ramsauer-Townsend
effect, singly or multiply degenerate resonance, absorption, dispersion,
and optical amplification.
BounceIt
(FORTRAN) is a bitmap animation of energy and momentum conserving collisions
involving multiple (n=2 to 5) masses and a wall. This can accompany
a spectacular 'real' demonstration of velocity amplification using superballs.
It shows a simple nomogram plot which elucidates the application of
conservation laws to kinematics.
OscillIt
(Pascal) is a color XOR animation of forced damped harmonic oscillators
which displays time trajectory plot, position and force phasor, force
vector, force-distance work plot, Fourier transform, response-frequency
plot and Smith diagram.
AnalyIt
(FORTRAN) displays properties of analytic functions of complex variables
using color vector fields or complex potential mappings. User driven
drawing or underlying grid are transformed and mapped instantly by chosen
function f(z). It is intended to show poles, branch cuts, Schwarz-Christoffel
transformations, contour integration, and consequences of Cauchy-Riemann
conditions.
MatrIt
(Pascal) contains a mouse driven color display of two-dimensional matrix
transformations on vectors. It includes two representations of elliptic
or hyperbolic quadratic forms which show the mutual tangent relations
and the extremal nature of eigensolutions.
DiffractIt
(Pascal) shows multiple slit interference using animated Moire-like
wave front patterns superimposed onto diffraction function plots. Also
it contains bitmap animation of two-dimensional wave fronts, wave forms,
and ray traces for plane waves superimposed in rectangular wave guide
and wave cavity which show phase and group velocity.
ColorU(2)
(FORTRAN) is a color XOR and palette animated study of two-dimensional
coupled oscillator and two-level quantum systems. It is based upon the
R(3)-SU(2) group relation between vector and spinor spaces. It contains
a user controlled graphical representation of optical polarization ellipsometry
and optical spin space which may be used to set oscillator or two-state
initial conditions. The resulting motion in 4-dimensional phase space
may be viewed in stereo 3D animated views. Phase trajectories may be
colored according to the value of Hamilton's characteristic action function.
A complex plot yields a simple color pattern if the action satisfies
Bohr quantization conditions. Animating the color palette shows the
quantum mechanical wave motion on an invariant toris in phase space.
CoulIt
(Pascal) Simulates classical Coulomb field dynamics for single and double
center orbital and scattering problems including perturbations by uniform
and harmonic forces. Single particles or swarms of particles can be
animated. Color quantization (See ColorU(2))
is available. Lenz vector geometry is displayed for single center Coulomb
orbits. Parabolic coordinates are shown for Coulomb-Stark fields. Elliptic-hyperbolic
coordinates are shown for 2-center problems.
VaryIt (FCMD utility) allows scientific
programmers to rapidly modify and control multiple variables and parameters
without using a keyboard. Integer, real, double, or extended precision
variables can be input directly or augmented additively or multiplicatively
by a single 'mouse click'. Variables and their labels are displayed
in a compact control structure which can be made as small as font resolution
will allow. The display format (fixed, scientific, etc.) of each variable
may be reset independently by mouse pointer. Designed for dynamic simulations
and lecture presentation.
BBVibes
(Basic) Displays the classical normal modes of the Buckminsterfullerene
(C60) molecule using animated 3D stereoptic views of the
vibrating carbon atoms. Sophisticated group theoretical techniques are
used to quickly calculate and display any of the 180 genuine and non-genuine
modes of vibration labeled by any of the symmetry sub-group chains in
the full Yh icosahedral representation space. The rovibrational
Coriolis polarization effects of overall molecular rotation are shown
by the resulting elliptic orbits of the constituent atoms.
SpinIt:The
Physics of Molecular Rotation (C++) Simulates the classical
dynamics of rigid and semi-rigid molecular rotors. Uses animated 3D
stereoptic views which show simultaneously the views from the inertial
lab-fixed frame and the rotating body-fixed frame. The motion of the
rotating body and the vectors of angular momentum or velocity can be
animated simultaneously. The Coriolis effects of coupling between molecular
rotation and internal spin angular momentum may be simulated, as well.
DynamIt
(ProGraph) Introduces the basic ideas of calculus as they apply to dynamics.
Differentiation is introduced as subtraction between neighboring numbers
in a list, and integration is introduced as a summation of these numbers.
These operations are carried out interactively using three time graphs
of number lists belonging to time functions position x(t), velocity
v(t), and acceleration a(t). Arbitrary points can be moved in any one
of the graphs and the others immediately adjust accordingly. The same
type of interactive plots are used to manipulate spatial functions potential
V(x) and force F(x), and the resulting time dynamics is stored in the
time lists and graphs for x(t), v(t), and a(t). Animations show how
slope and area evolves with time while an odometer, speedometer, and
accelerometer indicate position, velocity, and acceleration. A menu
of standard functions provides other examples of time behavior.
List of CodeIt Projects
HitIt:The Physics of Tennis (C++) Simulates
the complex mechanics of a tennis ball in flight and its collision with
a moving racquet. The Magnus effects of lift and drag due to high velocity
and spin are modeled semi-empirically using published experimental results
for varying atmospheric pressure and humidity. The change of spin, velocity,
and bounce angle are calculated given known parameters of court-ball
coefficients of restitution and friction. Trajectories are initialized
by on-screen mouse action which sets initial conditions. Trajectory
flight data is animated and saved numerically in a text file window
which contains height, speed, angle, and spin before and after net crossing,
first bounce, and baseline crossing. Racquet collision simulation shows
how initial spin and velocity are produced.
AvoidIt:The Physics of Avoided Two-Level Crossing (C++)
Models the quantum dynamics of perturbed two-level atom or NMR spin-resonance
subject to Stark effects or related changing external symmetry breaking
fields. Interactive animation displays the Hamiltonian matrix, its eigenlevel
trajectories, the moving 2-state wave amplitudes (
1(t)
and
2(t))
, and the rotating Rabi spin vector <S(t)> .
It allows any of the Hamiltonian parameters to be varied as time passes
and demonstrates diabatic or adiabatic crossing or non-crossing found
in the Landau-Zenner effect.
CnvModes:Homocyclic Symmetry and Modes (C++)
Animates the normal modes of a Cnv symmetric homo-cyclic
ring molecule (n=1,2,...24) for arbitrary initial conditions and a variety
of inter-atomic force field couplings. Normal modes are symmetry labeled
and displayed on one side of the screen . Amplitudes and phases of each
mode can be tweaked to see the effect on the superimposed motion of
the whole molecule being animated on the other side. Amplitudes of individual
atoms can be varied too, and the resulting normal mode amplitudes respond
accordingly.
CnvWaves:Homocyclic Bloch Waves (C++) Animates
the quantum waves of a Cnv symmetric homo-cyclic potential
(n=1,2,...24) for arbitrary initial conditions and a variety of potentials.
Eigenfunctions
n
(x) are symmetry labeled and displayed along an energy scale . Amplitudes
and phases of each eigenstate can be tweaked to see the effect on the
superimposed wave motion while it is being animated . Both the spatial
wave amplitudes
(x)
and the Fourier amplitudes
(k)
can be varied too, and all the other mode amplitudes respond accordingly.
The Trebuchet (C++) Animated simulation
of an ancient and deadly war weapon called the Trebuchet. This fiendishly
clever catapult was used to bring down fortified cities from around
1100 AD until about 1450 AD and for hundreds of years was more effective
than cannons. The Trebuchet is thought to have hastened the spread of
black plague since it was used to heave bodies of plague victims into
besieged fortifications.
Cycloids and Pendula (C++) So much of physics
owes its development to precise time and frequency devices. The development
of the cycloidal pendulum in 1680 by Christian Huygens is therefore
as significant as it is beautiful. This animated simulation shows how
a pendulum made by wrapping a cord around a cycloid achieves a perfect
pitch that is independent of oscillation amplitude. It also shows some
little known geometric and dynamic properties of the motion.