1: /* 2: This is the definition of the Mathematica viewer structure. 3: */ 5: #include <petsc/private/viewerimpl.h> 6: #if defined(PETSC_HAVE_MATHEMATICA) 7: #include <mathlink.h> 8: #endif 10: typedef enum { 11: MATHEMATICA_LINK_CREATE, 12: MATHEMATICA_LINK_CONNECT, 13: MATHEMATICA_LINK_LAUNCH 14: } LinkMode; 16: typedef struct { 17: #if defined(PETSC_HAVE_MATHEMATICA) 18: MLINK link; /* The link to Mathematica */ 19: #endif 20: char *linkname; /* The name to link to Mathematica on (usually a port) */ 21: char *linkhost; /* The host to link to Mathematica on */ 22: LinkMode linkmode; /* The link mode */ 23: const char *objName; /* The name for the next object passed to Mathematica */ 24: } PetscViewer_Mathematica; 26: PETSC_EXTERN PetscErrorCode PetscViewerMathematicaSetFromOptions(PetscViewer); 27: PETSC_EXTERN PetscErrorCode PetscViewerMathematicaSetLinkName(PetscViewer, const char *); 28: PETSC_EXTERN PetscErrorCode PetscViewerMathematicaSetLinkPort(PetscViewer, int); 29: PETSC_EXTERN PetscErrorCode PetscViewerMathematicaSetLinkHost(PetscViewer, const char *); 30: PETSC_EXTERN PetscErrorCode PetscViewerMathematicaSetLinkMode(PetscViewer, LinkMode);