Next Previous Contents

5. VBM Core

The core of VBM is a very simple program. It is basically only a backplane onto which modules can be plugged, providing no services other than basic communication. Many different modules may be used simultaneously. For example, several bifurcation visualization modules, data probe modules, and compute engine modules may all be used together. The idea is that we want to be able to use as wide a range of computation and visualization tools as possible. Accordingly, the VBM Core program makes very few assumptions about the form of the problem. In fact, if it were desirable to use VBM APIs and modules inside of some larger framework, it would be very easy to discard the VBM Core and replace it with whatever would be desired. Examples of programs which are commonly used in place of the normal VBM Core are the suite of test programs. One simply plugs a given module into a tester, instead of the normal VBM Core program, and the tester exercises the given interface.

There is one data block in VBM files that is used by the VBM Core and it is the "VBM_Connectivity" block. As part of the Compute Engine API the compute engine may send to VBM Core the connectivity of the bifurcation digram that it has computed. It is the responsibility of the VBM Core to translate the connectivity that it receives from the compute engine into the VBM file . Note that the VBM Core will not add connectivity to a VBM file which does not already have a "VBM_Connectivity" data block. Accordingly, if you are using a Compute Engine which returns connectivity you should ensure that the VBM file has a "VBM_Connectivity" data block in it before you start. An example of a VBM file which uses this tag can be found below.


x;y;z
3
0 2
3
1.0 0.0 0.0 
0.95 0.3122499 0.0 
0.9 0.43588989 0.0
5
5.0 0.0 0.0
3.5 2.7 8.9
3.4 2.3 2.3
1.8 3.5 2.9
8.7 4.5 3.7 
4
3.5 2.7 1.0
3.4 2.3 2.0
1.8 3.5 2.0
8.7 4.5 3.0 
##Begin VBM_Connectivity
line 1 0 1 1
line 1 1 1 2
point 2 0
triangle 2 1 2 2 2 4
tetrahedron 3 0 3 1 3 2 3 3
line 3 0 1 0
##End

As can be seen in this "VBM_Connectivity" block there are four types of connectivity that may be defined, namely "point", "line", "triangle", and "tetrahedron". Each type of connectivity has as arguments a list of pairs of integers. In each pair the first integer denotes the branch number, and the second integer denotes the point number within that branch. Note, the branch numbers start at 1 while the point numbers start at 0. For example, if we look at the previous VBM file, the pair "2 1" denotes the point with value "3.5 2.7 8.9".

point

This type of connectivity takes as one pair of integers as an argument and is normally drawn as a single point (normally as a small sphere).

line

This type of connectivity takes as two pairs of integers as arguments and is normally drawn as a line segment or a cylinder.

triangle

This type of connectivity takes as three pairs of integers as arguments and is normally drawn as a triangle.

tetrahedron

This type of connectivity takes as four pairs of integers as arguments and is normally drawn as a set of four triangles or as a solid volume.

Note that each Bifurcation Visualization module is free to render the connectivity however it wishes, and the above are only recommendations.

/


Next Previous Contents