The goal of GLVis is to enable research and development of general finite element discretization algorithms through accurate OpenGL visualization, and tight integration with the MFEM library.
Though depending on MFEM for its finite element dictionary, GLVis can be used independently for parallel and serial visualization. For example, the hypre library includes scripts for displaying the numerical results from its parallel example codes through GLVis.
GLVis uses OpenGL with interactive refinement to accurately represent curved high-order meshes and a wide variety of finite element grid functions defined on them. GLVis is based on the modular finite element methods library MFEM, which supports in particular:
- 1D, 2D, 3D volume and surface meshes,
- triangular, quadrilateral, tetrahedral and hexahedral meshes,
- general curvilinear and NURBS meshes,
- input in unstructured VTK mesh format,
- support for Gmsh, CUBIT, NETGEN and TrueGrid meshes,
- arbitrary high-order, scalar and vector finite element and NURBS solutions,
- accurate cutting planes and level lines/surfaces,
- visualization of parallel meshes and solutions.
Lightweight and Convenient
GLVis has a fast keystroke-based interface and uses modern OpenGL that takes advantage of hardware acceleration in modern GPUs. It has a number of convenient features, including:
- unlimited number of refinement and de-refinement levels,
- interactive rotation, translation and scaling with the mouse,
- support for different perspectives, materials, lighting, color schemes and transparency,
- processor and element shrinking for better visualization of the interior of 3D meshes,
- antialiased meshes and fonts,
- screenshots in PNG or TIFF format.
Flexible Server and Scripting Support
When started without any options, GLVis establishes a server, which waits for socket connections and visualizes any received data in a separate interactive window. This enables:
- simultaneous visualization of multiple fields/meshes in separate GLVis windows,
- persistent visualization of time-evolving fields,
- local visualization of parallel meshes and solutions sent to the server by separate socket connections from each core of a remote parallel machine,
- saving and displaying of socket stream data,
- support for secure sockets using GnuTLS.
GLVis can also run a batch sequence of commands (GLVis scripts), which enable precise control of particular visualization scenes, and can be useful for making animations.
Native and Web Versions
GLVis runs natively on Mac, Linux, and Windows. It can also run a browser, using the web version, or a Jupyter notebook, using pyglvis or xeus-glvis. On Mac, GLVis can be built as a native app bundle that can be added to the Dock, double-clicked in the Finder, etc.
GLVis is an open-source software, and can be freely used under the terms of the BSD license.