Abaqus Code for a Residual Control Staggered Solution Scheme for the Phase-Field Modeling of Brittle and Ductile Fracture

Published: 11-11-2020| Version 4 | DOI: 10.17632/p77tsyrbx2.4
Karlo Seleš


Abaqus UEL and UMAT subroutines for the phase-field modelling of brittle and ductile fracture. The code consists of the 3-layered system including the user elements and user material subroutine producing a staggered algorithm with a residual norm-based stopping criterion. The finite element formulations include 4-node full integration 2D and 8-node full integration 3D linear elements. The source code and input files for the examples published in the associated journal paper as well as the PhD thesis are provided here. The files contain detailed explanations and instructions for users. This is an updated version of the dataset! Ductile material behavior has been included with 2 different phase-field formulations, more examples with better explanations, python scripts etc. For simplicity, the brittle examples are included with elastic material model only. In future versions, complete generalization of the model will be provided. See more info in Version_4-ChangeLog.txt! For additional information, suggestions, comments or collaboration, please contact me at karlo.seles@fsb.hr! To be added in the next versions: - Tetrahedral finite element formulation - Python script for the input file generation - Fatigue material behavior model with cyclically loaded examples - Completely generalized model presented in the author's PhD thesis: -- Brittle, ductile and fatigue behavior in one model -- Microstructural geometry example with contact problems - Finite strain theory - Complete thread-parallel computation for increased efficiency


Steps to reproduce

The analysis is run as usual by writing "abaqus job=input.inp user=subroutine.for" in the terminal. (Note that you have to have Abaqus standard installed and linked with Fortran compiler) ** It is recommended to run the simulations with the thread-parallelization option: "abaqus job=input.inp user=subroutine.for cpus=N standard_parallel=solver int", where N is the number of threads! To use the code on your own examples, a blank input file templates for 2D and 3D cases are provided (02a_InputFileTemplate-2D.inp and 02b_InputFileTemplate-3D.inp). The templates have to be updated with your mesh, material and boundary conditions information as described in the file. In addition, you should take the appropriate Fortran file (.for) for 2D or 3D problem and change "nel" parameter to match the number of elements in the layers. (Don't forget to change it in UMAT part of the file, too!) For better visualisation in Abaqus viewer, remove the Layer 1 and 3 elements from visualisation: View > ODB display options > uncheck Show reference points Material properties units: If geometry is in mm -> Length scale in mm -> Fracture toughness (Gc) in kN/mm or N/mm -> Youngs' modulus and plastic material properties in kN/mm or N/mm, accordingly.