Computational methods for fracture in rock: a review and recent advances