> On Jun 26, 2019, at 10:55 AM, Jed Brown <[email protected]> wrote: > > "Smith, Barry F. via petsc-dev" <[email protected]> writes: > >>> On Jun 26, 2019, at 9:56 AM, Balay, Satish via petsc-dev >>> <[email protected]> wrote: >>> >>> On Wed, 26 Jun 2019, Jakub Kruzik via petsc-dev wrote: >>> >>>> Hello, >>>> >>>> as I mentioned in PR #1819, I would like to use SLEPc in PETSc. >>>> >>>> Currently when PETSc is configured with --download-slepc, it defines >>>> PETSC_HAVE_SLEPC and each compilation of PETSc recompiles SLEPc. >>> >>> yes - slepc uses petsc, so when petsc is updated - its best to rebuild slepc >>> >>> You can ignore PETSC_HAVE_SLEPC flag [its just a build tool thingy] >>> PETSc code does not use this flag - and there is no circular >>> dependency. >>> >>>> The first way to use SLEPc is from an example. That should be easy, all we >>>> need is to add -lslepc when compiling an example. >>> >>> Its best to use slepc examples as templates - and slepc makefiles [as >>> examples]. >>> >>> --download-slepc is a convinence feature to install petsc and slepc in >>> a single go. It does not change how you would use slepc. >>> >>> Satish >>> >>> >>>> >>>> The other option is to use SLEPc inside PETSc code. I do not know how to >>>> achieve this. One way could be to define PETSC_HAVE_SLEPC after the >>>> compilation of SLEPc and again compile PETSc but this time linking with >>>> SLEPc. >>>> Although, even if it works, it is ugly. >> >> If you make SLEPc calls from PETSc source you should only need the SLEPc >> header files to compile the PETSc source; not the SLEPc library. So one way >> to accomplish this would be to do a "partial" install of SLEPc, build PETSc >> (that uses SLEPc) and then complete the SLEPc install. When --download-slepc >> is used this would mean during the SLEPc.py script it would copy over the >> SLEPc include files to the prefix location and after PETSc is built it would >> build the SLEPc libraries and move them to the prefix location. The on iffy >> thing is that SLEPc include files may depend on generated PETSc include >> files (which are not fully generated until configure is done). Thus instead >> of having SLEPc.py move the SLEPc include to the prefix location it would >> need to post-pone that until just at the end of configure (we have other >> packages to do this). So when you ready to try this out let us know and we >> can help with the infrastructure. (it will avoid 2 builds of either PETSc or >> SLEPc). > > That is disgusting. > > If code in libpetsc.so depends on libslepc.so, then you'd have a circular > dependency. > > > You can implement and register a PC in SLEPc (it would go in libslepc.so). It makes no sense to have a PC in SLEPc.
Re: [petsc-dev] circular dependencies SLEPc
Smith, Barry F. via petsc-dev Wed, 26 Jun 2019 11:07:43 -0700
- Re: [petsc-dev] circular dependencies SLEPc Jed Brown via petsc-dev
- Re: [petsc-dev] circular dependencies S... Matthew Knepley via petsc-dev
- Re: [petsc-dev] circular dependenci... Jed Brown via petsc-dev
- Re: [petsc-dev] circular depend... Matthew Knepley via petsc-dev
- Re: [petsc-dev] circular de... Jed Brown via petsc-dev
- Re: [petsc-dev] circular de... Jed Brown via petsc-dev
- Re: [petsc-dev] circular de... Fande Kong via petsc-dev
- Re: [petsc-dev] circular de... Balay, Satish via petsc-dev
- Re: [petsc-dev] circular de... Matthew Knepley via petsc-dev
- Re: [petsc-dev] circular de... Smith, Barry F. via petsc-dev
- Re: [petsc-dev] circular dependencies S... Smith, Barry F. via petsc-dev
- Re: [petsc-dev] circular dependenci... Jed Brown via petsc-dev
- Re: [petsc-dev] circular depend... Jed Brown via petsc-dev
- Re: [petsc-dev] circular dependenci... Jed Brown via petsc-dev
- Re: [petsc-dev] circular depend... Smith, Barry F. via petsc-dev
- Re: [petsc-dev] circular de... Jed Brown via petsc-dev
- Re: [petsc-dev] circular de... Smith, Barry F. via petsc-dev
- Re: [petsc-dev] circular de... Jed Brown via petsc-dev
- Re: [petsc-dev] circular de... Jed Brown via petsc-dev
- Re: [petsc-dev] circular de... Matthew Knepley via petsc-dev
- Re: [petsc-dev] circular de... Pierre Jolivet via petsc-dev
