ABAQUS

ABAQUS is a finite element analysis program owned and supported by SIMULIA, the Dassault Systèmes brand for Realistic Simulation.

Availability and Restrictions

ABAQUS is available on Ruby and Oakley Clusters. The available programs are ABAQUS/CAE, ABAQUS/Standard and ABAQUS/Explicit. The versions currently available at OSC are:

Version Oakley Ruby Notes
6.11-2 X   Default version on Oakley prior to 09/15/2015
6.12-pr3 X    
6.12 X    
6.13   X  
6.14 X* X*  
6.14-5 X    
2016 X   Version scheme has been changed. 
*: Current default version

You can use  module avail abaqus  to view available modules for a given machine. Feel free to contact OSC Help if you need other versions for your work.

Access for Academic Users

OSC's ABAQUS license can only be used for educational, institutional, instructional, and/or research purposes. Only users who are faculty, research staff or students at the following institutions are permitted to utilized OSC's license:

  • The Ohio State University
  • University of Toledo
  • University of Cincinnati
  • Miami University of Ohio
  • Wright State University
  • University of Akron

Users from additional degree granting academic institutions may request to be added to this list per a cost by contacting OSC Help.

The use of ABAQUS for academic purposes requires validation. In order to obtain validation, please contact OSC Help for further instruction. 

If you are a SIMCenter user, please include your SIMCenter ID when you contact OSC Help for the license validation.

 

Access for Commerical Users

Contact OSC Help for getting access to ABAQUS if you are a commercial user.

Usage

Token Usage

ABAQUS software usage is monitored though a token-based license manager. This means very time you run a ABAQUS job, tokens are checked out from our pool for your tasks usage. To ensure your job is only started when its required ABAQUS tokens are available it is important to include a software flag within your job script's PBS directives.  A minimum of 5 tokens are required per a job, so a 1 node, 1 processor ABAQUS job would need the following PBS software flag: #PBS -l software=abaqus+5 . Jobs requiring more cores will need to request more tokens as calculated with the formula: M = int(5 x N^0.422) , where N is the total number of cores.  For common requests, you can refer to the following table:

         Cores            (nodes x ppn each):

1 2 3 4 6 8 12 16 24 32 48
Tokens needed: 5 6 7 8 10 12 14 16 19 21 25

Usage on Oakley

Set-up on Oakley

To load the default version of ABAQUS module, use  module load abaqus . To select a particular software version, use   module load abaqus/version . For example, use  module load abaqus/6.12  to load ABAQUS version 6.12 on Oakley. 

Using ABAQUS

Example input data files are available with the ABAQUS release. The abaqus fetch utility is used to extract these input files for use. For example, to fetch input file for one of the sample problems including 4 input files, type:

abaqus fetch job=knee_bolster

abaqus fetch job=knee_bolster_ef1

abaqus fetch job=knee_bolster_ef2

abaqus fetch job=knee_bolster_ef3

Also, use the abaqus help  utility is to list all the abaqus execution procedures.

Batch Usage on Oakley

When you log into oakley.osc.edu you are actually logged into a linux box referred to as the login node. To gain access to the mutiple processors in the computing environment, you must submit your ABAQUS analysis to the batch system for execution. Batch jobs can request mutiple nodes/cores and compute time up to the limits of the OSC systems. Refer to Queues and Reservations and Batch Limit Rules for more info. 

Interactive Batch Session
For an interactive batch session on Oakley, one can run the following command:
qsub -I -l nodes=1:ppn=12 -l walltime=1:00:00
which gives you 12 cores ( -l nodes=1:ppn=12 ) with 1 hour ( -l walltime=1:00:00 ). You may adjust the numbers per your need.
Non-interactive Batch Job (Serial Run)

batch script can be created and submitted for a serial or parallel run. You can create the batch script using any text editor you like in a working directory on the system of your choice.

Assume that you have fetched the four input files above into your work directory (where you submit your job, represented by  $PBS_O_WORKDIR ). Below is the example batch script ( job.txt ) for a serial run:

#PBS -N knee
#PBS -l walltime=1:00:00
#PBS -l nodes=1:ppn=1
#PBS -l software=abaqus+5
#PBS -j oe
#
# The following lines set up the ABAQUS environment
#
module load abaqus
#
# Move to the directory where the job was submitted
#
cd $PBS_O_WORKDIR
cp *.inp $TMPDIR
cd $TMPDIR
#
# Run ABAQUS
#
abaqus job=knee_bolster interactive
#
# Now, copy data (or move) back once the simulation has completed
#
cp * $PBS_O_WORKDIR

In order to run it via the batch system, submit the job.txt  file with the command: qsub job.txt

NOTE:

  • Make sure to copy all the files needed (input files, restart files, user subroutines, python scripts etc.) from your work directory ( $PBS_O_WORKDIR ) to  $TMPDIR , and copy your results back at the end of your script. Running your job on  $TMPDIR  ensures maximum efficiency.
  • The keyword interactive  is required in the execution line abaqus job=knee_bolster interactive for the following reason: If left off, ABAQUS will background the simulation process. Backgrounding a process in the OSC environment will place it outside of the batch job and it will receive the default 1 hour of CPU time and corresponding default memory limits. The keyword interactive in this case simply tells ABAQUS not to return until the simulation has completed.
  • The name of the input file is sometimes omitted in the execution line, which may work fine if you've copied only the input files for one specific model. Although, it is better practice to designate the main input file explicitly by adding input=<my_input_file_name>.inp to the execution line so that it looks like abaqus job=knee_bolster input=<my_input_file_name>.inp interactive
  • Define nodes=1 (1<=ppn<=12 for Oakley) for a serial run.
  • If ppn>1, add cpus=<n> to the execution line, where n=ppn. This is how it should look like: abaqus job=test input=<my_input_file_name1>.inp cpus=<n> interactive
