ABAQUS🔗

You can run Abaqus graphically through Thinlinc. It is available from the menu. If you need to start it from command line yourself, make sure to use the vglrun command, which increases the 3D drawing performance, and also eliminates some visual bugs in the 3D-view.

vglrun abaqus cae

When submitting jobs, you also need to tell Abaqus how many cores to use, e.g:

abaqus cpus=$SLURM_NPROCS mp_mode=mpi job=my_simulation.inp interactive

The interactive option is required to prevent the process from being dispatched as a background process (causing the job script to end immediately).

TMPDIR🔗

Abaqus writes large temporary files, with many operations that are very inefficient against a network file system. It is therefore vital to always make use of $TMPDIR when running Abaqus. See C3SE_Filesystem for more information and how to use a parallel TMPDIR.

Restarting🔗

Abaqus support writing down the state to allow you to continue running an interrupted job, or add additional time steps. See section 9.1.1 in the Abaqus manual for more details.

At the simplest case, the "RESTART" record needs to be added to the input file;

*RESTART, WRITE, FREQUENCY=10

This creates a my_simulation.res file in the working directory. You need to copy all file back periodically (*.res *.mdl *.stt *.prt *.odb, *.sim), e.g.

while sleep 1h; do
  rsync -a *.res *.mdl *.stt *.prt *.odb *.sim $SLURM_SUBMIT_DIR/
done &
LOOPPID=$!
# Run abaqus here
kill $LOOPPID

See the filesystem documentation for a bit more detail.

Please make sure that FREQUENCY is set reasonably high (writing a restart file at most once per hour). As with all simulation results, note that the restart-file can get very large.

When you want to restart a simulation:

*RESTART, READ

in the new input file.

abaqus cpus=$SLURM_NPROCS mp_mode=mpi job=continued_simulation oldjob=old_simulation interactive

See section 9.1.1 in the Abaqus manual for more details.

Scripting CAE🔗

ABAQUS CAE can be scriptet, and can run without GUI in your jobscript with

abaqus cae noGUI=your_script.py