Consider a problem where space is filled with a liquid and a solid phase, with a large, complicated geometry. On each of the phases, there's an electrical potential/poisson equation. The equations are coupled by a nonlinear surface current through the phase boundary.

Currently, an FEM is constructed for both phases and assembled into one large Jacobian which is then solved as a black-box in a Newton method. This leads to bad matrix condition and bad performance.

To improve performance, I plan to use PETSc. For multi-physics problems, they suggest the usage of nested matrices and then to use a separate preconditioner for each of the equations. BUT, for all the examples I found so far, there's one big difference: The examples always consider different physical equations on one phase which are coupled in all points in space. In my case, I have just one equation per phase, but a coupling only on the boundaries of the phase, and nonlinear.

How would you deal with that kind of problem in PETSc? (Emphasis on the combination of matrices, solvers and preconditioners.)


1 Answer 1


The strategy would really be very similar -- partition your matrix and vectors into "blocks" that correspond to the variables living on the different phases. The difference is really just that the coupling isn't for all variables at the same location, but only for the variables located on different phases at the same points on interfaces.

That means that the off-diagonal blocks are much sparser than they would be in a multiphysics problem because all of the variables in the interior of a phase never couple with any variable on a different phase and consequently there are no entries in the matrix for these variables outside the diagonal blocks of the matrix.

The result is also that if you have a preconditioner for each phase (i.e., a block diagonal matrix), then it is likely a good preconditioner for the whole matrix because the off-diagonal blocks are mostly empty.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.