ABAQUS at TACC
Last update: August 13, 2024
The ABAQUS software suite from Dassault Systems is used for finite element analysis and computer-aided engineering. The ABAQUS software is used on TACC resources for projects from a variety of domains, such as petroleum engineering, biomedical engineering, and aerospace engineering. |
Request Access
TACC's ABAQUS license agreement allows access to the software installation and license tokens only to UT Austin students and staff.
-
UT Austin users will need to submit a ticket requesting to be added to the "ABAQUS" group. Potential ABAQUS users must agree to use ABAQUS for purely academic purposes.
-
Non-UT Austin users are welcome to install ABAQUS in their own accounts on TACC systems using their local license server.
For all ABAQUS technical questions, contact the customer care for Dassault Systems through a support ticket.
License Tokens
TACC has a limited number of ABAQUS license tokens available. Please submit a support ticket requesting the license server name. In this document we'll refer to the license server as port-number@license-server
. In order to use this license server, the ABAQUS users should add the following line to their job script:
$ export ABAQUSLM_LICENSE_FILE=port-number@license-server
Setting this environment variable on the login node before submitting the job will also work.
Users can also set the information about the license server by setting the value of abaquslm_license_file
in the abaqus_v6.env
file. For example:
abaquslm_license_file="port-number@license-server"
Tip
You can estimate your token needs here: https://www.simuleon.com/abaqus-token-calculator/
Since the number of ABAQUS licenses are linited, we encourage you to bring your own license tokens (from your local license server) if you have the option to do so. If using your own license, you may need to work with the license server's administrator to open the appropriate firewalls for accepting connections from TACC resources. The license server administrator will need the IP addresses range of the TACC systems (Frontera). Users will then use the port number and hostname of their license server to set the values of ABAQUSLM_LICENSE_FILE
in either their job script or the value of abaquslm_license_file
in the abaqus_v6.env
.
Installations
The ABAQUS 2019 and 2020 executables are available using the TACC's module system. After users are granted access to ABAQUS, they will be able to load the abaqus module.
login1$ module load abaqus
Running ABAQUS
Updates for Stampede3 and Vista coming soon.
-
Familiarize yourself with the Frontera user guide section on "Running Applications".
As with all other software packages, do not run ABAQUS on the login nodes. All ABAQUS invocations must occur within an
idev
session or submitted to the compute nodes as a batch job using the job script below.
Interactively
On a compute node obtained through an idev
session, the users can run the following command to test their access to ABAQUS and also check the available number of license tokens:
c123-456$ ml abaqus
c123-456$ $TACC_ABAQUS_BIN/abaqus licensing lmstat -a > abaqus_license.txt
Batch Mode
-
ABAQUS jobs will continue polling for licensing tokens till the required number of tokens become available or the jobs time-out of the queue. In order to save SUs in the event the necessary tokens are not available, include the following line in the ABAQUS environment file. This will limit the ABAQUS waiting time to five minutes.
lmhanglimit=5
-
To run a test job, run the following commands on a compute node after replacing
myinputfile
with the actual name of your input file:$ unset SLURM_GTIDS $ ml abaqus $ $TACC_ABAQUS_BIN/abaqus input=myinputfile job=test interactive
This command will block until completion or give an error. Check the log file (
jobname.log
). If no error, it should say the job checked out licenses and completed successfully. -
Compile user modules on the login nodes:
login1$ $TACC_ABAQUS_BIN/abaqus make library=<sourcefile>
-
Place resulting files (
sourcefile-basename.o
,sourcefile-basename.so
) into a directory:/path-to-the-directory/abaqus_libs
-
In the ABAQUS environment file, add the following line. In a normal use-case the
usub_lib_dir
will be in your scratch, work or home directory.usub_lib_dir="/path-to-the-directory/abaqus_libs"
-
In order to debug the ABAQUS errors, users might find it useful to run the ABAQUS commands with the
verbose
option. Set verbose to "3" to retrieve all run details:c123-456$ $TACC_ABAQUS_BIN/abaqus cpus=1 input=myinputfile job=test2 \ interactive scratch="." verbose=3
Job Script
The following job script demonstrates an example of running ABAQUS in parallel, on one node, and can be run on the Frontera systems after adjusting the number of nodes and cores, the values of -N
and, -n
respectively. This script is also located in $TACC_ABAQUS_DIR/tacc_test/abaqus.slm
.
#!/bin/bash
#SBATCH -J myabaqusjob
#SBATCH -t 1:00:00
#SBATCH -N 1
#SBATCH -n 4
#SBATCH -o abaqus.o%j
#SBATCH -p normal
ml abaqus/2020
# ml abaqus/2019
# Set this to the correct environment file
# for the test we will use some reasonable defaults
cp $TACC_ABAQUS_DIR/tacc_test/abaqus_v6.env ./
abaqus_environment_file=abaqus_v6.env
# Figure out what nodes this job should run on
node_list=$(scontrol show hostname $cores_per_node | sort | uniq)
# This assumes that there will be an even number of tasks across
# each node, if you have configured your job to run with different
# numbers of tasks on each node, you will need to change the task
# calculations below and create a modified mp_host_list.
cores_per_node=$(echo $SLURM_TASKS_PER_NODE | grep -oP '^[^0-9]*\K[0-9]+')
# Make node list and count the number of nodes
core_count=0
mp_host_list="["
for i in ${node_list} ; do
mp_host_list="${mp_host_list}['$i', ${cores_per_node}],"
number_of_nodes=$((number_of_nodes + 1))
done
echo $mp_host_list
# Calculate the amount of cores per node and multiply it by the amount
# of nodes we are running on
core_count=$(($number_of_nodes*$cores_per_node))
echo "Running on nodes: $cores_per_node"
echo "Running on $cores_per_node cores per node for a total of $core_count processes"
mp_host_list=`echo ${mp_host_list} | sed -e "s/,$//"`
mp_host_list="${mp_host_list}]"
echo "mp_host_list=${mp_host_list}" >> $abaqus_environment_file
unset SLURM_GTIDS
# Copy test input files to scratch directory
cp $TACC_ABAQUS_DIR/tacc_test/knee_bolster* ./
$TACC_ABAQUS_BIN/abaqus job=test_abaqus_job cpus=$core_count \
input=./knee_bolster.inp -verbose 3 mp_mode=mpi \
standard_parallel=all interactive scratch="."
sed -i "/mp_host_list/d" $abaqus_environment_file
TACC Resources IP Address Ranges
System | Compute Nodes | Login Nodes | Frontera | 129.114.64.0/19 |
129.114.63.96/27 |
---|---|---|
Stampede3 | Coming Soon | Coming Soon |