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.
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 are defined via the menu INITIAL CONDITIONS
> NEW (STATE VARIABLE)
: 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
> INITIAL LOADS
> INITIAL CONDITIONS
In the menu JOBS
- ... 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
> 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
- 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.
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
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
- 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.
DAMASK does allow restarting a simulation.
However, the only mode supported is 'last converged increment'.