Adaptive Mesh Refinement - Theory and Applications