[petsc-dev] circular dependencies SLEPc
Smith, Barry F.
bsmith at mcs.anl.gov
Wed Jun 26 14:29:46 CDT 2019
> On Jun 26, 2019, at 1:53 PM, Jed Brown <jed at jedbrown.org> wrote:
> "Smith, Barry F." <bsmith at mcs.anl.gov> writes:
>> It is still a PC, it may as part of its computation solve an eigenvalue problem but its use is as a PC, hence does not belong in SLEPc.
> Fine; it does not belong in src/ksp/pc/.
Why not? From the code mangement point of view that is the perfect place for it. It just depends on an external package in the same way that PCHYPRE depends on an external library. Having it off in some other directory src/plugins would serve no purpose. Of course making sure it doesn't get compiled into -lpetsc may require a tweak to the make infrastructure. Make could, for example, skip plugin subdirectories for example.
BTW: Matt's perverse use of SNES from DMPLEx could also be fixed to work this way instead of the disgusting PetscObject casting used to cancel the SNES object.
More information about the petsc-dev