Main Navigation

Secondary Navigation

Page Contents

Contents

Starting Abaqus Jobs

Common setups for starting an ABAQUS job are configured in jSLURM. Here we provide an example in cases not covered therein.

Note on parallelization

For problems with less than 50,000 degrees of freedom using more than one process slows down the calculation in most cases. With larger problems one has to differ between a standard or an explicit calculation.

Using ABAQUS/Standard parallelizes solvers and some operations on elements. This offers no great advantages with a lot of processors. We recommend to use it on one node and 4 processors with mpi_mode=threads.

Using ABAQUS/Explict uses domain decomposition and parallelizes operations on elements. We recommend to use it on one node with up to 16-fold parallelization with mpi_mode=mpi. Below you find an example for this case.

Job script for ABAQUS/Standard and non parallel

The following job script assumes that your input example.inp is locate on the HOME partition. This file is copied to the SCRATCH partition. ABAQUS is executed in SCRATCH as well and thus all files generated by ABAQUS are located in SCRATCH.
#!/bin/bash
#SBATCH -t 15                # time limit set to 15 minutes
#SBATCH --mem=4096           # 4G of memory are reserved
#SBATCH -J Abaqus            # the job is named Abaqus
#SBATCH --mail-type=END      # an email is send at the end of the job
#SBATCH -n 8                 # 8 processors are used
#SBATCH -N 1                 # 1 node is used to avoid network traffic
#SBATCH --licenses=abaqus    # a license for abaqus is needed

PROJECT="$1"                 # copy the script argument
INPUT="$1".inp               # generate the INPUT parameter

# change to SCRATCH
cd $SCRATCH

# Copy INPUT into SCRATCH, if it is newer than the one in SCRATCH
if [[ ! -r "$INPUT" || "$SLURM_SUBMIT_DIR/$INPUT" -nt "$INPUT" ]] ; then
   cp "$SLURM_SUBMIT_DIR/$INPUT" .
fi

# tell the system which version of abaqus you want to use
module add abaqus/latest
unset SLURM_GTIDS            # this is odd, but it has to be (!)

# Start ABAQUS/Standard
abaqus job="$PROJECT" analysis input="$INPUT" cpus=$SLURM_NTASKS interactive mp_mode=threads

# Start ABAQUS/Explicit (remove # in front and add one to the standard call)
# rhrk-abaqus-mpi job="$PROJECT" analysis input="$INPUT" interactive

# Start Abaqus non parallel
# abaqus job="$PROJECT" analysis input="$INPUT" interactive

Setting

#SBATCH -n 1
turns the script into the non parallel version. This script is sent to the batch system with example.inp via:
sbatch script_name example

Job script for ABAQUS/Explicit with mpi_mode=mpi

The following job script assumes that your input example.inp is locate on the HOME partition. This file is copied to the SCRATCH partition. ABAQUS is executed in SCRATCH as well and thus all files generated by ABAQUS are located in SCRATCH.
Abaqus requires a host list that we write into abaqus_v6.env automatically. Therefore only one job can be started in the same directory. Please use a separate directory for each example you are running and modify the following script accordingly.
#!/bin/bash
#SBATCH -t 15                # time limit set to 15 minutes
#SBATCH --mem=12288          # 12G of memory are reserved
#SBATCH -J Abaqus            # the job is named Abaqus
#SBATCH --mail-type=END      # an email is send at the end of the job
#SBATCH -n 32                # 32 processors are used
#SBATCH -N 2                 # 2 node is used to avoid network traffic
#SBATCH --ntasks-per-node=16 # 16 processors to be used per node
#SBATCH --licenses=abaqus    # a license for abaqus is needed

PROJECT="$1"                 # copy the script argument
INPUT="$1".inp               # generate the INPUT parameter

# change to SCRATCH (or different directory)
cd $SCRATCH

# Copy INPUT into SCRATCH, if it is newer than the one in SCRATCH
if [[ ! -r "$INPUT" || "$SLURM_SUBMIT_DIR/$INPUT" -nt "$INPUT" ]] ; then
   cp "$SLURM_SUBMIT_DIR/$INPUT" .
fi

# tell the system which version of abaqus you want to use
module add abaqus/latest

#Start Abaqus/Explicit 
rhrk-abaqus-mpi job="$PROJECT" analysis input="$INPUT" interactive

This script is sent to the batch system with example.inp via:

sbatch script_name example

Using User Defined Subroutines

To user User Defined Subroutines you have to specify the compiler you want to use. Usually this is the Intel compiler thus you have to add
module add intel/2019
before calling abaqus. If you work with the above given scripts, just add this line before adding the desired abaqus module and add
user=my_subroutine.f
when calling abaqus.

Using the RHRK menus is not recommended in that context, because you have to make a small change to your profile. Frequently this small changes are forgotten and lead to other errors in some months. But you may try and add

module add intel/2019
with an editor into the file $HOME/.bashrc. You have to log out and in again to activate this change to your profile.

If you encounter compilation problems different versions of the intel compiler may be more appropriate. In that case, have a look at our available versions with

module avail intel
in a command window and try a different version.