VisIt Scientific Visualization
repository·develop·Indexed 19 days ago
https://github.com/visit-dav/visitA scientific visualization and data analysis application designed for exploring large-scale scientific datasets. The project includes a Python interface, a CMake-based build system for third-party libraries on Windows, and utilities like catmfem.sh for optimizing data reading via .mfem_cat files. Distributed under the BSD-3 License.
What's inside VisIt
- VisIt is a scientific visualization and data analysis application. It is used to explore and visualize large-scale scientific datasets. For official project information, visit the Project Website.
Overview of VisIt capabilities and architecture
developVisIt is an open-source, platform-independent, distributed, and parallel visualization tool designed for visualizing data defined on 2D and 3D structured and unstructured meshes.
Key Architectural Features:
- Distributed Architecture: VisIt can leverage the compute power of large parallel computers alongside the graphics acceleration of a local workstation. This allows the user interface to run locally (Windows, Linux, or macOS) while the compute engine runs in parallel on a remote system.
- In-situ Visualization: Because of its distributed nature, VisIt can visualize simulation data where it is generated, avoiding the need to transfer massive datasets to a centralized visualization server.
- Multiple Control Interfaces: VisIt can be controlled via:
- A Graphical User Interface (GUI).
- Python programming language.
- Java programming language.
- Custom user-developed interfaces.
Use the FFP plugin for 3D Far Field Patterns
developThe FFP plugin allows you to read and plot 3D Far Field Patterns (Radiation Patterns or Antenna Diagrams) and Radar Cross Section (RCS) files. It supports three different ways to handle the sphere parametrization:
- Cartesian splits: Uses standard (theta, phi) parametrization.
- User-provided mesh: Uses a
.unvfile describing a mesh on the sphere using triangles and/or quadrangles. - On-the-fly mesh generation: Uses the
stripacklibrary to generate a mesh (using triangles only) automatically.
Input File Format: The input file must follow this format:
theta_angle_degrees, phi_angle_degrees, G_Gain_dB, Phase_degreesComment lines can start with
#or%.View SimBase implementation examples
developThe
SimBasecontribution includes two primary files to help you understand its usage:simbase.py: The core base class for simulation creation.updateplots.py: A practical implementation demonstrating how to build a simulation on top ofsimbase.py. This version includes features like a point mesh demo with labels, which may differ from the standard as-shipped version.
Read paraDIS cylinder files via paraDIS_tecplot
developTheparaDIS_tecplotdatabase allows VisIt to read paraDIS "cylinder files". These files describe the enclosing mesh around a paraDIS data set, typically representing a cylindrical enclosure. The file format is compatible with Tecplot data files.Explore VisIt tutorial topics
developThe VisIt tutorial series is structured to take users from basic GUI interaction to advanced automation and specialized data analysis. The learning path is as follows:
Foundational Tutorials
- VisIt Basics: Introduction to the Graphical User Interface (GUI).
- Data Analysis: Core techniques for analyzing scientific datasets.
- Scripting: Using Python to script and automate tasks within VisIt.
Advanced and Specialized Tutorials
- Aneurysm: Specialized medical imaging workflows.
- PotentialFlow: Fluid dynamics visualization.
- MRI: Magnetic Resonance Imaging data workflows.
- CCL: (Context-specific advanced topic).
- RemoteUsage: Using VisIt in remote or distributed environments.
- MakingMovies: Creating animations and video exports.
- MolecularDataFeatures: Handling molecular data structures.
- PythonExpressions: Advanced use of Python expressions for data manipulation.
- Partitioning: Managing data partitioning for large-scale datasets.
- KeyframeAnimation: Advanced animation control using keyframes.
- History: Reviewing and managing session history.
Python Scripting Overview in VisIt
developVisIt uses Python as its general-purpose, interpreted, and extensible scripting language. The VisIt Python interface is implemented as a Python module, allowing you to enhance your scripts with code that controls VisIt functionality. This enables complex automation and data visualization workflows through standard Python syntax.What is Keyframing in VisIt
developKeyframing is an advanced animation mode in VisIt that allows animation attributes (such as view, plot, or operator attributes) to change as the animation progresses. Unlike standard flipbook animations, keyframing allows you to specify a fixed number of animation frames and map plot attributes, database states, and camera views to specific frames. This enables complex behaviors like fading plots in/out, moving slice planes, or performing camera flybys.Overview of VisIt XML Tools
developVisIt uses several XML-based code generation tools to implement its core features, specifically to keep the
Stateobject,Attribute, andPluginAPIs synchronized with XML definitions. The source code for these tools is located in:src/tools/dev/xml/src/tools/dev/xmledit/
What is SIMFE (Sim Front-End)?
developSIMFE (Sim Front-End) is a socket relay program designed to facilitate inbound simulation connections from VisIt. It acts as an intermediary between VisIt and a simulation that cannot communicate directly with the outside world.
Workflow:
- Run your simulation to generate a
.sim2file. - Run
simfeproviding that.sim2file as input. simfegenerates a new.sim2file.- Open the new
.sim2file in VisIt. This allows VisIt to connect tosimfe, which then establishes the socket connection to the original simulation.
- Run your simulation to generate a
Overview of Python Expressions in VisIt
developPython expressions allow users to extend VisIt's expression system by writing arbitrary Python code. They are an advanced feature intended for cases where the standard expression system is insufficient.
Key Characteristics
- Execution: They run on the compute engine and execute in parallel if the compute engine is parallel and the input dataset is decomposed for parallel processing.
- Data Access: They operate on
vtkDataSets, providing access to mesh variables, mesh coordinates, and topology. They also have access to VisIt metadata and MPI when running in parallel. - Output: They must return a
vtkDataArray, which allows for the creation of new variables. - Limitations: You cannot change the mesh topology or coordinates within a Python expression. To achieve effects like changing topology or coordinates, you must combine Python expressions with Cross Mesh Field Evaluation (CMFE) functions.
- Interfaces: Available via the GUI (in the Expressions window) and the CLI (using the
DefinePythonExpressionfunction).
What is Keyframe Animation in VisIt
developKeyframing is an advanced animation mode in VisIt that allows animation attributes (such as view settings or plot attributes) to change as the animation progresses.
Instead of just playing through time steps, you can design complex animations by:
- Specifying a total number of animation frames.
- Defining which plots exist over those frames.
- Mapping plot and operator attributes to specific frames (timestates).
This allows for effects like fading plots out, moving slice planes, or smoothly changing the camera view over the course of an animation.