Difference between revisions of "HowTo:abaqus"

From CAC Wiki
Jump to: navigation, search
(Interactive runs)
 
(94 intermediate revisions by 5 users not shown)
Line 2: Line 2:
  
 
This is a short help file on using the Finite-Element Analysis (FEA) code "Abaqus" on our machines. This software is only licensed for academic researchers who work at a university that is already covered by an Abaqus license. The software is only made available to persons who belong to a specific Unix group. See details below.
 
This is a short help file on using the Finite-Element Analysis (FEA) code "Abaqus" on our machines. This software is only licensed for academic researchers who work at a university that is already covered by an Abaqus license. The software is only made available to persons who belong to a specific Unix group. See details below.
 +
 +
'''Important Note: The license for this software expires in December, 2018. After this date, we will likely move to a "hosting" model. This means that users who want to run this software on our cluster will have to supply a license that supports the run.'''
 +
 +
 +
'''Currently, this software is only available to our users already covered by a license, i.e. already purchased an Abaqus license or be part of a group that has an Abaqus license. To use it, you are required to read through the [http://info.cac.queensu.ca/wiki/files/cac-abaqus-license.pdf Abaqus Licensing Policy], and [http://info.cac.queensu.ca/wiki/files/cac-abaqus-statement.pdf sign a statement]. Then you will be added to a Unix group "abaqus", which enables you to download and run the software. [mailto:cac.help@queensu.ca Contact us] if you are in doubt of whether you will be able to run Abaqus on our system.'''
  
 
{|  style="border-spacing: 8px;"
 
{|  style="border-spacing: 8px;"
Line 10: Line 15:
 
* '''ABAQUS/Standard''' is designed to solve traditional implicit finite element analyses, such as static, dynamics, and thermal. It is equipped with a wide range of contact and nonlinear material options. ABAQUS/Standard also has optional add-on and interface products, as well as integration with third party software.
 
* '''ABAQUS/Standard''' is designed to solve traditional implicit finite element analyses, such as static, dynamics, and thermal. It is equipped with a wide range of contact and nonlinear material options. ABAQUS/Standard also has optional add-on and interface products, as well as integration with third party software.
 
* '''ABAQUS/Explicit''' is focused on transient dynamics and quasi-static analyses using an explicit approach appropriate in many applications such as drop test, crushing and many manufacturing processes.
 
* '''ABAQUS/Explicit''' is focused on transient dynamics and quasi-static analyses using an explicit approach appropriate in many applications such as drop test, crushing and many manufacturing processes.
* '''ABAQUS/CAE''' provides a modeling and visualization environment for ABAQUS analysis products. It offers access to CAD models, advanced meshing and visualization, and an exclusive view towards ABAQUS analysis products. ABAQUS/CAE is used mainly for pre- and post-processing. Note that this part of the ABAQUS software is not running on HPCVL machines, but on a user client machine.
+
* '''ABAQUS/CAE''' provides a modeling and visualization environment for ABAQUS analysis products. It offers access to CAD models, advanced meshing and visualization, and an exclusive view towards ABAQUS analysis products. ABAQUS/CAE is used mainly for pre- and post-processing. Note that this part of the ABAQUS software is not running on our machines, but on a user client machine.
  
 
== Version ==  
 
== Version ==  
  
The most recent version of Abaqus on our systems is Abaqus '''6.11'''. Earlier versions are available but not supported.
+
The most recent version of Abaqus on our systems is Abaqus '''2017'''. Earlier versions are available.
  
== Location and Access ==
+
== Location ==
  
'''This software is only available on the Linux systems'''. All versions of the Abaqus package are located in the directory /opt/abaqus.
+
All versions of the Abaqus package are located in the directory /global/software/abaqus on Frontenac, (login.cac.queensu.ca).
  
To use Abaqus on our machines, you have to be covered by an academic Abaqus license outside of the Centre for Advanced Computing, i.e. you have to be a "licensed University User of Abaqus". It is furthermore required that you read through the [https://www.hpcvl.org/sites/default/files/abaqus_policy.pdf Abaqus Licensing Policy], and [http://www.hpcvl.org/sites/default/files/hpcvl%20abaqus-statement.pdf sign a statement].
+
== Access and Licensing ==
  
'''Note that our license does count as a license for Queen's University'''. We will confirm your statement, and you will added to a Unix group "abaqus", which enables you to run the software. [mailto:cac.help@queensu.ca Contact us] if you are in doubt of whether you will be able to run Abaqus on our system. We also will submit your name and affiliation to Abaqus Inc. for a check if a prior university license exists.
+
'''Important Note: The license for this software expires in December 2018. After this date, we will move to a "hosting" model. This means that users who want to run this software on our cluster will have to supply a license that supports the run.'''
  
== Licensing ==
+
'''Currently, this software is only available to our users already covered by a license, i.e. already purchased an Abaqus license or be part of a group that has an Abaqus license. To use it, you are required to read through the [http://info.cac.queensu.ca/wiki/files/cac-abaqus-license.pdf Abaqus Licensing Policy], and [http://info.cac.queensu.ca/wiki/files/cac-abaqus-statement.pdf sign a statement]. Then you will be added to a Unix group "abaqus", which enables you to download and run the software. [mailto:cac.help@queensu.ca Contact us] if you are in doubt of whether you will be able to run Abaqus on our system.'''
  
The Fluent license is "seat limited" and "process limited". At present, there are the following licensing limits on our systems:
+
The Abaqus license is "token limited". At present, there are the following licensing limits on our systems. Different components of the software different numbers of tokens for execution. The number of tokens is approximately equal to the number of processors employed. Currently our license supports
  
<pre>25 program runs plus 512 parallel processes</pre>  
+
<pre>150 process tokens</pre>  
  
i.e. at most 25 separate sessions can be run simultaneously (serial or parallel). Each of these sessions can run up to 4 processes for a total of 100. In addition, it is possible to run up to 512 "parallel only" processes in total. One scenario would be 24 users have 24 process parallel jobs running, and another one with 36, thus using up all available Fluent resources.
 
 
|}
 
|}
  
Line 36: Line 40:
 
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#f7f7f7; border-radius:7px" |
 
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#f7f7f7; border-radius:7px" |
  
== Running Fluent ==
+
== Running Abaqus ==
 
=== Setup ===
 
=== Setup ===
  
Setup through the "usepackage" command:
+
Setup through the "module" command:
<pre>use abaqus</pre>
+
<pre>module load abaqus</pre>
will add the proper directories to the PATH and enable using the software. This needs to be done on the Linux workup node '''swlogin1'''.
+
will add the proper directories to the PATH and enable using the software.  
 +
The version this is currently setting up is the current "2017".
  
 
=== Interactive runs ===
 
=== Interactive runs ===
Line 47: Line 52:
 
The following instructions assume that you are a member of the Unix group "abaqus". They pertain only to the Standard and Explicit components of the software. The instructions in this section are only useful if you want to run an interactive '''test job''' of Abaqus on the workup node. If you want to run a production job, please refer to to instructions on how to start a Abaqus batch job (see next section).
 
The following instructions assume that you are a member of the Unix group "abaqus". They pertain only to the Standard and Explicit components of the software. The instructions in this section are only useful if you want to run an interactive '''test job''' of Abaqus on the workup node. If you want to run a production job, please refer to to instructions on how to start a Abaqus batch job (see next section).
  
The Abaqus program uses a sophisticated syntax to set up a job run. Instructions to the program are written into an input file which is specified when the program is evoked. While an input file can be written "from scratch", it is also possible to use the ABAQUS/CAE component to generate such a file. Both techniques a outside the scope of this FAQ. You also can have a look at a simple example input file here . Documentation for Abaqus is extensive, and available both electronically and in print. There is no substitute to consulting it.
+
The Abaqus program uses a sophisticated syntax to set up a job run. Instructions to the program are written into an input file which is specified when the program is evoked. While an input file can be written "from scratch", it is also possible to use the ABAQUS/CAE component to generate such a file. Both techniques are outside the scope of this FAQ. You also can have a look at a simple example input file here . Documentation for Abaqus is extensive, and available both electronically and in print. There is no substitute to consulting it.
  
 
Assuming that we have an input file called testsys.inp, we can initiate a run:
 
Assuming that we have an input file called testsys.inp, we can initiate a run:
 
<pre>
 
<pre>
use abaqus
+
abaqus job=test001 inp=testsys.inp scratch=/global/scratch/hpcXXXX
abaqus job=test001 inp=testsys.inp scratch=/scratch/hpcXXXX
+
 
</pre>
 
</pre>
 +
 
The job= option specified what the output files are to be called. They have various different "filename extensions" but share the name specified here (in our case test001). With the inp= option, we specify which input file to use. There are more options, such as cpus= and mp_mode= for running parallel jobs, but the two used above should get a simple serial job running.
 
The job= option specified what the output files are to be called. They have various different "filename extensions" but share the name specified here (in our case test001). With the inp= option, we specify which input file to use. There are more options, such as cpus= and mp_mode= for running parallel jobs, but the two used above should get a simple serial job running.
  
 
The above sequence starts the job in the background, i.e. after an initial setup phase, your terminal returns although the job is still running. If you want to avoid this, you can include the interactive option in the command line.
 
The above sequence starts the job in the background, i.e. after an initial setup phase, your terminal returns although the job is still running. If you want to avoid this, you can include the interactive option in the command line.
  
The Abaqus software uses a directory in /tmp (which is local to the nodes on which the software is executing) as scratch space. This is the default setting and causes some Abaqus jobs to fail. It must therefore be changed to the standard scratch space /scratch/hpcXXXX (XXXX being the numbers in your username). This can be done by including the option scratch=/opt/hpcXXXX in your command line.  
+
The Abaqus software uses a directory in /tmp (which is local to the nodes on which the software is executing) as scratch space. This is the default setting and causes some Abaqus jobs to fail. It must therefore be changed to the standard scratch space /global/scratch/hpcXXXX, where XXXX being the numbers in your username. This can be done by including the option scratch=/global/scratch/hpcXXXX in your command line.  
  
 
Also, do not forget to occasionally check the contents of this scratch directory by typing (replacing XXXX with the proper numbers for your username):
 
Also, do not forget to occasionally check the contents of this scratch directory by typing (replacing XXXX with the proper numbers for your username):
 
<pre>
 
<pre>
ls -lt /scratch/hpcXXXX
+
ls -lt /global/scratch/hpcXXXX
 
</pre>
 
</pre>
 
and removing any files that might be left over from old Abaqus runs. This is necessary because Abaqus will not remove these files if a job was terminated before it ran to completion.
 
and removing any files that might be left over from old Abaqus runs. This is necessary because Abaqus will not remove these files if a job was terminated before it ran to completion.
Line 68: Line 73:
 
More about changing the Abaqus environment may be learned from the "Installation and Licensing Guide" (chapter 4) of the Abaqus documentation. Please contact us if you need assistance.
 
More about changing the Abaqus environment may be learned from the "Installation and Licensing Guide" (chapter 4) of the Abaqus documentation. Please contact us if you need assistance.
  
=== Batch runs ===
+
=== Parallel production (batch) runs ===
  
Fluent can be run in '''batch mode'''. Since you likely have access to Fluent on your local machines, most interactive work can be done elsewhere, whereas the computationally intensive runs can be executed on a parallel system such as ours.
+
In most cases, you will run Abaqus in batch mode. Most interactive work can be done elsewhere, whereas the computationally intensive runs are executed on the cluster.
 +
Production jobs are submitted on the systems via a scheduler.  
  
For this, you have to set up a batch command file that consists of a sequence of commands that are issue to Fluent. To get an idea how such a batch command file looks, you can produce a journal file during an interactive session, and edit it later to eliminate unnecessary commands. Note that this needs to be done using the command line inside Fluent, not the menu buttons of the GUI. In fact, it is best to generate journal files in sessions that have been started with the '''-g option''', i.e. that do not use the GUI at all.
+
'''Note that the usage of the scheduler for all production jobs is mandatory'''. Production jobs that are submitted outside of the load balancing software will be terminated by the system administrator.
  
The '''"Text User Interface"''' that has to be used for writing batch files is documented in the Fluent documentation.  
+
The Abaqus jobs that you will want to run on our machines are likely to be quite large. To utilize parallelism, Abaqus offers to execute the solver on several CPU's simultaneously.  
Here is an example for a simple batch file that reads in a "case", initializes the flow, and runs 200 iterations. At the end a "data file" is printed and Fluent exits.  
+
  
<pre>
+
The Abaqus software achieves a certain degree of parallel scaling using either shared- or distributed memory machines. Here is a list of operations with the corresponding parallel mode that Abaqus supports:
rc fan.cas
+
* Element operations - MPI only
/solve/initialize/initialize-flow
+
* Iterative solver - MPI or threads
/solve/iterate 1
+
* Direct solver - Threads only
/file/write-data fan_1
+
* Lanczos solver - Threads only
exit
+
Note that only the shared-memory parallelism is in use on our clusters. It is necessary to decide before a parallel Abaqus run how many processes are to be started.
yes
+
</pre>
+
 
+
Let's call this file "example.flin". Note that every command has to be included in the batch command file, including the answer "yes" to the question if you really want to exit the program without saving the case file. Once you have produced a working command file, you can test it by calling
+
 
+
<pre>fluent 3ddp -g -i example.flin</pre>
+
 
+
We have assumed you are running a three-dimensional solver in double precision. You will have to alter this entries when the case is different. Make sure that the output file for the data (in this case, "fan_1.dat") does not exist before you start the job, otherwise the system will query if you want to over-write it and the answer is not in your command file.
+
 
+
Once everything works you could submit this job into the background (using bash) by typing
+
 
+
<pre>fluent 3d -g -i example.flin > example.flout 2>&1 & </pre>
+
 
+
This would redirect standard output and standard error to example.flout. The point is that Fluent is run non-interactively this way, i.e. we can use the same technique to submit a production job to the scheduler, as shown in the next section.
+
 
+
=== Production runs ===
+
 
+
To submit a production job on our clusters, '''you must use the Grid Engine scheduler'''. To obtain details, [[HowTo:scheduler|read our Grid Engine help file]]. Production jobs that are run without scheduler will be terminated by the system administrator.
+
  
For a Fluent production job, this means that rather than issuing the above batch command directly, you wrap it into a Grid Engine script that looks somewhat like this:
+
Production jobs must be submitted via the SLURM scheduler. To obtain details about the scheduler, read our [[SLURM | SLURM help file]]. For an Abaqus batch job, this means that rather than issuing the commands directly, you wrap them into a batch script that looks similar to this:
  
 
<pre>
 
<pre>
 
#!/bin/bash
 
#!/bin/bash
#$ -S /bin/bash
+
#SBATCH --job-name=Abaqus_Test
#$ -q abaqus.q
+
#SBATCH --mail-type=ALL
#$ -l qname=abaqus.q
+
#SBATCH --mail-user=myEmail@whatever.com
#$ -V
+
#SBATCH --output=STD.out
#$ -cwd
+
#SBATCH --error=STD.err
#$ -pe shm.pe 12
+
#SBATCH --nodes=1
#$ -m be
+
#SBATCH --ntasks=1
#$ -M hpcXXXX@localhost
+
#SBATCH --cpus-per-task=4
#$ -o STD.out
+
#SBATCH --time=05:00
#$ -e STD.err
+
#SBATCH --mem=1000
rm fan_1.dat
+
module load abaqus
. /opt/fluent/ansys-16.1/setup_64bit.sh
+
abaqus job=test input=testsys.inp cpus=$SLURM_CPUS_PER_TASK mp_mode=threads scratch=/global/scratch/hpcXXXX  -interactive
fluent 3ddp -t$NSLOTS -g -i example.flin
+
 
</pre>
 
</pre>
  
Here we are running the above example batch file "example.flin" using 12 processors on a parallel machine. The output and any error messages from the system are re-directed to files called "STD.out" and "STD.err", respectively. The "#$ -q" and "#$ -l" entries force execution on the Linux cluster (important!). Email notification is handled by the "#$ -m" and "#$ -M" lines. Replace "hpcXXXX" by your actual username and make sure that a file called ".forward" that contains you actual email address is in your home directory. This practice makes it impossible for other users to see your email address.  
+
The script (let's call it ababus_test.sh) needs to be altered to fit the specifics.
  
Many Fluent jobs that you run on our machines are likely to be quite large. To utilize the parallel structure of our machines, Fluent offers several options to execute the solver in a parallel environment, i.e. on several CPU's simultaneously. The default option for such runs is MPI i.e., it uses the Message Passing Interface for inter-process communication.
+
The --mail-type and --mail-user lines set up for email notification at beginning and end of a run. -o and -e are meant to specify a file name to capture "standard output" and "standard error", i.e. the information that would be sent to the screen in an interactive run.  
  
To take advantage of the parallel capabilities of Fluent, you have to call the program with additional command line options that specify the details of your parallel run:
+
The -t option indicates a time limit. Choose it such that the job will have time to finish as it will be terminated when the time limit is reached. Note that this must be specified as it otherwise set to a (likely too short) default value. Don't set it too long either, as that will make the job hard to schedule. The same hold for the --mem option specifying an upper limit for memory usage. Jobs that use more than this limit will terminate. Choose it such that the job "fits" but don't high-ball it too much, as this will make the job hard or impossible to schedule.
  
* -tn where n is the number of processors requested, e.g. if you want to run with 8 processors, you would use the option -t12
+
Keep the "-n" and "-N" options at 1 to indicate that one main process is running on a single node.
* -g specifies that the GUI should be surpressed. This is required for batch jobs.
+
  
Parallel jobs of longer runtime should only be run in batch using the Grid Engine. The number of processors "12" specified in our example script appears only once, after
+
The -c option specifies the number of processors (cores) that are requested. The value of the variable SLURM_CPUS_PER_TASK is set to the value specified in this line. "mp_mode=threads" enables shared-memory parallel execution. Note that all processors are allocated on a single node.
  
<pre>#$ -pe shm.pe</pre>
+
After altering the script appropriately, it is submitted by
 +
<pre>sbatch ababus_test.sh</pre>
  
which is where you let the Grid Engine know how many processors to allocate to run the program. The internal environment variable '''NSLOTS''' will automatically be set to this value and can then be used in the fluent command line.
+
Because of the limited scaling capabilities, only 12-processor jobs should be run. Also, the total memory of each node is limited, meaning that jobs with large memory requirements should request memory up-front to avoid getting scheduled on too small a node. Please contact us if you need help with this.  
 
+
It is also necessary to source a setup file called '''setup_64bit.sh'''. This will set various environment variables and enable the Fluent program to properly interact with Grid Engine. If you are interested, take a look. The file is readable.
+
 
+
All processes are allocated within a single node. This is to make communication more efficient and to avoid problems with the control by Gridengine. The effect of this is that, while still using MPI, Fluent employs a so-called shared-memory layer for communication. The disadvantage is that the size of the job is restricted by the number of cores on a node. Once the script has been adapted (let's call it "fluent.sh"), it can be submitted to the Gridengine by
+
 
+
<pre>qsub fluent.sh</pre>
+
 
+
from the login node. Note that the job will appear as a parallel job on the Grid Engine's "qstat" or "qmon" commands. Note also that submission of a parallel job in this way is only profitable for large systems that use many CPU cycles, since the overhead for assigning processes, preparing nodes, and communication between them is considerable.
+
 
+
There is an easier way to do this: We are supplying a small perl script called that can be called directly, and will ask a few basic questions, such as the name for the job to be submitted and the number of processes to be used in the job. Simply type
+
 
+
<pre>AnsysSubmit</pre>
+
 
+
and answer the questions. The script expects a Fluent input file with "file extension" .flin to be present and will do everything else automatically. This is meant for simple Fluent job submissions. More complex job submissions are better done manually.
+
 
|}
 
|}
  
Line 154: Line 126:
 
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#e1eaf1; border-radius:7px" |
 
| valign="top" width="50%" style="padding:1em; border:1px solid #aaaaaa; background-color:#e1eaf1; border-radius:7px" |
  
== Further Help ==
+
=== For Users covered by a license only : Installing Abaqus on your local PC ===
  
Fluent is a complex software package, and requires some practice to be used efficiently. In this FAQ we can not explain it use in any detail.
+
Abaqus requires a user-owned license. Here are instructions on how to install Abaqus on a PC. Note that we will make the software available only to users wsith a license, and that the license server is being monitored. Usage falling outside of the licensing terms is prohibited and will be investigated if detected.
  
The documentation for Fluent can be access from inside the program GUI by clicking on the '''"Help" button on the upper right'''. This is in html format. The pdf version of the docs can be found in
+
'''Note: If you are working off campus, you will need Queen's VPN  to access the license server, [https://www.queensu.ca/its/networks/virtual-private-network-vpn]'''
  
<pre>/opt/fluent/ansys-16.0/v140/commonfiles/help/en-us/pdf</pre>
+
# Download files <pre>2017.AM_SIM_Abaqus_Extend.AllOS.X-6.tar (X=1…6)</pre> [contact us about location]
 +
You can use a program like /'''WinSCP''' or from the command line or the command '''scp'''
 +
# Unpack the files using a tool such as WinRAR (https://www.win-rar.com/start.html?&L=0) into a directory close to root (e.g. c:\abaqus_files) to avoid overly long file names. 7z (http://www.7-zip.org/download.html) no longer seems to work properly.  Make sure all 6 are unpacked into the same directory.
 +
# Find the file "hosts" in /Windows/System32/drivers/etc and open it as administrator. Insert the line <pre>130.15.59.6  license08.cac.queensu.ca</pre> and save the file. This is crucial.
 +
# Go into AM_SIM_Abaqus_Extend.AllOS/1 of the unpacking directory and execute the file "setup.exe"
 +
# Install the following products in that order and one-by-one, i.e. only highlight one at a time and hit next:<pre>Abaqus Simulation Services, Abaqus Simulation Services CAA API, Abaqus/CAE</pre>
 +
# When installing Abaqus/CAE it will ask you for various directories etc. When possible, go for the default. When asked for the licensing, select "Flexnet" and enter <pre>28525@license08.cac.queensu.ca</pre> into the box. If this works after you press "Next", you're in business. This will only work if you have done Step 3 properly. At some point it will ask about documentation, but handle that later, i.e. opt out of it for now.
 +
# Once these three components are installed, the software should work.
 +
 
 +
== Further Help ==
  
Fluent documentation is subject to the same license terms as the software itself, i.e. you have to be signed up as a Fluent user in order to access it.
+
Abaqus is a very complex software package, and requires some practice to be used efficiently. We can't explain it use in any detail here.  
  
If you are experiencing trouble running a batch command script, check carefully if the sequence of commands is exactly in sync with the program. This might mean typing them in interactively as a test. If you have problems with the Grid Engine, [[FAQ:SGE|read our FAQ on that subject]], and maybe consult the [http://www.hpcvl.org/sites/default/files/hpvcl_sge_manual.pdf manual for that software] which is accessible as a PDF file. HPCVL also provide user support in the case of technical problems: just send [mailto:cac.help@queensu.ca email to cac.help@queensu.ca].
+
* Online documentation for the program is available on machines where Abaqus is installed.  
 +
* On the login node, it can be accessed by a web browser:
 +
<pre>/global/software/abaqus/2017/SIMULIA2017doc/English/DSSIMULIA_Established.htm</pre>
 +
Start '''firefox''' locally. For security, we do not have a web server running on the cluster.
 +
* A pdf version of the Abaqus documentation can be found in ''/global/software/abaqus''
 +
* We provide user support. Please send email to [mailto:cac.help@queensu.ca cac.help@queensu.ca].  
 
|}
 
|}

