The development of DAMASK started in 2006 with the establishment of a new research group named Computational Mechanics of Polycrystals (CMCn) at the Max-Planck-Institut für Eisenforschung (MPIE). The aim of this joint research group between the Max-Planck-Gesellschaft and the Fraunhofer-Gesellschaft was the development of enhanced material models and simulation technologies from the single crystal up to the component scale [48]. In the course of the CMCn project, it turned out that the Crystal Plasticity (CP) codes existing in the public domain at that time were not flexible enough for this purpose. Therefore, a new CP implementation was initiated, aiming at a strict modularization to allow for flexible incorporation of material models on all length scales. Within the CMCn project, two different homogenization schemes and various constitutive models for plasticity have been incorporated into the new code. The capability to choose from a set of different available constitutive models within a single simulation is a unique feature of the developed simulation framework. Together with R.A. Lebensohn from the Los Alamos National Lab (LANL), Humboldt awardee at MPIE in 2010, a spectral method based mechanical boundary value problem solver was added to complement the existing user material interfaces to commercial Finite Element Method (FEM) solvers. In addition to the core routines, numerous utilities for pre- and post-processing have been added to the package now referred to as DAMASK.
In September 2011, a website (https://damask.mpie.de) was launched to release the code to the public domain as free software according to GPL 3. The idea of a flexible open source CP implementation was very well received by the scientific community. Presently, more1 than 50 groups across the world use DAMASK, including universities such as University of California Los Angeles (UCLA), research facilities such as LANL, and multinational companies such as Tata Steel. These groups contribute to the further code development as well, e.g. by adding features such as new or modified constitutive models.
In 2015, multi-physics extensions were incorporated into DAMASK to consistently treat coupled problems, such as thermo-mechanics, chemo-mechanics, and damage-mechanics. Since early 2016, the code is hosted in a public repository using GitLab (see Appendix A for details) to enable and assist collaborative development among the growing user community.
Source Code
The DAMASK core is written in Fortran 2018 with a few enhancements in C. The pre- and post-processing tools are written in Python 3. A Unix-style operation system is a prerequisite for installation from source. DAMASK has been installed on different GNU/Linux distributions and on MacOS. Compilation on Windows is possible via the Windows Subsystem for Linux (WSL).
1. Download, check, and unpack the source code:
wget https://damask.mpie.de/download/damask-3.0.0-alpha5.tar.xz
wget https://damask.mpie.de/download/damask-3.0.0-alpha5.tar.xz.sha256
---> sha256sum -c damask-3.0.0-alpha5.tar.xz.sha256
----> tar -xf damask-3.0.0-alpha5.tar.xz
2. Get an overview of the prerequisites available on your system:
cd damask-3.0.0-alpha5
./DAMASK_prerequisites.sh
cat system_report.txt
Grid and Mesh Solver
A recent version of the GNU Compiler Collection, the Intel Parallel Studio XE, or the Intel oneAPI toolkit is needed to build the grid solver and/or mesh solver from source.
Warning
The ifx Fortran driver from the Intel oneAPI toolkit does not yet support constructs from Fortran 2018 used in DAMASK.
The solvers included with DAMASK are build with CMake and rely on PETSc. A PETSc installation with support for MPI and the following external packages is needed:
(a) BLAS/LAPACK
(b) HDF5 with MPI support, zlib support is strongly recommended
(c) FFTW with MPI support (grid solver only)
(d) Packages such as SuperLU, HYPRE, MUMPS, or ML for certain sparse linear solvers.
If all prerequisites are installed, compiliation and installation follows the standard CMake procedure:
cmake -S damask-3.0.0-alpha5 -B build-grid -DDAMASK_SOLVER=grid
cmake --build build-grid --target install
cmake -S damask-3.0.0-alpha5 -B build-mesh -DDAMASK_SOLVER=mesh
cmake --build build-mesh --target install