Barry Smith <[email protected]> writes: >> Instead, it >> uses block Jacobi in which all blocks but one are empty. > > This seems a rather ad hoc way of handling it. Why not have a > proper mechanism for telescoping solvers rather than an ad hoc > block Jacobi with 0 sizes on most blocks?
How would that "proper mechanism" look? >>> And why does it have different solvers on each process? >> >> It doesn't, but it calls PCBJacobiGetSubKSP() so as to configure the >> inner PC to be PCLU, but PCBJacobiGetSubKSP conservatively sets this >> flag: >> >> jac->same_local_solves = PETSC_FALSE; /* Assume that local solves >> are now different; >> not necessarily true >> though! This flag is >> used only for >> PCView_BJacobi() */ > > Why not just fix this instead. Fix it so it doesn't set the flag in this > situation. Sure, where would we set that flag? Or, how do we compare solvers (on different subcomms) for "equivalent" configuration?
