Adrian Croucher <a.crouc...@auckland.ac.nz> writes: > One way might be to form the whole Jacobian but somehow use a modified > KSP solve which would implement the reduction process, do a KSP solve on > the reduced system of size n, and finally back-substitute to find the > unknowns in the matrix rock cells.
You can do this with PCFieldSplit type Schur, but it's a lot heavier than you might like. > Another way might be to form only the reduced-size Jacobian and the > other block-diagonal matrices separately, use KSP to solve the reduced > system but first incorporate the reduction process into the Jacobian > calculation routine, and somewhere a post-solve step to back-substitute > for the unknowns in the matrix cells. However currently we are using > finite differences to compute these Jacobians and it seems to me it > would be messy to try to do that separately for each of the > sub-matrices. Doing it the first way above would avoid all that. If you choose this option, you would make your residual evaluation perform the local solve (i.e., eliminating the local variables). > Any suggestions for what might be a good approach? or any other ideas > that could be easier to implement with PETSc but have similar > efficiency? I didn't see anything currently in PETSc specifically for > solving block-tridiagonal systems. Any incomplete or complete factorization (optionally inside block Jacobi) is an O(N) direct solver for a tridiagonal system.
signature.asc
Description: PGP signature