Advanced Scientific Computing Research (ASCR) under the U.S. Department of Energy Office of Science (Office of Science)

Project Team Members:

Northwestern University

The HDF Group

Argonne National Laboratory

North Carolina State University

Northwestern University - EECS Dept.

A Few proposed Terms and concepts in DAMSEL

This page presents DAMSEL data model terms and concepts to describe four application use cases:

Some example figures demonstrating these four usecases:

DAMSEL Template

In Damsel, a Damsel template can be created by using some predefined (primitive) Damsel templates or derived templates.

Primitive Template

We define primitive in DAMSEL as a basic indivisible building unit of a grid. A template has a type/topology: vertex, edge, quad, tri, polygon, prism, etc. We plan to provide some pre-define templates, such as 2D, 3D Cartesian mesh, Geodesic, etc.


The template for the use case 1 given above is an 8x8 grid (2D Cartesian mesh). In the FLASH AMR grid example shown in use case 2, the template will be a 4x6 grid, since all FLASH blocks have the same 4x6 skeleton/structure.

In GCRM geodesic grid, a template will be block/grid of hexagonal prisms.

For given unstructured grid, an unstructured grid of triangles can be a template.

Derived Template

Primitive templates can be used to construct complex templates, called derived in DAMSEL. We can link primitive templates and define parent/child relationship on these templates. The resulting collection of primitive templates with links form derived templates. For example, in FLASH all 4x6 grid templates can be linked together (by defining parent/children) to form a derived template of a quad tree.


A primitive or a derived template can be used to create many of its instances. An instance is created by assigning a "Damsel space" to a template.

Once the basic skeleton/data model for a given problem domain is defined using templates, multiple instances of that skeleton/data model can be created by setting the space coordinates.


For use case 1, only one instance of 8x8 grid primitive template will be created by specifying the coordinates and lengths.

For use case 2 FLASH example, an instance of quad tree derived template will be created. Then, all the 17 primitive templates of the derived tree template will be instantiated by specifying the space coordinates and lengths. The highlighted blocks show two instances with coordinates (0, 0) and (0.25, 0) respectively.


A solution (tag) variable is created for an instance. Multiple tags can be defined on an instance (e.g. temperature, pressure, volume, etc). A tag has a name, data type, unit and value.

For dimensions (use pnetcdf definition of dimensions), units (used by tags to describe the units of solution data), spaces (coordinates)

Northwestern University EECS Home | McCormick Home | Northwestern Home | Calendar: Plan-It Purple
© 2011 Robert R. McCormick School of Engineering and Applied Science, Northwestern University
"Tech": 2145 Sheridan Rd, Tech L359, Evanston IL 60208-3118  |  Phone: (847) 491-5410  |  Fax: (847) 491-4455
"Ford": 2133 Sheridan Rd, Ford Building, Rm 3-320, Evanston, IL 60208  |  Fax: (847) 491-5258
Email Director

Last Updated: $LastChangedDate: 2014-09-17 14:51:09 -0500 (Wed, 17 Sep 2014) $