I want to solve the equation in my FEM code (that makes already use of PETSc) with a Schur complement approach (iterative substructuring). Although I have some basic knowledge about PETSc, I have no good idea how to start with it. To concretize my question, I want to solve a system of the form
[A_II A_IB] * [u_I] = [f_I] [A_IB^T A_BB] [u_B] [f_B] A_II is a block diagonal matrix with each block consisting of all interior node of one partition. A_BB is the block consisting of all bounday nodes. A_IB is the connection between the interior and the bounday node. The same for the unknown vector u und the right hand side vector f. My first idea is not to assemble to matrices A_II, A_IB and A_BB in a global way, but just local and to define their action using a MatShell for each of these matrices. Okay, but what's about the global index of the whole system. Till now I have a continuous global index of the nodes on each partition, what is required by PETSC, if I'm right. But for using a Schur complement approach I need to split the index in the interior and the boundary nodes. Who to circumvent this (first of my) problem? Thank you for any advise, Thomas
