xref: /petsc/src/ksp/pc/impls/python/pythonpc.c (revision d71ae5a4db6382e7f06317b8d368875286fe9008)
1af0996ceSBarry Smith #include <petsc/private/pcimpl.h> /*I "petscpc.h" I*/
2245f004bSJed Brown 
3245f004bSJed Brown /*@C
4f1580f4eSBarry Smith    PCPythonSetType - Initialize a `PC` object implemented in Python, a `PCPYTHON`.
5245f004bSJed Brown 
6f1580f4eSBarry Smith    Collective on pc
7245f004bSJed Brown 
8d8d19677SJose E. Roman    Input Parameters:
9f1580f4eSBarry Smith +  pc - the preconditioner (`PC`) context.
10245f004bSJed Brown -  pyname - full dotted Python name [package].module[.{class|function}]
11245f004bSJed Brown 
12245f004bSJed Brown    Options Database Key:
1367b8a455SSatish Balay .  -pc_python_type <pyname> - python class
14245f004bSJed Brown 
15245f004bSJed Brown    Level: intermediate
16245f004bSJed Brown 
17f1580f4eSBarry Smith .seealso: `PC`, `PCSHELL`, `PCCreate()`, `PCSetType()`, `PCPYTHON`, `PetscPythonInitialize()`
18245f004bSJed Brown @*/
19*d71ae5a4SJacob Faibussowitsch PetscErrorCode PCPythonSetType(PC pc, const char pyname[])
20*d71ae5a4SJacob Faibussowitsch {
21245f004bSJed Brown   PetscFunctionBegin;
22245f004bSJed Brown   PetscValidHeaderSpecific(pc, PC_CLASSID, 1);
23245f004bSJed Brown   PetscValidCharPointer(pyname, 2);
24cac4c232SBarry Smith   PetscTryMethod(pc, "PCPythonSetType_C", (PC, const char[]), (pc, pyname));
25245f004bSJed Brown   PetscFunctionReturn(0);
26245f004bSJed Brown }
27ebead697SStefano Zampini 
28ebead697SStefano Zampini /*@C
29f1580f4eSBarry Smith    PCPythonGetType - Get the type of a `PC` object implemented in Python, a `PCPYTHON`.
30ebead697SStefano Zampini 
31ebead697SStefano Zampini    Not collective
32ebead697SStefano Zampini 
33ebead697SStefano Zampini    Input Parameter:
34f1580f4eSBarry Smith .  pc - the preconditioner (`PC`) context.
35ebead697SStefano Zampini 
36ebead697SStefano Zampini    Output Parameter:
37ebead697SStefano Zampini .  pyname - full dotted Python name [package].module[.{class|function}]
38ebead697SStefano Zampini 
39ebead697SStefano Zampini    Level: intermediate
40ebead697SStefano Zampini 
41f1580f4eSBarry Smith .seealso: `PC`, `PCSHELL`, `PCCreate()`, `PCSetType()`, `PCPYTHON`, `PetscPythonInitialize()`, `PCPythonSetType()`
42ebead697SStefano Zampini @*/
43*d71ae5a4SJacob Faibussowitsch PetscErrorCode PCPythonGetType(PC pc, const char *pyname[])
44*d71ae5a4SJacob Faibussowitsch {
45ebead697SStefano Zampini   PetscFunctionBegin;
46ebead697SStefano Zampini   PetscValidHeaderSpecific(pc, PC_CLASSID, 1);
47ebead697SStefano Zampini   PetscValidPointer(pyname, 2);
48ebead697SStefano Zampini   PetscUseMethod(pc, "PCPythonGetType_C", (PC, const char *[]), (pc, pyname));
49ebead697SStefano Zampini   PetscFunctionReturn(0);
50ebead697SStefano Zampini }
51