1 #pragma once 2 3 #include <petscviewer.h> 4 #include <petscsys.h> 5 6 struct _n_PetscViewerGLVisVecInfo { 7 char *fec_type; /* the output of FiniteElementCollection::Name() */ 8 }; 9 typedef struct _n_PetscViewerGLVisVecInfo *PetscViewerGLVisVecInfo; 10 11 struct _n_PetscViewerGLVisInfo { 12 PetscBool enabled; /* whether or not to visualize data from the process (it works, but it currently misses a public API) */ 13 PetscBool init; /* whether or not the popup window has been initialized (must be done after having sent the data the first time) */ 14 PetscInt size[2]; /* window sizes */ 15 PetscReal pause; /* pause argument */ 16 char *fmt; /* format */ 17 }; 18 typedef struct _n_PetscViewerGLVisInfo *PetscViewerGLVisInfo; 19 20 typedef enum { 21 PETSCVIEWERGLVIS_DISCONNECTED, 22 PETSCVIEWERGLVIS_CONNECTED, 23 PETSCVIEWERGLVIS_DISABLED 24 } PetscViewerGLVisStatus; 25 26 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisPause_Internal(PetscViewer); 27 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisSetDM_Internal(PetscViewer, PetscObject); 28 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisGetDM_Internal(PetscViewer, PetscObject *); 29 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisInitWindow_Internal(PetscViewer, PetscBool, PetscInt, const char *); 30 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisGetStatus_Internal(PetscViewer, PetscViewerGLVisStatus *); 31 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisGetType_Internal(PetscViewer, PetscViewerGLVisType *); 32 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisGetWindow_Internal(PetscViewer, PetscInt, PetscViewer *); 33 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisRestoreWindow_Internal(PetscViewer, PetscInt, PetscViewer *); 34 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisGetFields_Internal(PetscViewer, PetscInt *, const char **[], PetscInt *[], PetscErrorCode (**)(PetscObject, PetscInt, PetscObject[], void *), PetscObject *[], void **); 35 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisGetDMWindow_Internal(PetscViewer, PetscViewer *); 36 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscViewerGLVisRestoreDMWindow_Internal(PetscViewer, PetscViewer *); 37 38 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscGLVisCollectiveBegin(MPI_Comm, PetscViewer *); 39 PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode PetscGLVisCollectiveEnd(MPI_Comm, PetscViewer *); 40