Hi all, I'm currently implementing a Gauss-Newton approach for minimizing a non-linear cost function using PETSc4py. The (rectangular) linear systems I am trying to solve have dimensions of about (5N, N), where N is in the range of several hundred millions.
Due to its size and because it's an over-determined system, I use LSQR in conjunction with a preconditioner (which operates on A^T x A, e.g. BJacobi). Depending on the ordering of the unknowns the algorithm only converges for special cases. When I use a direct LR solver (as preconditioner) it consistently converges, but consumes too much memory. I have read in the manual that the LR solver internally also applies a matrix reordering beforehand. My question would be: How can I improve the ordering of the unknowns for a rectangular matrix (in order to converge also with iterative preconditioners)? If I use MatGetOrdering(), it only works for square matrices. Is there a way to achieve this from within PETSc4py? ParMETIS seems to be a promising framework for that task. Is it possible to apply its reordering algorithm to a rectangular PETSc-matrix? I would be thankful for every bit of advice that might help. Best regards, Marcel ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------
