No, deepcopy works fine with PETSc. Perhaps is faster to make a copy of a state, i.e. 
```s1 = copy.deepcopy(state)```
 instead of creating a new one by 
```s1 = State(state.patch,state.num_eqn,state.num_aux)```