Latest revision as of 21:27, 20 November 2023

Abaqus

This is a short help file on using the Finite-Element Analysis (FEA) code "Abaqus" on our machines. This software is only licensed for academic researchers who work at a university that is already covered by an Abaqus license. The software is only made available to persons who belong to a specific Unix group. See details below.

Important Note: The license for this software expires in December, 2018. After this date, we will likely move to a "hosting" model. This means that users who want to run this software on our cluster will have to supply a license that supports the run.


Currently, this software is only available to our users already covered by a license, i.e. already purchased an Abaqus license or be part of a group that has an Abaqus license. To use it, you are required to read through the Abaqus Licensing Policy, and sign a statement. Then you will be added to a Unix group "abaqus", which enables you to download and run the software. Contact us if you are in doubt of whether you will be able to run Abaqus on our system.

What is Abaqus ?

The ABAQUS suite of software for finite element analysis (FEA) has the ability to solve a wide variety of simulations. The ABAQUS suite consists of three core products - ABAQUS/Standard, ABAQUS/Explicit and ABAQUS/CAE.

  • ABAQUS/Standard is designed to solve traditional implicit finite element analyses, such as static, dynamics, and thermal. It is equipped with a wide range of contact and nonlinear material options. ABAQUS/Standard also has optional add-on and interface products, as well as integration with third party software.
  • ABAQUS/Explicit is focused on transient dynamics and quasi-static analyses using an explicit approach appropriate in many applications such as drop test, crushing and many manufacturing processes.
  • ABAQUS/CAE provides a modeling and visualization environment for ABAQUS analysis products. It offers access to CAD models, advanced meshing and visualization, and an exclusive view towards ABAQUS analysis products. ABAQUS/CAE is used mainly for pre- and post-processing. Note that this part of the ABAQUS software is not running on our machines, but on a user client machine.

