Hi,

I have noticed that when I use a custom PETSc solver in my forward solver, for example:

```
solver = PETScKrylovSolver("cg", "jacobi")
solver.set_from_options()
solver.solve(A, u.vector(), b) #Solve forward problem
```

subsequent `compute_gradient`

calls using the solution of my forward solve uses a petsc_krylov solver. Having looked at the source code within `fenics_adjoint/petsc_krylov_solver.py`

I have been able to edit the solver settings manually. However I would like to know if there if

- it is possible to force compute_gradient to use a PETSc krylov solver (normally if the forward solver uses the black box method of
`solve(a==L,.....)`

,`compute_gradient`

will not use a PETSc solver)? - it is possible change the PETSc solver settings used by compute_gradient without manually editing the source code?

Cheers,

Kiri