ABAQUS in Linux x86-64

Abaqus$ ^{TM}$ (Abaqus, Inc.) is a general purpose Finite Element package, which introduced the umat format. In general, ABAQUS recommends programming of a user defined subroutine umat in FORTRAN programming language, using different languages is however also possible provided that corresponding compilers compatible with default ABAQUS compiler are installed on the system.

With FORTRAN umat, the calculation is initiated with command like

abaqus j=1 inp=inputfile.inp user=user.f

ABAQUS compiles and links the subroutine and internally producess a dynamic library for calculation. If different programming language is used, the user defined subroutine must be compiled separatelly, and the resulted object file is given to ABAQUS using command like:

abaqus j=1 inp=inputfile.inp user=user.o

At a given operating system, ABAQUS supports only one compiler. Under Linux x86-64 it is Intel EM64T Fortran Compiler for FORTRAN and Intel EM64T C++ Compiler for C++. The umat available at this site should be compiled using command

icpc -c -fPIC user.cpp

Make sure that the 64 bit version of the compiler is used for 64 bit architecture, as by defult the icpc command may load the 32 bit version! Typically, the compiler executable is present in /opt/intel/cce/.versionNo./bin for 64 bit and in /opt/intel/cc/.versionNo./bin for 32 bit.

As the Intel compilers are compatible with gcc (the Intel compiler can load gcc libraries), the umat may also be compiled using the gcc compiler:

gcc -c -fPIC user.cpp

Don't forget to initialise additional state variables in sdvini.cpp, which is inluded automatically through user.cpp.

For linking, a command link_sl of the ABAQUS environmental file abaqus_v6.env must be modified so that the C++ libraries are correctly loaded by the Intel Fortran compiler, which is used for linking. Under the tested configuration, it has been necessary to replace the -cxxlib-gcc option by -lstdc++.

Example of the abaqus_v6.env file is here.

David Masin 2011-02-07