Is it needed to have a default value for `mat_op`? I wonder which of the above two constructors is called for `PETScMatrix(10)`.