1*2f8f6c92SMatthew G. Knepley #include "petscviewer.h"
222d6dc08SStefano Zampini #include <petsc/private/viewerimpl.h> /*I "petscsys.h" I*/
322d6dc08SStefano Zampini
422d6dc08SStefano Zampini /*@C
522d6dc08SStefano Zampini PETSC_VIEWER_PYVISTA_ - Creates a PyVista `PetscViewer` shared by all MPI processes in a communicator.
622d6dc08SStefano Zampini
722d6dc08SStefano Zampini Collective
822d6dc08SStefano Zampini
922d6dc08SStefano Zampini Input Parameter:
1022d6dc08SStefano Zampini . comm - the MPI communicator to share the `PetscViewer`
1122d6dc08SStefano Zampini
1222d6dc08SStefano Zampini Level: developer
1322d6dc08SStefano Zampini
1422d6dc08SStefano Zampini Note:
1522d6dc08SStefano Zampini Unlike almost all other PETSc routines, `PETSC_VIEWER_PYVISTA_()` does not return
1622d6dc08SStefano Zampini an error code. It is usually used in the form
1722d6dc08SStefano Zampini .vb
1822d6dc08SStefano Zampini XXXView(XXX object, PETSC_VIEWER_PYVISTA_(comm));
1922d6dc08SStefano Zampini .ve
2022d6dc08SStefano Zampini
2122d6dc08SStefano Zampini .seealso: [](sec_viewers), `PetscViewer`
2222d6dc08SStefano Zampini @*/
PETSC_VIEWER_PYVISTA_(MPI_Comm comm)2322d6dc08SStefano Zampini PetscViewer PETSC_VIEWER_PYVISTA_(MPI_Comm comm)
2422d6dc08SStefano Zampini {
2522d6dc08SStefano Zampini PetscViewer viewer;
2622d6dc08SStefano Zampini
2722d6dc08SStefano Zampini PetscFunctionBegin;
2822d6dc08SStefano Zampini PetscCallNull(PetscViewerCreate(comm, &viewer));
2922d6dc08SStefano Zampini PetscCallNull(PetscViewerSetType(viewer, PETSCVIEWERPYVISTA));
30*2f8f6c92SMatthew G. Knepley PetscCallNull(PetscViewerSetFromOptions(viewer));
3122d6dc08SStefano Zampini PetscCallNull(PetscObjectRegisterDestroy((PetscObject)viewer));
3222d6dc08SStefano Zampini PetscFunctionReturn(viewer);
3322d6dc08SStefano Zampini }
3422d6dc08SStefano Zampini
3522d6dc08SStefano Zampini /*MC
3622d6dc08SStefano Zampini PETSCVIEWERPYVISTA - A PyVista viewer implemented using Python code
3722d6dc08SStefano Zampini
3822d6dc08SStefano Zampini Level: beginner
3922d6dc08SStefano Zampini
4022d6dc08SStefano Zampini Notes:
4122d6dc08SStefano Zampini Currently the `DM` viewer only supports `DMPLEX` meshes.
4222d6dc08SStefano Zampini
4322d6dc08SStefano Zampini .seealso: [](sec_viewers), `PetscViewer`, `PetscViewerCreate()`, `VecView()`, `DMView()`, `DMPLEX`
4422d6dc08SStefano Zampini M*/
PetscViewerCreate_PyVista(PetscViewer viewer)4522d6dc08SStefano Zampini PETSC_EXTERN PetscErrorCode PetscViewerCreate_PyVista(PetscViewer viewer)
4622d6dc08SStefano Zampini {
4722d6dc08SStefano Zampini PetscFunctionBegin;
4822d6dc08SStefano Zampini PetscCall(PetscPythonInitialize(NULL, NULL));
4922d6dc08SStefano Zampini PetscCall(PetscViewerSetType(viewer, PETSCVIEWERPYTHON));
5022d6dc08SStefano Zampini PetscCall(PetscObjectChangeTypeName((PetscObject)viewer, PETSCVIEWERPYVISTA));
5122d6dc08SStefano Zampini PetscCall(PetscViewerPythonSetType(viewer, "petsc4py.lib._pytypes.viewer.petscpyvista.PetscPyVista"));
5222d6dc08SStefano Zampini PetscFunctionReturn(PETSC_SUCCESS);
5322d6dc08SStefano Zampini }
54