The Read_CGNS
Module provides a new capability to AVS/Express for access of large CFD (computational
fluid dynamics) data sets. Rather than being specific to one site or proprietary
commercial company, CGNS is a cross-industry consortium
with membership across commercial CFD, research and government labs. Both CFD
vendors and Visualization Post-Processor companies are now adopting this format
as a way to communicate and share CFD data.
The Read_CGNS file reader allows the user to select a Base out of all existent in the CGNS file. Once the current Base is established the user is presented with compact information of all Zones defined in the selected Base. A simple mechanism facilitating management of huge datasets is provided - by means of letting the user activate the zones of interest and keep other inactive. Inactive zones will not be read into AVS' Field structures. Permanently inactive shall be all zones for which there is no direct support - like in the case of other than Cartesian coordinate systems. Since each Zone can have multiple Solutions, the user is presented with a possibility to select the current Solution separately for each active Zone.
The CGNS format allows 2D grid space definition not only in the common {X,Y} coordinate space but also in {X,Z} and {Y,Z} as well. The Sample Reader will translate such cases to the typical {X,Y} axis space definition. Similar translation happens for 1D space when {Y} and {Z} will be expressed as {X}.
Any Rind information for structured grids in a CGNS file will be used to properly read the 'core' part of grid and solution vectors. But no part of Rind data shall exist in output fields of the Reader.
Some CGNS cell element types have to be simplified. Because AVS does not support
cells with center and/or face nodes, the following are considered equivalent
and any data present at such additional nodes is not used:
· QUAD_8/QUAD_9 - both are represented as Quad2
· PENTA_15/PENTA_18 - both are represented as Prism2
· HEXA_20/HEXA_27 - both are represented as Hex2
Currently the CGNS Reader does supports the NGON_n element type, although a
restriction on the number of sides is set to a prefixed limit of 20.
AVS supports an equivalent Polygon type which is used to map NGONs.
There is no special support for Multizone Interface Connectivity - data remains untouched for all nodes playing part in such connectivity areas.
Only Vertex and CellCentered data is used. FaceCentered (including IFace, JFace, KFace), EdgeCenter and UserDefined data is ignored.
The CGNS Reader does not perform any Data Conversion (dimensional from nondimensional). Such a conversion can happen downstream, through user modules or other filtering mechanisms. This is left outside the reader for maximum flexibility.
Although Bases can contain hybrid collections of Zones (structured and unstructured) which constitute a logical entity, it is not possible to use a single Field for both structured and unstructured grids. The Reader outputs all structured Zones with one output Multi_Block Field, and the unstructured zones with a single Field array.
Independent of CGNS data format used for grid coordinates and data, the Reader uses Float (DTYPE_FLOAT) for both. In rare cases this may lead to undesirable precision loss.
The CGNS Reader works in two phases. When the CGNS file has been presented, it is first scanned for information that steers the dynamic UI. After that the user has the possibility to choose what information is of interest, and finally load the data (or reload after choice changes).About the User Interface
The bottom-most area is occupied by a scrollable collection of all Zones. Each Zone frame contains the name given to a zone and it's grid type. The toggle button below (labeled 'active') allows to manually select each Zone to be active or not. If this toggle is grayed-out, it means that this Zone can not be activated because, for instance it contains non-Cartesian coordinates. Each Zone gives the possibility to select an active Solution - using the option menu widget.