Abaqus is a popular commercial finite element, multi-physics simulation from Simulia. Abaqus is a parallel application and can run in both MPI and in shared-memory threaded mode. The parallel execution is triggered and controlled by command line options to the abaqus driver, along with all the other run options.
The steps to run an Abaqus job are:
- load the Abaqus module;
- create a submission script;
- submit the job.
Loading the Abaqus module
The default Abaqus module is loaded with the command:
module load abaqus
Other available versions can be selected by specifying the version. To see what versions are available, issue the command:
module avail abaqus
The rest of this guide focuses on the preparation of submission scripts for Abaqus. For this purpose, assume the script is prepared for an Abaqus job to run with an input file called abqInFile.inp.
Running a simple Abaqus job
At the most basic level, running an Abaqus job in parallel across two compute nodes requires a script like this :
The shell script abaqus.sh prepares the environment for the subsequent launch of the abaqus driver, defining variables like cpus and mp_host_list that control the parallel execution and writing the run configuration file abaqus_v6.env. The dot . on the same line with the script file means abaqus.sh is sourced into the shell environment. The backslash \ characters on the abaqus command line are line continuations.
Assuming the submission script above is called submit.sh, the Abaqus job is submitted to execution with the following command:
We have provided an example job environment (based on the scripts above) which you can use to familiarise yourself with the batch system or modify for your own jobs. To extract it:
tar xf /system/software/examples/scripts/abaqus.tgz
This will create a directory named abaqus-example, to run the example job:
Running an Abaqus job using a user subroutine
To run Abaqus using a user defined Fortran subroutine for the definition of mechanical properties, it is necessary
- to load the module for the Intel compilers (so that ifort is in the path) and
- to pass the name of the routine to the abaqus driver using the user identifier.
The module should be loaded before issuing the qsub command; the environment containing the path to ifort will be passed to the compute nodes.
Passing the name of a user defined routine called myForSub.f to abaqus involves something like this
abaqus input=abqInFile \
Information on the Abaqus license server
The Abaqus license server in your local installation (e.g. on your departmental workstation) should point to
abaquslic is a DNS alias for the server domain name and will not change when the physical server is changed or replaced.
You can also check the status of the Abaqus licenses on the license server using your local Abaqus installation. First, locate the flexlm lmstat utility; this can normally be found in the Abaqus installation directory in the External/flexlm subdirectory. Having found it, issue the command
lmstat -c email@example.com -a