Self-adaptive finite element simulation of miscible displacement in porous media