[petsc-users] Jacobian matrix for dual porosity model

Jed Brown jed at jedbrown.org
Tue Jun 13 10:06:24 CDT 2017


Adrian Croucher <a.croucher at 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170613/c33cf2f5/attachment.pgp>


More information about the petsc-users mailing list