When VBM is compiled with the VBM_DEVELOPER
option
various other special purpose Data Probe modules are created.
Eventually there will be documentation for them
here, but currently they are strictly "Use at your
own risk"! One thing that they might be useful
for to a general audience is as an example of what is
possible. They do not have as extensive
documentation as the normal modules, but the following
sections give brief descriptions of what they do.
This module lists the arguments that are sent to the Data Probe. The main purpose of this module is debugging.
This modules displays all of the pointwise tags that are associated with the current point. The main purpose of this module is debugging.
This modules displays all of the data blocks that are associated with the current point. The main purpose of this module is debugging.
The DataViewer based Data Probe for the rod problem..
The Rod problem module is an example of a data probe module and exemplifies many of the important details of the interface discussed in Section and its implementation. This module has been used extensively in our work for the visualization of a continuum rod model used in the study of DNA. An example of the visualization provided by this module is shown in Figure.
The reason that this module is considered a Developer
Module, and is not part of the standard distribution
us that is calls Fortran subroutines from C++.
While this is a standard thing to do, the exact
compilation flags needed to make it work
differ from one machine to the next. Hence,
VBM only attempts to compile this module
if the VBM_DEVELOPER
option
is selected.
This module has been implemented in DataViewer (see http://lcvmwww.epfl.ch/DV for more detail). Accordingly, it automatically inherits all of the advantages of this library. In this case, the module provides a visualization of a single, full solution to the problem of interest. Given a bifurcation diagram object and a pointer object, this module reconstructs the full solution from a small subset of representatives, using an IVP solver.. Basically, it assumes that a subset of the representatives chosen for the bifurcation diagram are actually the values of the continuous system at the point s=0. For this module the original problem is solved as a boundary value problem. Once the boundary value problem has been solved, and the solution recorded at one endpoint, the rest of the solution may be reconstructed trivially using an initial value problem solver, because here the equations are not too stiff. One important implication of this method is that the visualization domain and computation domain can be fully decoupled. The discretization at which the solution of the boundary value problem is performed is independent of the discretization used in the initial value problem solver and the visualization.
We also note that the visualization this module provides is quite specialized. As shown in Figure the solution is represented as a tube and a ribbon. This visualization metaphor is chosen because of the specific structure of these equations, which represent the statics of an elastic rod. The two basic properties of such an entity are a centerline and a set of directors. To capture this information in a single visualization we represent the centerline by a tube and the directors by a ribbon. In some sense, we display a representation of the solution as it would appear if it were physically realizable. We are, of course, not bound by physical realizability, and may add whatever other cues we wish to the visualization, such as the ribbon. Other information may be encoded, as well, for example utilizing color of the tube and ribbon. Other cues are also possible, for example the radius of the tube, or the width of the ribbon.
The visualization in this module may be manipulated by using both the mouse and the keyboard. Note, this information is repeated in several sections since it is the same for all DataViewer based modules. We include it to make each section as self-contained as possible.
Keyboard bindings
Perform rotations about the vertical axis.
Perform rotations about the horizontal axis.
Perform rotations about the axis "coming out of the screen".
Translate the object horizontally.
Translate the object vertically.
Zoom the object.
Mouse bindings
Performs rotations of the solution based upon the virtual trackball paradigm.
The solution continues to rotate in the same direction as it was rotating when the button was release.
The solution stops rotating.
Translates the solution based upon the movements of the mouse.
As the mouse is moved up the solution is moved closer to the eye-point, and as the mouse is moved down the solution is moved further away from the eye-point.
This is a very special purpose module, which functions very similarly to the module in Section, except that, instead of plotting the solution to the ODE, it plots a surface of revolution based on the solution.
This is also a DataViewer based module.
The goal of this module is to draw rotation surfaces from the solution reconstructed with the IVP solver. The assumption of this module is that the solution is planar, and situated in the XZ plane. After reconstructing the solution, the module will compute a surface by rotation around the Z axis.
Thus, the coordinate settings in the Coord and Scale page are used in the following way: the y coordinate is ignored, and the x and z coordinates are used to construct the surface by rotation around the Z axis.
The setting panel of this module behaves like the panel of the AUTO Solution Reconstruction (IVP) dataprobe, except for one specific page, named Surface.
This page provides a set of widgets used to define the way the rotation surface is constructed.
The first typein on this page, labeled "Angle", defines the rotation angle for the surface and is expressed in degrees. Thus, the rotation surface is constructed for an angle going from 0 to the specified angle, which is 180 by default.
The next 3 typeins define a translation to be applied to the solution before constructing the rotation surface. As the solution is assumed to be in the XZ plane, the Y translation widget has no effect. The X translation will affect the shape of the rotation surface, while the Z translation will only move it.
This module is recent and its documentation is still under construction.