<div dir="ltr">Alright, it sounds like it might be the best choice to use the ISTL matrix/vector functionality for creating the Jacobian and right-hand-sides, and as far as I can see there is plenty of functionality. It would be nice to be able to use AMG.<div><br></div><div>@Christian Engwer: I am currently using the <a href="http://www.opm-project.org/documentation/master/opm-autodiff/html/class_opm_1_1_auto_diff_block.php">opm-autodiff</a> library to obtain the Jacobian and residual equations so everything is currently in the Eigen SparseMatrix and array format.</div><div><br></div><div>@Oliver Sander: I am writing my master thesis on high-permance computing in optimization of oil production on the Technical University of Denmark. I have a fully implicit two-phase solver which also uses the adjoint method for computation of gradients.</div><div><br></div><div>Then I use <a href="http://www.mcs.anl.gov/research/projects/tao/">TAO</a> which is distributed together with <a href="http://www.mcs.anl.gov/petsc/">PETSc</a> to carry out single shooting optimization. I would like to use ISTL to be able to solve the equations in parallel since we have an <a href="http://www.cc.dtu.dk">HPC cluster</a> here on the university. Currently, I am using BiCGStab from Eigen but it doesn't run in parallel and the other linear solvers in Eigen are not supported.</div><div><br></div><div>At some point I would also like to use the Constrained Pressure Residual preconditioner for the Newton iterations and adjoint equations (there is some adjusted CPR preconditioner for this).</div><div><br></div><div>My deadline is in one month, however, so I may have to implement the ISTL solvers at a later point.</div><div><br></div><div>Thanks for the help</div><div>- Tobias</div></div>