MayaVi: A free tool for CFD data visualization



Similar documents

Visualization with ParaView. Greg Johnson

Visualization with ParaView

Integration of C++ digital processing libraries and VTK through Tcl/Tk dynamic loadable extensions

Visualisatie BMT. Introduction, visualization, visualization pipeline. Arjan Kok Huub van de Wetering

Visualizing Electromagnetic Fields: The Visualization Toolkit. Michael Selvanayagam

Introduction to Visualization with VTK and ParaView

3D Data visualization with Mayavi

Why are we teaching you VisIt?

Material for tutorial. Twitter: prabhu_r. Slides: Demos:

A Hybrid Visualization System for Molecular Models

VisIt Visualization Tool

James Ahrens, Berk Geveci, Charles Law. Technical Report

Visualization and Post Processing of OpenFOAM results a Brie. a Brief Introduction to VTK

Cassandra 2.0: Tutorial

Visualization of Adaptive Mesh Refinement Data with VisIt

Multi-Dimensional Data Visualization

OpenFOAM Opensource and CFD

VisIVO, a VO-Enabled tool for Scientific Visualization and Data Analysis: Overview and Demo

How is EnSight Uniquely Suited to FLOW-3D Data?

Post-processing and Visualization with Open-Source Tools. Journée Scientifique Centre Image April 9, Julien Jomier

Introduction to Paraview. H.D.Rajesh

Introduction to Computer Graphics

Scientific Visualization with Open Source Tools. HM 2014 Julien Jomier

VisIVO, an open source, interoperable visualization tool for the Virtual Observatory

Computational Fluid Dynamics. Department of Aerospace Engineering, IIT Bombay

Avizo AvizoFire - The 3D visualization Software for NDT & Materials Science

GRAVE: An Interactive Geometry Construction and Visualization Software System for the TORT Radiation Transport Code

Outline. Fundamentals. Rendering (of 3D data) Data mappings. Evaluation Interaction

Visualisation in the Google Cloud

Why this lecture exists ITK Lecture 12: Open Source & Cross Platform Software Development

Introduction to MeVisLab Visual Programming Image Processing / VIsualization Examples VTK / ITK Integration MeVisLab SDK Features GUI Scripting

DATA VISUALIZATION. Lecture 1 Introduction. Lin Lu llu@sdu.edu.cn

OpenFOAM postprocessing and advanced running options

OPEN SOURCE CONTENT MANAGEMENT SYSTEM

IDL. Get the answers you need from your data. IDL

Visualization Tools for Comprehensive Test Ban Treaty Research r n h F q

Visualization with OpenDX

Go to contents 18 3D Visualization of Building Services in Virtual Environment

Processing Data with rsmap3d Software Services Group Advanced Photon Source Argonne National Laboratory

Wim de Leeuw and Robert van Liere Center for Mathematics and Computer Science CWI, P.O. Box 94097, 1090 GB Amsterdam, Netherlands

Web Class Configuration and Test Guide

AVS/Express - an object-oriented visual development tool

SPECIALIZED VISUALIZATION SYSTEMS FOR DIFFERENTIAL GAMES

Integrated Open-Source Geophysical Processing and Visualization

Study of Large-Scale Data Visualization

Efficiency Considerations of PERL and Python in Distributed Processing

Detailed Design Report

VISUALIZATION OF POST-PROCESSED CFD DATA IN A VIRTUAL ENVIRONMENT

Requirements Specification Document

Interactive Visualization of Magnetic Fields

DIY Device Cloud Documentation

VisIVO: data exploration of complex data

Availability of the Program A free version is available of each (see individual programs for links).

Advanced visualization with VisNow platform Case study #3 Vector data visualization

Visualization Plugin for ParaView

DEVELOPMENT OF REAL-TIME VISUALIZATION TOOLS FOR THE QUALITY CONTROL OF DIGITAL TERRAIN MODELS AND ORTHOIMAGES

Visualization à la Unix TM

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

Main Bullet #1 Main Bullet #2 Main Bullet #3

