xref: /petsc/src/snes/impls/python/pythonsnes.c (revision 9371c9d470a9602b6d10a8bf50c9b2280a79e45a)
1af0996ceSBarry Smith #include <petsc/private/snesimpl.h> /*I "petscsnes.h" I*/
2c4aff060SBarry Smith 
3c4aff060SBarry Smith /*@C
4a5b23f4aSJose E. Roman    SNESPythonSetType - Initialize a SNES object implemented in Python.
5c4aff060SBarry Smith 
6c4aff060SBarry Smith    Collective on SNES
7c4aff060SBarry Smith 
8d8d19677SJose E. Roman    Input Parameters:
9c4aff060SBarry Smith +  snes - the nonlinear solver (SNES) context.
10c4aff060SBarry Smith -  pyname - full dotted Python name [package].module[.{class|function}]
11c4aff060SBarry Smith 
12c4aff060SBarry Smith    Options Database Key:
1367b8a455SSatish Balay .  -snes_python_type <pyname> - python class
14c4aff060SBarry Smith 
15c4aff060SBarry Smith    Level: intermediate
16c4aff060SBarry Smith 
17db781477SPatrick Sanan .seealso: `SNESCreate()`, `SNESSetType()`, `SNESPYTHON`, `PetscPythonInitialize()`
18c4aff060SBarry Smith @*/
19*9371c9d4SSatish Balay PetscErrorCode SNESPythonSetType(SNES snes, const char pyname[]) {
20c4aff060SBarry Smith   PetscFunctionBegin;
210700a824SBarry Smith   PetscValidHeaderSpecific(snes, SNES_CLASSID, 1);
22c4aff060SBarry Smith   PetscValidCharPointer(pyname, 2);
23cac4c232SBarry Smith   PetscTryMethod(snes, "SNESPythonSetType_C", (SNES, const char[]), (snes, pyname));
24c4aff060SBarry Smith   PetscFunctionReturn(0);
25c4aff060SBarry Smith }
26ebead697SStefano Zampini 
27ebead697SStefano Zampini /*@C
28ebead697SStefano Zampini    SNESPythonGetType - Get the type of a SNES object implemented in Python.
29ebead697SStefano Zampini 
30ebead697SStefano Zampini    Not collective
31ebead697SStefano Zampini 
32ebead697SStefano Zampini    Input Parameter:
33ebead697SStefano Zampini .  snes - the nonlinear solver (SNES) context.
34ebead697SStefano Zampini 
35ebead697SStefano Zampini    Output Parameter:
36ebead697SStefano Zampini .  pyname - full dotted Python name [package].module[.{class|function}]
37ebead697SStefano Zampini 
38ebead697SStefano Zampini    Level: intermediate
39ebead697SStefano Zampini 
40ebead697SStefano Zampini .seealso: `SNESCreate()`, `SNESSetType()`, `SNESPYTHON`, `PetscPythonInitialize()`, `SNESPythonSetType()`
41ebead697SStefano Zampini @*/
42*9371c9d4SSatish Balay PetscErrorCode SNESPythonGetType(SNES snes, const char *pyname[]) {
43ebead697SStefano Zampini   PetscFunctionBegin;
44ebead697SStefano Zampini   PetscValidHeaderSpecific(snes, SNES_CLASSID, 1);
45ebead697SStefano Zampini   PetscValidPointer(pyname, 2);
46ebead697SStefano Zampini   PetscUseMethod(snes, "SNESPythonGetType_C", (SNES, const char *[]), (snes, pyname));
47ebead697SStefano Zampini   PetscFunctionReturn(0);
48ebead697SStefano Zampini }
49