Version

The most recent version of Abaqus on our systems is Abaqus 2017. Earlier versions are available.

Location

All versions of the Abaqus package are located in the directory /global/software/abaqus on Frontenac, (login.cac.queensu.ca).

Access and Licensing

Important Note: The license for this software expires in December 2018. After this date, we will move to a "hosting" model. This means that users who want to run this software on our cluster will have to supply a license that supports the run.

Currently, this software is only available to our users already covered by a license, i.e. already purchased an Abaqus license or be part of a group that has an Abaqus license. To use it, you are required to read through the Abaqus Licensing Policy, and sign a statement. Then you will be added to a Unix group "abaqus", which enables you to download and run the software. Contact us if you are in doubt of whether you will be able to run Abaqus on our system.

The Abaqus license is "token limited". At present, there are the following licensing limits on our systems. Different components of the software different numbers of tokens for execution. The number of tokens is approximately equal to the number of processors employed. Currently our license supports

150 process tokens

Running Abaqus

Setup

Setup through the "module" command:

module load abaqus

will add the proper directories to the PATH and enable using the software. The version this is currently setting up is the current "2017".

Interactive runs

The following instructions assume that you are a member of the Unix group "abaqus". They pertain only to the Standard and Explicit components of the software. The instructions in this section are only useful if you want to run an interactive test job of Abaqus on the workup node. If you want to run a production job, please refer to to instructions on how to start a Abaqus batch job (see next section).

