Writing a File Format Reader for VisIt

Slides:



Advertisements
Similar presentations
National Alliance for Medical Image Computing Slicer3 plugins: Going Further Common architecture for interactive and batch processing.
Advertisements

National Alliance for Medical Image Computing Slicer3 plugins Common architecture for interactive and batch processing.
Excel Chapter 6 Review slides. How many worksheets are in a workbook, by default? three.
National Alliance for Medical Image Computing Anatomy of a plugin Common architecture for interactive and batch processing.
ParaView Tutorial Greg Johnson, Karla Vega. Before we begin… Make sure you have ParaView installed so you can follow along in the lab section –
Scientific Visualization with VisIt
CSE351/ IT351 Modeling And Simulation Choosing a Mesh Model Dr. Jim Holten.
Programming for Image Processing/Analysis and Visualization using The Visualization Toolkit Xenios Papademetris BML 325,
IS&T Scientific Visualization Tutorial Erik Brisson Introduction to Scientific Visualization.
E. WES BETHEL (LBNL), CHRIS JOHNSON (UTAH), KEN JOY (UC DAVIS), SEAN AHERN (ORNL), VALERIO PASCUCCI (LLNL), JONATHAN COHEN (LLNL), MARK DUCHAINEAU.
Introduction to Array The fundamental unit of data in any MATLAB program is the array. 1. An array is a collection of data values organized into rows and.
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
Scientific Visualization with VisIt Eliot Feibush PLASMA PRINCETON PHYSICS LABORATORY PICSciE Princeton Institute for Computational Science and Engineering.
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Applets and Frames CS 21a: Introduction to Computing I First Semester,
Chapter 3 Digital Representation of Geographic Data.
Matlab Basics Tutorial. Vectors Let's start off by creating something simple, like a vector. Enter each element of the vector (separated by a space) between.
AVS/Express and VisIt Training NERSC Users meeting June PPPL Cristina Siegerist NERSC/LBNL Visualization group June 13, 2006.
Selected Topics in Software Engineering - Distributed Software Development.
Technical Workshops | Esri International User Conference San Diego, California Creating Geoprocessing Services Kevin Hibma, Scott Murray July 25, 2012.
Post-Processing Output with MATLAB Claudia Fricke Institute of Petroleum Engineering, Heriot Watt University.
Hank Childs, University of Oregon Lecture #3 Fields, Meshes, and Interpolation (Part 2)
Earth System Modeling Framework Python Interface (ESMP) October 2011 Ryan O’Kuinghttons Robert Oehmke Cecelia DeLuca.
Integrating QDEC with Slicer3 Click to add subtitle.
ESMF Regridding Update Robert Oehmke Ryan O’Kuinghttons Amik St. Cyr.
Visualization with ParaView. Before we begin… Make sure you have ParaView 3.14 installed so you can follow along in the lab section –
1 Data Structures for Scientific Computing Orion Sky Lawlor /04/14.
Chapter 11: Inheritance and Composition. Introduction Two common ways to relate two classes in a meaningful way are: – Inheritance (“is-a” relationship)
Data Visualization Fall The Data as a Quantity Quantities can be classified in two categories: Intrinsically continuous (scientific visualization,
William Perry U.S. Geological Survey Western Ecological Research Center Geography 375 Final Project May 22, 2013.
National Alliance for Medical Image Computing Slicer3 Plugins Common architecture for interactive and batch processing.
SIMULATION COMPONENT AND MODFLOW DATA MODEL. Simulation Component.
Review Why do we use protection levels? Why do we use constructors?
VisIt Project Overview
Distributed Control and Measurement via the Internet
VisIt 2.0 Features Brad Whitlock.
Python data visualization
GML in CDI and CSR ISO using Ends&Bends
VTK: The Visualization Toolkit
Computer Science 210 Computer Organization
MANAGEMENT OF STATISTICAL PRODUCTION PROCESS METADATA IN ISIS
CMIP5 Questionnaire Roadmap – beta
Lecture 25.
In-situ Visualization using VisIt
WORKSHOP 2 TEMPLATES VERSUS SUBSYSTEMS
Computer Science 210 Computer Organization
INTRODUCING ADAMS/CAR
Geographic Information Systems
Course Name: QTP Trainer: Laxmi Duration: 25 Hrs Session: Daily 1 Hr.
Outline Matlab tutorial How to start and exit Matlab Matlab basics.
Introduction to javadoc
Learning about Taxes with Intuit ProFile
Building Web Applications
Embedding Graphics in Web Pages
Computer Science 210 Computer Organization
Information Visualization
Learning about Taxes with Intuit ProFile
funCTIONs and Data Import/Export
Developing a Model-View-Controller Component for Joomla
Introduction to javadoc
Programming Languages
Computational Urban Modelling and Simulation
Chapter 11: Inheritance and Composition
MATLAB Introduction MATLAB can be thought of as a powerful graphing calculator but with a lot more buttons! It is also a programming language, commands.
Matlab Basics Tutorial
Calibration Infrastructure Design
Integrated Statistical Production System WITH GSBPM
Introduction to Classes and Objects
Presentation transcript:

Writing a File Format Reader for VisIt Advanced VisIt Tutorial / SC12 Monday, November 12, 2012 Materials by VisIt Team

VisIt’s Data Model In order to start, we must understand VisIt’s Data Model A very rich data model Closer to the “computational model” Internally implemented with VTK Many conventions built on top of VTK This section of the tutorial outlines VisIt’s internal data model.

Meshes All data in VisIt lives on a mesh Mesh Types Unstructured Rectilinear Curve Curvilinear Points Molecular All data in VisIt lives on a mesh Discretizes space into points and cells (1D, 2D, 3D) + time Mesh dimension need not match spatial dimension (e.g. 2D surface in 3D space) Provides a place for data to be located Defines how data is interpolated

Variables Scalars, Vectors, Tensors Sits on points or cells of a mesh Points: linear interpolation Cells: piecewise constant Can have different dimensionality than the mesh (e.g. 3D vector data on a 2D mesh) Cell Data Point Data Vector Data Tensor Data

Materials Describes disjoint spatial regions at a sub-grid level Volume/area fractions VisIt will do high-quality sub-grid material interface reconstruction

Species Similar to materials, describes sub-grid variable composition Example: Material “Air” is made of species “N2” ,“O2”, “Ar”, “CO2”, etc. Used for mass fractions Generally weights other scalars (e.g. partial pressure)

Parallel Meshes Provides aggregation for meshes A mesh may be composed of large numbers of mesh “blocks” Allows data parallelism

AMR meshes Mesh blocks can be associated with patches and levels Allows for aggregation of meshes into AMR hierarchy levels

Three Basic Steps to Create Reader Use xmledit to describe basics of reader Use xml2plugin tool to generate source code skeleton Fill in required class methods 1 2 3

We will make an “XYV” plugin Reads single text file of 2D points with data Each time step exists in a separate file One header line that gives the names of the variables All lines after header contain 3 floating point numbers: x y v

XmlEdit GUI tool to edit plugin XML descriptions Used to define type of database, filename extensions, etc. Creates XML file that describes your reader

Types of Database Plugins Two axes: domains and time Moving down and to the right adds complexity Single Domain Multiple Domain Single Timestep STSD STMD Multiple Timesteps MTSD MTMD

Run XmlEdit and save XYV.xml

Generate Plugin Skeleton xml2plugin takes your XML file and generates many files % xml2plugin XYV.xml username % The files we’ll customize

Fill in methods for avtXYVFileFormat You need to write code to read the file and populate VTK objects See Getting Data Into VisIt manual Templates to create VTK objects at: http://portal.nersc.gov/svn/visit/trunk/src/tools/DataManualExamples/DatabasePlugin/ Method Description Constructor Class constructor Destructor Class destructor PopulateDatabaseMetaData Fill in metadata that describes the meshes and variables present in the data file GetMesh Return vtkDataSet subclass containing the mesh GetVar Return vtkDataArray subclass containing variable GetVectorVar Just return GetVar()

vtkDataSet is the base class for many meshes in VTK Create and fill out the appropriate VTK class for the mesh you want to return from your plugin Polygonal meshes Rectilinear meshes Curvilinear meshes Unstructured meshes, point meshes

The Plan Add vtkUnstructuredGrid called grid to contain the X,Y point mesh Add vtkFloatArray called var to contain the V value Read the file in a ReadData() method Call ReadData() from GetMesh() and return reference to grid Call ReadData() from GetVar() and return reference to var

PopulateDatabaseMetaData Describe the mesh

GetMesh

GetVar

Custom method: ReadData void avtXYVFileFormat::ReadData() { } Read all lines in file Store values in x,y,v vectors Use x,y vectors to make vtkPoints Use vtkPoints to make vtkUnstructuredGrid Use v vector to make vtkFloatArray

Custom method: ReadData void avtXYVFileFormat::ReadData() { } Read all lines in file Store values in x,y,v vectors Use x,y vectors to make vtkPoints Use vtkPoints to make vtkUnstructuredGrid Use v vector to make vtkFloatArray

Custom method: ReadData void avtXYVFileFormat::ReadData() { } Read all lines in file Store values in x,y,v vectors Use x,y vectors to make vtkPoints Use vtkPoints to make vtkUnstructuredGrid Use v vector to make vtkFloatArray

Custom method: ReadData void avtXYVFileFormat::ReadData() { } Read all lines in file Store values in x,y,v vectors Use x,y vectors to make vtkPoints Use vtkPoints to make vtkUnstructuredGrid Use v vector to make vtkFloatArray

Custom method: ReadData void avtXYVFileFormat::ReadData() { } Read all lines in file Store values in x,y,v vectors Use x,y vectors to make vtkPoints Use vtkPoints to make vtkUnstructuredGrid Use v vector to make vtkFloatArray

Build and Run Build commands: % cd XYV % cmake . % make Make will automatically install your plugin to your ~/.visit directory VisIt will load your plugin at launch

Run