ABAQUS

From the ABAQUS website https://www.3ds.com/products-services/simulia/products/abaqus/

The Abaqus Unified FEA product suite offers powerful and complete solutions for both routine and sophisticated engineering problems covering a vast spectrum of industrial applications. In the automotive industry engineering work groups are able to consider full vehicle loads, dynamic vibration, multibody systems, impact/crash, nonlinear static, thermal coupling, and acoustic-structural coupling using a common model data structure and integrated solver technology.

Access to ABAQUS on CSD3

ABAQUS is a commercial code, requiring a valid licence. If you do have a vaild licence, email support@hpc.cam.ac.uk who will be able to add you to the user group on the system.

Running ABAQUS on CSD3

Running ABAQUS will require you to load the abaqus/6.14-1 module. A typical script is:

#!/bin/bash
#SBATCH -A MYACCOUNT
#SBATCH -p skylake
#SBATCH -N 2
#SBATCH -n 64
#SBATCH -t 01:00:00

module purge
module load rhel7/default-peta4 abaqus/6.14-1

# Number of nodes and tasks per node allocated by SLURM:
numnodes=$SLURM_JOB_NUM_NODES
numtasks=$SLURM_NTASKS
mpi_tasks_per_node=$(echo "$SLURM_TASKS_PER_NODE" | sed -e  's/^\([0-9][0-9]*\).*$/\1/')

# get allocated node information
node_list=`scontrol show hostname $SLURM_NODELIST`
echo $node_list
mp_host_list="["
for i in ${node_list} ; do
    mp_host_list="${mp_host_list}['$i', '$mpi_tasks_per_node'],"
done

# create abaqus environment file
mp_host_list=`echo ${mp_host_list} | sed -e "s/,$//"`
mp_host_list="${mp_host_list}]"
echo "" > abaqus_v6.env
echo "mp_mpi_implementation = IMPI" >> abaqus_v6.env
echo "mp_host_list=${mp_host_list}" >> abaqus_v6.env
echo "mp_mpirun_path={IMPI:'$(which mpirun)'}" >> abaqus_v6.env
echo "scratch = \"/home/$USER/rds/hpc-work/scratch\"" >> abaqus_v6.env

# configure environment variables
unset SLURM_GTIDS
export I_MPI_HYDRA_BOOTSTRAP=ssh

# initiate process on allocated nodes to allow SSH connections and then run abaqus.
confirm_nodes_ready.sh
abq6141 mp_mode=MPI job=PlaneStrain_abyL8_rhob10 cpus=$numtasks interactive verbose=2
release_nodes.sh

which can be submitted to the queue with sbatch from the same directory as the PlaneStrain_abyL8_rhob1.inp and abyL8_rhob10_mesh10_ny_40.inp input files, available from /usr/local/Cluster-Apps/abaqus/examples/PlaneStrain/. This will run on two nodes in pure MPI mode up to a limit of 2 hours. To run on more nodes the -N and -n options should be adjusted and the timelimit can be changed with -t.

NOTE that this script will set up an abaqus_v6.env file for you. It will define the nodes and implementation of MPI in use. We have currently only tested the latest version of ABAQUS with this configuration on OPA. If you are using an older version of ABAQUS please move to the latest version avalable.