Accessing Abaqus

To access Abaqus, you load the abaqus module. There may be more than one version of Abaqus available, so you may wish to run

$ module available abaqus

to see which are available. To load the module,

$ module load abaqus

Abaqus documentation

The Abaqus manual is available for Abaqus, v6.12; click here to open, and there are example files there that can be run.

Abaqus licensing

There are a limited number of Abaqus licenses, so you must request the number of Abaqus licenses your job will use. Flux and Nyx share licenses with the College of Engineering (COE), and we need to reserve some of those for general use in labs and classrooms. Requesting licenses also insures that your job will not start when no licenses are available.

Please refer to the following table to see how many tokens you will need for the number of processors requested.

Number of processors: 1  2  4   8  12  16  24  32  64  128
Number of licenses:   5  6  8  12  14  16  19  21  28   38

You will need to request processors, licenses, and then tell Abaqus what to use. Here is an edited example showing only the lines pertinent to requesting multiple processors. A complete example of a PBS script can be seen in the example below.

#  Request 4 processors on each of 2 machines
#PBS -l nodes=8,tpn=4
  [ . . . . ]
#  Request 5 + 8 - 1 = 12 licenses
#PBS -l gres=abaqus:12
  [ . . . . ]
abaqus job=test_job inp=t5-std interactive cpus=8

Please take special note of the nodes=N,tpn=M syntax. Here, nodes actually means the total number of processors you want, and tpn indicates the number of tasks per physical machine you want. This is different from the usual nodes=2:ppn=4 syntax.

Abaqus Notes

By default, Abaqus will run itself in the background, but that doesn’t work well with PBS, which will assume the job has completed when Abaqus goes into the background and end the job before Abaqus completes its job. So, you should always use the interactive option when running Abaqus from a PBS script.

If you are requesting processors on more than one node, you should make sure that each node has the same number of processors. You must use the nodes=N,tpn=M instead of the more usual procs=N:ppn=M. Note that for Abaqus, M <= N, and M * K = N, where K is the number of physical machines used.

You should use /scratch for your odb and job files.

If you inherit older Abaqus setup files, not that Abaqus version 6.8 and later do not use pre_memory or standard_memory options. If you find those in setup files, you should use memory instead.

Abaqus versions 6.8 and later do not have a standard_memory_policy option

Abaqus 6.8 and later support the faster InfiniBand (IB) network protocol. If Abaqus is run on more than one InfiniBand connected node, it will use IB automatically.

Abaqus version 6.8 and later has support for MPI parallel in Standard. Many Standard calculations may use more than one node.

For scratch disk we recommend using the default /tmp. However, space on /tmp is quite limited, so you should use set your temporary space to /scratch when space is an issue. It usually makes most sense in those cases to use the directory in which you put the odb and job files for your temporary files, too.

Retrieving and running Abaqus examples

You can retrieve the examples from the Abaqus manual on Flux using Abaqus itself. For example, if you go to the Abaqus documentation web site above, then to the Abaqus Example Problems Manual, then to section 1.1.7, Notched beam under cyclic loading, you’ll see at the bottom that two input files are needed: cyclicnotchedbeam.inp and cyclicnotchedbeam_mesh.inp. To retrive those files and put a copy into the current directory, use the following commands.

$ abaqus fetch job=cyclicnotchedbeam.inp
$ abaqus fetch job=cyclicnotchedbeam_mesh.inp

You could, then, run that job with

$ abaqus job=cyclicnotchedbeam inp=cyclicnotchedbeam interactive

PBS Example

Modify the following example script to reflect the correct parameters for the resources you are using. We recommend that you use a directory in either /scratch, if you are running abaqus on Flux, or /nobackup, if you are running it on nyx.

####  PBS preamble
#PBS -N abaqus_job
#PBS -M uniqname@umich.edu
#PBS -m abe

#  Request 4 processors on 2 different physical machines
#PBS -l nodes=8,tpn=4
#  Request 5 + 8 - 1 = 12 licenses
#PBS -l gres=abaqus:12
#PBS -l pmem=1200mb
#PBS -j oe
#PBS -V

#PBS -A example_flux
#PBS -l qos=flux
#PBS -q flux

####  End PBS preamble
#  Include the next three lines always
if [ "x${PBS_NODEFILE}" != "x" ] ; then
   cat $PBS_NODEFILE   # contains a list of the CPUs you were using if run with PBS
fi
#  Put your job commands after this line

#  Create a temporary directory for sample run
mkdir sample
cd sample

#  Get a sample file from the Abaqus test suite
abaqus fetch job=t5-std

# requested 1200mb per CPU and 8 CPUs per node above, which is a little more than
#   what we ask for here, which is 1000mb per CPU;
#   you should always add a little for program overhead.  This example asks for
#   many more processors than needed for the example to illustrate how to do so.

abaqus job=jobname inp=t5-std cpus=8 memory=8000mb interactive

Note for new users

Abaqus environment settings file

Abaqus has many tunable options. These options go in the file abaqus_v6.env. There is a global version on the cluster that provides default settings. You can override the global defaults by creating an abaqus_v6.env of your own. Abaqus looks for the defaults file in several locations, so if you want to layer your defaults, you can.

Abaqus will look for options in the following locations in the order given.

  1. The global options file
  2. The abaqus_v6.env in your home directory
  3. The abaqus_v6.env in the directory from which you invoke abaqus
  4. On the abaqus command line.

So, for example, you could set an option for a project in $HOME/abaqus_v6.env and override one or more options in it on the command line.

Note that not all options can be specified on the command line. You can run

abaqus help

or consult the documentation to see which are acceptable. Here are some commonly used options.

scratch='/tmp/' Full path name of the directory to be used for scratch files. The default value on Linux systems is the value of the $TMPDIR environment variable or /tmp if $TMPDIR is not defined.
memory='1500mb' Maximum amount of memory of the physical memory that can be allocated during the input file prepossessing and during the Abaqus/Standard analysis phase. Please request the same or larger amount of memory with your PBS job.
explicit_precision=SINGLE_PRECISION Default precision version of Abaqus/Explicit to run. Possible values are SINGLE_PRECISION or DOUBLE_PRECISION. The default value is SINGLE_PRECISION.
parallel_odb=SINGLE If this parameter is set equal to MULTIPLE for an Abaqus/Explicit analysis, multiple output database files will be generated (one per CPU) and these files will be merged at the end of the analysis. If this parameter is set equal to SINGLE, only one output database file will be generated. The default value is SINGLE. MULTIPLE may be useful when using either of the parallel file systems /scratch or /nobackup.