making halo a template parameter of solver_common