And Application to Computing Streamlines in Multibock Datasets - - PowerPoint PPT Presentation

and application to computing streamlines in multibock
SMART_READER_LITE
LIVE PREVIEW

And Application to Computing Streamlines in Multibock Datasets - - PowerPoint PPT Presentation

And Application to Computing Streamlines in Multibock Datasets Werner Benger Scientific Visualization Group Center for Computation & Technology at Louisiana State University What is VISH? - Design and structure Features of VISH


slide-1
SLIDE 1

And Application to Computing Streamlines in Multibock Datasets

Werner Benger

Scientific Visualization Group Center for Computation & Technology at Louisiana State University

slide-2
SLIDE 2

What is VISH? - Design and structure Features of VISH – Status Quo Application to computing streamlines in

multiblock vectorfield data

slide-3
SLIDE 3

A Visualization Shell A framework for realizing Visualization

Wishes

Something else... (free to imagination) Pronouncation (proposal):

Even times: “fish” Odd times: “wish” Maritime naming convention

slide-4
SLIDE 4

A highly modular infrastructure to implement

visualization (and more) algorithms

Strong encapsulation between components Abstract interface that allows to integrate VISH

components into existing applications

Everything is a plugin

“microkernel” – defines objects an their relationships “plugins” – OpenGL rendering, data I/O layers, GUI

Academic open source licensing

not formally open source, but freely available to academic

community

slide-5
SLIDE 5

Primary domain: scientific visualization Closing the gap between “one-shot”

research algorithms and complex end-user convenient applications

Infrastructure powerful such as in established

commercial applications

Not bound to a specific application or platform

A set of libraries, can be added to existing

applications

Standalone reference application - qVISH

slide-6
SLIDE 6

Kernel with object management and (runtime)

plugin mechanisms

User Interface plugins (e.g., QT frontend) Data model (systematic treatment of scientific data

via a common approach)

I/O layer as runtime plugins (file formats, streaming)

Visualization infrastructure

OpenGL caching mechanisms

slide-7
SLIDE 7

Vish Kernel (Ocean)

GUI Qt,GTK,… OpenGL Scripting tcl,perl,… Data I/O HDF5…

slide-8
SLIDE 8

Database-like kernel

Abstract objects with inputs and outputs Runtime plugins based on C++ type query Data and control flow management

OpenGL support library

Layered rendering OpenGL memory and multidimensional cache

management

slide-9
SLIDE 9

#include <ocean/plankton/VCreator.hpp> #include <ocean/GLvish/VRenderObject.hpp> using namespace Wizt; namespace { class MyBackground : public VRenderObject { // Input slots for a type "double" TypedSlot<double> Red, Green, Blue; // The virtual callback functions for rendering

  • verride void render(VRenderContext&Context) const

