Actual source code: pythonpc.c

      1: #include <petsc/private/pcimpl.h>

      3: /*@
      4:    PCPythonSetType - Initialize a `PC` object implemented in Python, a `PCPYTHON`.

      6:    Collective

      8:    Input Parameters:
      9: +  pc - the preconditioner (`PC`) context.
     10: -  pyname - full dotted Python name [package].module[.{class|function}]

     12:    Options Database Key:
     13: .  -pc_python_type <pyname> - python class

     15:    Level: intermediate

     17: .seealso: [](ch_ksp), `PC`, `PCSHELL`, `PCCreate()`, `PCSetType()`, `PCPYTHON`, `PetscPythonInitialize()`
     18: @*/
     19: PetscErrorCode PCPythonSetType(PC pc, const char pyname[])
     20: {
     21:   PetscFunctionBegin;
     23:   PetscAssertPointer(pyname, 2);
     24:   PetscTryMethod(pc, "PCPythonSetType_C", (PC, const char[]), (pc, pyname));
     25:   PetscFunctionReturn(PETSC_SUCCESS);
     26: }

     28: /*@
     29:    PCPythonGetType - Get the type of a `PC` object implemented in Python, a `PCPYTHON`.

     31:    Not Collective

     33:    Input Parameter:
     34: .  pc - the preconditioner (`PC`) context.

     36:    Output Parameter:
     37: .  pyname - full dotted Python name [package].module[.{class|function}]

     39:    Level: intermediate

     41: .seealso: [](ch_ksp), `PC`, `PCSHELL`, `PCCreate()`, `PCSetType()`, `PCPYTHON`, `PetscPythonInitialize()`, `PCPythonSetType()`
     42: @*/
     43: PetscErrorCode PCPythonGetType(PC pc, const char *pyname[])
     44: {
     45:   PetscFunctionBegin;
     47:   PetscAssertPointer(pyname, 2);
     48:   PetscUseMethod(pc, "PCPythonGetType_C", (PC, const char *[]), (pc, pyname));
     49:   PetscFunctionReturn(PETSC_SUCCESS);
     50: }