Plugin overview

VisIt treats certain key abstractions as "plugins": libraries that are loaded at startup. This allows an installed version of VisIt to be extended with new functionality. Only plots, operators, and databases are plugins at this time.

A VisIt developer gave me plugin source code ... how do I install it?

This can only be done for Unix and Mac (not Windows).

For ease of reference, assume that the plugin contains the Threshold operator.

  1. tar xvf Threshold.tar
    • (This should untar its contents into ./Threshold)
  2. cd Threshold
  3. /path/to/visit/bin/xml2cmake Threshold.xml
  4. make

This should create and install a plugin that will work for the platform you ran these commands on. VisIt should find this plugin at startup.

A VisIt developer gave me a tarball that contains .so's for a plugin ... how do I install it?

This can only be done for Unix and Mac (not Windows).

For ease of reference, assume that the plugin contains the Threshold operator.

  1. cd ~/.visit
  2. tar xvf Threshold.tar
    • This should untar its contents into ~/.visit/<platform>/plugins/operators/
    • Note that not all developers are consistent about making tarballs that have <platform>/plugins/<plugin-type>. If you got a tarball that did not, cd into the appropriate directory and untar again.

This should install the plugin for you. VisIt should find this plugin at startup.

My plugin is crashing ... why?

It is entirely possible that there is a bug in the plugin. However, this often happens when you download VisIt from the website and try to build a plugin against it. Mixing compiler environments (i.e. a "heterogeneous" environment) would be a fine strategy if VisIt only used a C compiler. But C compilers and C++ compilers are different beasts. C++ executables will often run on different platforms, but when you mix libraries from different compilers, bad things happen. This is partly because C++ has more ways to do things differently and partly because of the lack of standards for object code.

If you think the crash is related to this issue, you have two options:

  1. Get in touch with the person who generated the plugin and determine if they can reproduce the crash with a "homogeneous" environment.
  2. Use the build_visit script to build VisIt to guarantee that you are in a homogeneous environment.

How does VisIt decide which plugins to load?

VisIt looks in two places for plugins:

  1. Your home directory
  2. The VisIt installation

If it finds a plugin in your home directory, it will load that first. If that plugin fails to load, it will ignore it and move on. After that, it loads plugins that come with the VisIt installation. When loading the installed plugins, it ignores plugins if they collide with plugins that were successfully loaded from your home directory.

How do I get rid of a personal plugin?

Unix

  1. Go to ~/.visit/plugins
  2. cd to the platform directory (e.g. cd linux-x86_64)
  3. cd to the correct plugin type (e.g. cd databases)
  4. Remove the .so files associated with that plugin.

How do I turn on optional plugins?

Optional plugins must be explicitly enabled in VisIt. You go to Options->Plugin Manager, turn on the plot or operator, save your settings, and then restart VisIt (sorry!) to access them.