The presented user subroutine is used to build up a communication between Universal Simulation Coupling Interface and Simulia Abaqus. It extracts predefined data from the result-file and writes the into a csv-file and reads boundary conditions from a csv-file to activate them on predefined nodes.
All user subroutines are programmed in Fortran95. The given samples and interfaces in the Abaqus online manual (you have to be registered) have been transformed from FORTRAN 77 to Fortran 95.
- Running version of Simulia Abaqus/Standard
- Running Intel Visual Fortran Compiler (The compiler version depends highly on the used Abaqus version)
You can check if the setup is successfully done by running the following command on a terminal, which should tell you that it passed the tests
abaqus -verify -user_std
- Abaqus Version: 2019
- Language: Fortran 95
- Compiler: Microsoft Visual Studio (Pro) 2015 and Intel Parallel Studio XE 2018
- Subroutines for Abaqus 2019
The following main routines are called automatically within a simulation when using this subrountine:
uExternalDB
: Routine that will be executed on every single event you can imagine within the simulation. Various execution events are delimited by the parameteranalysisPos
. In this case the output file (csv-file) will be created and kept open until the end of the analysis.uRdFil
: Routine for accessing data in the result-file. It is called at the end of any increment in which information are written into result-file. In this case the subroutine will be used to read void ratio and pore pressure from the result-file based on elements. Only the results (and the coordinates of the containing element) of the last increment will be saved into an output file (csv-file), opened through subroutine uExternalDB at the beginning of the analysis.disp
: Routine for manipulating/setting boundary conditions on specific points of the analysis. It is only called when a USER boundary condition is set in the input-file:\*BOUNDARY,USER
. All elements/nodes (in a set) are iterated separately when the routine is called by the analysis. Only the degree of freedom called in the input file can be set. In this case it is used to set the pore pressure boundary conditions.
The following Abaqus specific routines are part of the already mentioned main routines:
getJobName()
: get job namegetOutDir()
: get output directorystdb_AbqERR()
: throw an errorposFil()
: set specific boundary conditionsdbFile()
: read fil-file
*A List of all available routines can be found in the Abaqus online manual. (You have to be registered)
Reach out to me at one of the following places!
- Website at
www.gut.rwth-aachen.de
- ORCID
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details