Application Guide - Abaqus

Introduction

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 : 

    #!/bin/bash
     
    #SBATCH --nodes=2
    #SBATCH --ntasks-per-node=16
    #SBATCH --time=01:00:00
    #SBATCH --job-name=abqJobTest

     
    module purge
    module load abaqus 
     
    . abaqus.sh
    abaqus input=abqInFile \
           job=OUT_abqInFile \
           cpus=$cpus \
           mp_mode=mpi

    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:

    sbatch submit.sh

     

    Example Job

    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:

    cd $DATA
    tar xf /system/software/examples/scripts/abaqus.tgz

     

    This will create a directory named abaqus-example, to run the example job:

    cd abaqus-example
    sbatch abaqus_slurm.sh

     

    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 \
           job=OUT_abqInFile \
           cpus=$cpus \
           mp_mode=mpi \
           user=myForSub

     

    Information on the Abaqus license server

    The Abaqus license server in your local installation (e.g. on your departmental workstation) should point to

    27000@abaquslic.arc.ox.ac.uk

    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 27000@abaquslic.arc.ox.ac.uk -a
    Service area: 

    Written by IT Services. Latest revision 28 March 2017