A simple and robust Coulomb frictional algorithm based on 3 additional degrees-of-freedom and smoothing