" A contact algorithm for 3D discrete and finite element contact problems based on penalty function method "