Abaqus
Abaqus is a software suite for Finite Element Analysis (FEA) developed by Dassault Systèmes.
Interactive and GUI Usage
After connecting to Stanage (see Establishing a SSH connection), start an interactive session with the following command:
srun --pty bash -i
module load ABAQUS/2023
module load ABAQUS/2021
module load ABAQUS/2021_NAG
Note
Users must unset the SLURM environment variable SLURM_GTIDS. Failure to do so will cause Abaqus to get stuck due to the MPI that Abaqus ships with not supporting the SLURM scheduler. SLURM_GTIDS should be unset for both interactive/GUI and batch jobs:
unset SLURM_GTIDS
To use Abaqus in GUI mode you will need to connect using a flight graphical session on Stanage, then after starting a terminal inside of the flight session:
module load ABAQUS/2021
abaqus cae
Abaqus example problems
Abaqus contains a large number of example problems which can be used to become familiar with Abaqus on the system.
These example problems are described in the Abaqus documentation and can be obtained using the Abaqus fetch
command.
For example, after loading the Abaqus module enter the following at the command line to extract the input file for test problem s4d:
abaqus fetch job=s4d
This will extract the input file s4d.inp
to run the computation defined by the commands and batch submission script below.
Batch jobs
The following is an example batch submission script, my_job.sh
, to run the executable abaqus
with input file is s4d.inp
. The script requests 4 cores using the OpenMP parallel environment smp
with a runtime of 30 mins and 2 GB of real memory per core.
#!/bin/bash
#SBATCH --job-name=abaqus_smp_test
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=4
#SBATCH --mem=8000
#SBATCH --output=output_abaqus_smp_4
#SBATCH --time=00:30:00
#SBATCH --mail-user=a.person@sheffield.ac.uk
#SBATCH --mail-type=ALL
module load ABAQUS/2018
unset SLURM_GTIDS
abaqus job=my_job input=s4d.inp mp_mode=threads cpus=$SLURM_NTASKS scratch=$TMPDIR memory="8gb" interactive
The job is submitted to the queue by typing:
sbatch my_job.sh
User subroutines: The umatmst3
model has a user defined subroutine umatmst3.f
. The model files are obtained using
abaqus fetch job=umatmst3*
The script below is an example of a batch submission script for a single core job with a runtime of 30 mins, 8 GB of real memory and with user subroutine umatmst3.f
and input file umatmst3.inp
.
#!/bin/bash
#SBATCH --job-name=abaqus_subroutine_test
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --mem=8000
#SBATCH --output=output_abaqus_subroutine
#SBATCH --time=00:30:00
#SBATCH --mail-user=a.person@sheffield.ac.uk
#SBATCH --mail-type=ALL
module load ABAQUS/2018
module load iccifort/2019.5.281
unset SLURM_GTIDS
abaqus job=my_job input=umatmst3.inp user=umatmst3.f scratch=$TMPDIR memory="8gb" interactive
Note that the module iccifort/2019.5.281
, required for compiling the user subroutines, is not automatically loaded when the module for Abaqus is loaded.
Licensed options
All available Abaqus licenses can be viewed using abaqus licensing r
e.g.
$ module load ABAQUS/2021
$ abaqus licensing r
Run abaqus licensing
for usage info for the Abaqus licensing sub-command. Run abaqus licensing ru
to see current licence usage.
Checkpointing your work
Abaqus has a built-in checkpoint and restart feature.
Add the following to the input file (refer to official Abaqus documentation for detail):
*RESTART, WRITE, OVERLAY, FREQUENCY=10
OVERLAY saves only one state, i.e. overwrites the restart file every time new restart information is written
FREQUENCY=N writes restart information every N timesteps
And, to restart the job, create a new input file newJobName with only a single line:
*RESTART, READ
Then run Abaqus specifying both the new and old job names:
abaqus jobname=newJobName oldjob=oldJobName
Installation notes
Abaqus 2021 (EasyBuild install):
Abaqus was installed using Easybuild 4.7.0, build details can be found in folder $EBROOTABAQUS/easybuild with the module loaded.