Since the shallow copy will be used much more times than the deep copy, I set the shallow copy as default as
´´´
       PETScVector(const PETScVector &existing_vec, const bool shallow_copy = true);
´´´