Each item 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 a set of key 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.
All of the examples here use some common Silo functions such as DBCreate and DBClose or functions to manage option lists such as DBMakeOptlist or DBAddOption.
So, those functions are not explicitly mentioned.
Constructive Solid Geometry
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 functions: DBPutMaterial, DBPutMatspecies, DBPutQuadmesh, DBPutZonelist.
Parallel Decomposed Meshes
Also, be sure to read about the Multiple Independent File (MIF) parallel I/O paradigm.
A pmpio.h
header file is available to make MIF I/O easy.
Point (Gridless) Meshes
Unstructured Zoo and Arbitrary Polyhedral Meshes
- Key concepts: Unstructured cell data (UCD) meshes with ordinary zoo type elements and arbitrary polyhedral elements.
- Silo functions: [DBFreeFacelist], DBPutFacelist, DBPutMaterial, DBPutMatspecies, DBPutQuadmesh, DBPutUcdmesh, DBPutUcdvar, DBPutZonelist, DBShowErrors, DBWrite, DBCalcExternalFacelist.
Block-Structured Adaptive Mesh Refinement 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 functions: DBMkMrgtree, DBAddRegion, DBAddRegionArray, DBPutMrgtree, DBPutGroupelmap, DBPutMrgvar.