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 {MATHEMATICA_LINK_CREATE, MATHEMATICA_LINK_CONNECT, MATHEMATICA_LINK_LAUNCH} LinkMode; 12: typedef struct { 13: #if defined(PETSC_HAVE_MATHEMATICA) 14: MLINK link; /* The link to Mathematica */ 15: #endif 16: char *linkname; /* The name to link to Mathematica on (usually a port) */ 17: char *linkhost; /* The host to link to Mathematica on */ 18: LinkMode linkmode; /* The link mode */ 19: const char *objName; /* The name for the next object passed to Mathematica */ 20: } PetscViewer_Mathematica; 22: extern PetscErrorCode PetscViewerMathematicaSetFromOptions(PetscViewer); 23: extern PetscErrorCode PetscViewerMathematicaSetLinkName(PetscViewer,const char*); 24: extern PetscErrorCode PetscViewerMathematicaSetLinkPort(PetscViewer,int); 25: extern PetscErrorCode PetscViewerMathematicaSetLinkHost(PetscViewer,const char*); 26: extern PetscErrorCode PetscViewerMathematicaSetLinkMode(PetscViewer,LinkMode);