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. directly with yamllint or on www.yamllint.com.

Material Configuration

DAMASK is configured via a configuration file called material.yaml. It 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 that contains and any number of arbitrary labeled keys. Each entry contains a key N_constituents which specifies the number of homogenized constituents. At least the type of the employed homogenization scheme for each active field (mechanical, thermal, or damage) is given; the further configuration details depend on the selected homogenization scheme. It is recommended to base homogenization entries on the examples provided in config.tar.xz rather than starting from scratch.

Warning

Only one 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 that contains and any number of arbitrary labeled keys. Each entry contains a key lattice which 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 given; the further configuration details depend on the selected constitutive model. It is recommended to base phase entries on the examples provided in config.tar.xz rather than starting 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, v, the volume fraction, and O the crystallographic orientation 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 for the generation of mesh solver geometries.

Load Case

Warning

The load case is specified in an undocumented proprietary format.

MSC.Marc/Mentat

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/Mentat 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 the 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.