Error Estimation and Adaptive Discretization Methods in Computational