I've implemented Hill's 48 and Barlat2000-2D (plane stress) yield criteria using cutting back algorithm. It is an explicit one; therefore, not unconditionally stable. My umats including Swift law for hardening give the same results with the build-in Hill's 48 and Barlat2000-2D of LS-Dyna, but whenever I add the fracture model, they become unstable. For the simulation of a tensile test, it works well if I use Hill's 48, but it is highly unstable (convergence problems) for a square punch simulation. The one with Barlat2000-2D is not stable at all as its derivations are more complex and require more computation. I believe that the post failure softening part of the fracture model causes instability. I'm thinking of implementing these umats as implicit and with an implicit return mapping algorithm. I have read some of the chapters of the related books, but it is hard to understand the notations and the construction of the corresponding computational algorithm. It would be great to have a step by step explanation of an implicit umat. Can anyone provide such help to all like me struggling with implicit user material subroutines? It would be a perfect source for a lot of people if somebody could spend half an hour for writing down. Thanks in advance.
P.s. Which return mapping algorithm is the most robust one?