The Abaqus program uses a sophisticated syntax to set up a job run. Instructions to the program are written into an input file which is specified when the program is evoked. While an input file can be written "from scratch", it is also possible to use the ABAQUS/CAE component to generate such a file. Both techniques are outside the scope of this FAQ. You also can have a look at a simple example input file here . Documentation for Abaqus is extensive, and available both electronically and in print. There is no substitute to consulting it.

Assuming that we have an input file called testsys.inp, we can initiate a run:

abaqus job=test001 inp=testsys.inp scratch=/global/scratch/hpcXXXX

The job= option specified what the output files are to be called. They have various different "filename extensions" but share the name specified here (in our case test001). With the inp= option, we specify which input file to use. There are more options, such as cpus= and mp_mode= for running parallel jobs, but the two used above should get a simple serial job running.

The above sequence starts the job in the background, i.e. after an initial setup phase, your terminal returns although the job is still running. If you want to avoid this, you can include the interactive option in the command line.

The Abaqus software uses a directory in /tmp (which is local to the nodes on which the software is executing) as scratch space. This is the default setting and causes some Abaqus jobs to fail. It must therefore be changed to the standard scratch space /global/scratch/hpcXXXX, where XXXX being the numbers in your username. This can be done by including the option scratch=/global/scratch/hpcXXXX in your command line.

