13.07.2015 Views

CashFlow, A Visualization Framework for 3D Flow - Studierstube ...

CashFlow, A Visualization Framework for 3D Flow - Studierstube ...

CashFlow, A Visualization Framework for 3D Flow - Studierstube ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Software Design3.8. Grid Node3.8 Grid NodeThe Grids node is a geometry and topology supplier. The Grid node provides an universalinterface together with special iterators to access different grids in a standardway.Type of GridsUsing grids to handle scientific data allows three types of grids:• Structured griddefined as a n–dimensional array. The index in the array also implies neighborhoodin<strong>for</strong>mation. Adjacent vertices can be calculated directly based on theirindex. One of the basic examples in 2D is a regular 2D Cartesian grid. Oneexample in <strong>3D</strong> is a <strong>3D</strong> curvilinear grid.• Unstructured gridconsisting of vertex in<strong>for</strong>mation and lists defining geometric primitives by indexingthe vertices. Neighborhood in<strong>for</strong>mation has to be either calculated as apre–processing step or it has to be stored additionally. Well known examples are:– polygonal triangle grids generating a 2D surface in 2D or <strong>3D</strong> and– tetrahedral grids in <strong>3D</strong>.• Hybrid grid as a combination of the above mentioned grids. One commonway to avoid hybrid grids is to split grids into parts and separate structured gridsfrom unstructured grids. The big disadvantage of hybrid grids is, that combiningstructured grids with unstructured grids erases the advantage of structured grids.On the other hand hybrid grids have the advantage, that they are a very universaldefinition.Hybrid grids are not supported by <strong>Cash<strong>Flow</strong></strong>.3.8.1 Support Several Different GridsOne main problem is, that there is a large amount of grids available and in use. If eachalgorithm has to be implemented on each grid or be adapted to the grid, the numberof classes implemented, derived from the general algorithms would be huge. Oneother disadvantage of this approach gets obvious, if a new grid is introduced to theframework. In order to be able to render and process the grid, all existing algorithmshave to be derived to be able to access this new grid. This approach was used inMeshVis [Mes] by TGS [TGS] <strong>for</strong>mer known as DataMaster.Our approach is to abstract the pieces of in<strong>for</strong>mation from the grids needed by thevisualization algorithm to access the grids. In<strong>for</strong>mation provided by the grid includetopology data(1) and grid iterators(2) <strong>for</strong> accessing the geometric primitives of thegrid. The visualization algorithm only communicates with the grid via this interface.Once a new grid is introduced to the system, the new grid only has to provide thetopology data and overload the iterators defined by the interface. Also if a new59

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!