[petsc-users] petsc4py and PCMGGetSmoother

Matthew Knepley knepley at gmail.com
Tue May 28 10:13:53 CDT 2024


On Tue, May 28, 2024 at 11:04 AM Jose E. Roman via petsc-users <
petsc-users at mcs.anl.gov> wrote:

> It should be: smoother=pc. getMGSmoother(0) The general rule is to drop
> the class name and move "Get" or "Set" to the front (in small letters). But
> sometimes this does not hold. It is better that you check the source code,
> for instance do "git
> ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
> This message came from outside your organization.
>
> ZjQcmQRYFpfptBannerEnd
>
> It should be:    smoother=pc.getMGSmoother(0)
> The general rule is to drop the class name and move "Get" or "Set" to the front (in small letters). But sometimes this does not hold. It is better that you check the source code, for instance do "git grep PCMGGetSmoother -- src/binding" to locate where the C function is called from within petsc4py.
>
> And we now also have documentation:

  https://urldefense.us/v3/__https://petsc.org/release/petsc4py/reference/petsc4py.PETSc.PC.html__;!!G_uCfscf7eWS!c3p1NNyTOWrr2Svr5gbJxnbWYQ_UjM4v52aqXrRsVOsL0rBd5lggGW0QXDAzJEo_DuEtmLvXLsrXk1mFzxO5$ 

  Thanks,

     Matt

> Jose
>
> > El 28 may 2024, a las 16:38, Klaij, Christiaan <C.Klaij at marin.nl> escribió:
> >
> > This Message Is From an External Sender
> > This message came from outside your organization.
> > I'm attempting some rapid prototyping with petsc4py. The idea is basically to read-in a matrix and rhs, setup GAMG as ksppreonly, get the smoother and overrule it with a python function of my own, similar to the demo where the Jacobi method is user-defined in python. So far I have something like this:
> >
> > pc = PETSc.PC().create()
> > pc.setOperators(A)
> > pc.setType(PETSc.PC.Type.GAMG)
> > pc.PCMGGetSmoother(l=0,ksp=smoother)
> >
> > which triggers the following error:
> >
> > AttributeError: 'petsc4py.PETSc.PC' object has no attribute 'PCMGGetSmoother'
> >
> > 1) Am I doing something wrong, or is this function just not available through python?
> >
> > 2) How can I tell up front if a function is available, only if it is listed in libpetsc4py.pyx?
> >
> > 3) Given the function description in C from the manual pages, how can I deduce the python syntax?
> > (perhaps it's supposed to be ksp = pc.PCMGGetSmoother(l=0), or something else entirely)
> >
> > Thanks for your help,<image663216.png>
> > dr. ir. Christiaan  Klaij  |  Senior Researcher  |  Research & Development
> > T +31 317 49 33 44  |   C.Klaij at marin.nl | https://urldefense.us/v3/__http://www.marin.nl__;!!G_uCfscf7eWS!ZTfC2k6ASlYOqzjxlaly2X8L-9NS8fzzLfjyqZtXWmY8PjiE5RBTDhE92LAZnY0I2cIn-iUK5vuRYHqeVTaOpoyb$<image279842.png><image807462.png><image039071.png>
>
>
>
>

-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!c3p1NNyTOWrr2Svr5gbJxnbWYQ_UjM4v52aqXrRsVOsL0rBd5lggGW0QXDAzJEo_DuEtmLvXLsrXk9nFHPiP$  <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!c3p1NNyTOWrr2Svr5gbJxnbWYQ_UjM4v52aqXrRsVOsL0rBd5lggGW0QXDAzJEo_DuEtmLvXLsrXk-Ul6hWC$ >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240528/de75cfc5/attachment-0001.html>


More information about the petsc-users mailing list