1*22d6dc08SStefano Zampini #include "petscsystypes.h"
2*22d6dc08SStefano Zampini #include <petsc/private/viewerimpl.h> /*I "petscsys.h" I*/
3*22d6dc08SStefano Zampini
4*22d6dc08SStefano Zampini /*@
5*22d6dc08SStefano Zampini PetscViewerPythonSetType - Initialize a `PetscViewer` object implemented in Python.
6*22d6dc08SStefano Zampini
7*22d6dc08SStefano Zampini Collective
8*22d6dc08SStefano Zampini
9*22d6dc08SStefano Zampini Input Parameters:
10*22d6dc08SStefano Zampini + viewer - the viewer object.
11*22d6dc08SStefano Zampini - pyname - full dotted Python name [package].module[.{class|function}]
12*22d6dc08SStefano Zampini
13*22d6dc08SStefano Zampini Options Database Key:
14*22d6dc08SStefano Zampini . -viewer_python_type <pyname> - python class
15*22d6dc08SStefano Zampini
16*22d6dc08SStefano Zampini Level: intermediate
17*22d6dc08SStefano Zampini
18*22d6dc08SStefano Zampini .seealso: [](sec_viewers), `PetscViewer`, `PetscViewerType`, `PetscViewerCreate()`, `PetscViewerSetType()`, `PETSCVIEWERPYTHON`, `PetscPythonInitialize()`
19*22d6dc08SStefano Zampini @*/
PetscViewerPythonSetType(PetscViewer viewer,const char pyname[])20*22d6dc08SStefano Zampini PetscErrorCode PetscViewerPythonSetType(PetscViewer viewer, const char pyname[])
21*22d6dc08SStefano Zampini {
22*22d6dc08SStefano Zampini PetscFunctionBegin;
23*22d6dc08SStefano Zampini PetscValidHeaderSpecific(viewer, PETSC_VIEWER_CLASSID, 1);
24*22d6dc08SStefano Zampini PetscAssertPointer(pyname, 2);
25*22d6dc08SStefano Zampini PetscTryMethod(viewer, "PetscViewerPythonSetType_C", (PetscViewer, const char[]), (viewer, pyname));
26*22d6dc08SStefano Zampini PetscFunctionReturn(PETSC_SUCCESS);
27*22d6dc08SStefano Zampini }
28*22d6dc08SStefano Zampini
29*22d6dc08SStefano Zampini /*@
30*22d6dc08SStefano Zampini PetscViewerPythonGetType - Get the Python name of a `PetscViewer` object implemented in Python.
31*22d6dc08SStefano Zampini
32*22d6dc08SStefano Zampini Not Collective
33*22d6dc08SStefano Zampini
34*22d6dc08SStefano Zampini Input Parameter:
35*22d6dc08SStefano Zampini . viewer - the viewer
36*22d6dc08SStefano Zampini
37*22d6dc08SStefano Zampini Output Parameter:
38*22d6dc08SStefano Zampini . pyname - full dotted Python name [package].module[.{class|function}]
39*22d6dc08SStefano Zampini
40*22d6dc08SStefano Zampini Level: intermediate
41*22d6dc08SStefano Zampini
42*22d6dc08SStefano Zampini .seealso: [](sec_viewers), `PetscViewer`, `PetscViewerType`, `PetscViewerCreate()`, `PetscViewerSetType()`, `PETSCVIEWERPYTHON`, `PetscPythonInitialize()`, `PetscViewerPythonSetType()`
43*22d6dc08SStefano Zampini @*/
PetscViewerPythonGetType(PetscViewer viewer,const char * pyname[])44*22d6dc08SStefano Zampini PetscErrorCode PetscViewerPythonGetType(PetscViewer viewer, const char *pyname[])
45*22d6dc08SStefano Zampini {
46*22d6dc08SStefano Zampini PetscFunctionBegin;
47*22d6dc08SStefano Zampini PetscValidHeaderSpecific(viewer, PETSC_VIEWER_CLASSID, 1);
48*22d6dc08SStefano Zampini PetscAssertPointer(pyname, 2);
49*22d6dc08SStefano Zampini PetscUseMethod(viewer, "PetscViewerPythonGetType_C", (PetscViewer, const char *[]), (viewer, pyname));
50*22d6dc08SStefano Zampini PetscFunctionReturn(PETSC_SUCCESS);
51*22d6dc08SStefano Zampini }
52*22d6dc08SStefano Zampini
53*22d6dc08SStefano Zampini /*@
54*22d6dc08SStefano Zampini PetscViewerPythonViewObject - View a `PetscObject`.
55*22d6dc08SStefano Zampini
56*22d6dc08SStefano Zampini Collective
57*22d6dc08SStefano Zampini
58*22d6dc08SStefano Zampini Input Parameters:
59*22d6dc08SStefano Zampini + viewer - the viewer object.
60*22d6dc08SStefano Zampini - obj - the object to be viewed.
61*22d6dc08SStefano Zampini
62*22d6dc08SStefano Zampini Level: intermediate
63*22d6dc08SStefano Zampini
64*22d6dc08SStefano Zampini .seealso: [](sec_viewers), `PetscViewer`, `PetscViewerPythonCreate()`
65*22d6dc08SStefano Zampini @*/
PetscViewerPythonViewObject(PetscViewer viewer,PetscObject obj)66*22d6dc08SStefano Zampini PetscErrorCode PetscViewerPythonViewObject(PetscViewer viewer, PetscObject obj)
67*22d6dc08SStefano Zampini {
68*22d6dc08SStefano Zampini PetscFunctionBegin;
69*22d6dc08SStefano Zampini PetscValidHeaderSpecific(viewer, PETSC_VIEWER_CLASSID, 1);
70*22d6dc08SStefano Zampini PetscValidHeader(obj, 2);
71*22d6dc08SStefano Zampini PetscTryMethod(viewer, "PetscViewerPythonViewObject_C", (PetscViewer, PetscObject), (viewer, obj));
72*22d6dc08SStefano Zampini PetscFunctionReturn(PETSC_SUCCESS);
73*22d6dc08SStefano Zampini }
74*22d6dc08SStefano Zampini
75*22d6dc08SStefano Zampini /*@
76*22d6dc08SStefano Zampini PetscViewerPythonCreate - Create a `PetscViewer` object implemented in Python.
77*22d6dc08SStefano Zampini
78*22d6dc08SStefano Zampini Collective
79*22d6dc08SStefano Zampini
80*22d6dc08SStefano Zampini Input Parameters:
81*22d6dc08SStefano Zampini + comm - MPI communicator
82*22d6dc08SStefano Zampini - pyname - full dotted Python name [package].module[.{class|function}]
83*22d6dc08SStefano Zampini
84*22d6dc08SStefano Zampini Output Parameter:
85*22d6dc08SStefano Zampini . viewer - the viewer
86*22d6dc08SStefano Zampini
87*22d6dc08SStefano Zampini Level: intermediate
88*22d6dc08SStefano Zampini
89*22d6dc08SStefano Zampini .seealso: [](sec_viewers), `PetscViewer`, `PetscViewerType`, `PETSCVIEWERPYTHON`, `PetscViewerPythonSetType()`, `PetscPythonInitialize()`, `PetscViewerPythonViewObject()`
90*22d6dc08SStefano Zampini @*/
PetscViewerPythonCreate(MPI_Comm comm,const char pyname[],PetscViewer * viewer)91*22d6dc08SStefano Zampini PetscErrorCode PetscViewerPythonCreate(MPI_Comm comm, const char pyname[], PetscViewer *viewer)
92*22d6dc08SStefano Zampini {
93*22d6dc08SStefano Zampini PetscFunctionBegin;
94*22d6dc08SStefano Zampini PetscAssertPointer(pyname, 2);
95*22d6dc08SStefano Zampini PetscAssertPointer(viewer, 3);
96*22d6dc08SStefano Zampini PetscCall(PetscViewerCreate(comm, viewer));
97*22d6dc08SStefano Zampini PetscCall(PetscViewerSetType(*viewer, PETSCVIEWERPYTHON));
98*22d6dc08SStefano Zampini PetscCall(PetscViewerPythonSetType(*viewer, pyname));
99*22d6dc08SStefano Zampini PetscFunctionReturn(PETSC_SUCCESS);
100*22d6dc08SStefano Zampini }
101*22d6dc08SStefano Zampini
102*22d6dc08SStefano Zampini /*@C
103*22d6dc08SStefano Zampini PETSC_VIEWER_PYTHON_ - Creates a Python `PetscViewer` shared by all MPI processes in a communicator.
104*22d6dc08SStefano Zampini
105*22d6dc08SStefano Zampini Collective
106*22d6dc08SStefano Zampini
107*22d6dc08SStefano Zampini Input Parameter:
108*22d6dc08SStefano Zampini . comm - the MPI communicator to share the `PetscViewer`
109*22d6dc08SStefano Zampini
110*22d6dc08SStefano Zampini Level: developer
111*22d6dc08SStefano Zampini
112*22d6dc08SStefano Zampini Note:
113*22d6dc08SStefano Zampini Unlike almost all other PETSc routines, `PETSC_VIEWER_PYTHON_()` does not return
114*22d6dc08SStefano Zampini an error code. It is usually used in the form
115*22d6dc08SStefano Zampini .vb
116*22d6dc08SStefano Zampini XXXView(XXX object, PETSC_VIEWER_PYTHON_(comm));
117*22d6dc08SStefano Zampini .ve
118*22d6dc08SStefano Zampini
119*22d6dc08SStefano Zampini .seealso: [](sec_viewers), `PetscViewer`
120*22d6dc08SStefano Zampini @*/
PETSC_VIEWER_PYTHON_(MPI_Comm comm)121*22d6dc08SStefano Zampini PetscViewer PETSC_VIEWER_PYTHON_(MPI_Comm comm)
122*22d6dc08SStefano Zampini {
123*22d6dc08SStefano Zampini PetscViewer viewer;
124*22d6dc08SStefano Zampini
125*22d6dc08SStefano Zampini PetscFunctionBegin;
126*22d6dc08SStefano Zampini PetscCallNull(PetscViewerCreate(comm, &viewer));
127*22d6dc08SStefano Zampini PetscCallNull(PetscViewerSetType(viewer, PETSCVIEWERPYTHON));
128*22d6dc08SStefano Zampini PetscCallNull(PetscObjectRegisterDestroy((PetscObject)viewer));
129*22d6dc08SStefano Zampini PetscFunctionReturn(viewer);
130*22d6dc08SStefano Zampini }
131*22d6dc08SStefano Zampini
132*22d6dc08SStefano Zampini /*MC
133*22d6dc08SStefano Zampini PETSCVIEWERPYTHON - A viewer implemented using Python code
134*22d6dc08SStefano Zampini
135*22d6dc08SStefano Zampini Level: beginner
136*22d6dc08SStefano Zampini
137*22d6dc08SStefano Zampini Notes:
138*22d6dc08SStefano Zampini This is the parent viewer for any implemented in Python.
139*22d6dc08SStefano Zampini
140*22d6dc08SStefano Zampini .seealso: [](sec_viewers), `PetscViewer`, `PetscViewerCreate()`, `VecView()`, `DMView()`, `DMPLEX`, `PETSCVIEWERPYVISTA`
141*22d6dc08SStefano Zampini M*/
142