VisIt Usage at LLNL

dlaney at dlaney at
Mon Nov 6 19:57:51 CST 2006

Paul Dubois asked me to post a short summary about how VisIt is used
at LLNL.

First, I am not a VisIt developer, but I have worked with it and those
who use it in day to day work.  I have also used it to generate high
resolution movies of medium to extremely large (~ 4 TeraByte) data sets.

VisIt is based on VTK (Visualization Tool Kit, check their webpage via
google search).  However, several features have been re-implemented for
performance reasons or because they did (or do not) exist in VTK.

VisIt is open source, but at present time does not have a true open source
development model (no sourceforge home page for example).  This may change in
the future, but I recommend contacting the VisIt team directly to find out
about official plans in this direction.

>From my perspective, VisIt is used in three ways at LLNL:
   1) Debugging    (GUI-based, but could use the Python interface)
   2) Exploration  (GUI-based)
   3) Movies       (Usually heavier use of the python interface)


    VisIt contains many operators that can be used to find bad cells and and
    display information about them.  A typical debugging session might start
    with a bad zonal quantity.  The user first creates plots of fields of
    interest using pseudocolor plots for example.  Then the user applies an
    OnionPeel operator and enters the domain and zone number from the error
    message generated by the code.  The user can then vary the number of
    additional layers of cells displayed around the bad cell.
    Finally, this small set of cells can be picked or queried, and investigated
    at different time steps.

    VisIt can also plot various quantities over time.  The expression engine
    in VisIt can be used to compute many derived quantities.

    VisIt also handles cells containing multiple materials in a robust way.

    There is interest in having physics codes dump Python
    scripts for VisIt that would automatically visualize errors in


    VisIt supports a large set of expressions, including the expected
    arithmetic operations along with vector operations (cross, dot, etc.),
    conditional operations (if-then-else), and many other useful functions.
    This allows users to create a large set of derived fields and then
    interact with them in VisIt like any other field.  I have seen users
    generate quite interesting plots by carefully creating derived quantities
    from the raw simulation dump files.

    VisIt has a nice set of functionality for creating 2-D plots.


    The way I typically approach the problem of generating a movie of a given
    visualization with a static view-point is as follows.

    1) First I set up the visualization with the domain scientist(s).  This
       process is iterative by nature and is entirely GUI based.  VisIt can save
       'session' files that record everything about a given session, allowing me
       to create multiple visualizations and re-use them later.

    2) Once everything is set up, VisIt can generate the movie from within
       the GUI, or the session file can be used in a python script to drive
       VisIt.  I usually use the Python interface because that gives direct
       control over camera position and other features.  For large movies,
       the frames must be generated on a cluster and the batch system is
       necessary.  Python can be used to build scripts that play nice with
       the batch-system at LLNL.

    It is also possible to build an entire movie using Python by specifying
    exactly which operations to apply.  The end-result is a self-contained
    script for generating frames.  However, this is a labor intensive
    approach and is only needed for movies with complex camera movements or
    other effects.  Even for such movies, VisIt has a key-framing system
    that can handle some common cases for movies.

For more information I suggest emailing the VisIt team directly at:
visit-help at


Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo

More information about the Numpy-discussion mailing list