FDVis: the Interactive Visualization and Steering Environment for the Computational Processes Using the Finite-Difference Method

MEng, BSc Applied Computer Science

The Design and Implementation of a C++ Toolkit for Integrated Medical Image Processing and Analyzing

Using MuPAD and JavaView to Visualize Mathematics on the Internet

Facts about Visualization Pipelines, applicable to VisIt and ParaView

Collaborative modelling and concurrent scientific data analysis:

VisIt: A Tool for Visualizing and Analyzing Very Large Data. Hank Childs, Lawrence Berkeley National Laboratory December 13, 2010

How to Send Video Images Through Internet

DEVELOPMENT OF AN ANALYSIS AND REPORTING TOOL FOR ORACLE FORMS SOURCE CODES

Last lecture... Computer Graphics:

Exploratory Climate Data Visualization and Analysis

The Visualization Pipeline

MEng, BSc Computer Science with Artificial Intelligence

Overview of CS 282 & Android

A Study of Data Management Technology for Handling Big Data

GUIDE TO POST-PROCESSING OF THE POINT CLOUD

CFD software overview comparison, limitations and user interfaces

Our Technology.NET Development services by Portweb Inc.

COSC 6344 Visualization

Visualizing and Analyzing Massive Astronomical Datasets with Partiview

Visualization Process. Alark Joshi

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

CS101 Lecture 24: Thinking in Python: Input and Output Variables and Arithmetic. Aaron Stevens 28 March Overview/Questions

UNIVERSITY OF MACAU DEPARTMENT OF COMPUTER AND INFORMATION SCIENCE SFTW 463 Data Visualization Syllabus 1 st Semester 2011/2012 Part A Course Outline

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

An Introduction to Open Source Geospatial Tools

Introduction to Flow Visualization

A 3D Visualization System for Real-Time Space Weather Simulator with a Glassless Stereoscope

CHAPTER FIVE RESULT ANALYSIS

Scientific data formats and visualization of large datasets

Animation of Scientific Data Using VTK Designer

Introduction to Python

LSCFD: Meshing Tools for Open Source CFD A Practical Point of View

VisCMD: Visualizing Cloud Modeling Data

Run your own Oracle Database Benchmarks with Hammerora

CE 504 Computational Hydrology Computational Environments and Tools Fritz R. Fiedler

A Dynamic Load-Balancing Approach for Efficient Remote Interactive Visualization

Zhenping Liu *, Yao Liang * Virginia Polytechnic Institute and State University. Xu Liang ** University of California, Berkeley

Junifer Utility CIS. Flexibility. Scalability. Cost Effectiveness

Rational Developer for IBM i (RDi) Introduction to RDi

Transcription:

MayaVi: A free tool for CFD data visualization Prabhu Ramachandran Graduate Student, Dept. Aerospace Engg. IIT Madras, Chennai, 600 036. e mail: prabhu@aero.iitm.ernet.in Keywords: Visualization, CFD data, Visualization toolkit (VTK), Free software. Abstract: Visualizing CFD data is extremely important. There are very few freely available tools that allow one to visualize scalar and vector data on rectilinear, structured and unstructured grids. MayaVi is a free tool developed by the author that helps visualize such CFD data. It uses the Visualization Toolkit (VTK) for the actual visualization and provides a useful graphical user interface to make visualizing the data easy. This article describes the tool and the basis for its development. Introduction: In the recent past there has been a tremendous drop in the cost per unit of computing power and storage. This has led to a large increase in the size and computational complexity of CFD computations. This results in the production of a large volume of data that is difficult to process by traditional means. It is obvious that the graphical visualization of such CFD data is a necessity for both the developer of CFD code and also for the user of CFD programs. Visualizing three dimensional CFD data is not an easy task. Researchers can either develop their own tools to visualize data or download free tools or buy commercial visualization tools. It takes time and effort for a researcher to develop a good CFD visualization tool. This is because three dimensional data visualization is non trivial. Also, developing the tool such that it works across different operating systems and hardware is not easy and takes experience and effort. CFD researchers are also better served if they can concentrate on their CFD related work and not have to worry about visualization tasks.

