VMAP Standard Specifications

VMAP is a vendor-neutral standard for CAE data storage to enhance interoperability in virtual engineering workflows.

Major features of VMAP are:

  • Meta and user data
  • Geometry and discretization
  • Coordinate and unit systems
  • Result and state variables
  • Parameters for (material) models
  • Based on HDF5 (High-performance data management and storage suite)
  • Software library available to read/write VMAP data files
  • Tutorials and test cases

The VMAP Standard Specifications aim to provide best-practice guidelines for the community. These specifications form the core of the standard. Since, VMAP is driven by industry and software vendors, the main focus of VMAP has been to align the CAE data in a form which is generic and at the same time encompasses all aspects of it. The VMAP group has aligned the data into groups and found commonalities among many softwares to build the standard. Keeping this in mind, the VMAP storage structure defines the four main groups which form the essence of any simulation – GEOMETRY, VARIABLES, SYSTEM and MATERIAL. Within these four main groups, the CAE data is sorted into datasets and attributes.

The VMAP standard is based on HDF5 a widely accepted implementation platform for many IO related applications. The freely available SWIG wrapper tool can be utilised to bind the VMAP IO software library into software written in any other programming or script language, see . As such the VMAP IO library is universally available. Many ISVs, both large and small players, have already implemented the VMAP Standard directly within their software to extract the maximum speed and efficiency

VMAP provides a library of IO routines to help engineers speed-up the creation of their workflows thereby removing the  emphasis for considering data formats. It enables easier and more flexible data transfer, use of different software for different simulations and the creation of re-useable processes that can be easily adapted to include more or different data. It enables software interoperability for pre- & post-processing and data manipulation.

Storage Structure

VMAP Standard storage structure

The VMAP Standard specifications form the core of the standard. Since, VMAP is driven by industry and software vendors, the main focus of VMAP has been to align the CAE data in a form which is generic and at the same time encompasses all aspects of it. During the project, we have aligned the data into groups and found commonalities among many softwares to build the standard.

Keeping this in mind, the VMAP storage structure defines the four main groups which form the essence of any simulation – GEOMETRY, VARIABLES, SYSTEM and MATERIAL. Within these four main groups, the CAE data is sorted into datasets and attributes. While points, elements, parts, specific variable name (both input & output) are some of the datasets, the details and metadata for all these datasets is provided by the attributes. Although, it is worthy to note that the Standard is an outcome of the VMAP Project and the partners within the project defined ideas to keep the standard generic and cover the CAE domain, the commonly used and known numerical definitions, like element definitions, interpolation rules, integrations rules etc., have been taken as it is. The VMAP Standard offers twenty-five different element types including points and user-defined elements. It also offers a dictionary of more than ninety integration types like, Simpson, Gauss, Trapezoidal, Lobatto and user-defined types. In addition, combined integration types can be created and composite integration types based on the number of layers and thickness of the composites. It defines some of the most common results/material properties which were identified in early stages of the project. This list is ever-growing with more than fifty variables available already. Dimensions like scalar, vector, second order plain tensor, second order tensor asymmetric/symmetric, stiffness matrix, fourth order tensor asymmetric / symmetric and interpolation types like linear, bilinear, cubic, spline etc. are supported as well. The basic coordinate systems like Cartesian and non-orthogonal are already indexed in the standard and can be used directly. VMAP Standard uses the SI unit system to define the measurements, however, it offers the opportunity to use scale and shift factors to use any other units for measurements. 

In addition to the four main groups, VMAP supports storage of tables, which can come in handy while storing material model data.

Since, most simulation results are domain specific, e.g. structural, thermal, acoustics etc., there is a possibility to identify this using the element type attribute. This feature is directly influenced from most of the widely used simulation solvers. The figure shows these four main groups along with VERSION, which is an attribute of the VMAP Standard. The following sub-sections explain the four main groups in detail.

File Format and internal Data Structure

An example HDF5 file structure which contains groups, datasets and associated metadata
Sample HDF5 file format showing the VMAP Storage Structure

VMAP is based on the HDF5 file format, which is also an open definition and can handle large, complex and heterogeneous data. HDF5 uses a "file directory" like structure that allows you to organize data within the file in many different structured ways, as you might do with files on your computer. The HDF5 format also allows for embedding of metadata making it self-describing.  shows the schematic of the HDF5 file structure.

Since HDF5 is an open source file format, developers have access to the HDF5 C++ libraries and the HDF Viewer to view the VMAP files. However, if a simulation software inherently supports the HDF5 file format then VMAP can be viewed directly with the simulation software viewing tool. The figure on the right shows a schematic of the data storage structure followed by VMAP.

VMAP Software Architecture

VMAP Standard Specifications is at the core of the software architecture shown in the figure. The specification document acts as a guideline for the standard implementation. The documentation takes the user through the C++ library descriptions, the data structure, a short preview of the API documentation, installation process of the API, the storage structure definitions, other additional support libraries and finally some tutorials and test cases. This document is maintained and updated regularly by the VMAP Standards Community.

There are two different ways to implement the VMAP Standard Specification – using the reference solution ‘VMAP Standard I/O Library’, or implementing all IO routines oneself. Since, the VMAP Standard is an open source and the document is available for download from the VMAP website, any independent software vendor (ISV) or academic software developer can implement their own I/O library and will be conformant to VMAP if the input and output is fully compatible with the data-structure defined in the VMAP Standards Specifications. VMAP file format is based on the HDF5 data format, explained in section 6.2. This is an obligatory file format necessary to conform with the VMAP Standard. The VMAP file can be viewed using the publically available open source HDF5 viewer tools or any proprietary viewer tools which support the HDF5 file format

VMAP Standard IO Library

Although the VMAP I/O Library is written in C++ and it is linked to the HDF5 C++ libraries, there is obviously the possibility to connect it with solver scripts which are offered in Python or Java. Many of the popular CAE codes offer APIs which can be used to create libraries to carry out user specific tasks. These APIs could be programming languages other than C++ like Python, Java; here we can make use of SWIG (Simplified Wrapper & Interface Generator) which connects high-level languages like python & Java to low- level languages like C++/C. SWIG is typically used to parse C/C++ interfaces and generate the ‘glue code’ required for the above target languages to call into the C/C++ code

© Fraunhofer SCAI