[petsc-users] Creating PCFieldSplit Preconditioner in source code

Jed Brown jedbrown at mcs.anl.gov
Mon Nov 19 02:58:34 CST 2012


On Mon, Nov 19, 2012 at 9:54 AM, Thomas Witkowski <
thomas.witkowski at tu-dresden.de> wrote:

>  Jed: To you think that I can write a work-around in just using
> PetscOptionsInsertString before KSPSetUp with some settings that I don't
> will use later but which would make KSPSetUp on the corresponding solver
> object cheap?
> Thomas
> Am 19.11.2012 09:48, schrieb Jed Brown:
> Unfortunately, options are currently the only way to avoid the initial
> setup. We could add a special setup routine to the PCFieldSplit interface
> that you could call, but there are lots of other PCs that you sometimes
> want to reconfigure after "partial setup". I've been unhappy with this for
> years, but have not found a general and maintainable way to support, and
> configuration via options is a better approach most of the time.
> On Mon, Nov 19, 2012 at 2:29 AM, Thomas Witkowski <
> thomas.witkowski at tu-dresden.de> wrote:
>> In the implementation of my Navier-Stokes solver, I initialize the
>> PCFieldSplit preconditioner in my source code (thus not on the command
>> line) in the following way:
>>     PCSetType(pc, PCFIELDSPLIT);
>>     PCFieldSplitSetType(pc, PC_COMPOSITE_SCHUR);
>>     PCFieldSplitSetSchurFactType(pc, PC_FIELDSPLIT_SCHUR_FACT_FULL);
>>     ...
>>     KSPSetUp(ksp);
>>     KSP *subKsp;
>>     PetscInt nSubKsp;
>>     PCFieldSplitGetSubKSP(pc, &nSubKsp, &subKsp);
>>     KSP kspVelocity = subKsp[0];
>>     KSP kspSchur = subKsp[1];
>>     ...
>> And then kspVelocity and kspSchur are filled with appropriate options.
>> The point is now, that to get the sub solver objects, I have to run
>> KSPSetUp before. In this case, the sub solver objects are also initialized
>> with some predefined options (block jacobi ILU), which I don't need and
>> what takes some time and memory. Is there any other way to get the sub
>> solver objects before and to initialize than the outer solver correctly
>> with the inner solver I have specified?
>> Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20121119/3c29c5ed/attachment-0001.html>

More information about the petsc-users mailing list