Java PHASER Project
A Universal Simulator for Dynamical Systems
Authors/Architects:
Jason Glick,
Huseyin Kocak, and
Burton Rosenberg
With contributions by:
Craig Kolthoff and Johannes Gudmundsson
We are redeveloping from the ground up, in 100% pure
Java,
the original Phaser C program for DOS authored by Dr. Kocak at Brown
University in the mid 1980's. Java Phaser is not a port; rather,
it is a completely new version which sports radically new GUI
features, analytical tools, and algorithms. Furthermore, it has
been rendered platform independent, thanx to Java technology!
Phaser is an intuitive program for graphically and numerically
analyzing dynamical systems on a computer. Such systems include multi-
dimensional Difference Equations, Iterated Function Systems, and
Ordinary Differential Equations exhibiting bifurcation, periodic,
equilibria, chaotic, and strange attraction behaviors. Phaser captures
and manifests these dynamical phenomena with its powerful Views:
Phaser Views:
- Phase Portrait
- Xi vs. Time
- Bifurcation Diagram
- 1-D Stair Step Diagram
- Xi Values
Each View is capable of simultaneously solving multiple initial
conditions on a given system. Morever, each view runs in its
own thread space, thereby allowing any combination of views to run
concurrently.
All Views, including their respective graphical and numerical environments
wherein runs the dynamic system under inspection, are fine-tunably configurable
by the user via Phaser's vital co-primary application, the Numerics Editor.
|
|
The Phase Portrait View is especially enhanced by robust 3-D graphics
functionality and presentation, including static and real-time 3-D rotations
and animations of system solutions, with user-defined Cut-Plane and Poincare
Map visual aids integration.
|
In addition to its diverse stock library of fascinating equations,
Phaser is equipped with an easy-to-use, yet sophisticated Equation Editor,
Parser and Evaluator. Parsed-evaluated equations perform more-or-less at
55% speed of their executed bytecode counterparts. Such equations are
known as Custom Equations.
Custom Equations may be collected in Phaser's Custom Equation Library,
and may be added, removed, modifed, and used at any time. Custom Equations
may be exported and imported as Phaser Projects.
|
Phaser's prowess is contributable in part to its extensive library
of classical and state-of-the-art algorithms* -
the following methods for numerical analysis of first-order differential
equations are employed by Phaser:
Classical Algorithms:
Explicit |
Implicit |
Euler (1) |
Implicit Euler (1) |
Improved Euler (2) |
Implicit Midpoint (2) |
Heun (2) |
Implicit Trapezoid (2) |
Nystrom (3) |
Implicit SDIRK (3) |
Runge-Kutta (4) |
Implicit Gauss (4) |
Runge-Kutta 3/8 (4) |
Implicit Lobatto (4) |
|
Implicit Radau IA (5) |
|
Implicit Gauss (6) |
State-of-the-Art Algorithms:
Explicit |
Implicit |
Dormand-Prince 5(4) * |
RADAU IIA * |
Dormand-Prince 8(5,3) * |
ODEX * |
SEULEX * |
|
|
*
[
Our Java ports of modern algorithms in FORTRAN code developed by
Hairer
and Wanner.
]
Using Newton's method, Phaser is capable of numerically and graphically locating
periodic points in MAPs and equilibrium points in ODEs.
|
Phaser includes a very unique co-primary application
called the Gallery. The Phaser Gallery showcases projects created
in Phaser. Projects are sent from Phaser to the Gallery. On the
surface, projects in the Gallery are represented as seemingly static
snapshot images. However, behind the scenes, living in limbo, are the
intact objects that define the projects. Thus, any one project in the
Gallery may be rejuvenated at any time by sending it back to Phaser
where further experimentation and exploration may be performed. As
well as being a showcase, the Gallery serves as a practical temporary
repository for multiple in-progress or finished projects while another
one is being worked on in the main application of Phaser.
|
Excerpt from Phaser Help:
It is often necessary to save a current Phaser simulation for a
multitude of reasons. For example, you might like to share your findings with a colleague,
continue investigation at a later time, or create demonstrations for students. For such tasks,
Phaser provides the following facilities:
Save Phaser Project: You can save the fruits
of your labor by simply using Save Current Project menuitem
on the File menu of the Main Application Window. This action
enables you to save the current state of Phaser in its entirety,
including the complete graphical and numerical environments,
to a compressed user-specified file.
Load Phaser Project: A previously saved Phaser
Project file can be reloaded into Phaser using Load Phaser Project
menuitem on the File menu of the Main Application Window. This action
enables you to restore the current state of Phaser to that of the saved project.
Load Phaser Project URL: Previously saved Phaser
Project files can also be loaded over the Net using Load Phaser Project URL
menuitem on the File menu of the Main Application Window. This action
enables you to Fetch the desired Phaser Project file by specifying its URL,
using either FTP or HTTP protocols.
Current development plans for Phaser, 1st release:
- Algorithms designed for stiff equations
- Algorithms tailored for Hamiltonian Systems
- Printed manual, including tutorials
- Online help facility
Future development plans for Phaser, 2nd release:
- Basins of Attraction
- 3-D View of Bifurcation Diagram
- Context-sensitve online help facility
|
|
|
Phaser is designed as a professional educational and research tool.
It is being class tested (in beginning and advanced courses in differential
equations) within a network environment in our department;
it has proven to be very robust and successful.
Finally, the Phaser project symbolizes an investigation into Java
technology as a promising development platform for serious mathematical
and scientific computing.
Acknowledgements:
Dr. Alan Zame, The Chairman of our
Department of Math and Computer Science,
for his material and spiritual support.
Main contributor to the Phaser Project is Craig Kolthoff, for impeccable
quality assurance, FORTRAN fluency, and perpetual enthusiastic support.
Johannes Gudmundsson, for implementation of the classic implicit algorithms.
|
Phaser is being developed entirely in Java, using Sun's JDK 1.5.0/1.6.0 JavaHelp 2.0
on various platforms (in particular, Microsoft Windows XP, Redhat Linux, and Mac OS X) and
written as a stand-alone application.
Partial support for this work was provided by the
National Science Foundation's Course, Curriculum,
and Laboratory Improvement Program under grant DUE-0230612.
Phaser 2.1 was released on December 1st, 2003!
Phaser 3.0 was released on April 14th, 2007!
Phaser Links:
For current and more information or to get a copy of Phaser,
please visit the Phaser Scientific Software website.
Related Links:
The goals of the Numerics Working Group,
chartered by the Java Grande Forum, are
- to assess the suitability of Java for numerical computation,
- to work towards community consensus on actions which can be
taken to overcome deficiencies of the language and its run-time environment, and
- to encourage the development of APIs for core mathematical operations
Last updated: Mon Apr 14 00:00:00 EST 2007
Jason Glick,
jason@math.miami.edu
|