Non-interactive Batch Job (Parallel Run)

Below is the example batch script ( job.txt ) for a parallel run:

#PBS -l walltime=1:00:00
#PBS -l nodes=2:ppn=12
#PBS -N my_abaqus_job
#PBS -l software=abaqus+19
#PBS -j oe
#
# The following lines set up the ABAQUS environment
#
module load abaqus
#
# Move to the directory where the job was submitted
#
cd $PBS_O_WORKDIR
cp *.inp $TMPDIR/
cd $TMPDIR
#
# Run ABAQUS, note that in this case we have provided the names of the input files explicitly
#
abaqus job=test input=<my_input_file_name1>.inp cpus=24 interactive
#
# Now, move data back once the simulation has completed
#
mv * $PBS_O_WORKDIR

NOTE:

  • Define nodes>1 for a parallel run. 1<=ppn<=12 for Oakley.
  • Specify  cpus=<n> in the execution line, where n=nodes*ppn.
  • Everything else is similar to the serial script above.

Usage on Ruby

Set-up on Ruby

To load the default version of ABAQUS module, use  module load abaqus . To select a particular software version, use   module load abaqus/version . For example, use  module load abaqus/6.13  to load ABAQUS version 6.13 on Ruby. 

Using ABAQUS

Example input data files are available with the ABAQUS release. The abaqus fetch utility is used to extract these input files for use. For example, to fetch input file for one of the sample problems including 4 input files, type:

abaqus fetch job=knee_bolster

abaqus fetch job=knee_bolster_ef1

abaqus fetch job=knee_bolster_ef2

abaqus fetch job=knee_bolster_ef3

Also, use the abaqus help  utility is to list all the abaqus execution procedures.

Batch Usage on Ruby

When you log into ruby.osc.edu you are actually logged into a linux box referred to as the login node. To gain access to the mutiple processors in the computing environment, you must submit your ABAQUS analysis to the batch system for execution. Batch jobs can request mutiple nodes/cores and compute time up to the limits of the OSC systems. Refer to Queues and Reservations and Batch Limit Rules for more info. 

Interactive Batch Session
For an interactive batch session on Ruby, one can run the following command:
qsub -I -l nodes=1:ppn=20 -l walltime=1:00:00
which gives you 20 cores ( -l nodes=1:ppn=20 ) with 1 hour ( -l walltime=1:00:00 ). You may adjust the wall time per your need.
Non-interactive Batch Job (Serial Run)

batch script can be created and submitted for a serial or parallel run. You can create the batch script using any text editor you like in a working directory on the system of your choice.

Assume that you have fetched the four input files above into your work directory (where you submit your job, represented by  $PBS_O_WORKDIR ). Below is the example batch script ( job.txt ) for a serial run:

#PBS -N knee
#PBS -l walltime=1:00:00
#PBS -l nodes=1:ppn=20
#PBS -l software=abaqus+17
#PBS -j oe
#
# The following lines set up the ABAQUS environment
#
module load abaqus
#
# Move to the directory where the job was submitted
#
cd $PBS_O_WORKDIR
cp *.inp $TMPDIR
cd $TMPDIR
#
# Run ABAQUS
#
abaqus job=knee_bolster cpus=20 interactive
#
# Now, copy data (or move) back once the simulation has completed
#
cp * $PBS_O_WORKDIR

In order to run it via the batch system, submit the job.txt  file with the command: qsub job.txt

NOTE:

  • Make sure to copy all the files needed (input files, restart files, user subroutines, python scripts etc.) from your work directory ( $PBS_O_WORKDIR ) to  $TMPDIR , and copy your results back at the end of your script. Running your job on  $TMPDIR  ensures maximum efficiency.
  • The keyword interactive  is required in the execution line abaqus job=knee_bolster interactive for the following reason: If left off, ABAQUS will background the simulation process. Backgrounding a process in the OSC environment will place it outside of the batch job and it will receive the default 1 hour of CPU time and corresponding default memory limits. The keyword interactive in this case simply tells ABAQUS not to return until the simulation has completed.
  • The name of the input file is sometimes omitted in the execution line, which may work fine if you've copied only the input files for one specific model. Although, it is better practice to designate the main input file explicitly by adding input=<my_input_file_name>.inp to the execution line so that it looks like abaqus job=knee_bolster input=<my_input_file_name>.inp interactive
  • Ruby has full node charging policy. Define nodes=1:ppn=20   for a serial run
Non-interactive Batch Job (Parallel Run)

Below is the example batch script ( job.txt ) for a parallel run:

#PBS -l walltime=1:00:00
#PBS -l nodes=2:ppn=20
#PBS -N my_abaqus_job
#PBS -l software=abaqus+23
#PBS -j oe
#
# The following lines set up the ABAQUS environment
#
module load abaqus
#
# Move to the directory where the job was submitted
#
cd $PBS_O_WORKDIR
cp *.inp $TMPDIR/
cd $TMPDIR
#
# Run ABAQUS, note that in this case we have provided the names of the input files explicitly
#
abaqus job=test input=<my_input_file_name1>.inp cpus=40 interactive
#
# Now, move data back once the simulation has completed
#
mv * $PBS_O_WORKDIR

NOTE:

  • Define nodes>1 for a parallel run. 
  • Specify  cpus=<n> in the execution line, where n=nodes*ppn.
  • Everything else is similar to the serial script above.

Further Reading

See Also

Supercomputer: 
Service: 
Fields of Science: