2. MSC.Marc/Mentat
Preamble
Read the
General Usage section - it is relevant for use with MSC.Marc as well.
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
- MATERIAL PROPERTIES > NEW > FINITE STIFFNESS > STANDARD choose
- STRUCTURAL and finally
- TYPE HYPOELASTIC and
- METHOD 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 temperature (is zero if not set!)
- State variable ID = 2 homogenization scheme
- State variable ID = 3 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
In the menu
JOBS >
NEW >
STRUCTURAL >
PROPERTIES ...
- ... choose ANALYSIS OPTIONS > LARGE STRAIN.
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.
- SOLVER/PARALLELIZATION > MATRIX SOLVER.
- 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:
- Start the simulation using the submit script of choice and kill it after step zero is finished.
- On the command line use the script marc_addUserOutput to add the required user defined output information to the model file(s).
- 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.
marc_addUserOutput
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
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.
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:
- USE DDM
- DECOMPOSITION IN MENTAT
- MULTIPLE INPUT FILES
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
The logic to find the license file seems to be different for parallel jobs than for single jobs.
Restart
DAMASK does allow restarting a simulation.
However, the only mode supported is 'last converged increment'.