Lawrence Livermore National Laboratory



Each row in the table below is an example of the use of Silo to represent a different kind of scientific data. Each example shows a picture of the data (visualized with VisIt), describes some of the key concepts the example demonstrates, lists the set of Silo functions the example uses and provides links to both C or C++ source code used to generate the data as well as the resulting Silo data file. Almost all of the examples here use the Silo functions DBCreate, DBClose and so those calls are not explicitly mentioned.

Image (from VisIt)

Description

Links to Data Files and Source Code

Constructive Solid Geometry (CSG) Meshes

Constructive Solid Geometry (CSG) Meshes

Key concepts: Representation of Constructive Solid Geometry (CSG) meshes, variables and materials defined on CSG meshes and multiple meshes in a single file, error controls.

Silo calls: DBAddOption, DBClose, DBFreeOptlist, DBPutCSGZonelist, DBPutCsgmesh, DBPutCsgvar, DBPutMaterial, DBShowErrors, DBMakeOptlist.

Materials and Mixing Materials

Materials and Mixing Materials

Key concepts: Representation of the same mesh data on both quadrilateral (Quad) and unstructured (UCD) meshes, quadrilateral mesh with deformed (nonlinear) coordinates, representation of materials and mixing materials and material species.

Silo calls: DBAddOption, DBFreeOptlist, DBPutMaterial, DBPutMatspecies, DBPutQuadmesh, DBPutZonelist, DBMakeOptlist.

Parallel Decomposed Meshes

Parallel Decomposed Meshes

Key concepts: Representation of parallel decomposition of data using multi-block objects, grouping of blocks into 'groups' using '_visit_domain_groups' convention and other conventions, use of directories.

Silo calls: DBAddOption, DBFreeOptlist, DBMkDir, DBPutMaterial, DBPutMultimat, DBPutMultimesh, DBPutMultivar, DBPutQuadmesh, DBSetDir, DBWrite, DBMakeOptlist.

Point (Gridless) Meshes

Point (Gridless) Meshes

Key concepts: Point (gridless) meshes and variables, use of directories, quadrilateral meshes and variables.

Silo calls: DBAddOption, DBFreeOptlist, DBMkDir, DBPutMaterial, DBPutPointmesh, DBPutPointvar, DBPutQuadmesh, DBPutQuadvar, DBWrite, DBMakeOptlist.

Unstructured Zoo and Arbitrary Polyhedral Meshes

Unstructured Zoo and Arbitrary Polyhedral Meshes

Key concepts: Unstructured cell data (UCD) meshes with ordinary 'zoo type' elements and arbitrary polyhedral elements.

Silo calls: DBAddOption, DBFreeFacelist, DBFreeOptlist, DBPutFacelist, DBPutMaterial, DBPutMatspecies, DBPutQuadmesh, DBPutUcdmesh, DBPutUcdvar, DBPutZonelist, DBShowErrors, DBWrite, DBMakeOptlist, DBCalcExternalFacelist.

Block-Structured Adaptive Mesh Refinement Meshes

Block-Structured Adaptive Mesh Refinement (AMR) Meshes

Key concepts: Adaptive Mesh Refinement (AMR) meshes, Quadmeshes, Mesh Region Grouping trees (Mrgtrees) and variables (Mrgvars), Grouping Element Maps (Groupelmaps).

Without Mrgtrees, a multiblock mesh of Quadmeshes representing the different patches of an AMR hierarchy is not properly organized into an AMR hierarchy. The Silo file examples provided here contain two multi-block representations of the meshes, one without an Mrgtree and one with, so you can understand the difference and what the Mrgtree information is doing.

Silo calls: DBMkMrtree, DBAddRegion, DBAddRegionArray, DBPutMrgtree DBPutGroupelmap, DBPutMrgvar.