Also, do not forget to occasionally check the contents of this scratch directory by typing (replacing XXXX with the proper numbers for your username):

ls -lt /global/scratch/hpcXXXX

and removing any files that might be left over from old Abaqus runs. This is necessary because Abaqus will not remove these files if a job was terminated before it ran to completion.

More about changing the Abaqus environment may be learned from the "Installation and Licensing Guide" (chapter 4) of the Abaqus documentation. Please contact us if you need assistance.

Parallel production (batch) runs

In most cases, you will run Abaqus in batch mode. Most interactive work can be done elsewhere, whereas the computationally intensive runs are executed on the cluster. Production jobs are submitted on the systems via a scheduler.

Note that the usage of the scheduler for all production jobs is mandatory. Production jobs that are submitted outside of the load balancing software will be terminated by the system administrator.

The Abaqus jobs that you will want to run on our machines are likely to be quite large. To utilize parallelism, Abaqus offers to execute the solver on several CPU's simultaneously.

The Abaqus software achieves a certain degree of parallel scaling using either shared- or distributed memory machines. Here is a list of operations with the corresponding parallel mode that Abaqus supports:

  • Element operations - MPI only
  • Iterative solver - MPI or threads
  • Direct solver - Threads only
  • Lanczos solver - Threads only

Note that only the shared-memory parallelism is in use on our clusters. It is necessary to decide before a parallel Abaqus run how many processes are to be started.

