2. MSC.Marc/Mentat


Read the General Usage section - it is relevant for use with MSC.Marc as well.

This section is valid for MSC.Marc versions 2014 and later using the new GUI version of Mentat.

Menu items are printed BOLD.


Building the model in Mentat

Below we list the points that are specific to DAMASK when setting up your model.

Material definition

In the menu
    • STRUCTURAL and finally
      • TYPE right HYPOELASTIC and
      • METHOD right USER SUB HYPELA2.
Assign this material to all elements.

State variables

State variables are defined via the menu INITIAL CONDITIONS > NEW (STATE VARIABLE) > GENERAL: STATE VARIABLE

Check the box State Variable and select the material behavior within the geometry as specified in the file material.config.

  • State variable ID = 1 right temperature (is zero if not set!)
  • State variable ID = 2 right homogenization scheme
  • State variable ID = 3 right microstructure

You can use multiple definitions for all three state variables and assign them individually to the respective elements.

Then, you have to tick the predefined state variables you want to use in your model (at least 3) in JOBS > PROPERTIES > INITIAL LOADS > INITIAL CONDITIONS

Additional settings



You should not select user defined output manually but rather use the script provided for this purpose, see marc_addUserOutput.

As DAMASK effectively only uses every second iteration you might want to change the MAX # RECYCLES in the menu LOADCASES > PROPERTIES > SOLUTION CONTROL. While you are there it is a good idea to also set MIN # RECYCLES to 1 for the same reason.

In the JOB RUN menu choose
  • USER SUBROUTINE FILE and select the interface routine DAMASK_marc.f90.
    • In the dialog select SOLUTION: NONSYMMETRIC and a TYPE of your choice. (A symmetric solver is required when using DDM!)


Starting the simulation

You can simply start your simulations from the DAMASK menu to be found in the JOB RUN menu, however, we recommend to use a three step procedure:

  1. Start the simulation using the submit script of choice and kill it after step zero is finished.
  2. On the command line use the script marc_addUserOutput to add the required user defined output information to the model file(s).
  3. Restart the simulation this time using execute instead of submit, so that the input file is not rewritten.

You should repeat this procedure each time you changed your model and afterwards just use execute to start new simulation runs.


The script marc_addUserOutput can be used to automatically add user defined output to the input file(s):

> marc_addUserOutput inputfile.dat

Optional parameters can be used to specify which exact information to use, see marc_addUserOutput.



Parallelization can speed up simulations significantly. With DAMASK you can use internal parallelization as well as the Marc domain decomposition feature either separately or combined.

Internally using openMP

DAMASK uses openMP for internal parallelization. To use it you need to compile DAMASK using the SUBMIT3 option. You can then set the number of threads to be used by DAMASK via the environment variable DAMASK_NUM_THREADS, e.g.

bash> export DAMASK_NUM_THREADS=8
 csh> setenv DAMASK_NUM_THREADS 8

to use 8 threads.

You need to set the variable before you start Mentat!

Using domain decomposition

Domain decomposition (DDM) is a standard feature of Marc. For compatibility with DAMASK you need to use the following settings for PARALLELIZATION in the RUN JOB menu:


Remember that with DDM you have to use a symmetric solver!

Setting up hpmpi

To use DDM you also need to set up MPI. On our systems hpmpi seems to be working better than intelmpi. To set it up you need to

  • specify 'MARC_MPI hpmpi' in MSCpathinfo/marc201x/tools/run_marc_defaults
  • have a valid RSA key for the loopback device (IP address in your known_hosts file; if you do not have that, one way of getting it in is to make a ssh connection
    > ssh
  • if you encounter problems with obtaining parallel licenses it should help to set the environment variable $MSC_LICENSE_FILE, e.g.
    bash> export MSC_LICENSE_FILE="MSCpathinfo/flexlm/licenses/license.dat"
     csh> setenv MSC_LICENSE_FILE "MSCpathinfo/flexlm/licenses/license.dat"
The logic to find the license file seems to be different for parallel jobs than for single jobs.



DAMASK does allow restarting a simulation. However, the only mode supported is 'last converged increment'.
Topic revision: r22 - 29 May 2018, FranzRoters

  • News
01 Dec 2018
DAMASK overview paper now online
17 Sep 2018
CMCn2018 & DAMASK user meeting to be hosted at Max-Planck-Institut für Eisenforschung
22 May 2018
Release of version v2.0.2
01 Sep 2016
CMCn2016 & DAMASK user meeting to be hosted at Max-Planck-Institut für Eisenforschung
25 Jul 2016
Release of version v2.0.1
08 Mar 2016
Release of version v2.0.0
22 Feb 2016
New webserver up and running
09 Feb 2016
Migrated code repository from Subversion to GitLab
17 Dec 2014
Release of revision 3813
14 May 2014
Release of revision 3108
02 Apr 2014
Release of revision 3062
16 Oct 2013
Release of revision 2689
15 Jul 2013
Release of revision 2555
15 Feb 2013
Release of revision 2174
13 Feb 2013
Doxygen documentation
16 Dec 2012
Powered by MathJax rendering
23 Nov 2012
Release of revision 1955
15 Nov 2012
Release of revision 1924
01 Nov 2012
Updated sidebar
30 Oct 2012
Significant website updates and content extensions

This site is powered by FoswikiCopyright by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding DAMASK? Send feedback
§ Imprint § Data Protection