[petsc-users] Nullspace issue
Thomas Witkowski
thomas.witkowski at tu-dresden.de
Wed Jun 13 01:13:57 CDT 2012
Barry and Jed: Thank you very much for all the hints. Now I have a clue
where I have to start ...
Thomas
Am 12.06.2012 22:47, schrieb Barry Smith:
> On Jun 12, 2012, at 3:42 PM, Jed Brown wrote:
>
>> On Tue, Jun 12, 2012 at 3:35 PM, Barry Smith<bsmith at mcs.anl.gov> wrote:
>> G-S and Shur complement type fieldsplit PCs almost always work right so long as you have decent preconditioners for the original block(s). Often you don't need much of anything to precondition the Schur complement.
>>
>> Thomas, note that you'll need Schur or some surrogate preconditioner to deal with incompressibility. It'll be worth understanding fieldsplit variants while working with Navier-Stokes and Cahn-Hilliard separately. Once you understand how to "drive" fieldsplit on those systems separately, you can put them together.
> Very good point Jed. Until you can solve N.S. efficiently (for example using PCFIELDSPLIT etc) you really cannot put them together. But that exercise is not "wasted" effort because you will understand fieldsplit and Schur preconditioners and then extending to C.H will be much easier. PCFIELDSPLIT is very much a divide and conquer algorithmic approach, for for divide and conquer to work you need to know how to conquer the pieces.
>
> Barry
>
>>
>>
>> As I said before you can construct a preconditioner for the N.S. block by again using a PCFIELDSPLIT on that (recursive use of PCs).
>>
>> Note that once you have defined your blocks (in the simple case if you have all your degrees of freedom collocated (no staggered grid) just set the Vec and Mat block size; otherwise you need to construct an IS that defines each block) then experimenting is easy and can be done at the command line without changing the code.
>>
More information about the petsc-users
mailing list