Container

Images for DAMASK containers are available on Docker Hub. Using containers requires to install Docker (Linux, MacOS, and Windows), Podman (Linux only), or Singularity (Linux, MacOS, and Windows).

The following instructions assume that Docker is used on the command line. Executing the various components of DAMASK within a Docker container requires to run the respective container image with these options:

--rm                automatically remove the container when it exits
--interactive  -i   keep STDIN open even if not attached
--tty          -t   allocate a pseudo-TTY
--volume       -v   bind mount a volume
--env               set environment variables

Grid Solver

Install a container that holds the grid solver

docker pull eisenforschung/damask-grid:latest

and run DAMASK_grid with the given arguments (n_threads, load, geom) inside that container

docker run --rm --tty --interactive --volume ${PWD}:/wd eisenforschung/damask-grid:latest --env OMP_NUM_THREADS={n_threads} --load {load}.yaml --geom {geom}.vti

The container transparently maps its internal directory “/wd” to the current external working directory (i.e. the value of environment variable ${PWD}) such that the latter becomes accessible within the container environment. Note that the file material.yaml needs to be present in the current working directory, similar to when executing DAMASK_grid directly.

Mesh Solver

Install a container that holds the mesh solver

docker pull eisenforschung/damask-mesh:latest

and run DAMASK_mesh with the given arguments (n_threads, load, geom) inside that container

docker run --rm --tty --interactive --volume ${PWD}:/wd eisenforschung/damask-mesh:latest --env OMP_NUM_THREADS={n_threads} --load {load}.load --geom {geom}.msh

The container transparently maps its internal directory “/wd” to the current external working directory (i.e. the value of environment variable ${PWD}) such that the latter becomes accessible within the container environment. Note that the file material.yaml needs to be present in the current working directory, similar to when executing DAMASK_mesh directly.

Processing Tools

The processing tools can be used within Ipython or JupyterLab.

IPython

Install a container that provides the processing tools in Ipython

docker pull eisenforschung/python-damask:latest

and start an interactive IPython shell with imported DAMASK processing library within that container

docker run --rm --tty --interactive --volume ${PWD}:/wd eisenforschung/python-damask:latest

The container transparently maps its internal directory “/wd” to the current external working directory (i.e. the value of environment variable ${PWD}) such that the latter becomes accessible within the container environment.

JupyterLab

Install a container that provides the processing tools in JupyterLab

docker pull eisenforschung/jupyter-damask:latest

and start a JupyterLab instance with imported DAMASK processing library within that container

docker run --rm --tty --interactive --volume ${PWD}:/wd -p 8888:8888 eisenforschung/jupyter-damask:latest

The container transparently maps its internal directory “/wd” to the current external working directory (i.e. the value of environment variable ${PWD}) such that the latter becomes accessible within the container environment.