There are very few freely available tools that are simple to use and designed for CFD data. OpenDX[1] is available for free and was originally developer by IBM but is a more generalized visualizer. OpenDX also has a fairly steep learning curve. Commercial tools cost considerably and it is not possible for all CFD developers to have access to them. Such being the case, a free, easy to use data visualizer for CFD data would be very useful. MayaVi is one such free tool that helps visualize CFD data. MayaVi: MayaVi provides an easy to use graphical user interface so that data can be quickly visualized. MayaVi uses the Visualization Toolkit (VTK)[2] in order to do the actual visualization. VTK is an open source visualization library and is written in C++. VTK also has bindings for other programming languages such as Tcl[3], Python[4] and Java[5]. The following are some of the features of VTK: 1. VTK provides over 650 powerful classes that ease the task of visualizing data. Some of the features relevant to CFD include, support for rectilinear grids, structured grids, unstructured grids and polygonal data. Scalar, vector and tensor data can be visualized using various types of algorithms. 2. A very large number of visualization algorithms are supported. 3. VTK also provides powerful image manipulation algorithms and is used frequently for medical imaging. 4. VTK is object oriented and uses a "pipeline" based architecture in order to construct "visualization networks". This makes it easy to use VTK. For more details the interested reader is referred to [6]. 5. VTK is open sourced[7] and the source code is available freely and users can adapt the available classes to suit their needs. People can also take part in the development and improvement of VTK. 6. Since VTK has language bindings for scripting languages like Python and Tcl it is easy to develop powerful applications that use VTK. 7. VTK runs on both the Unix family of operating systems and also on the Windows TM family. VTK also runs on the Mac OS X platform.

It is important to note that VTK is a library and provides the functionality necessary to visualize data. It does not provide an easy to use application that can be directly used to visualize data. The user has to learn how to use the library and write programs in C++ or one of the supported scripting languages, viz. Tcl, Python and Java in order to perform the visualization. Scripting languages are described in Ousterhout s excellent article on scripting languages[8]. MayaVi is written in Python. The Python programming language [4] has been chosen because of the following features: 1. It is free, easy to learn and has an elegant syntax. 2. Python is an interpreted, object oriented, dynamically typed language and provides exceptions and high level data structures. This makes it a very powerful language. 3. Python is highly modular and has a very large number of useful modules that enable one to perform a variety of tasks. These tasks include scientific computation, creation of graphical applications, etc. 4. Python is a full fledged programming language. 5. It is relatively easy to interface C/C++ programs with Python. 6. Python is available for a variety of operating systems including Unix and Windows TM. These features make Python an ideal choice for rapid application development. The VTK Python bindings are also very mature. There are several freely available modules that enable one to build graphical user interfaces (GUI s) using Python. One of these is an interface to the Tk library, called Tkinter. This is relatively easy to use and is cross platform. Currently there are other, more advanced modules for the GUI. However, MayaVi uses Tkinter. This seems to be satisfactory so far. It is possible that a more advanced module might be used in the future. Features of MayaVi: MayaVi is under development and currently provides the following features: An easy to use GUI.

Support for any VTK dataset. For information on the the VTK data format see [9] or [6]. Support for binary, structured, PLOT3D data. Simple support for multi block data is also incorporated. A lookup table editor to customize lookup tables easily while visualizing data. Around 10 15 useful modules to do grid, scalar and vector visualization. This includes a streamline module that can create streamlines, stream ribbons and stream tubes. Multiple datasets can be loaded simultaneously. Multiple visualization modules can be used simultaneously. A pipeline browser that allows one to view and configure the objects in the VTK pipeline. This is a feature that is specially useful for developers who know a bit of VTK. Support for importing a simple VRML scene. Texturing is not yet supported due to limitations the corresponding VTK class. The visualization (or a part of it) can be saved and reloaded in the future. Ability to save the visualization to Post Script files, BMP/PPM/TIFF images and Open Inventor or VRML files. MayaVi is known to run on Linux/Unix and Windows TM machines. MayaVi can visualize the following: 3D/2D structured grid planes. This is useful to verify the correctness of the computational grid. Unstructured surfaces and polygonal data. 3D/2D scalar data in the following manner: Visualize the scalar field using a cut plane on which the scalar is displayed either as a colour map or as contour lines. The cut plane can be moved through the data easily and this works for all kinds of data rectilinear, structured and unstructured. Visualize iso surfaces of data. This also works for all kinds of data rectilinear, structured and unstructured. Show structured grid planes with scalar data either as contours or as colour gradients. This is useful to check data generated on structured grids.

