Viscoelasticity Java Project With PV-Wave


The aim of the viscoelasticity project is to develop an interactive tutorial about viscoelasticity accessible from the web. To do so, I am using Java (Sun Microsystems) and PV-Wave (Visual Numerics).

The tutorial will be used by students in the frame of the scientific modeling and visualization classroom project.

My advisors

My two advisors for this project are:

  • Dr David A. Dillard
  • Dr Ronald D. Kriz

I would like to thank them for their precious help and patience during this project.



Visualizer is the name of the Java applet I am developing. This applet is not the tutorial itself. It is a programmable applet which manages the display of the tutorial. The interests of such a program are the following:

  • The content of the tutorial can be modified
  • A modification in the tutorial does not imply a modification in the applet code
  • There is no need to be a computer science specialist to modify the content of the tutorial

The architecture I used to design the applet is represented below.

The description of the tutorial is contained in the file called tutorialdescription.dat. This file is directly read by Visualizer to get information about the next window to display.

The tutorial checker

It is important to notice that Visualizer does not check if the content of tutorialdescription.dat is correct. It assumes it is correct. That is it reason why I have developed a C program called tutorialchecker which generates the file tutorialdescription.dat. This provides a secure way to generate a correct description file.

The tutorial designer writes a description file thanks to a simple description language. A complete manual about the description language is available here. Then the program tutorialchecker reads the description file, checks if its content is correct and generates the file tutorialdescription.dat.

To run tutorialchecker you just have to type:

tutorialchecker name_of_the_description_file

Here is the source of tutorialchecker.c.

The file tutorialdescription.dat must be in the directory where the applet is located.

The tutorial description server

In fact Visualizer does not interact directly with tutorialdescription.dat. This is due to some security reasons under Netscape 2.0. An applet cannot read or write files under Netscape 2.0. To solve this problem I have designed a server in Java which reads tutorialdescription.dat and then sends the description to Visualizer. This server is TutorialDescriptionServer.

This server must be running on the web server where the code of the applet is located. To run the server you just have to type:

java TutorialDescriptionServer &

Here is the source of TutorialdescriptionServer.

It is important to know that it is necessary to restart this server if the file tutorialdescription.dat has been modified.

The interaction with PV-Wave

Visualizer manages the display of the tutorial. It supports several types of windows:

  • A main menu in the web browser
  • Windows containing a menu
  • Windows plotting curves
  • Customizable windows which can contain several component such as titles, texts, pictures ...
For more information about these types of windows have a look at the tutorial description manual.

Visualizer is able to illustrate equations of a model with curves. But contrary to numerous tutorials the users can directly interact with equations. They can enter the values of parameters and look at the curve. This allows them to experiment with their values.

Such an interaction is due to the use of PV-Wave. In fact, Visualizer does not calculate any equation. It just gets the values of parameters and sends them to PV-Wave. Then PV-Wave generates a picture and Visualizer displays it.

To implement this part, I based my work on the applet called wapplet written by Steve Lang and Jim Phillips of Visual Numerics. The wapplet allows people to use PV-Wave directly from a web browser.

I modified the PV-Wave server in order to support multi-user access. Now the interaction between the applet and PV-Wave can be represented as below:

This server must be running on the web server where the code of the applet is located. To run the server you just have to type:

java PVWaveAccessServer &

Here is the source of PVWaveAccessServer.

What does it look like ?

You can look at:

  • the applet running on a simple example.
  • the source of Visualizer.

Some information about me

I am a student in my third year at the Ecole des Mines de Nantes in France. I have done this project in the frame of an internship in the Engineering Science and Mechanics in Viriginia Tech during the summer 1996. If you want some more information about me please refer to my resume.