{ // Local variables double red=1, green=1, blue=1, alpha=1; // Evaluate from input slots relative to Context // Note that this is special VISH syntax Red << Context >> red; Green << Context >> green; Blue << Context >> blue; // Do some OpenGL stuff here glClearColor( red, green, blue, alpha ); glClear(GL_COLOR_BUFFER_BIT); } public: MyBackground(const string&name, int, const RefPtr<VCreationPreferences>&VP) : VRenderObject(name, BACKGROUND_OBJECT, VP) , Red (this, "red" , 0.5) , Green(this, "green", 0.5) , Blue (this, "blue" , 0.7) {} }; // Define creation object for the given object static Ref<VCreator<MyBackground> > myBackground("Private/MyBackground"); }

slide-10
SLIDE 10
slide-11
SLIDE 11

VParameter VObject Tcl input

int VInput<int> Multiple concurre instantiations of implementations

slide-12
SLIDE 12

VParameter

A

int beta;

B

int i; int alpha; int k;

VParameter VParameter VObject “A” requests input parameter “alpha, beta” VObject “B” requests input parameter “i,j” Input A.beta is identical to B.i

slide-13
SLIDE 13

Changing one parameter notifies many values

VParameter Tcl input

User Interaction

ValueNotifier ValueNotifier ValueNotifier

slide-14
SLIDE 14

ValuePool ValuePool VParameter VObject

int Value of input objects may be stored relative to a ValuePool

12 23 56

VParameter VContext VInput

VValue VValue VValue

slide-15
SLIDE 15

Reference prototype implementation

based on QT (both qt3 and qt4 possible) Plugin to the kernel Consists of several plugins itself, such as Network, scripting, tree, story representation

Other GUI’s possible: GTK, wxWindows,

FLTK, none (batch mode)

Interfacing existing applications possible:

E.g. run VISH within Amira, or Scirun, or AVS or

…??

slide-16
SLIDE 16
slide-17
SLIDE 17

Screenshots!

slide-18
SLIDE 18
slide-19
SLIDE 19
slide-20
SLIDE 20
slide-21
SLIDE 21
slide-22
SLIDE 22
slide-23
SLIDE 23

User I nterface Representation Is just a plugin A view to the underlying kernel Someone can write an alternative representation (much prettier) without messing up the entire system.

slide-24
SLIDE 24

Mesh Refinement Currently supports

  • rthoslices of uniformly

spaced mesh refinement grids

slide-25
SLIDE 25

Time Slider Design Goal: Navigation should be as easy and fast in space as in time

slide-26
SLIDE 26
slide-27
SLIDE 27
slide-28
SLIDE 28
slide-29
SLIDE 29
slide-30
SLIDE 30

http://stacks.iop.org/NJP/10/125004

slide-31
SLIDE 31
slide-32
SLIDE 32
slide-33
SLIDE 33
slide-34
SLIDE 34
slide-35
SLIDE 35
slide-36
SLIDE 36

6279 x 6279 Pixel

slide-37
SLIDE 37
slide-38
SLIDE 38
slide-39
SLIDE 39
slide-40
SLIDE 40

The Stirtank Dataset

Department of Mechanical Engineering

Sumanta Acharya Somnath Roy

2088 curvilinear blocks Vectorfield describing velocity Scalarfield describing pressure

slide-41
SLIDE 41
slide-42
SLIDE 42

5

slide-43
SLIDE 43
  • Calculate local coordinates in a general Hexahedral Cell

Seems similar for interpolation using barycentric coordinates in triangles

trivial? (0,0) (1,0) (1,1) (0,1) (2.1,0.1) (2.6,-0.3) (2.8,1.8) (1.6,1.5) (2.4,0.3) (x,y)

slide-44
SLIDE 44

Use bundles, grids and field for data flow

OUT: EmitterPoints IN: EmitterPoints OUT: Lines IN: Lines Render Lines IN: Pos IN: Rotor OUT: Rotor Rotor OUT: Pos Position Point Emitter IN: Field Compute Streamlines Out: Field Fiber Data

slide-45
SLIDE 45

Use bundles, grids and field for data flow

OUT: EmitterPoints IN: EmitterPoints OUT: Lines IN: Lines Render Lines IN: Pos IN: Rotor OUT: Rotor Rotor OUT: Pos Position Point Emitter IN: Field Compute Streamlines Out: Field Fiber Data

slide-46
SLIDE 46

Use bundles, grids and field for data flow

OUT: PointGrid IN: PointGrid OUT: LineGrid IN: LineGrid IN: Pos IN: Rotor OUT: Rotor Rotor OUT: Pos Position Point Emitter IN: VecField Compute Streamlines Out: Bundle Fiber Data IN: Bundle OUT: Grid Grid Extractor IN: Grid OUT: Field VectorField Extractor IN: ScalarField IN: Grid OUT: Field MagnitudeField Extractor (or a Grid Evaluator) Render Lines Slice StirTankGrid PointEmitterGrid LineGrid Field 1 Field 1 Field 1 Field 1

slide-47
SLIDE 47

Point Emitter Revisited

Basic Tasks

Create points on different geometric shapes. Transform them

Idea

Instead of create points, copy a number of points on different geometric shapes ( grids?!? ) Connect the output of a point Emitter to another point emitter

→ Grid Convolution (?)

slide-48
SLIDE 48

Module Separation

PointEmitter becomes a PointGridCreator Additional module: GridConvolver

OUT: Grid IN: CarrierGrid IN: ChildGrid GridConvolver OUT: PointGrid IN: Pos IN: Rotor OUT: Rotor Rotor OUT: Pos Position Point Emitter OUT: PointGrid IN: Pos IN: Rotor OUT: Rotor Rotor OUT: Pos Position Point Emitter

slide-49
SLIDE 49
slide-50
SLIDE 50
slide-51
SLIDE 51

Using Grids and Fields in Computation Module (1)

Use an input grid for defining the start-points (seed points) of

streamlines

→ Any grid object can be used!

e.g. the grid points of a computed iso-surface

slide-52
SLIDE 52
slide-53
SLIDE 53
slide-54
SLIDE 54
slide-55
SLIDE 55
slide-56
SLIDE 56

http://sciviz.cct.lsu.edu/projects/Vish/ For now ☺

slide-57
SLIDE 57
slide-58
SLIDE 58
  • Point Sets
  • Unstructured Cell Data
  • Tetrahedral Grids
  • Regular Grids
  • Uniform Grids
  • Uniform Cartesian Grids
  • Uniform Polar Grids
  • Triangular Surfaces
  • Quad-based Surfaces
  • Irregular Surfaces
  • Hierarchical Grids (AMR)
  • Streamlines, Particle

Trajectories, Geodesics

  • Apparent Horizons
  • Embedding Surfaces

HDF5 formulation available via http://www.fiberbundle.net/

slide-59
SLIDE 59

A property-based description of scientific data A specific data type is built from “construction

blocks”

Construction blocks are concepts from differential

geometry, reduced to practical application domain in SciViz

Hierarchy of six levels

slide-60
SLIDE 60

Not each type independent (VTK, Amira):

Not a list of myriads of independent cases – similar cases are modeled similarly

  • Eg. Uniform grid regular grid curvilinear grid

triangular surfaces / regular surfaces / points Not necessarily the most straightforward modeling for a specific

problem, but only gradual increase of complexity for closely related problem

Inspired by mathematical concept of fiber bundles Data model similar to OpenDX, but extended/more

systematic/self-constrained

slide-61
SLIDE 61

Short: a space E that can (locally) be written as

the product of a base space B and a fiber space F, e.g. E = B F (trivial bundle) base space

fiber space at each point of base space

slide-62
SLIDE 62

Systematic treatment of a wide category of

scientific data, based on the mathematics of fiber bundles

Common denominator for otherwise diverse

grid types

Plugin to VISH (“fiber-VISH” or “FISH”) No need to use it, customized data types also

possible in VISH (but bypassing the FISH infrastructure then)

slide-63
SLIDE 63

Systematic approach for scientific data:

Particle systems unstructured grid regular grids

uniform grids block-structured uniform grids curvilinear multi-block grids …

Incremental transition from one such category to next

  • ne

Can cover multiple timesteps, grids, fields…

slide-64
SLIDE 64

I/O layers are plugins (shared libraries)

independent of core implementation

Distinction among data and metadata

  • n-demand loading and creation of data

Cache-management

Most powerful I/O layer is “F5”

1:1 representation of the FiberLib2 into HDF5

slide-65
SLIDE 65

HDF5 Fiber Bundle HDF5 (“F5”)

Application oriented, C Library

Fiber Bundle Data Model

C++ Kernel

Other File formats qVISH CGNS F5 I/O

Simple Postprocessing Tools

E.g. CGNS HDF5

Application specific

Applications

Analysis Tools

Render Operators Interactive Viewer Grid and Field Operators Libraries

Local File Remote File Streamed File Grid File

CGNS I/O

FiberLib2 plugin

Amira

slide-66
SLIDE 66
  • Hierarchical tree of substructures, five levels:

1.

Time dependency (parameter space)

2.

Grid object (computational domain/mesh)

3.

Topological information (vertices, cells, …)

4.

Coordinate representations & relationships

5.

Fields (scalar, vector, tensor)

6.

(field fragments)

slide-67
SLIDE 67
  • Hierarchical tree of substructures, five

levels:

  • 1. Time dependency (parameter space)
  • 2. Grid object (computational domain/mesh)
  • 3. Topological information (vertices, cells, …)
  • 4. Coordinate representations & relationships
  • 5. Fields (scalar, vector, tensor)
  • 6. (field fragments)
slide-68
SLIDE 68
  • Hierarchical tree of substructures, five

levels:

  • 1. Time dependency (parameter space)
  • 2. Grid object (computational domain/mesh)
  • 3. Topological information (vertices, cells, …)
  • 4. Coordinate representations & relationships
  • 5. Fields (scalar, vector, tensor)
  • 6. (field fragments)
slide-69
SLIDE 69
  • Hierarchical tree of substructures, five

levels:

  • 1. Time dependency (parameter space)
  • 2. Grid object (computational domain/mesh)
  • 3. Topological information (vertices, cells, …)
  • 4. Coordinate representations & relationships
  • 5. Fields (scalar, vector, tensor)
  • 6. (field fragments)
slide-70
SLIDE 70
  • Hierarchical tree of substructures, five

levels:

  • 1. Time dependency (parameter space)
  • 2. Grid object (computational domain/mesh)
  • 3. Topological information (vertices, cells, …)
  • 4. Coordinate representations & relationships
  • 5. Fields (scalar, vector, tensor)
  • 6. (field fragments)
slide-71
SLIDE 71
  • Hierarchical tree of substructures, five

levels:

  • 1. Time dependency (parameter space)
  • 2. Grid object (computational domain/mesh)
  • 3. Topological information (vertices, cells, …)
  • 4. Coordinate representations & relationships
  • 5. Fields (scalar, vector, tensor)
  • 6. (field fragments)
slide-72
SLIDE 72
  • Hierarchical tree of substructures, five

levels:

  • 1. Time dependency (parameter space)
  • 2. Grid object (computational domain/mesh)
  • 3. Topological information (vertices, cells, …)
  • 4. Coordinate representations & relationships
  • 5. Fields (scalar, vector, tensor)
  • 6. (field fragments)
slide-73
SLIDE 73
  • Hierarchical tree of substructures, five

levels:

  • 1. Time dependency (parameter space)
  • 2. Grid object (computational domain/mesh)
  • 3. Topological information (vertices, cells, …)
  • 4. Coordinate representations & relationships
  • 5. Fields (scalar, vector, tensor)
  • 6. (field fragments)
slide-74
SLIDE 74

Code development management:

http://sciviz.cct.lsu.edu/projects/vish Available via SVN in source code for registered users

at http://vish.origo.ethz.ch/