File Formats

All DAMASK-specific configuration files are text files in YAML style. It is recommended to use damask.Config for generation and modification of configuration files. Hand-written files should be checked for correctness, e.g. with yamllint or on www.yamllint.com.

Note

The YAML parser used in DAMASK does not support advanced features like references and certain line continuation statements.

Material Configuration

DAMASK is configured via a configuration file called material.yaml. This file needs to be located in the current working directory. material.yaml contains three top-level keys:

  • homogenization

  • phase

  • material

Using damask.ConfigMaterial is the recommended way for the generation and modification of material.yaml.

Homogenization

homogenization is a dictionary of arbitrarily labeled keys. Each of those entries requires a key N_constituents that specifies the number of homogenized constituents. At least the type of the employed homogenization scheme for each active field (mechanical, thermal, or damage) is required; any further configuration details depend on the selected homogenization scheme. It is recommended to construct homogenization entries based on the examples provided in config.tar.xz rather than from scratch.

Warning

Only a single homogenization entry is supported at the moment.

The basic layout is sketched in the following:

homogenization:

 label_A:
   N_constituents: N_A
   mechanical:
     type: tbd
     ...:
   damage:
     type: tbd
     ...:
   mechanical:
     type: tbd
     ...:

 label_B:
   N_constituents: N_B
   mechanical:
     type: tbd
     ...:
   damage:
     type: tbd
     ...:
   mechanical:
     type: tbd
     ...:

 label_:
   ...

Phase

phase is a dictionary of arbitrarily labeled keys. Each of those entries requires a key lattice that specifies the lattice structure in Pearson notation. At least the type of the employed constitutive model for each active field (mechanical/elastic, mechanical/plastic, mechanical/eigen, thermal/source(s), or damage) is required; any further configuration details depend on the selected constitutive model. It is recommended to construct phase entries based on the examples provided in config.tar.xz rather than from scratch.

The basic layout is sketched in the following:

phase:

 label_1:
   lattice: lattice_1
   mechanical:
     elastic:
       type: tbd
       ...:
     plastic:
       type: tbd
       ...:
     eigen:
       type: tbd
       ...:
   damage:
     type: tbd
     ...:
   thermal:
     source:
       - type: tbd
        ...:
       - type: tbd
        ...:

 label_2:
   lattice: lattice_2
   mechanical:
     elastic:
       type: tbd
       ...:
     plastic:
       type: tbd
       ...:
     eigen:
       type: tbd
       ...:
   damage:
     type: tbd
     ...:
   thermal:
     source
       - type: tbd
        ...:
       - type: tbd
        ...:

 label_:
   ...

Material

material is a list. The number of entries is at least as long as the maximum material ID reference in the employed geometry. Each entry contains the specification of the employed homogenization referenced by its label and a list of constituents whose length matches N_constituents. Each constituent entry contains the specification of the employed phase referenced by its label, the volume fraction v, and the crystallographic orientation O as a unit quaternion.

It is recommended to use damask.ConfigMaterial.material_add() for the creation of material entries.

The basic layout is sketched in the following:

material:

 - homogenization: label_A
   constituents:
     - phase: label_1
       v: 1.0
       O: [1.0, 0.0, 0.0, 0.0]

 - homogenization: label_B
   constituents:
     - phase: label_1
       v: 0.5
       O: [0.0, 1.0, 0.0, 0.0]
     - phase: label_2
       v: 0.5
       O: [0.0, 0.0, 1.0, 0.0]
 - ...

Grid Solver

Geometry

The grid solver operates on a regular grid specified in the VTK ImageData format. The material ID in material.yaml is referenced via the value of a PointData dataset named material. Uncompressed and zlib compressed datasets are supported. Using damask.Grid is the recommended way for the generation and modification of grid solver geometries.

Load Case

tbd

Mesh Solver

Geometry

The mesh solver operates on an unstructured mesh specified in the MSH format. Neper and Gmsh are the recommended tools to generate mesh solver geometries.

Load Case

Warning

The load case is specified in an undocumented proprietary format.

MSC Marc

MSC Marc requires a so-called input deck that is specified in a *.dat file. The material ID in material.yaml is referenced via the value of StateVariable 2. Further information is available in the MSC Marc user manual.

Result (DADF5)

DAMASK results are stored in an HDF5 file according to the DAMASK HDF5 (DADF5) specification. The group (folder) - dataset (file) layout of a DADF5 file follows that of material.yaml used for setting up the simulation. Using damask.Result is the recommended way for accessing DADF5 files, HDFView can provide a quick overview. The basics of the file format are explained in the DADF5 - DAMASK’s HDF5-Based Output Format video.