I changed the boundary_conditions in the x-direction to PeriodicBoundaryCondition. The computed residual has reduced to the same order of magnitude of required residual, but still larger than it. Without the spatial region, the device is easy to converge. But when a spatial region is applied on the device, it is difficult to converge even if the computed residual is within the tolerable error range.