Production jobs must be submitted via the SLURM scheduler. To obtain details about the scheduler, read our SLURM help file. For an Abaqus batch job, this means that rather than issuing the commands directly, you wrap them into a batch script that looks similar to this:

#!/bin/bash
#SBATCH --job-name=Abaqus_Test
#SBATCH --mail-type=ALL
#SBATCH --mail-user=myEmail@whatever.com
#SBATCH --output=STD.out
#SBATCH --error=STD.err
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --time=05:00
#SBATCH --mem=1000
module load abaqus
abaqus job=test input=testsys.inp cpus=$SLURM_CPUS_PER_TASK mp_mode=threads scratch=/global/scratch/hpcXXXX  -interactive

The script (let's call it ababus_test.sh) needs to be altered to fit the specifics.

The --mail-type and --mail-user lines set up for email notification at beginning and end of a run. -o and -e are meant to specify a file name to capture "standard output" and "standard error", i.e. the information that would be sent to the screen in an interactive run.

The -t option indicates a time limit. Choose it such that the job will have time to finish as it will be terminated when the time limit is reached. Note that this must be specified as it otherwise set to a (likely too short) default value. Don't set it too long either, as that will make the job hard to schedule. The same hold for the --mem option specifying an upper limit for memory usage. Jobs that use more than this limit will terminate. Choose it such that the job "fits" but don't high-ball it too much, as this will make the job hard or impossible to schedule.

Keep the "-n" and "-N" options at 1 to indicate that one main process is running on a single node.

The -c option specifies the number of processors (cores) that are requested. The value of the variable SLURM_CPUS_PER_TASK is set to the value specified in this line. "mp_mode=threads" enables shared-memory parallel execution. Note that all processors are allocated on a single node.

After altering the script appropriately, it is submitted by

sbatch ababus_test.sh

Because of the limited scaling capabilities, only 12-processor jobs should be run. Also, the total memory of each node is limited, meaning that jobs with large memory requirements should request memory up-front to avoid getting scheduled on too small a node. Please contact us if you need help with this.

For Users covered by a license only : Installing Abaqus on your local PC

Abaqus requires a user-owned license. Here are instructions on how to install Abaqus on a PC. Note that we will make the software available only to users wsith a license, and that the license server is being monitored. Usage falling outside of the licensing terms is prohibited and will be investigated if detected.

Note: If you are working off campus, you will need Queen's VPN to access the license server, [1]

  1. Download files
    2017.AM_SIM_Abaqus_Extend.AllOS.X-6.tar (X=1…6)
    [contact us about location]

You can use a program like /WinSCP or from the command line or the command scp

  1. Unpack the files using a tool such as WinRAR (https://www.win-rar.com/start.html?&L=0) into a directory close to root (e.g. c:\abaqus_files) to avoid overly long file names. 7z (http://www.7-zip.org/download.html) no longer seems to work properly. Make sure all 6 are unpacked into the same directory.
  2. Find the file "hosts" in /Windows/System32/drivers/etc and open it as administrator. Insert the line
    130.15.59.6   license08.cac.queensu.ca
    and save the file. This is crucial.
  3. Go into AM_SIM_Abaqus_Extend.AllOS/1 of the unpacking directory and execute the file "setup.exe"
  4. Install the following products in that order and one-by-one, i.e. only highlight one at a time and hit next:
    Abaqus Simulation Services, Abaqus Simulation Services CAA API, Abaqus/CAE
  5. When installing Abaqus/CAE it will ask you for various directories etc. When possible, go for the default. When asked for the licensing, select "Flexnet" and enter
    28525@license08.cac.queensu.ca
    into the box. If this works after you press "Next", you're in business. This will only work if you have done Step 3 properly. At some point it will ask about documentation, but handle that later, i.e. opt out of it for now.
  6. Once these three components are installed, the software should work.

Further Help

Abaqus is a very complex software package, and requires some practice to be used efficiently. We can't explain it use in any detail here.

  • Online documentation for the program is available on machines where Abaqus is installed.
  • On the login node, it can be accessed by a web browser:
/global/software/abaqus/2017/SIMULIA2017doc/English/DSSIMULIA_Established.htm

Start firefox locally. For security, we do not have a web server running on the cluster.

  • A pdf version of the Abaqus documentation can be found in /global/software/abaqus
  • We provide user support. Please send email to cac.help@queensu.ca.