It would also be very straightforward for you to provide a merge request that adds support for PETSc to directly use SuperLU_DIST and Strumpacks transpose solver capability. Just add the support to superlu_dist.c (and for strumpack) mimicking the style in mumps.c More specifically add a
PetscErrorCode MatSolveTranspose_SuperLU_DIST(Mat A,Vec b,Vec x) function almost identical to MatSolveTranspose_MUMPS() but setting Mat_SuperLU_DIST *lu=(Mat_SuperLU_DIST*)A->data; lu->options.trans = TRANS; and register it where the solve is registered later in the file (seach for ops->solve) Detailed instructions on making a PETSc MR can be found at https://petsc.org/release/developers/integration/#getting-your-code-and-documentation-into-petsc > On Apr 9, 2022, at 8:57 PM, Zhang, Hong via petsc-users > <[email protected]> wrote: > > Jean, > > You can use -ksp_use_explicittranspose to make KSP transpose the system > explicitly in the transposed solve. This option was designed to enable more > choices of linear solvers and preconditions in adjoint solves, of course, at > a cost. > > Hong (Mr.) > >> On Apr 8, 2022, at 4:52 PM, Jean Marques <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi all, >> >> This may be a naive question, and I hope this is the right place to ask >> about it. >> I need to solve a direct linear system with a sparse matrix R, then an >> adjoint system the hermitian of R. >> >> I use a petsc4py, so what I do is this: >> self.R.setUp() >> to set up the PETSc KSP variable R, then I do: >> self.R.solve(f, q) >> and later: >> self.R.solveTranspose(f, q) >> >> However, 'solveTranspose()' only works when I use MUMPS. If I try STRUMPACK >> or SUPERLU_DIST it fails, it seems that 'solveTranpose()' is not defined for >> them? or is there a specific way to call them with these libraries? >> Maybe the approach would be to define another 'self.R' variable but then set >> it as a transpose().conjugate() before setUp()? >> I was trying STRUMPACK because it has a low-memory approach and that's my >> main bottleneck. >> >> I appreciate any help you can provide. >> >> Best, >> Jean >> >> -- >> Jean Helder Marques Ribeiro >> Ph.D. Candidate >> University of California, Los Angeles >> 420 Westwood Plaza, Los Angeles, CA 90095 >> phone: (310) 689-6593 >
