Abaqus
Abaqus is powerful engineering simulation software and is available for use on the supercomputer.
License
Abaqus is proprietary software and requires a license from Engineering Technical Services (ETS) for use. To request a license, please use this link: Abaqus for Research (ETS).
After a license is obtained, run the following command on the supercomputer to enable it:
echo "academic=RESEARCH" > ~/abaqus_v6.env
Running Abaqus
- serial
- parallel
Abaqus has the capability to run on a single node, utilizing up the maximum amount of cores on the node. Below is an example to include in your SBATCH script for executing Abaqus:
module load abaqus/2023
#Modify below to match your job!
abaqus_opts=(
job=test_50x50x20_f7
input=50x50x20_f7.inp
user=coupled_ue19.f
)
abq2023 "${abaqus_opts[@]}" cpus=$SLURM_CPUS_PER_TASK interactive
Abaqus has the capability to run across multiple nodes, allowing it to utilize more cores than those available on a single node.
module load abaqus/2023 intel/oneapi
#Modify this to match your job!
abaqus_opts=(
job=test_50x50x20_f7
input=50x50x20_f7.inp
user=coupled_uel9.f
mp_mode=mpi
)
##############################################################
# DO NOT MODIFY BEYOND THIS UNLESS YOU KNOW WHAT YOU ARE DOING
##############################################################
unset SLURM_GTIDS
# dump the hosts to a text file
HOSTS_FILE=slurm-hosts-${SLURM_JOBID}.out
NPROC_PER_NODE=$(nproc)
# generate the mp_host_list environment variable
echo '[' > ${HOSTS_FILE}
srun -c $NPROC_PER_NODE /bin/bash -c 'echo [\"$(hostname)\",$(nproc)],' >> ${HOSTS_FILE}
echo ']' >> ${HOSTS_FILE}
mapfile -t mp_host_list < ${HOSTS_FILE}
mp_host_list=$(echo ${mp_host_list[@]})
TOTAL_CPUS=$(
sed -e 's/\],//g' "${HOSTS_FILE}" \
| awk -F ',' '{s+=$NF} END{print s}'
)
# write the abaqus environment file
ABAQUS_ENV_FILE="abaqus_v6.env"
cat > ${ABAQUS_ENV_FILE} << EOF
import os
os.environ['ABA_BATCH_OVERRIDE'] = '1'
verbose=3
mp_host_list=${mp_host_list}
mp_mpi_implementation=IMPI
mp_mpirun_path={IMPI:'$(which mpiexec.hydra)'}
if 'SLURM_PROCID' in os.environ:
del os.environ['SLURM_PROCID']
EOF
cat $ABAQUS_ENV_FILE
export TMPDIR="/scratch/$USER/abaqus-tmp"
mkdir $TMPDIR
export I_MPI_HYDRA_BOOTSTRAP=slurm
# Launch Abaqus
abq2023 "${abaqus_opts[@]}" cpus=$TOTAL_CPUS interactive