Vector field data using the following modules: Arrows or cones scaled, coloured and sized as per the vector data. Simple lines scaled as per vector data. Arrows or cones scaled and coloured as per vector data along a cut plane that can be moved through the data. Streamlines, stream tubes and stream ribbons using a source of tracer points along the data that can be introduced anywhere in the data. MayaVi is free and is distributed under the GNU General Public License (GPL)[10]. The GPL license has been used in order that MayaVi may always remain free for all. It also ensures that no commercial interests can deprive the users of MayaVi of any additional features that they may choose to add. It is important to note that such a license encourages that future enhancements to MayaVi will remain available to the users. The MayaVi sources and web pages are hosted by the remarkable SourceForge project[11]. This free service can be obtained for any open source project and provides its users with a host of excellent web hosting and development related facilites free of charge. The MayaVi home page can be found here: http://mayavi.sourceforge.net/ The source can be downloaded from the above mentioned site. Instructions for installation are also provided. A users guide is also provided with the package. This can also be viewed online. Several pictures of the program in action are also available at the site. There are a couple of mailing lists that users can subscribe to. There is an announcement list where information on new releases will be announced and there is a more general users mailing list where both support and discussions on development take place. Information on all these are available at the web site. MayaVi is currently being used all over the world with more than 1000 people having downloaded the latest version. The included figures. 1 and 2 show MayaVi in action running several different visualization modules.

Figure 1: This figure shows stream tubes for flow past a cylinder placed on a flat plate. Also shown are various cut planes that are colour mapped as per the velocity magnitude. One of them is a little away from the cylinder surface. The grid being used on the floor is also seen. The data used is courtesy NASA and is distributed along with VTK.

Figure 2: This shows a pair of iso surfaces of density for flow inside a combustion chamber. Also shown are the structured grid planes that are used for the computation. This data is also courtesy NASA and is distributed along with VTK. As mentioned earlier, MayaVi is under development and new features will be added when required. It is also possible for users to help in the development of MayaVi by sending their improvements and new modules. The MayaVi users mailing list is ideal for support questions and for discussions on the future development directions of MayaVi. Conclusion: In this article a new, free tool for CFD data visualization called MayaVi has been discussed. The importance of the tool from the perspective of the CFD community has been mentioned. Various features of the tool have been presented. The reasons

for using the Visualization Toolkit and the Python programming language have also been highlighted. It is the authors belief that this tool will be useful to users of CFD programs and also to developers of CFD code. Acknowledgments: The author would like to thank Prof. M. Ramakrishna and Prof. S. C. Rajan of the Department of Aerospace Engineering, IIT Madras, for their continued support and help. References: [1] OpenDX a free visualization tool from IBM http://www.opendx.org [2] The Visualization Toolkit home page http://public.kitware.com/ [3] The tool control language http://www.scriptics.com [4] Python programming language http://www.python.org [5] The Java programming language http://www.javasoft.com [6] The Visualization Toolkit: An Object Oriented Approach To 3D Graphics, Will Schroeder, Ken Martin, Bill Lorensen Prentice Hall. [7] The Open Source Initiative http://www.opensource.org [8] Scripting: Higher Level Programming for the 21st Century, John K. Ousterhout, IEEE Computer magazine, March 1998. Also available at http://www.scriptics.com/doc/scripting.html [9] The VTK data format http://public.kitware.com/vtkhtml/fileformats.pdf [10] The GNU General Public License http://www.gnu.org/copyleft/gpl.html [11] The SourceForge project http://sourceforge.net